neozipkit 1.0.5 → 1.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.
Files changed (94) hide show
  1. package/NEOZIP_APPNOTE.md +116 -18
  2. package/README.md +38 -8
  3. package/WHATS_NEW.md +111 -0
  4. package/dist/browser/zstd-browser-shim.d.ts +17 -9
  5. package/dist/browser/zstd-browser-shim.d.ts.map +1 -1
  6. package/dist/browser/zstd-browser-shim.js +99 -21
  7. package/dist/browser/zstd-browser-shim.js.map +1 -1
  8. package/dist/browser-esm/index.js +6178 -1261
  9. package/dist/browser-esm/index.js.map +4 -4
  10. package/dist/browser-umd/index.js +6178 -1261
  11. package/dist/browser-umd/index.js.map +4 -4
  12. package/dist/browser-umd/index.min.js +6 -3
  13. package/dist/core/ZipCompress.d.ts +6 -0
  14. package/dist/core/ZipCompress.d.ts.map +1 -1
  15. package/dist/core/ZipCompress.js.map +1 -1
  16. package/dist/core/ZipCopy.d.ts.map +1 -1
  17. package/dist/core/ZipCopy.js +33 -25
  18. package/dist/core/ZipCopy.js.map +1 -1
  19. package/dist/core/ZipEntry.d.ts +18 -0
  20. package/dist/core/ZipEntry.d.ts.map +1 -1
  21. package/dist/core/ZipEntry.js +139 -13
  22. package/dist/core/ZipEntry.js.map +1 -1
  23. package/dist/core/Zipkit.d.ts.map +1 -1
  24. package/dist/core/Zipkit.js +26 -19
  25. package/dist/core/Zipkit.js.map +1 -1
  26. package/dist/core/constants/Headers.d.ts +1 -0
  27. package/dist/core/constants/Headers.d.ts.map +1 -1
  28. package/dist/core/constants/Headers.js +1 -0
  29. package/dist/core/constants/Headers.js.map +1 -1
  30. package/dist/core/index.d.ts +3 -0
  31. package/dist/core/index.d.ts.map +1 -1
  32. package/dist/core/index.js +5 -1
  33. package/dist/core/index.js.map +1 -1
  34. package/dist/core/inflateZipPayload.d.ts +6 -0
  35. package/dist/core/inflateZipPayload.d.ts.map +1 -0
  36. package/dist/core/inflateZipPayload.js +28 -0
  37. package/dist/core/inflateZipPayload.js.map +1 -0
  38. package/dist/core/origin/OriginExtra.d.ts +43 -0
  39. package/dist/core/origin/OriginExtra.d.ts.map +1 -0
  40. package/dist/core/origin/OriginExtra.js +187 -0
  41. package/dist/core/origin/OriginExtra.js.map +1 -0
  42. package/dist/core/version.js +1 -1
  43. package/dist/core/zip64/Zip64.d.ts +138 -0
  44. package/dist/core/zip64/Zip64.d.ts.map +1 -0
  45. package/dist/core/zip64/Zip64.js +353 -0
  46. package/dist/core/zip64/Zip64.js.map +1 -0
  47. package/dist/node/ZipCopyNode.d.ts.map +1 -1
  48. package/dist/node/ZipCopyNode.js +26 -26
  49. package/dist/node/ZipCopyNode.js.map +1 -1
  50. package/dist/node/ZipDecompressNode.d.ts.map +1 -1
  51. package/dist/node/ZipDecompressNode.js +8 -6
  52. package/dist/node/ZipDecompressNode.js.map +1 -1
  53. package/dist/node/ZipkitNode.d.ts +14 -1
  54. package/dist/node/ZipkitNode.d.ts.map +1 -1
  55. package/dist/node/ZipkitNode.js +91 -53
  56. package/dist/node/ZipkitNode.js.map +1 -1
  57. package/dist/node/ZstdNode.d.ts +14 -4
  58. package/dist/node/ZstdNode.d.ts.map +1 -1
  59. package/dist/node/ZstdNode.js +28 -4
  60. package/dist/node/ZstdNode.js.map +1 -1
  61. package/dist/node/buildZipBuffer.d.ts +49 -0
  62. package/dist/node/buildZipBuffer.d.ts.map +1 -0
  63. package/dist/node/buildZipBuffer.js +146 -0
  64. package/dist/node/buildZipBuffer.js.map +1 -0
  65. package/dist/node/index.d.ts +3 -0
  66. package/dist/node/index.d.ts.map +1 -1
  67. package/dist/node/index.js +6 -1
  68. package/dist/node/index.js.map +1 -1
  69. package/dist/node/inflateZipPayload.d.ts +5 -0
  70. package/dist/node/inflateZipPayload.d.ts.map +1 -0
  71. package/dist/node/inflateZipPayload.js +21 -0
  72. package/dist/node/inflateZipPayload.js.map +1 -0
  73. package/dist/types/index.js +2 -2
  74. package/node-esm.mjs +32 -0
  75. package/package.json +11 -5
  76. package/src/browser/zstd-browser-shim.ts +110 -28
  77. package/src/core/ZipCompress.ts +6 -0
  78. package/src/core/ZipCopy.ts +56 -27
  79. package/src/core/ZipEntry.ts +192 -13
  80. package/src/core/Zipkit.ts +40 -22
  81. package/src/core/constants/Headers.ts +1 -0
  82. package/src/core/index.ts +3 -0
  83. package/src/core/inflateZipPayload.ts +27 -0
  84. package/src/core/origin/OriginExtra.ts +209 -0
  85. package/src/core/version.ts +1 -1
  86. package/src/core/zip64/Zip64.ts +473 -0
  87. package/src/node/ZipCopyNode.ts +31 -29
  88. package/src/node/ZipDecompressNode.ts +6 -5
  89. package/src/node/ZipkitNode.ts +121 -68
  90. package/src/node/ZstdNode.ts +33 -8
  91. package/src/node/buildZipBuffer.ts +221 -0
  92. package/src/node/index.ts +7 -0
  93. package/src/node/inflateZipPayload.ts +19 -0
  94. package/src/types/index.ts +2 -2
