neozipkit 0.7.2 → 1.0.2

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.
Files changed (70) hide show
  1. package/README.md +57 -24
  2. package/WHATS_NEW.md +114 -0
  3. package/dist/browser/zstd-browser-shim.d.ts +28 -0
  4. package/dist/browser/zstd-browser-shim.d.ts.map +1 -0
  5. package/dist/browser/zstd-browser-shim.js +66 -0
  6. package/dist/browser/zstd-browser-shim.js.map +1 -0
  7. package/dist/browser-esm/index.js +1786 -41737
  8. package/dist/browser-esm/index.js.map +4 -4
  9. package/dist/browser-umd/index.js +1786 -41737
  10. package/dist/browser-umd/index.js.map +4 -4
  11. package/dist/browser-umd/index.min.js +3 -21
  12. package/dist/core/ZipCompress.d.ts +2 -7
  13. package/dist/core/ZipCompress.d.ts.map +1 -1
  14. package/dist/core/ZipCompress.js +45 -22
  15. package/dist/core/ZipCompress.js.map +1 -1
  16. package/dist/core/ZipDecompress.d.ts +1 -3
  17. package/dist/core/ZipDecompress.d.ts.map +1 -1
  18. package/dist/core/ZipDecompress.js +14 -9
  19. package/dist/core/ZipDecompress.js.map +1 -1
  20. package/dist/core/encryption/AesCrypto.d.ts +55 -11
  21. package/dist/core/encryption/AesCrypto.d.ts.map +1 -1
  22. package/dist/core/encryption/AesCrypto.js +223 -68
  23. package/dist/core/encryption/AesCrypto.js.map +1 -1
  24. package/dist/core/encryption/index.d.ts +1 -1
  25. package/dist/core/encryption/index.d.ts.map +1 -1
  26. package/dist/core/encryption/index.js +3 -1
  27. package/dist/core/encryption/index.js.map +1 -1
  28. package/dist/core/version.js +1 -1
  29. package/dist/node/LegacyZstd.d.ts +67 -0
  30. package/dist/node/LegacyZstd.d.ts.map +1 -0
  31. package/dist/node/LegacyZstd.js +209 -0
  32. package/dist/node/LegacyZstd.js.map +1 -0
  33. package/dist/node/ZipCompressNode.d.ts +9 -7
  34. package/dist/node/ZipCompressNode.d.ts.map +1 -1
  35. package/dist/node/ZipCompressNode.js +85 -46
  36. package/dist/node/ZipCompressNode.js.map +1 -1
  37. package/dist/node/ZipDecompressNode.d.ts +7 -3
  38. package/dist/node/ZipDecompressNode.d.ts.map +1 -1
  39. package/dist/node/ZipDecompressNode.js +51 -55
  40. package/dist/node/ZipDecompressNode.js.map +1 -1
  41. package/dist/node/ZipkitNode.d.ts +14 -0
  42. package/dist/node/ZipkitNode.d.ts.map +1 -1
  43. package/dist/node/ZipkitNode.js +130 -39
  44. package/dist/node/ZipkitNode.js.map +1 -1
  45. package/dist/node/ZstdNode.d.ts +39 -0
  46. package/dist/node/ZstdNode.d.ts.map +1 -0
  47. package/dist/node/ZstdNode.js +171 -0
  48. package/dist/node/ZstdNode.js.map +1 -0
  49. package/dist/node/index.d.ts +3 -0
  50. package/dist/node/index.d.ts.map +1 -1
  51. package/dist/node/index.js +11 -1
  52. package/dist/node/index.js.map +1 -1
  53. package/package.json +10 -10
  54. package/src/browser/zstd-browser-shim.ts +76 -0
  55. package/src/core/ZipCompress.ts +57 -29
  56. package/src/core/ZipDecompress.ts +21 -10
  57. package/src/core/encryption/AesCrypto.ts +265 -86
  58. package/src/core/encryption/index.ts +1 -1
  59. package/src/core/version.ts +1 -1
  60. package/src/node/LegacyZstd.ts +270 -0
  61. package/src/node/ZipCompressNode.ts +107 -55
  62. package/src/node/ZipDecompressNode.ts +80 -66
  63. package/src/node/ZipkitNode.ts +150 -40
  64. package/src/node/ZstdNode.ts +155 -0
  65. package/src/node/index.ts +10 -0
  66. package/dist/core/ZstdManager.d.ts +0 -56
  67. package/dist/core/ZstdManager.d.ts.map +0 -1
  68. package/dist/core/ZstdManager.js +0 -144
  69. package/dist/core/ZstdManager.js.map +0 -1
  70. package/src/core/ZstdManager.ts +0 -165
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ /**
3
+ * Detect legacy NeoZipKit WASM zstd (`@oneidentity/zstd-js`).
4
+ *
5
+ * That codec wrote valid-looking zstd frames but declared Frame_Content_Size as
6
+ * `uncompressed_size + 18`. Standard libzstd / Node zlib decode to the real
7
+ * payload plus 18 trailing zero bytes. CRC of the truncated payload matches
8
+ * the ZIP entry CRC.
9
+ *
10
+ * Header-only checks do not require decompressing. Verified checks decompress
11
+ * with native zlib and confirm trailing zeros + optional CRC.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.LegacyZstd = exports.LEGACY_WASM_ZSTD_PADDING = void 0;
15
+ exports.parseZstdFrameContentSize = parseZstdFrameContentSize;
16
+ exports.looksLikeLegacyWasmZstd = looksLikeLegacyWasmZstd;
17
+ exports.detectLegacyWasmZstd = detectLegacyWasmZstd;
18
+ exports.repairLegacyWasmZstdPlaintext = repairLegacyWasmZstdPlaintext;
19
+ const ZstdNode_1 = require("./ZstdNode");
20
+ const HashCalculator_1 = require("../core/components/HashCalculator");
21
+ /** Fixed extra bytes declared/emitted by the broken WASM codec. */
22
+ exports.LEGACY_WASM_ZSTD_PADDING = 18;
23
+ const ZSTD_MAGIC = Buffer.from([0x28, 0xb5, 0x2f, 0xfd]);
24
+ /**
25
+ * Read Frame_Content_Size from a zstd frame header, or null if absent / unparseable.
26
+ * @see https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md
27
+ */
28
+ function parseZstdFrameContentSize(compressed) {
29
+ if (!compressed || compressed.length < 6) {
30
+ return null;
31
+ }
32
+ if (compressed[0] !== ZSTD_MAGIC[0] ||
33
+ compressed[1] !== ZSTD_MAGIC[1] ||
34
+ compressed[2] !== ZSTD_MAGIC[2] ||
35
+ compressed[3] !== ZSTD_MAGIC[3]) {
36
+ return null;
37
+ }
38
+ const descriptor = compressed[4];
39
+ const fcsFlag = (descriptor >> 6) & 0x3;
40
+ const singleSegment = ((descriptor >> 5) & 0x1) === 1;
41
+ const dictIdFlag = descriptor & 0x3;
42
+ const dictIdSizes = [0, 1, 2, 4];
43
+ let pos = 5 + dictIdSizes[dictIdFlag];
44
+ if (fcsFlag === 0) {
45
+ if (!singleSegment) {
46
+ return null;
47
+ }
48
+ if (pos >= compressed.length) {
49
+ return null;
50
+ }
51
+ return compressed[pos];
52
+ }
53
+ const fcsSizes = [0, 2, 4, 8];
54
+ const n = fcsSizes[fcsFlag];
55
+ if (pos + n > compressed.length) {
56
+ return null;
57
+ }
58
+ let fcs;
59
+ if (n === 2) {
60
+ fcs = compressed.readUInt16LE(pos);
61
+ }
62
+ else if (n === 4) {
63
+ fcs = compressed.readUInt32LE(pos);
64
+ }
65
+ else {
66
+ const lo = compressed.readUInt32LE(pos);
67
+ const hi = compressed.readUInt32LE(pos + 4);
68
+ // Content sizes that do not fit in JS safe integers are not our legacy case.
69
+ if (hi !== 0) {
70
+ return null;
71
+ }
72
+ fcs = lo;
73
+ }
74
+ // Spec: when FCS_Flag == 1, stored value is (size - 256).
75
+ if (fcsFlag === 1) {
76
+ fcs += 256;
77
+ }
78
+ return fcs;
79
+ }
80
+ /**
81
+ * Fast header heuristic: FCS === expectedUncompressedSize + 18.
82
+ */
83
+ function looksLikeLegacyWasmZstd(compressed, expectedUncompressedSize) {
84
+ if (expectedUncompressedSize < 0 || !Number.isFinite(expectedUncompressedSize)) {
85
+ return false;
86
+ }
87
+ const fcs = parseZstdFrameContentSize(compressed);
88
+ if (fcs === null) {
89
+ return false;
90
+ }
91
+ return fcs === expectedUncompressedSize + exports.LEGACY_WASM_ZSTD_PADDING;
92
+ }
93
+ function crc32Of(data) {
94
+ const h = new HashCalculator_1.HashCalculator();
95
+ h.update(data);
96
+ return h.finalizeCRC32();
97
+ }
98
+ /**
99
+ * Detect legacy WASM zstd frames for a single compressed payload.
100
+ */
101
+ async function detectLegacyWasmZstd(compressed, expectedUncompressedSize, options) {
102
+ const expected = expectedUncompressedSize >>> 0;
103
+ const fcs = parseZstdFrameContentSize(compressed);
104
+ const headerMatch = fcs !== null && fcs === expected + exports.LEGACY_WASM_ZSTD_PADDING;
105
+ const base = {
106
+ frameContentSize: fcs,
107
+ expectedUncompressedSize: expected,
108
+ paddingBytes: exports.LEGACY_WASM_ZSTD_PADDING,
109
+ };
110
+ if (!headerMatch && options?.verify === false) {
111
+ return {
112
+ ...base,
113
+ isLegacyWasm: false,
114
+ confidence: 'none',
115
+ reason: fcs === null
116
+ ? 'No Frame_Content_Size in zstd header (or not a zstd frame)'
117
+ : `Frame_Content_Size ${fcs} does not equal expected ${expected} + ${exports.LEGACY_WASM_ZSTD_PADDING}`,
118
+ };
119
+ }
120
+ if (options?.verify === false) {
121
+ return {
122
+ ...base,
123
+ isLegacyWasm: true,
124
+ confidence: 'header',
125
+ reason: `Frame_Content_Size is expected+${exports.LEGACY_WASM_ZSTD_PADDING} (legacy WASM heuristic)`,
126
+ };
127
+ }
128
+ // Verified path (default): decompress and check padding / CRC.
129
+ let decoded;
130
+ try {
131
+ decoded = await ZstdNode_1.ZstdNode.decompress(compressed);
132
+ }
133
+ catch (e) {
134
+ return {
135
+ ...base,
136
+ isLegacyWasm: false,
137
+ confidence: 'none',
138
+ reason: `Native decompress failed: ${e instanceof Error ? e.message : String(e)}`,
139
+ };
140
+ }
141
+ const pad = decoded.length - expected;
142
+ const trailingZeros = pad === exports.LEGACY_WASM_ZSTD_PADDING &&
143
+ decoded.subarray(expected).equals(Buffer.alloc(exports.LEGACY_WASM_ZSTD_PADDING));
144
+ const truncated = decoded.subarray(0, Math.min(expected, decoded.length));
145
+ const crcOk = options?.crc === undefined ||
146
+ options.crc === 0 ||
147
+ crc32Of(truncated) === (options.crc >>> 0);
148
+ if (trailingZeros && crcOk && decoded.length === expected + exports.LEGACY_WASM_ZSTD_PADDING) {
149
+ return {
150
+ ...base,
151
+ isLegacyWasm: true,
152
+ confidence: 'verified',
153
+ reason: options?.crc && options.crc !== 0
154
+ ? `Decoded length is +${exports.LEGACY_WASM_ZSTD_PADDING} with trailing zeros; truncated CRC matches`
155
+ : `Decoded length is +${exports.LEGACY_WASM_ZSTD_PADDING} with trailing zeros`,
156
+ };
157
+ }
158
+ if (headerMatch && !trailingZeros) {
159
+ return {
160
+ ...base,
161
+ isLegacyWasm: false,
162
+ confidence: 'none',
163
+ reason: 'Header suggested legacy WASM but decoded payload did not have 18 trailing zeros',
164
+ };
165
+ }
166
+ return {
167
+ ...base,
168
+ isLegacyWasm: false,
169
+ confidence: 'none',
170
+ paddingBytes: Math.max(0, pad),
171
+ reason: decoded.length === expected
172
+ ? 'Standard zstd frame (decoded size matches expected)'
173
+ : `Decoded size ${decoded.length} does not match legacy pattern (expected ${expected} or ${expected + exports.LEGACY_WASM_ZSTD_PADDING})`,
174
+ };
175
+ }
176
+ /**
177
+ * Truncate plaintext if it matches the legacy +18 zero padding pattern.
178
+ * Returns the original buffer when not legacy-shaped.
179
+ */
180
+ function repairLegacyWasmZstdPlaintext(decoded, expectedUncompressedSize, crc) {
181
+ const expected = expectedUncompressedSize >>> 0;
182
+ if (decoded.length === expected + exports.LEGACY_WASM_ZSTD_PADDING &&
183
+ decoded.subarray(expected).equals(Buffer.alloc(exports.LEGACY_WASM_ZSTD_PADDING))) {
184
+ const repaired = decoded.subarray(0, expected);
185
+ if (crc !== undefined && crc !== 0) {
186
+ if (crc32Of(repaired) !== (crc >>> 0)) {
187
+ return { repaired: decoded, wasLegacy: false };
188
+ }
189
+ }
190
+ return { repaired, wasLegacy: true };
191
+ }
192
+ if (decoded.length > expected && expected > 0) {
193
+ // Match Rust extract behavior: bound to declared uncompressed size for zstd.
194
+ const repaired = decoded.subarray(0, expected);
195
+ if (crc !== undefined && crc !== 0 && crc32Of(repaired) === (crc >>> 0)) {
196
+ return { repaired, wasLegacy: true };
197
+ }
198
+ }
199
+ return { repaired: decoded, wasLegacy: false };
200
+ }
201
+ exports.LegacyZstd = {
202
+ LEGACY_WASM_ZSTD_PADDING: exports.LEGACY_WASM_ZSTD_PADDING,
203
+ parseZstdFrameContentSize,
204
+ looksLikeLegacyWasmZstd,
205
+ detectLegacyWasmZstd,
206
+ repairLegacyWasmZstdPlaintext,
207
+ };
208
+ exports.default = exports.LegacyZstd;
209
+ //# sourceMappingURL=LegacyZstd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegacyZstd.js","sourceRoot":"","sources":["../../src/node/LegacyZstd.ts"],"names":[],"mappings":"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"}
@@ -58,17 +58,19 @@ export declare class ZipCompressNode {
58
58
  */
59
59
  deflate(inbuf: Buffer, options?: CompressOptions): Buffer;
60
60
  /**
61
- * Compresses data using Zstandard (zstd) algorithm
62
- * @param input - Buffer to compress OR chunked reader object with totalSize and readChunk callback
61
+ * Compresses data using Zstandard via Node native zlib chunked streaming.
62
+ *
63
+ * @param input - Buffer OR chunked reader (`onReadChunk` preferred; `readChunk` accepted)
63
64
  * @param options - Compression options
64
- * @param bufferSize - Size of buffer to read if using chunked reader (default: 512KB)
65
- * @param entry - Optional ZIP entry for hash calculation
66
- * @param onOutputBuffer - Optional callback for streaming output
67
- * @returns Compressed data buffer
65
+ * @param bufferSize - Chunk size for streaming reads (default: 512KB)
66
+ * @param entry - Optional ZIP entry for hash / compressedSize
67
+ * @param onOutputBuffer - Optional callback for streaming compressed output
68
+ * @returns Compressed buffer, or empty buffer when streamed via onOutputBuffer
68
69
  */
69
70
  zstdCompress(input: Buffer | {
70
71
  totalSize: number;
71
- readChunk: (position: number, size: number) => Buffer;
72
+ onReadChunk?: (position: number, size: number) => Buffer;
73
+ readChunk?: (position: number, size: number) => Buffer;
72
74
  }, options?: CompressOptions, bufferSize?: number, entry?: ZipEntry, onOutputBuffer?: (data: Buffer) => Promise<void>): Promise<Buffer>;
73
75
  /**
74
76
  * Encrypt compressed data using PKZIP encryption
@@ -1 +1 @@
1
- {"version":3,"file":"ZipCompressNode.d.ts","sourceRoot":"","sources":["../../src/node/ZipCompressNode.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AAetC,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAa;IAG/B,OAAO,CAAC,MAAM,CAAC,cAAc,CAAkB;IAE/C;;OAEG;IACH,OAAO,CAAC,GAAG;IAMX;;;OAGG;gBACS,UAAU,EAAE,UAAU;IAYlC;;;;;;;OAOG;IACG,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IA2E/I;;;;;;;;OAQG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,EAClI,OAAO,CAAC,EAAE,eAAe,EACzB,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,QAAQ,EAChB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,MAAM,CAAC;IA8IlB;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM;IAgBzD;;;;;;;;OAQG;IACG,YAAY,CAChB,KAAK,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,EAC5F,OAAO,CAAC,EAAE,eAAe,EACzB,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,QAAQ,EAChB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,MAAM,CAAC;IAsElB;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,wBAAwB;IAkBhC;;;;;;;;;;OAUG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC;IAsBlB;;;;;;;;;;;;OAYG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,eAAe,EACzB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,MAAM,CAAC;IAgElB;;;;;;;;;;;;OAYG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC;CAoCjB"}
1
+ {"version":3,"file":"ZipCompressNode.d.ts","sourceRoot":"","sources":["../../src/node/ZipCompressNode.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AAetC,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAa;IAG/B,OAAO,CAAC,MAAM,CAAC,cAAc,CAAkB;IAE/C;;OAEG;IACH,OAAO,CAAC,GAAG;IAMX;;;OAGG;gBACS,UAAU,EAAE,UAAU;IAYlC;;;;;;;OAOG;IACG,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IA2E/I;;;;;;;;OAQG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,EAClI,OAAO,CAAC,EAAE,eAAe,EACzB,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,QAAQ,EAChB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,MAAM,CAAC;IA8IlB;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM;IAgBzD;;;;;;;;;OASG;IACG,YAAY,CAChB,KAAK,EACD,MAAM,GACN;QACE,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QACzD,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KACxD,EACL,OAAO,CAAC,EAAE,eAAe,EACzB,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,QAAQ,EAChB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,MAAM,CAAC;IAoHlB;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,wBAAwB;IAkBhC;;;;;;;;;;OAUG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC;IAsBlB;;;;;;;;;;;;OAYG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,eAAe,EACzB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,MAAM,CAAC;IA+DlB;;;;;;;;;;;;OAYG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC;CAoCjB"}
@@ -57,10 +57,10 @@ const HashCalculator_1 = require("../core/components/HashCalculator");
57
57
  const ZipCrypto_1 = require("../core/encryption/ZipCrypto");
58
58
  const AesCrypto_1 = require("../core/encryption/AesCrypto");
59
59
  const NeoCrypto_1 = require("../core/encryption/NeoCrypto");
60
- const ZstdManager_1 = require("../core/ZstdManager");
61
60
  const Errors_1 = __importDefault(require("../core/constants/Errors"));
62
61
  const fs = __importStar(require("fs"));
63
62
  const path = __importStar(require("path"));
63
+ const ZstdNode_1 = require("./ZstdNode");
64
64
  const pako = require('pako');
65
65
  /**
66
66
  * ZipCompressNode - Node.js file-based compression operations
@@ -331,70 +331,110 @@ class ZipCompressNode {
331
331
  }
332
332
  }
333
333
  /**
334
- * Compresses data using Zstandard (zstd) algorithm
335
- * @param input - Buffer to compress OR chunked reader object with totalSize and readChunk callback
334
+ * Compresses data using Zstandard via Node native zlib chunked streaming.
335
+ *
336
+ * @param input - Buffer OR chunked reader (`onReadChunk` preferred; `readChunk` accepted)
336
337
  * @param options - Compression options
337
- * @param bufferSize - Size of buffer to read if using chunked reader (default: 512KB)
338
- * @param entry - Optional ZIP entry for hash calculation
339
- * @param onOutputBuffer - Optional callback for streaming output
340
- * @returns Compressed data buffer
338
+ * @param bufferSize - Chunk size for streaming reads (default: 512KB)
339
+ * @param entry - Optional ZIP entry for hash / compressedSize
340
+ * @param onOutputBuffer - Optional callback for streaming compressed output
341
+ * @returns Compressed buffer, or empty buffer when streamed via onOutputBuffer
341
342
  */
342
343
  async zstdCompress(input, options, bufferSize, entry, onOutputBuffer) {
343
344
  const effectiveBufferSize = bufferSize || options?.bufferSize || this.zipkitNode.getBufferSize();
344
345
  const isBuffer = Buffer.isBuffer(input);
345
346
  const totalSize = isBuffer ? input.length : input.totalSize;
347
+ const needsHashCalculation = entry && ((!entry.crc || entry.crc === 0) || (options?.useSHA256 && !entry.sha256));
348
+ const hashCalculator = needsHashCalculation
349
+ ? new HashCalculator_1.HashCalculator({ useSHA256: !!(options?.useSHA256 && entry && !entry.sha256) })
350
+ : null;
346
351
  if (options?.level == 0) {
347
- // For store mode, return as-is
348
352
  if (isBuffer) {
353
+ if (hashCalculator && entry) {
354
+ hashCalculator.update(input);
355
+ if (!entry.crc || entry.crc === 0) {
356
+ entry.crc = hashCalculator.finalizeCRC32();
357
+ }
358
+ if (options?.useSHA256 && !entry.sha256) {
359
+ entry.sha256 = hashCalculator.finalizeSHA256();
360
+ }
361
+ }
349
362
  return input;
350
363
  }
351
- else {
352
- // Read all chunks
353
- const chunks = [];
354
- let position = 0;
355
- while (position < totalSize) {
356
- const size = Math.min(effectiveBufferSize, totalSize - position);
357
- const chunk = input.readChunk(position, size);
364
+ const chunks = [];
365
+ const read = input.onReadChunk ?? input.readChunk;
366
+ if (!read) {
367
+ throw new Error('ZSTD store mode: chunked reader missing read callback');
368
+ }
369
+ let position = 0;
370
+ while (position < totalSize) {
371
+ const size = Math.min(effectiveBufferSize, totalSize - position);
372
+ const chunk = read(position, size);
373
+ if (hashCalculator) {
374
+ hashCalculator.update(chunk);
375
+ }
376
+ if (onOutputBuffer) {
377
+ await onOutputBuffer(chunk);
378
+ }
379
+ else {
358
380
  chunks.push(chunk);
359
- position += size;
360
381
  }
361
- return Buffer.concat(chunks);
382
+ position += chunk.length;
383
+ }
384
+ if (hashCalculator && entry) {
385
+ if (!entry.crc || entry.crc === 0) {
386
+ entry.crc = hashCalculator.finalizeCRC32();
387
+ }
388
+ if (options?.useSHA256 && !entry.sha256) {
389
+ entry.sha256 = hashCalculator.finalizeSHA256();
390
+ }
362
391
  }
392
+ return onOutputBuffer ? Buffer.alloc(0) : Buffer.concat(chunks);
363
393
  }
364
394
  try {
365
- // Zstd compression levels range from 1 (fastest) to 22 (highest compression)
366
- // Map our 1-9 level to a reasonable zstd range (1-19)
367
395
  const level = options?.level ?? 6;
368
- const zstdLevel = Math.min(Math.max(1, Math.floor(level * 2.1)), 19);
369
- // Get the full buffer (zstd doesn't support true streaming compression)
370
- const inbuf = isBuffer ? input : (() => {
371
- const chunks = [];
372
- let position = 0;
373
- while (position < totalSize) {
374
- const size = Math.min(effectiveBufferSize, totalSize - position);
375
- const chunk = input.readChunk(position, size);
376
- chunks.push(chunk);
377
- position += size;
378
- }
379
- return Buffer.concat(chunks);
380
- })();
381
- // Validate input
382
- if (!inbuf || inbuf.length === 0) {
396
+ const read = isBuffer
397
+ ? (position, size) => input.subarray(position, position + size)
398
+ : (input.onReadChunk ?? input.readChunk);
399
+ if (!read) {
400
+ throw new Error('ZSTD compression: chunked reader missing read callback');
401
+ }
402
+ if (!totalSize) {
383
403
  throw new Error('ZSTD compression: empty input buffer');
384
404
  }
385
- // Convert Buffer to Uint8Array for WASM module
386
- const inputArray = new Uint8Array(inbuf.buffer, inbuf.byteOffset, inbuf.byteLength);
387
- // Compress the data with zstd using global ZstdManager
388
- const compressedData = await ZstdManager_1.ZstdManager.compress(inputArray, zstdLevel);
389
- const compressedBuffer = Buffer.from(compressedData);
390
- // Set the compressed size in the entry for ZIP file structure
405
+ if (isBuffer && hashCalculator && entry) {
406
+ hashCalculator.update(input);
407
+ entry.crc = hashCalculator.finalizeCRC32();
408
+ if (options?.useSHA256 && !entry.sha256) {
409
+ entry.sha256 = hashCalculator.finalizeSHA256();
410
+ }
411
+ }
412
+ const collected = [];
413
+ const compressedSize = await ZstdNode_1.ZstdNode.compressChunks(read, totalSize, effectiveBufferSize, level, isBuffer
414
+ ? undefined
415
+ : (plain) => {
416
+ hashCalculator?.update(plain);
417
+ }, async (compressed) => {
418
+ if (onOutputBuffer) {
419
+ await onOutputBuffer(compressed);
420
+ }
421
+ else {
422
+ collected.push(compressed);
423
+ }
424
+ });
425
+ if (!isBuffer && hashCalculator && entry) {
426
+ entry.crc = hashCalculator.finalizeCRC32();
427
+ if (options?.useSHA256 && !entry.sha256) {
428
+ entry.sha256 = hashCalculator.finalizeSHA256();
429
+ }
430
+ }
391
431
  if (entry) {
392
- entry.compressedSize = compressedBuffer.length;
432
+ entry.compressedSize = compressedSize;
393
433
  }
394
434
  if (onOutputBuffer) {
395
- await onOutputBuffer(compressedBuffer);
435
+ return Buffer.alloc(0);
396
436
  }
397
- return compressedBuffer;
437
+ return Buffer.concat(collected);
398
438
  }
399
439
  catch (e) {
400
440
  Logger_1.Logger.error('Error during zstd compression:', e);
@@ -542,9 +582,8 @@ class ZipCompressNode {
542
582
  return await this.compressData(entry, fileData, options, onOutputBuffer);
543
583
  }
544
584
  else if (compressionMethod === 'ZSTD') {
545
- // ZSTD requires full buffer, so read file first
546
- const fileData = fs.readFileSync(filePath);
547
- return await this.compressData(entry, fileData, options, onOutputBuffer);
585
+ // Native Node zstd chunked streaming
586
+ return await this.zstdCompress(chunkedReader, options, bufferSize, entry, onOutputBuffer);
548
587
  }
549
588
  else {
550
589
  // DEFLATED: Use deflateCompress with chunked reader
@@ -1 +1 @@
1
- {"version":3,"file":"ZipCompressNode.js","sourceRoot":"","sources":["../../src/node/ZipCompressNode.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,sDAAsD;AACtD,yDAAyD;AACzD,yCAAyC;AACzC,EAAE;AACF,wBAAwB;AACxB,wBAAwB;AACxB,4EAA4E;AAC5E,sEAAsE;AACtE,uEAAuE;AACvE,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKF,sDAAmD;AACnD,uDAAkF;AAClF,sEAAmE;AACnE,4DAAyD;AACzD,4DAAyD;AACzD,4DAAyF;AACzF,qDAAkD;AAClD,sEAA8C;AAC9C,uCAAyB;AACzB,2CAA6B;AAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAK7B;;;;;;;;;;;;GAYG;AACH,MAAa,eAAe;IAM1B;;OAEG;IACK,GAAG,CAAC,GAAG,IAAW;QACxB,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC;YACnC,eAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,6DAA6D;QAC7D,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC;YACnC,eAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,sBAAsB;IACtB,+EAA+E;IAE/E;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAAC,KAAe,EAAE,IAAY,EAAE,OAAyB,EAAE,cAAgD;QAC3H,2CAA2C;QAC3C,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,EAAE,CAAC;YAC5D,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAE1E,+BAA+B;QAC/B,IAAI,iBAAyB,CAAC;QAE9B,IAAI,OAAO,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;YACzB,iBAAiB,GAAG,oBAAU,CAAC,MAAM,CAAC;QACxC,CAAC;aAAM,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YAC5B,4CAA4C;YAC5C,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;gBACpB,iBAAiB,GAAG,oBAAU,CAAC,MAAM,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,iBAAiB,GAAG,oBAAU,CAAC,IAAI,CAAC;YACtC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iBAAiB,GAAG,oBAAU,CAAC,QAAQ,CAAC;QAC1C,CAAC;QAED,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC;QAEpC,6BAA6B;QAC7B,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtG,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,CAAC,IAAI,+BAAc,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAErI,6BAA6B;QAC7B,IAAI,MAAM,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;gBAClC,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;YAC7C,CAAC;YACD,IAAI,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACxC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;YACjD,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,iBAAiB,KAAK,oBAAU,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QACrC,CAAC;aAAM,IAAI,iBAAiB,KAAK,oBAAU,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,WAAW;YACX,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACxF,CAAC;QAED,yDAAyD;QACzD,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;YACrE,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;QACvC,CAAC;QAED,2CAA2C;QAC3C,IAAI,OAAO,EAAE,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC;YACrC,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBACxB,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvE,CAAC;iBAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBAChC,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD;;;;;;;;OAQG;IACH,KAAK,CAAC,eAAe,CACnB,IAAkI,EAClI,OAAyB,EACzB,UAAmB,EACnB,KAAgB,EAChB,cAAgD;QAEhD,MAAM,mBAAmB,GAAG,UAAU,IAAI,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAEjG,iFAAiF;QACjF,MAAM,oBAAoB,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACjH,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,CAAC,IAAI,+BAAc,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAErI,IAAI,OAAO,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;YACzB,4BAA4B;YAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,yCAAyC;gBACzC,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;oBAC5B,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;wBAClC,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;oBAC7C,CAAC;oBACD,IAAI,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;wBACxC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;oBACjD,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,gEAAgE;gBAChE,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACjB,IAAI,cAAc,GAAG,CAAC,CAAC;gBAEvB,OAAO,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;oBAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAEnD,wCAAwC;oBACxC,IAAI,cAAc,EAAE,CAAC;wBACnB,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC/B,CAAC;oBAED,IAAI,cAAc,EAAE,CAAC;wBACnB,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC;oBAED,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC;oBAC/B,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC;gBAC3B,CAAC;gBAED,kBAAkB;gBAClB,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;oBAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;wBAClC,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;oBAC7C,CAAC;oBACD,IAAI,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;wBACxC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;oBACjD,CAAC;gBACH,CAAC;gBAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,EAAE,KAA0D,CAAC;YAClF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1D,MAAM,gBAAgB,GAAa,EAAE,CAAC;YACtC,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,IAAI,mBAAmB,GAAG,CAAC,CAAC;YAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;YAEjB,IAAI,QAAQ,EAAE,CAAC;gBACb,0BAA0B;gBAC1B,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;oBAC5B,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5B,6EAA6E;oBAC7E,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;oBAC3C,IAAI,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;wBACxC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;oBACjD,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;gBAEpF,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;gBACnC,CAAC;gBAED,OAAO,UAAU,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,qFAAqF;gBACrF,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpE,MAAM,gBAAgB,GAAa,EAAE,CAAC;gBACtC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,4DAA4D;gBAElF,OAAO,QAAQ,GAAG,SAAS,EAAE,CAAC;oBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;oBACrE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACnD,MAAM,MAAM,GAAG,QAAQ,GAAG,QAAQ,IAAI,SAAS,CAAC;oBAEhD,4BAA4B;oBAC5B,IAAI,cAAc,EAAE,CAAC;wBACnB,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC/B,CAAC;oBAED,mEAAmE;oBACnE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAE7B,0CAA0C;oBAC1C,mFAAmF;oBACnF,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;wBAC7D,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;wBAC1E,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBACrC,mBAAmB,IAAI,aAAa,CAAC,MAAM,CAAC;wBAC5C,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;wBAEtC,IAAI,cAAc,EAAE,CAAC;4BACnB,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;wBACtC,CAAC;oBACH,CAAC;oBAED,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC;oBAC/B,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC;gBAC3B,CAAC;gBAED,4DAA4D;gBAC5D,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;oBAC5B,6EAA6E;oBAC7E,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;oBAC3C,IAAI,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;wBACxC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;oBACjD,CAAC;gBACH,CAAC;gBAED,wFAAwF;gBACxF,IAAI,KAAK,EAAE,CAAC;oBACV,KAAK,CAAC,cAAc,GAAG,mBAAmB,CAAC;gBAC7C,CAAC;gBACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,CAAC,CAAC,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,gBAAM,CAAC,iBAAiB,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,KAAa,EAAE,OAAyB;QAC9C,IAAI,OAAO,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC,CAAC,4BAA4B;QAC5C,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,EAAE,KAA0D,CAAC;YAClF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBACpC,KAAK,EAAE,KAAK,IAAI,CAAC;aAClB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,gBAAM,CAAC,iBAAiB,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY,CAChB,KAA4F,EAC5F,OAAyB,EACzB,UAAmB,EACnB,KAAgB,EAChB,cAAgD;QAEhD,MAAM,mBAAmB,GAAG,UAAU,IAAI,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACjG,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;QAE5D,IAAI,OAAO,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACxB,+BAA+B;YAC/B,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,kBAAkB;gBAClB,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACjB,OAAO,QAAQ,GAAG,SAAS,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;oBACjE,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC9C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnB,QAAQ,IAAI,IAAI,CAAC;gBACnB,CAAC;gBACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,6EAA6E;YAC7E,sDAAsD;YACtD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAErE,wEAAwE;YACxE,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;gBACrC,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACjB,OAAO,QAAQ,GAAG,SAAS,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;oBACjE,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC9C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnB,QAAQ,IAAI,IAAI,CAAC;gBACnB,CAAC;gBACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC,CAAC,EAAE,CAAC;YAEL,iBAAiB;YACjB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YAED,+CAA+C;YAC/C,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAEpF,uDAAuD;YACvD,MAAM,cAAc,GAAG,MAAM,yBAAW,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACzE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAErD,8DAA8D;YAC9D,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC;YACjD,CAAC;YAED,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,gBAAgB,CAAC,CAAC;YACzC,CAAC;YAED,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,gBAAM,CAAC,iBAAiB,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,qBAAqB,CAAC,cAAsB,EAAE,KAAe,EAAE,QAAgB;QACrF,4BAA4B;QAC5B,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAElC,wEAAwE;QACxE,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE/E,gCAAgC;QAChC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,QAAQ,IAAI,iBAAO,CAAC,SAAS,CAAC;QAEpC,iEAAiE;QACjE,KAAK,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC;QAE5C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAAC,cAAsB,EAAE,KAAe,EAAE,QAAgB;QACxF,MAAM,aAAa,GAAG,qBAAS,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC/E,KAAK,CAAC,uBAAuB,GAAG,CAAC,CAAC;QAClC,KAAK,CAAC,kBAAkB,GAAG,0CAA8B,CAAC;QAC1D,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;QACzB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,QAAQ,IAAI,iBAAO,CAAC,SAAS,CAAC;QACpC,KAAK,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC;QAC5C,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,wBAAwB,CAAC,cAAsB,EAAE,KAAe,EAAE,QAAgB;QACxF,MAAM,aAAa,GAAG,qBAAS,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE/E,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;QACtC,KAAK,CAAC,SAAS,GAAG,oBAAU,CAAC,WAAW,CAAC;QACzC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,sBAAsB;QAC5C,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,UAAU;QACjC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,QAAQ,IAAI,iBAAO,CAAC,SAAS,CAAC;QACpC,KAAK,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC;QAE5C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,+EAA+E;IAC/E,iCAAiC;IACjC,+EAA+E;IAE/E;;;;;;;;;;OAUG;IACH,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,KAAe,EACf,OAAyB;QAEzB,uBAAuB;QACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,qCAAqC;QACrC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC;QACpC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnD,iBAAiB;QACjB,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE3C,oEAAoE;QACpE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,kBAAkB,CACtB,QAAgB,EAChB,KAAe,EACf,OAAyB,EACzB,cAAgD;QAEhD,uBAAuB;QACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,qCAAqC;QACrC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC;QACpC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnD,4CAA4C;QAC5C,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAE1E,kDAAkD;QAClD,kDAAkD;QAClD,MAAM,aAAa,GAAG;YACpB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,WAAW,EAAE,CAAC,QAAgB,EAAE,IAAY,EAAU,EAAE;gBACtD,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAClC,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC7D,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBACvC,CAAC;wBAAS,CAAC;oBACT,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,UAAU,EAAE,CAAC,KAAa,EAAQ,EAAE;gBAClC,uDAAuD;YACzD,CAAC;SACF,CAAC;QAEF,2DAA2D;QAC3D,MAAM,iBAAiB,GAAG,OAAO,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;QAEjE,kDAAkD;QAClD,IAAI,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YACnC,KAAK,CAAC,SAAS,GAAG,oBAAU,CAAC,MAAM,CAAC;QACtC,CAAC;aAAM,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;YACxC,KAAK,CAAC,SAAS,GAAG,oBAAU,CAAC,IAAI,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,SAAS,GAAG,oBAAU,CAAC,QAAQ,CAAC;QACxC,CAAC;QAED,IAAI,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YACnC,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC3C,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;YACxC,gDAAgD;YAChD,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC3C,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,aAAa,CACjB,SAAmB,EACnB,UAAkB,EAClB,OAAyB;QAEzB,kDAAkD;QAClD,qCAAqC;QACrC,+BAA+B;QAC/B,2DAA2D;QAC3D,6BAA6B;QAC7B,2CAA2C;QAC3C,8FAA8F;QAE9F,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpB,SAAS,CAAC,mBAAmB;YAC/B,CAAC;YAED,eAAe;YACf,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAExD,gBAAgB;YAChB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QAED,iCAAiC;QACjC,8DAA8D;QAC9D,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;;AA/lBH,0CAgmBC;AA7lBC,8DAA8D;AAC/C,8BAAc,GAAY,KAAK,CAAC"}
1
+ {"version":3,"file":"ZipCompressNode.js","sourceRoot":"","sources":["../../src/node/ZipCompressNode.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,10 @@ export declare class ZipDecompressNode {
58
58
  skipHashCheck?: boolean;
59
59
  onProgress?: (bytes: number) => void;
60
60
  }): Promise<Buffer>;
61
+ /**
62
+ * Read the raw compressed payload for an entry (no decrypt / decompress).
63
+ */
64
+ readCompressedPayload(entry: ZipEntry): Promise<Buffer>;
61
65
  /**
62
66
  * Test entry integrity without extracting to disk
63
67
  * Validates CRC-32 or SHA-256 hash without writing decompressed data
@@ -175,7 +179,8 @@ export declare class ZipDecompressNode {
175
179
  */
176
180
  private inflateStream;
177
181
  /**
178
- * Streaming ZSTD decompression
182
+ * Streaming ZSTD decompression via Node zlib (native).
183
+ * When maxOut > 0, truncates output (legacy WASM emitted +18 zero bytes).
179
184
  */
180
185
  private zstdDecompressStream;
181
186
  /**
@@ -183,8 +188,7 @@ export declare class ZipDecompressNode {
183
188
  */
184
189
  private inflate;
185
190
  /**
186
- * Zstd decompress method (now async with ZstdManager)
187
- * Internal method only
191
+ * Zstd decompress via Node zlib (native), repairing legacy WASM +18 padding when present.
188
192
  */
189
193
  private zstdDecompressSync;
190
194
  /**
@@ -1 +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;AAUxC;;;;;;;;;;;;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;IA8DnC;;;;;;;OAOG;YACW,uBAAuB;IAwDrC;;;OAGG;YACW,iBAAiB;IAwD/B;;;;;;;;;;;OAWG;YACW,gBAAgB;IA8E9B;;;;;;;;;;;;;;OAcG;YACW,kBAAkB;IA0DhC;;;;;;;;;;;;OAYG;YACW,gBAAgB;IA2D9B;;;;;;;;;;;OAWG;YACY,gBAAgB;IA2B/B;;;;;;;OAOG;YACY,aAAa;IA6B5B;;OAEG;YACY,oBAAoB;IA+BnC;;OAEG;IACH,OAAO,CAAC,OAAO;IAMf;;;OAGG;YACW,kBAAkB;IAchC;;;;OAIG;YACW,UAAU;CA4CzB"}
1
+ {"version":3,"file":"ZipDecompressNode.d.ts","sourceRoot":"","sources":["../../src/node/ZipDecompressNode.ts"],"names":[],"mappings":"AAgBA,OAAO,UAAU,MAAM,cAAc,CAAC;AAItC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AAUxC;;;;;;;;;;;;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;;OAEG;IACG,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAS7D;;;;;;;;;;;;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;IA0DnC;;;;;;;OAOG;YACW,uBAAuB;IAqDrC;;;OAGG;YACW,iBAAiB;IAqD/B;;;;;;;;;;;OAWG;YACW,gBAAgB;IA8E9B;;;;;;;;;;;;;;OAcG;YACW,kBAAkB;IA0DhC;;;;;;;;;;;;OAYG;YACW,gBAAgB;IA2D9B;;;;;;;;;;;OAWG;YACY,gBAAgB;IA2B/B;;;;;;;OAOG;YACY,aAAa;IA6B5B;;;OAGG;YACY,oBAAoB;IA0BnC;;OAEG;IACH,OAAO,CAAC,OAAO;IAMf;;OAEG;YACW,kBAAkB;IA8BhC;;;;OAIG;YACW,UAAU;CA4CzB"}