@@ -0,0 +1,353 @@
1
+ "use strict";
2
+ // ======================================
3
+ // Zip64.ts — APPNOTE Zip64 Version 1 helpers
4
+ // Copyright (c) 2026 NeoWare, Inc. All rights reserved.
5
+ // ======================================
6
+ // Large sizes/offsets/counts (PKWARE APPNOTE §§4.3.14–4.3.16, 4.5.3).
7
+ // Spanned disks and Zip64 EOCD extensible sector are out of scope.
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ZIP64_BUFFER_SIZE_OFFSET_ERROR = exports.CLASSIC_EOCD_SIZE = exports.ZIP64_LOCATOR_SIZE = exports.ZIP64_EOCD_RECORD_SIZE = exports.ZIP64_EOCD_SIZE_FIELD = exports.ZIP64_VERSION_NEEDED = exports.ZIP64_U16 = exports.ZIP64_U32 = void 0;
10
+ exports.exceedsU32 = exceedsU32;
11
+ exports.exceedsU16 = exceedsU16;
12
+ exports.assertSafeInteger = assertSafeInteger;
13
+ exports.readU64AsNumber = readU64AsNumber;
14
+ exports.writeU64 = writeU64;
15
+ exports.needsZip64Entry = needsZip64Entry;
16
+ exports.needsZip64SizeOrOffset = needsZip64SizeOrOffset;
17
+ exports.needsZip64Archive = needsZip64Archive;
18
+ exports.classicEocdNeedsZip64 = classicEocdNeedsZip64;
19
+ exports.buildZip64Extra = buildZip64Extra;
20
+ exports.parseZip64Extra = parseZip64Extra;
21
+ exports.extraFieldHasZip64 = extraFieldHasZip64;
22
+ exports.stripZip64FromExtra = stripZip64FromExtra;
23
+ exports.dataDescriptorByteLength = dataDescriptorByteLength;
24
+ exports.buildZip64Eocd = buildZip64Eocd;
25
+ exports.buildZip64Locator = buildZip64Locator;
26
+ exports.buildClassicEocd = buildClassicEocd;
27
+ exports.buildEndRecords = buildEndRecords;
28
+ exports.parseZip64Eocd = parseZip64Eocd;
29
+ exports.parseZip64Locator = parseZip64Locator;
30
+ exports.assertBufferAllowsEntryZip64 = assertBufferAllowsEntryZip64;
31
+ const Headers_1 = require("../constants/Headers");
32
+ /** Classic u32 overflow sentinel */
33
+ exports.ZIP64_U32 = 0xffffffff;
34
+ /** Classic u16 overflow sentinel */
35
+ exports.ZIP64_U16 = 0xffff;
36
+ /** Version needed to extract when Zip64 extensions are used (4.5) */
37
+ exports.ZIP64_VERSION_NEEDED = 45;
38
+ /**
39
+ * Value stored in Zip64 EOCD "size of Zip64 EOCD record" for Version 1 with
40
+ * an empty extensible data sector: fixed body (56) − leading 12 = 44.
41
+ */
42
+ exports.ZIP64_EOCD_SIZE_FIELD = 44;
43
+ /** Fixed Zip64 EOCD record length with empty extensible sector */
44
+ exports.ZIP64_EOCD_RECORD_SIZE = 56;
45
+ /** Zip64 EOCD locator length */
46
+ exports.ZIP64_LOCATOR_SIZE = 20;
47
+ /** Classic EOCD fixed length (without comment) */
48
+ exports.CLASSIC_EOCD_SIZE = 22;
49
+ /**
50
+ * Buffer/browser APIs must not materialize multi-GiB Zip64 archives in memory.
51
+ * Use Node file/streaming APIs for size/offset Zip64.
52
+ */
53
+ exports.ZIP64_BUFFER_SIZE_OFFSET_ERROR = 'Zip64 for sizes or offsets ≥ 4 GiB requires the Node file/streaming API; ' +
54
+ 'in-memory buffer/browser writers only support Zip64 for entry counts > 65535. ' +
55
+ 'Use ZipkitNode (createZipFromFiles / writeZipEntry) instead of buildZipBuffer.';
56
+ function exceedsU32(value) {
57
+ return value > exports.ZIP64_U32;
58
+ }
59
+ function exceedsU16(value) {
60
+ return value > exports.ZIP64_U16;
61
+ }
62
+ function assertSafeInteger(value, label) {
63
+ const n = typeof value === 'bigint' ? Number(value) : value;
64
+ if (!Number.isFinite(n) || !Number.isSafeInteger(n) || n < 0) {
65
+ throw new Error(`Zip64 ${label} is not a safe non-negative integer (got ${String(value)}); ` +
66
+ `values must fit in Number.MAX_SAFE_INTEGER`);
67
+ }
68
+ return n;
69
+ }
70
+ function readU64AsNumber(buf, offset) {
71
+ return assertSafeInteger(buf.readBigUInt64LE(offset), `u64@${offset}`);
72
+ }
73
+ function writeU64(buf, offset, value) {
74
+ assertSafeInteger(value, `u64 write@${offset}`);
75
+ buf.writeBigUInt64LE(BigInt(value), offset);
76
+ }
77
+ function needsZip64Entry(uncompressedSize, compressedSize, localHdrOffset, diskStart = 0) {
78
+ return (exceedsU32(uncompressedSize) ||
79
+ exceedsU32(compressedSize) ||
80
+ exceedsU32(localHdrOffset) ||
81
+ exceedsU16(diskStart));
82
+ }
83
+ /** True when Zip64 is required for member size or local/CD offset (not entry count alone). */
84
+ function needsZip64SizeOrOffset(uncompressedSize, compressedSize, localHdrOffset, centralDirSize = 0, centralDirOffset = 0) {
85
+ return (exceedsU32(uncompressedSize) ||
86
+ exceedsU32(compressedSize) ||
87
+ exceedsU32(localHdrOffset) ||
88
+ exceedsU32(centralDirSize) ||
89
+ exceedsU32(centralDirOffset));
90
+ }
91
+ function needsZip64Archive(totalEntries, centralDirSize, centralDirOffset) {
92
+ return (exceedsU16(totalEntries) ||
93
+ exceedsU32(centralDirSize) ||
94
+ exceedsU32(centralDirOffset));
95
+ }
96
+ /**
97
+ * Classic EOCD fields that indicate a Zip64 EOCD/locator must be consulted.
98
+ */
99
+ function classicEocdNeedsZip64(eocd) {
100
+ return (eocd.centralDirOffset === exports.ZIP64_U32 ||
101
+ eocd.centralDirSize === exports.ZIP64_U32 ||
102
+ eocd.volEntries === exports.ZIP64_U16 ||
103
+ eocd.totalEntries === exports.ZIP64_U16);
104
+ }
105
+ /**
106
+ * Build Zip64 Extended Information Extra Field (0x0001).
107
+ * Field order is fixed; only include fields whose classic header uses a sentinel.
108
+ * For local headers, APPNOTE requires both sizes when the Zip64 block is present —
109
+ * pass `forLocal: true` to always emit both size fields.
110
+ */
111
+ function buildZip64Extra(fields, opts) {
112
+ const forLocal = opts?.forLocal === true;
113
+ const parts = [];
114
+ const includeUncompressed = forLocal || fields.uncompressedSize !== undefined;
115
+ const includeCompressed = forLocal || fields.compressedSize !== undefined;
116
+ if (includeUncompressed) {
117
+ if (fields.uncompressedSize === undefined) {
118
+ throw new Error('Zip64 local extra requires uncompressedSize');
119
+ }
120
+ parts.push(8);
121
+ }
122
+ if (includeCompressed) {
123
+ if (fields.compressedSize === undefined) {
124
+ throw new Error('Zip64 local extra requires compressedSize');
125
+ }
126
+ parts.push(8);
127
+ }
128
+ if (fields.localHdrOffset !== undefined)
129
+ parts.push(8);
130
+ if (fields.diskStart !== undefined)
131
+ parts.push(4);
132
+ const dataSize = parts.reduce((a, b) => a + b, 0);
133
+ const buf = Buffer.alloc(4 + dataSize);
134
+ buf.writeUInt16LE(Headers_1.HDR_ID.ZIP64, 0);
135
+ buf.writeUInt16LE(dataSize, 2);
136
+ let o = 4;
137
+ if (includeUncompressed) {
138
+ writeU64(buf, o, fields.uncompressedSize);
139
+ o += 8;
140
+ }
141
+ if (includeCompressed) {
142
+ writeU64(buf, o, fields.compressedSize);
143
+ o += 8;
144
+ }
145
+ if (fields.localHdrOffset !== undefined) {
146
+ writeU64(buf, o, fields.localHdrOffset);
147
+ o += 8;
148
+ }
149
+ if (fields.diskStart !== undefined) {
150
+ buf.writeUInt32LE(fields.diskStart >>> 0, o);
151
+ }
152
+ return buf;
153
+ }
154
+ /**
155
+ * Parse Zip64 extra payload (data after HeaderID + size).
156
+ * Only fields whose classic values are sentinels are consumed, in APPNOTE order.
157
+ */
158
+ function parseZip64Extra(data, classic) {
159
+ const out = {};
160
+ let o = 0;
161
+ if (classic.uncompressedSize === exports.ZIP64_U32) {
162
+ if (o + 8 > data.length) {
163
+ throw new Error('Zip64 extra truncated (uncompressed size)');
164
+ }
165
+ out.uncompressedSize = readU64AsNumber(data, o);
166
+ o += 8;
167
+ }
168
+ if (classic.compressedSize === exports.ZIP64_U32) {
169
+ if (o + 8 > data.length) {
170
+ throw new Error('Zip64 extra truncated (compressed size)');
171
+ }
172
+ out.compressedSize = readU64AsNumber(data, o);
173
+ o += 8;
174
+ }
175
+ if (classic.localHdrOffset === exports.ZIP64_U32) {
176
+ if (o + 8 > data.length) {
177
+ throw new Error('Zip64 extra truncated (local header offset)');
178
+ }
179
+ out.localHdrOffset = readU64AsNumber(data, o);
180
+ o += 8;
181
+ }
182
+ if (classic.diskStart === exports.ZIP64_U16) {
183
+ if (o + 4 > data.length) {
184
+ throw new Error('Zip64 extra truncated (disk start)');
185
+ }
186
+ out.diskStart = data.readUInt32LE(o);
187
+ }
188
+ return out;
189
+ }
190
+ /** True if a complete extra-field blob contains a Zip64 (0x0001) record. */
191
+ function extraFieldHasZip64(extra) {
192
+ if (!extra || extra.length < 4)
193
+ return false;
194
+ for (let i = 0; i + 4 <= extra.length;) {
195
+ const id = extra.readUInt16LE(i);
196
+ const len = extra.readUInt16LE(i + 2);
197
+ if (id === Headers_1.HDR_ID.ZIP64)
198
+ return true;
199
+ i += 4 + len;
200
+ }
201
+ return false;
202
+ }
203
+ /** Strip Zip64 records from a concatenated extra-field blob (avoid double-emit on rewrite). */
204
+ function stripZip64FromExtra(extra) {
205
+ if (!extra || extra.length < 4)
206
+ return extra ?? null;
207
+ const parts = [];
208
+ for (let i = 0; i + 4 <= extra.length;) {
209
+ const id = extra.readUInt16LE(i);
210
+ const len = extra.readUInt16LE(i + 2);
211
+ const recEnd = i + 4 + len;
212
+ if (recEnd > extra.length)
213
+ break;
214
+ if (id !== Headers_1.HDR_ID.ZIP64) {
215
+ parts.push(Buffer.from(extra.subarray(i, recEnd)));
216
+ }
217
+ i = recEnd;
218
+ }
219
+ if (parts.length === 0)
220
+ return null;
221
+ return Buffer.concat(parts);
222
+ }
223
+ /**
224
+ * Data descriptor length including optional signature.
225
+ * Zip64: signature(4) + crc(4) + cmp(8) + uncmp(8) = 24
226
+ * Classic: signature(4) + crc(4) + cmp(4) + uncmp(4) = 16
227
+ */
228
+ function dataDescriptorByteLength(useZip64Sizes) {
229
+ return useZip64Sizes ? 24 : 16;
230
+ }
231
+ function buildZip64Eocd(fields) {
232
+ const buf = Buffer.alloc(exports.ZIP64_EOCD_RECORD_SIZE);
233
+ buf.writeUInt32LE(Headers_1.ZIP64_CENTRAL_DIR.SIGNATURE, 0);
234
+ writeU64(buf, Headers_1.ZIP64_CENTRAL_DIR.SIZE_FIELD, exports.ZIP64_EOCD_SIZE_FIELD);
235
+ buf.writeUInt16LE(fields.versionMadeBy ?? 45, Headers_1.ZIP64_CENTRAL_DIR.VER_MADEBY);
236
+ buf.writeUInt16LE(fields.versionNeeded ?? exports.ZIP64_VERSION_NEEDED, Headers_1.ZIP64_CENTRAL_DIR.VER_NEEDED);
237
+ buf.writeUInt32LE(fields.diskNumber ?? 0, Headers_1.ZIP64_CENTRAL_DIR.VOL_NUM);
238
+ buf.writeUInt32LE(fields.diskWithCdStart ?? 0, Headers_1.ZIP64_CENTRAL_DIR.VOLDIR_START);
239
+ writeU64(buf, Headers_1.ZIP64_CENTRAL_DIR.VOL_ENTRIES, fields.totalEntries);
240
+ writeU64(buf, Headers_1.ZIP64_CENTRAL_DIR.TOTAL_ENTRIES, fields.totalEntries);
241
+ writeU64(buf, Headers_1.ZIP64_CENTRAL_DIR.CENTRAL_DIR_SIZE, fields.centralDirSize);
242
+ writeU64(buf, Headers_1.ZIP64_CENTRAL_DIR.CENTRAL_DIR_OFFSET, fields.centralDirOffset);
243
+ return buf;
244
+ }
245
+ function buildZip64Locator(zip64EocdOffset) {
246
+ const buf = Buffer.alloc(exports.ZIP64_LOCATOR_SIZE);
247
+ buf.writeUInt32LE(Headers_1.ZIP64_CENTRAL_END.SIGNATURE, 0);
248
+ buf.writeUInt32LE(0, Headers_1.ZIP64_CENTRAL_END.VOL_NUM);
249
+ writeU64(buf, Headers_1.ZIP64_CENTRAL_END.CENTRAL_DIR_OFFSET, zip64EocdOffset);
250
+ buf.writeUInt32LE(1, Headers_1.ZIP64_CENTRAL_END.TOTAL_DISKS);
251
+ return buf;
252
+ }
253
+ function buildClassicEocd(opts) {
254
+ const comment = opts.archiveComment || '';
255
+ const commentBytes = Buffer.from(comment, 'utf8');
256
+ const commentLength = Math.min(commentBytes.length, exports.ZIP64_U16);
257
+ const buf = Buffer.alloc(exports.CLASSIC_EOCD_SIZE + commentLength);
258
+ buf.writeUInt32LE(Headers_1.CENTRAL_END.SIGNATURE, 0);
259
+ buf.writeUInt16LE(0, Headers_1.CENTRAL_END.VOL_NUM);
260
+ buf.writeUInt16LE(0, Headers_1.CENTRAL_END.VOLDIR_START);
261
+ const entries = opts.useZip64Sentinels && exceedsU16(opts.totalEntries)
262
+ ? exports.ZIP64_U16
263
+ : opts.totalEntries;
264
+ const cdSize = opts.useZip64Sentinels && exceedsU32(opts.centralDirSize)
265
+ ? exports.ZIP64_U32
266
+ : opts.centralDirSize;
267
+ const cdOffset = opts.forceCdOffsetSentinel ||
268
+ (opts.useZip64Sentinels && exceedsU32(opts.centralDirOffset))
269
+ ? exports.ZIP64_U32
270
+ : opts.centralDirOffset;
271
+ buf.writeUInt16LE(entries, Headers_1.CENTRAL_END.VOL_ENTRIES);
272
+ buf.writeUInt16LE(entries, Headers_1.CENTRAL_END.TOTAL_ENTRIES);
273
+ buf.writeUInt32LE(cdSize, Headers_1.CENTRAL_END.CENTRAL_DIR_SIZE);
274
+ buf.writeUInt32LE(cdOffset, Headers_1.CENTRAL_END.CENTRAL_DIR_OFFSET);
275
+ buf.writeUInt16LE(commentLength, Headers_1.CENTRAL_END.ZIP_COMMENT_LEN);
276
+ if (commentLength > 0) {
277
+ commentBytes.copy(buf, exports.CLASSIC_EOCD_SIZE, 0, commentLength);
278
+ }
279
+ return buf;
280
+ }
281
+ /**
282
+ * Build Zip64 EOCD + Locator + classic EOCD (or classic EOCD alone).
283
+ * Callers write the returned buffer at `zip64EocdOffset` (or CD end when no Zip64).
284
+ */
285
+ function buildEndRecords(opts) {
286
+ const allowSizeOffset = opts.allowSizeOffsetZip64 !== false;
287
+ const forceZip64 = opts.forceZip64 === true;
288
+ const needArchive = forceZip64 ||
289
+ needsZip64Archive(opts.totalEntries, opts.centralDirSize, opts.centralDirOffset);
290
+ if (!needArchive) {
291
+ return buildClassicEocd({
292
+ totalEntries: opts.totalEntries,
293
+ centralDirSize: opts.centralDirSize,
294
+ centralDirOffset: opts.centralDirOffset,
295
+ archiveComment: opts.archiveComment,
296
+ useZip64Sentinels: false,
297
+ });
298
+ }
299
+ const sizeOffsetZip64 = exceedsU32(opts.centralDirSize) || exceedsU32(opts.centralDirOffset);
300
+ // forceZip64 with fitting size/offset is allowed on buffer path (no multi-GiB materialization).
301
+ if (sizeOffsetZip64 && !allowSizeOffset) {
302
+ throw new Error(exports.ZIP64_BUFFER_SIZE_OFFSET_ERROR);
303
+ }
304
+ const zip64Eocd = buildZip64Eocd({
305
+ totalEntries: opts.totalEntries,
306
+ centralDirSize: opts.centralDirSize,
307
+ centralDirOffset: opts.centralDirOffset,
308
+ versionMadeBy: opts.versionMadeBy ?? 45,
309
+ });
310
+ const locator = buildZip64Locator(opts.zip64EocdOffset);
311
+ const classic = buildClassicEocd({
312
+ totalEntries: opts.totalEntries,
313
+ centralDirSize: opts.centralDirSize,
314
+ centralDirOffset: opts.centralDirOffset,
315
+ archiveComment: opts.archiveComment,
316
+ useZip64Sentinels: true,
317
+ forceCdOffsetSentinel: forceZip64,
318
+ });
319
+ return Buffer.concat([zip64Eocd, locator, classic]);
320
+ }
321
+ /** Parse Zip64 EOCD fixed fields into CD size/offset/entry count. */
322
+ function parseZip64Eocd(buf) {
323
+ if (buf.length < exports.ZIP64_EOCD_RECORD_SIZE) {
324
+ throw new Error('Zip64 EOCD truncated');
325
+ }
326
+ if (buf.readUInt32LE(0) !== Headers_1.ZIP64_CENTRAL_DIR.SIGNATURE) {
327
+ throw new Error('Invalid Zip64 EOCD signature');
328
+ }
329
+ return {
330
+ totalEntries: readU64AsNumber(buf, Headers_1.ZIP64_CENTRAL_DIR.TOTAL_ENTRIES),
331
+ centralDirSize: readU64AsNumber(buf, Headers_1.ZIP64_CENTRAL_DIR.CENTRAL_DIR_SIZE),
332
+ centralDirOffset: readU64AsNumber(buf, Headers_1.ZIP64_CENTRAL_DIR.CENTRAL_DIR_OFFSET),
333
+ };
334
+ }
335
+ function parseZip64Locator(buf) {
336
+ if (buf.length < exports.ZIP64_LOCATOR_SIZE) {
337
+ throw new Error('Zip64 locator truncated');
338
+ }
339
+ if (buf.readUInt32LE(0) !== Headers_1.ZIP64_CENTRAL_END.SIGNATURE) {
340
+ throw new Error('Invalid Zip64 EOCD locator signature');
341
+ }
342
+ return readU64AsNumber(buf, Headers_1.ZIP64_CENTRAL_END.CENTRAL_DIR_OFFSET);
343
+ }
344
+ /**
345
+ * Assert buffer/browser writers may proceed for the given entry sizes/offsets.
346
+ * Throws {@link ZIP64_BUFFER_SIZE_OFFSET_ERROR} when size/offset Zip64 would be required.
347
+ */
348
+ function assertBufferAllowsEntryZip64(uncompressedSize, compressedSize, localHdrOffset) {
349
+ if (needsZip64SizeOrOffset(uncompressedSize, compressedSize, localHdrOffset)) {
350
+ throw new Error(exports.ZIP64_BUFFER_SIZE_OFFSET_ERROR);
351
+ }
352
+ }
353
+ //# sourceMappingURL=Zip64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Zip64.js","sourceRoot":"","sources":["../../../src/core/zip64/Zip64.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ZipCopyNode.d.ts","sourceRoot":"","sources":["../../src/node/ZipCopyNode.ts"],"names":[],"mappings":"AAUA,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AAGtC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC3C,sDAAsD;IACtD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC;IACnD,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,OAAO,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,mDAAmD;IACnD,gBAAgB,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,8GAA8G;IAC9G,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,aAAa,EAAE,QAAQ,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAa;IAE/B;;;OAGG;gBACS,UAAU,CAAC,EAAE,UAAU;IAInC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,cAAc;IAiDtB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAoD5B;;;OAGG;IACH,OAAO,CAAC,gCAAgC;IA8CxC;;;;;;;;;OASG;IACG,kBAAkB,CACtB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,qBAAqB,CAAC;IAyCjC;;;;;;;;OAQG;IACH,4BAA4B,CAC1B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,QAAQ,EAAE,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,IAAI;IAeP;;;;;;;;;;OAUG;IACG,WAAW,CACf,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC;CAyBvB"}
1
+ {"version":3,"file":"ZipCopyNode.d.ts","sourceRoot":"","sources":["../../src/node/ZipCopyNode.ts"],"names":[],"mappings":"AAUA,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AAOtC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC3C,sDAAsD;IACtD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC;IACnD,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,OAAO,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,mDAAmD;IACnD,gBAAgB,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,8GAA8G;IAC9G,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,aAAa,EAAE,QAAQ,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAa;IAE/B;;;OAGG;gBACS,UAAU,CAAC,EAAE,UAAU;IAInC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,cAAc;IAoDtB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAgE5B;;;OAGG;IACH,OAAO,CAAC,gCAAgC;IA6BxC;;;;;;;;;OASG;IACG,kBAAkB,CACtB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,qBAAqB,CAAC;IAyCjC;;;;;;;;OAQG;IACH,4BAA4B,CAC1B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,QAAQ,EAAE,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,IAAI;IAeP;;;;;;;;;;OAUG;IACG,WAAW,CACf,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC;CAyBvB"}
@@ -49,6 +49,7 @@ const fs = __importStar(require("fs"));
49
49
  const ZipEntry_1 = __importDefault(require("../core/ZipEntry"));
50
50
  const ZipkitNode_1 = __importDefault(require("./ZipkitNode"));
51
51
  const Headers_1 = require("../core/constants/Headers");
52
+ const Zip64_1 = require("../core/zip64/Zip64");
52
53
  /**
53
54
  * Efficient ZIP file copying class
54
55
  *
@@ -132,9 +133,12 @@ class ZipCopyNode {
132
133
  // Calculate local header size by reading the actual header
133
134
  const localHeaderSize = this.calculateLocalHeaderSize(sourceFd, entry);
134
135
  // Determine total entry size
135
- // For data descriptor entries, add 16 bytes for the data descriptor
136
+ // For data descriptor entries, add Zip64 (24) or classic (16) descriptor bytes
136
137
  const hasDataDescriptor = (entry.bitFlags & Headers_1.GP_FLAG.DATA_DESC) !== 0;
137
- const totalEntrySize = localHeaderSize + entry.compressedSize + (hasDataDescriptor ? 16 : 0);
138
+ const descLen = hasDataDescriptor
139
+ ? (0, Zip64_1.dataDescriptorByteLength)(entry.usesZip64Extra)
140
+ : 0;
141
+ const totalEntrySize = localHeaderSize + entry.compressedSize + descLen;
138
142
  // Read the entire entry (local header + compressed data + data descriptor if present) from source
139
143
  const entryBuffer = Buffer.alloc(totalEntrySize);
140
144
  const bytesRead = fs.readSync(sourceFd, entryBuffer, 0, totalEntrySize, entry.localHdrOffset);
@@ -201,6 +205,10 @@ class ZipCopyNode {
201
205
  cloned.uid = entry.uid;
202
206
  cloned.gid = entry.gid;
203
207
  cloned.sha256 = entry.sha256;
208
+ cloned.emitUnicodePath = entry.emitUnicodePath;
209
+ if (entry.additionalExtra) {
210
+ cloned.additionalExtra = Buffer.from(entry.additionalExtra);
211
+ }
204
212
  // Copy symlink data
205
213
  cloned.isSymlink = entry.isSymlink;
206
214
  cloned.linkTarget = entry.linkTarget;
@@ -208,6 +216,13 @@ class ZipCopyNode {
208
216
  cloned.isHardLink = entry.isHardLink;
209
217
  cloned.originalEntry = entry.originalEntry;
210
218
  cloned.inode = entry.inode;
219
+ cloned.usesZip64Extra = entry.usesZip64Extra;
220
+ cloned.aesVersion = entry.aesVersion;
221
+ cloned.aesStrength = entry.aesStrength;
222
+ cloned.realCmpMethod = entry.realCmpMethod;
223
+ cloned.neoCryptoPayloadVersion = entry.neoCryptoPayloadVersion;
224
+ cloned.neoCryptoAlgorithm = entry.neoCryptoAlgorithm;
225
+ cloned.neoCryptoFlags = entry.neoCryptoFlags;
211
226
  return cloned;
212
227
  }
213
228
  /**
@@ -222,30 +237,15 @@ class ZipCopyNode {
222
237
  }
223
238
  const centralDirEndOffset = fs.fstatSync(destFd).size;
224
239
  const centralDirSize = centralDirEndOffset - centralDirStartOffset;
225
- const commentBytes = Buffer.from(zipComment, 'utf8');
226
- const commentLength = Math.min(commentBytes.length, 0xFFFF);
227
- const eocdBuffer = Buffer.alloc(22 + commentLength);
228
- let pos = 0;
229
- eocdBuffer.writeUInt32LE(Headers_1.CENTRAL_END.SIGNATURE, pos);
230
- pos += 4;
231
- eocdBuffer.writeUInt16LE(0, pos);
232
- pos += 2;
233
- eocdBuffer.writeUInt16LE(0, pos);
234
- pos += 2;
235
- eocdBuffer.writeUInt16LE(entries.length, pos);
236
- pos += 2;
237
- eocdBuffer.writeUInt16LE(entries.length, pos);
238
- pos += 2;
239
- eocdBuffer.writeUInt32LE(centralDirSize, pos);
240
- pos += 4;
241
- eocdBuffer.writeUInt32LE(centralDirStartOffset, pos);
242
- pos += 4;
243
- eocdBuffer.writeUInt16LE(commentLength, pos);
244
- pos += 2;
245
- if (commentLength > 0) {
246
- commentBytes.copy(eocdBuffer, pos, 0, commentLength);
247
- }
248
- fs.writeSync(destFd, eocdBuffer, 0, eocdBuffer.length);
240
+ const endRecords = (0, Zip64_1.buildEndRecords)({
241
+ totalEntries: entries.length,
242
+ centralDirSize,
243
+ centralDirOffset: centralDirStartOffset,
244
+ zip64EocdOffset: centralDirStartOffset + centralDirSize,
245
+ archiveComment: zipComment,
246
+ allowSizeOffsetZip64: true,
247
+ });
248
+ fs.writeSync(destFd, endRecords, 0, endRecords.length);
249
249
  return { centralDirOffset: centralDirStartOffset, centralDirSize };
250
250
  }
251
251
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ZipCopyNode.js","sourceRoot":"","sources":["../../src/node/ZipCopyNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ZipCopyNode.js","sourceRoot":"","sources":["../../src/node/ZipCopyNode.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,+CAA+C;AAC/C,yDAAyD;AACzD,yCAAyC;AACzC,EAAE;AACF,iEAAiE;AACjE,iEAAiE;AACjE,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE1C,uCAAyB;AACzB,gEAAwC;AACxC,8DAAsC;AACtC,uDAA+D;AAC/D,+CAG6B;AAoD7B;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAa,WAAW;IAGtB;;;OAGG;IACH,YAAY,UAAuB;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,oBAAU,EAAE,CAAC;IACnD,CAAC;IAED;;;;;;;;;;OAUG;IACK,wBAAwB,CAAC,QAAgB,EAAE,KAAe;QAChE,sCAAsC;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAS,CAAC,IAAI,CAAC,CAAC;QAClD,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE,mBAAS,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAE7E,mBAAmB;QACnB,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,mBAAS,CAAC,SAAS,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,iDAAiD,KAAK,CAAC,QAAQ,cAAc,KAAK,CAAC,cAAc,EAAE,CACpG,CAAC;QACJ,CAAC;QAED,+DAA+D;QAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC,mBAAS,CAAC,SAAS,CAAC,CAAC;QACtE,MAAM,gBAAgB,GAAG,YAAY,CAAC,YAAY,CAAC,mBAAS,CAAC,SAAS,CAAC,CAAC;QAExE,oCAAoC;QACpC,OAAO,mBAAS,CAAC,IAAI,GAAG,cAAc,GAAG,gBAAgB,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACK,cAAc,CACpB,QAAgB,EAChB,MAAc,EACd,KAAe;QAEf,2DAA2D;QAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEvE,6BAA6B;QAC7B,+EAA+E;QAC/E,MAAM,iBAAiB,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,iBAAiB;YAC/B,CAAC,CAAC,IAAA,gCAAwB,EAAC,KAAK,CAAC,cAAc,CAAC;YAChD,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,cAAc,GAAG,eAAe,GAAG,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;QAExE,kGAAkG;QAClG,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAE9F,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,qCAAqC,KAAK,CAAC,QAAQ,IAAI;gBACvD,YAAY,cAAc,eAAe,SAAS,EAAE,CACrD,CAAC;QACJ,CAAC;QAED,8CAA8C;QAC9C,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,cAAc,GAAG,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;YAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YAC7D,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC,CAAC,4BAA4B;gBAC5D,MAAM,IAAI,KAAK,CACb,+CAA+C,KAAK,CAAC,QAAQ,GAAG;oBAChE,+BAA+B,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAC3D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,YAAY,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;QAE1E,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,sCAAsC,KAAK,CAAC,QAAQ,IAAI;gBACxD,YAAY,cAAc,iBAAiB,YAAY,EAAE,CAC1D,CAAC;QACJ,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;;;;OASG;IACK,oBAAoB,CAC1B,KAAe,EACf,iBAAyB;QAEzB,2DAA2D;QAC3D,MAAM,MAAM,GAAG,IAAI,kBAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAEhF,sBAAsB;QACtB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACnC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACrC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACjC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACnC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACvC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACvB,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAC7C,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACjD,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACnC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACvC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACvC,MAAM,CAAC,cAAc,GAAG,iBAAiB,CAAC,CAAC,gBAAgB;QAE3D,8BAA8B;QAC9B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC;QAED,gBAAgB;QAChB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACvC,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAC/C,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACvC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACrC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAEnC,8BAA8B;QAC9B,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACjC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAC3C,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACvB,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACvB,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC7B,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAC/C,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9D,CAAC;QAED,oBAAoB;QACpB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACnC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAErC,qBAAqB;QACrB,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACrC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAC3C,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAE3B,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAC7C,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACrC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACvC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAC3C,MAAM,CAAC,uBAAuB,GAAG,KAAK,CAAC,uBAAuB,CAAC;QAC/D,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;QACrD,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAE7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,gCAAgC,CACtC,MAAc,EACd,OAAmB,EACnB,UAAkB;QAElB,MAAM,qBAAqB,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QAExD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,gBAAgB,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;YACjD,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,mBAAmB,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QACtD,MAAM,cAAc,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;QAEnE,MAAM,UAAU,GAAG,IAAA,uBAAe,EAAC;YACjC,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,cAAc;YACd,gBAAgB,EAAE,qBAAqB;YACvC,eAAe,EAAE,qBAAqB,GAAG,cAAc;YACvD,cAAc,EAAE,UAAU;YAC1B,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CAAC;QAEH,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAEvD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,CAAC;IACrE,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,kBAAkB,CACtB,aAAqB,EACrB,WAAmB,EACnB,OAAqB;QAErB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAEvE,IAAI,aAAa,GAAG,OAAO,EAAE,WAAW;YACtC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3C,CAAC,CAAC,aAAa,CAAC;QAElB,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;YACzB,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAE7C,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,MAAM,aAAa,GAAe,EAAE,CAAC;YAErC,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;gBACxC,MAAM,iBAAiB,GAAG,UAAU,CAAC;gBACrC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBACxE,UAAU,IAAI,YAAY,CAAC;gBAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;gBAC9E,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,WAAW;gBACrB,aAAa,EAAE,UAAU;gBACzB,aAAa;aACd,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACvB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,4BAA4B,CAC1B,WAAmB,EACnB,OAAmB,EACnB,OAA4B;QAE5B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAE7C,IAAI,CAAC;YACH,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACrE,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,WAAW,CACf,aAAqB,EACrB,WAAmB,EACnB,OAAqB;QAErB,iFAAiF;QACjF,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACpE,aAAa,EACb,WAAW,EACX,OAAO,CACR,CAAC;QAEF,MAAM,UAAU,GACd,OAAO,EAAE,gBAAgB,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;YACpE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAG;YAClC,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,CAAC,4BAA4B,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAE9E,OAAO;YACL,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,iBAAiB,EAAE,KAAK,CAAC,cAAc;gBACvC,cAAc,EAAE,KAAK,CAAC,cAAc;aACrC,CAAC,CAAC;YACH,gBAAgB,EAAE,aAAa;YAC/B,YAAY,EAAE,aAAa,CAAC,MAAM;SACnC,CAAC;IACJ,CAAC;CACF;AAtVD,kCAsVC"}
@@ -1 +1 @@
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;IAgF9B;;;;;;;;;;;;;;OAcG;YACW,kBAAkB;IA4DhC;;;;;;;;;;;;OAYG;YACW,gBAAgB;IAmE9B;;;;;;;;;;;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"}
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;IAgF9B;;;;;;;;;;;;;;OAcG;YACW,kBAAkB;IA4DhC;;;;;;;;;;;;OAYG;YACW,gBAAgB;IAoE9B;;;;;;;;;;;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"}
@@ -501,7 +501,8 @@ class ZipDecompressNode {
501
501
  // Decompress stream - processes one block at a time
502
502
  const decompressedStream = this.decompressStream(compressedStream, entry.cmpMethod, undefined, entry);
503
503
  // Process and validate chunks - one block at a time
504
- const hashCalc = new HashCalculator_1.HashCalculator({ useSHA256: !!entry.sha256 });
504
+ // Always hash the v1 Merkle leaf so getMerkleRootAsync works for CRC-only archives.
505
+ const hashCalc = new HashCalculator_1.HashCalculator({ useSHA256: true });
505
506
  let totalBytes = 0;
506
507
  try {
507
508
  for await (const chunk of decompressedStream) {
@@ -530,22 +531,23 @@ class ZipDecompressNode {
530
531
  }
531
532
  else {
532
533
  const calculatedCRC = hashCalc.finalizeCRC32();
534
+ const leaf = hashCalc.finalizeMerkleLeafV1();
535
+ if (leaf)
536
+ entry.merkleLeafV1 = leaf;
533
537
  this.log(`CRC-32 comparison: calculated=${calculatedCRC}, stored=${entry.crc}`);
534
538
  if (calculatedCRC !== entry.crc) {
535
539
  throw new Error(Errors_1.default.INVALID_CRC);
536
540
  }
537
541
  this.log(`CRC-32 comparison: calculated=${calculatedCRC}, stored=${entry.crc}`);
538
- // No hash to return for CRC-32 only entries
539
542
  return { verifiedHash: undefined };
540
543
  }
541
544
  }
542
545
  else {
543
- // Hash check skipped — still finalize leaf/digest once from this stream when SHA was enabled
546
+ const leaf = hashCalc.finalizeMerkleLeafV1();
547
+ if (leaf)
548
+ entry.merkleLeafV1 = leaf;
544
549
  if (entry.sha256 && hashCalc) {
545
550
  const calculatedHash = hashCalc.finalizeSHA256();
546
- const leaf = hashCalc.finalizeMerkleLeafV1();
547
- if (leaf)
548
- entry.merkleLeafV1 = leaf;
549
551
  return { verifiedHash: calculatedHash || undefined };
550
552
  }
551
553
  return { verifiedHash: undefined };