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
@@ -52,7 +52,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.ZipDecompressNode = void 0;
54
54
  const pako = require('pako');
55
- const ZstdManager_1 = require("../core/ZstdManager");
55
+ const ZstdNode_1 = require("./ZstdNode");
56
+ const LegacyZstd_1 = require("./LegacyZstd");
56
57
  const Logger_1 = require("../core/components/Logger");
57
58
  const Errors_1 = __importDefault(require("../core/constants/Errors"));
58
59
  const Headers_1 = require("../core/constants/Headers");
@@ -134,6 +135,17 @@ class ZipDecompressNode {
134
135
  // Call internal extract to buffer method
135
136
  return await this.extractToBufferInternal(fileHandle, entry, options);
136
137
  }
138
+ /**
139
+ * Read the raw compressed payload for an entry (no decrypt / decompress).
140
+ */
141
+ async readCompressedPayload(entry) {
142
+ const fileHandle = this.zipkitNode.getFileHandle();
143
+ const chunks = [];
144
+ for await (const chunk of this.readCompressedDataStream(fileHandle, entry)) {
145
+ chunks.push(chunk);
146
+ }
147
+ return Buffer.concat(chunks);
148
+ }
137
149
  /**
138
150
  * Test entry integrity without extracting to disk
139
151
  * Validates CRC-32 or SHA-256 hash without writing decompressed data
@@ -206,18 +218,11 @@ class ZipDecompressNode {
206
218
  const isEncrypted = entry.isEncrypted && this.zipkitNode?.password;
207
219
  const isFullPayloadCrypto = entry.aesVersion > 0 || entry.cmpMethod === Headers_1.CMP_METHOD.AES_ENCRYPT || entry.neoCryptoAlgorithm > 0;
208
220
  if (isEncrypted && isFullPayloadCrypto) {
209
- // WinZip AES or NeoEncrypt: read full payload, decrypt in one shot (HMAC must be verified first)
221
+ // WinZip AES / NeoEncrypt: stream decrypt (HMAC verified at end of ciphertext)
210
222
  const dataStream = this.readCompressedDataStream(fileHandle, entry);
211
- const chunks = [];
212
- for await (const chunk of dataStream) {
213
- chunks.push(chunk);
214
- }
215
- const fullPayload = Buffer.concat(chunks);
216
- const decrypted = AesCrypto_1.AesCrypto.decryptBuffer(entry, fullPayload, this.zipkitNode.password);
217
- // Wrap decrypted data as a single-item generator for the decompression pipeline
223
+ const decrypted = AesCrypto_1.AesCrypto.decryptStream(this.zipkitNode.password, entry.compressedSize, dataStream);
218
224
  const skipHash = entry.aesVersion === 2 ? true : options?.skipHashCheck;
219
- async function* singleChunk() { yield decrypted; }
220
- await this.unCompressToFile(singleChunk(), entry, writeStream, {
225
+ await this.unCompressToFile(decrypted, entry, writeStream, {
221
226
  skipHashCheck: skipHash,
222
227
  onProgress: options?.onProgress,
223
228
  outputPath
@@ -263,15 +268,9 @@ class ZipDecompressNode {
263
268
  const isFullPayloadCrypto = entry.aesVersion > 0 || entry.cmpMethod === Headers_1.CMP_METHOD.AES_ENCRYPT || entry.neoCryptoAlgorithm > 0;
264
269
  if (isEncrypted && isFullPayloadCrypto) {
265
270
  const dataStream = this.readCompressedDataStream(fileHandle, entry);
266
- const chunks = [];
267
- for await (const chunk of dataStream) {
268
- chunks.push(chunk);
269
- }
270
- const fullPayload = Buffer.concat(chunks);
271
- const decrypted = AesCrypto_1.AesCrypto.decryptBuffer(entry, fullPayload, this.zipkitNode.password);
271
+ const decrypted = AesCrypto_1.AesCrypto.decryptStream(this.zipkitNode.password, entry.compressedSize, dataStream);
272
272
  const skipHash = entry.aesVersion === 2 ? true : options?.skipHashCheck;
273
- async function* singleChunk() { yield decrypted; }
274
- return await this.unCompressToBuffer(singleChunk(), entry, {
273
+ return await this.unCompressToBuffer(decrypted, entry, {
275
274
  skipHashCheck: skipHash,
276
275
  onProgress: options?.onProgress
277
276
  });
@@ -311,15 +310,9 @@ class ZipDecompressNode {
311
310
  const isFullPayloadCrypto = entry.aesVersion > 0 || entry.cmpMethod === Headers_1.CMP_METHOD.AES_ENCRYPT || entry.neoCryptoAlgorithm > 0;
312
311
  if (isEncrypted && isFullPayloadCrypto) {
313
312
  const dataStream = this.readCompressedDataStream(fileHandle, entry);
314
- const chunks = [];
315
- for await (const chunk of dataStream) {
316
- chunks.push(chunk);
317
- }
318
- const fullPayload = Buffer.concat(chunks);
319
- const decrypted = AesCrypto_1.AesCrypto.decryptBuffer(entry, fullPayload, this.zipkitNode.password);
313
+ const decrypted = AesCrypto_1.AesCrypto.decryptStream(this.zipkitNode.password, entry.compressedSize, dataStream);
320
314
  const skipHash = entry.aesVersion === 2 ? true : options?.skipHashCheck;
321
- async function* singleChunk() { yield decrypted; }
322
- return await this.unCompressToTest(singleChunk(), entry, {
315
+ return await this.unCompressToTest(decrypted, entry, {
323
316
  skipHashCheck: skipHash,
324
317
  onProgress: options?.onProgress
325
318
  });
@@ -574,8 +567,8 @@ class ZipDecompressNode {
574
567
  yield* this.inflateStream(compressedStream);
575
568
  }
576
569
  else if (method === Headers_1.CMP_METHOD.ZSTD) {
577
- // Use ZSTD streaming decompression - note: ZSTD requires full buffer
578
- yield* this.zstdDecompressStream(compressedStream);
570
+ // Native Node zstd; bound output to entry size (repairs legacy WASM +18 padding)
571
+ yield* this.zstdDecompressStream(compressedStream, entry?.uncompressedSize ?? 0);
579
572
  }
580
573
  else {
581
574
  throw new Error(`Unsupported compression method: ${method}`);
@@ -612,27 +605,25 @@ class ZipDecompressNode {
612
605
  }
613
606
  }
614
607
  /**
615
- * Streaming ZSTD decompression
608
+ * Streaming ZSTD decompression via Node zlib (native).
609
+ * When maxOut > 0, truncates output (legacy WASM emitted +18 zero bytes).
616
610
  */
617
- async *zstdDecompressStream(compressedStream) {
618
- // ZSTD is guaranteed to be initialized via factory method
619
- // Collect all compressed chunks first (ZSTD needs complete data)
620
- const compressedChunks = [];
621
- for await (const chunk of compressedStream) {
622
- compressedChunks.push(chunk);
623
- }
624
- const compressedData = Buffer.concat(compressedChunks);
611
+ async *zstdDecompressStream(compressedStream, maxOut = 0) {
625
612
  try {
626
- // Use global ZstdManager for decompression
627
- const decompressed = await ZstdManager_1.ZstdManager.decompress(compressedData);
628
- const decompressedBuffer = Buffer.from(decompressed);
629
- // Yield decompressed data in chunks using ZipkitServer's bufferSize
630
- const chunkSize = this.zipkitNode.getBufferSize();
631
- let offset = 0;
632
- while (offset < decompressedBuffer.length) {
633
- const end = Math.min(offset + chunkSize, decompressedBuffer.length);
634
- yield decompressedBuffer.slice(offset, end);
635
- offset = end;
613
+ let remaining = maxOut > 0 ? maxOut : Number.POSITIVE_INFINITY;
614
+ for await (const chunk of ZstdNode_1.ZstdNode.decompressStream(compressedStream)) {
615
+ if (remaining <= 0) {
616
+ break;
617
+ }
618
+ if (chunk.length <= remaining) {
619
+ remaining -= chunk.length;
620
+ yield chunk;
621
+ }
622
+ else {
623
+ yield chunk.subarray(0, remaining);
624
+ remaining = 0;
625
+ break;
626
+ }
636
627
  }
637
628
  }
638
629
  catch (error) {
@@ -648,16 +639,21 @@ class ZipDecompressNode {
648
639
  return Buffer.from(result.buffer, result.byteOffset, result.byteLength);
649
640
  }
650
641
  /**
651
- * Zstd decompress method (now async with ZstdManager)
652
- * Internal method only
642
+ * Zstd decompress via Node zlib (native), repairing legacy WASM +18 padding when present.
653
643
  */
654
- async zstdDecompressSync(data) {
644
+ async zstdDecompressSync(data, entry) {
655
645
  this.log(`zstdDecompressSync() called with ${data.length} bytes`);
656
646
  try {
657
- // Use global ZstdManager for decompression
658
- const decompressed = await ZstdManager_1.ZstdManager.decompress(data);
647
+ let decompressed = await ZstdNode_1.ZstdNode.decompress(data);
648
+ if (entry && entry.uncompressedSize > 0) {
649
+ const { repaired, wasLegacy } = (0, LegacyZstd_1.repairLegacyWasmZstdPlaintext)(decompressed, entry.uncompressedSize, entry.crc);
650
+ if (wasLegacy) {
651
+ this.log(`Legacy WASM zstd padding repaired: ${decompressed.length} -> ${repaired.length} bytes`);
652
+ }
653
+ decompressed = repaired;
654
+ }
659
655
  this.log(`ZSTD decompression successful: ${data.length} bytes -> ${decompressed.length} bytes`);
660
- return Buffer.from(decompressed);
656
+ return decompressed;
661
657
  }
662
658
  catch (error) {
663
659
  this.log(`ZSTD decompression failed: ${error}`);
@@ -686,7 +682,7 @@ class ZipDecompressNode {
686
682
  outBuf = this.inflate(compressedData);
687
683
  }
688
684
  else if (method === Headers_1.CMP_METHOD.ZSTD) {
689
- outBuf = await this.zstdDecompressSync(compressedData);
685
+ outBuf = await this.zstdDecompressSync(compressedData, entry);
690
686
  }
691
687
  else {
692
688
  throw new Error(`Unsupported compression method: ${method}`);
@@ -1 +1 @@
1
- {"version":3,"file":"ZipDecompressNode.js","sourceRoot":"","sources":["../../src/node/ZipDecompressNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ZipDecompressNode.js","sourceRoot":"","sources":["../../src/node/ZipDecompressNode.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import Zipkit, { CompressOptions, StreamingFileHandle } from '../core';
2
2
  import ZipEntry from '../core/ZipEntry';
3
3
  import Errors from '../core/constants/Errors';
4
+ import { type LegacyZstdDetectResult } from './LegacyZstd';
4
5
  import * as fs from 'fs';
5
6
  export * from '../core';
6
7
  export { ZipEntry, Errors };
@@ -140,6 +141,19 @@ export default class ZipkitNode extends Zipkit {
140
141
  * ```
141
142
  */
142
143
  getArchiveStatistics(archivePath?: string): Promise<import('../types').ArchiveStatistics>;
144
+ /**
145
+ * Scan the loaded archive (or `archivePath`) for entries compressed with the
146
+ * legacy NeoZipKit WASM zstd codec (`@oneidentity/zstd-js`).
147
+ *
148
+ * Encrypted entries are skipped unless you only need a header check after
149
+ * decrypting externally — this API inspects raw stored payloads.
150
+ */
151
+ detectLegacyZstdEntries(archivePath?: string, options?: {
152
+ verify?: boolean;
153
+ }): Promise<Array<{
154
+ entry: ZipEntry;
155
+ detection: LegacyZstdDetectResult;
156
+ }>>;
143
157
  /**
144
158
  * Test entry integrity without extracting to disk
145
159
  * Validates CRC-32 or SHA-256 hash without writing decompressed data
@@ -1 +1 @@
1
- {"version":3,"file":"ZipkitNode.d.ts","sourceRoot":"","sources":["../../src/node/ZipkitNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ZipkitNode.d.ts","sourceRoot":"","sources":["../../src/node/ZipkitNode.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,8 @@ const ZipCompressNode_1 = require("./ZipCompressNode");
53
53
  const ZipDecompressNode_1 = require("./ZipDecompressNode");
54
54
  const Headers_1 = require("../core/constants/Headers");
55
55
  const NeoCrypto_1 = require("../core/encryption/NeoCrypto");
56
+ const AesCrypto_1 = require("../core/encryption/AesCrypto");
57
+ const LegacyZstd_1 = require("./LegacyZstd");
56
58
  const fs = __importStar(require("fs"));
57
59
  const path = __importStar(require("path"));
58
60
  const minimatch_1 = require("minimatch");
@@ -306,6 +308,64 @@ class ZipkitNode extends core_1.default {
306
308
  averageCompressionRatio
307
309
  };
308
310
  }
311
+ /**
312
+ * Scan the loaded archive (or `archivePath`) for entries compressed with the
313
+ * legacy NeoZipKit WASM zstd codec (`@oneidentity/zstd-js`).
314
+ *
315
+ * Encrypted entries are skipped unless you only need a header check after
316
+ * decrypting externally — this API inspects raw stored payloads.
317
+ */
318
+ async detectLegacyZstdEntries(archivePath, options) {
319
+ if (archivePath && !this.filePath) {
320
+ await this.loadZipFile(archivePath);
321
+ }
322
+ if (!this.filePath) {
323
+ throw new Error('Archive not loaded. Call loadZipFile() first or provide archivePath parameter.');
324
+ }
325
+ const verify = options?.verify !== false;
326
+ const results = [];
327
+ const entries = this.getDirectory();
328
+ for (const entry of entries) {
329
+ if (entry.isDirectory) {
330
+ continue;
331
+ }
332
+ const method = entry.cmpMethod === Headers_1.CMP_METHOD.AES_ENCRYPT && entry.realCmpMethod >= 0
333
+ ? entry.realCmpMethod
334
+ : entry.cmpMethod;
335
+ if (method !== Headers_1.CMP_METHOD.ZSTD) {
336
+ continue;
337
+ }
338
+ if (entry.isEncrypted || (entry.bitFlags & Headers_1.GP_FLAG.ENCRYPTED)) {
339
+ results.push({
340
+ entry,
341
+ detection: {
342
+ isLegacyWasm: false,
343
+ confidence: 'none',
344
+ frameContentSize: null,
345
+ expectedUncompressedSize: entry.uncompressedSize,
346
+ paddingBytes: 18,
347
+ reason: 'Encrypted zstd entry — decrypt before detecting legacy WASM frames',
348
+ },
349
+ });
350
+ continue;
351
+ }
352
+ const compressed = await this.getZipDecompressNode().readCompressedPayload(entry);
353
+ if (!verify) {
354
+ const detection = await (0, LegacyZstd_1.detectLegacyWasmZstd)(compressed, entry.uncompressedSize, {
355
+ verify: false,
356
+ crc: entry.crc,
357
+ });
358
+ results.push({ entry, detection });
359
+ continue;
360
+ }
361
+ const detection = await (0, LegacyZstd_1.detectLegacyWasmZstd)(compressed, entry.uncompressedSize, {
362
+ verify: true,
363
+ crc: entry.crc,
364
+ });
365
+ results.push({ entry, detection });
366
+ }
367
+ return results;
368
+ }
309
369
  /**
310
370
  * Test entry integrity without extracting to disk
311
371
  * Validates CRC-32 or SHA-256 hash without writing decompressed data
@@ -487,8 +547,12 @@ class ZipkitNode extends core_1.default {
487
547
  // For AES encryption, pre-configure the entry so the initial local header
488
548
  // includes the 0x9901 extra field and method 99. The actual compression
489
549
  // method is preserved in realCmpMethod for the AES extra field.
490
- const isAesRequested = options?.password && options?.encryptionMethod === 'aes256';
491
- const isNeoRequested = options?.password && options?.encryptionMethod === 'neo-aes256';
550
+ // Default password encryption is WinZip AES-256 (matches compressData).
551
+ const encMethod = options?.password
552
+ ? (options.encryptionMethod || 'aes256')
553
+ : undefined;
554
+ const isAesRequested = encMethod === 'aes256';
555
+ const isNeoRequested = encMethod === 'neo-aes256';
492
556
  if (isAesRequested) {
493
557
  entry.cmpMethod = Headers_1.CMP_METHOD.AES_ENCRYPT;
494
558
  entry.aesVersion = 1;
@@ -524,55 +588,82 @@ class ZipkitNode extends core_1.default {
524
588
  }
525
589
  });
526
590
  });
527
- // Step 3: Compress file and write data
591
+ // Step 3: Compress file and write data (chunked when large).
592
+ // ZipCrypto still uses the buffer path (legacy header needs CRC up front).
593
+ // AES / NeoEncrypt use AesEncryptor so ciphertext is written in chunks.
528
594
  const bufferSize = options?.bufferSize || this.getBufferSize();
529
- const useZstd = options?.useZstd !== false;
530
- // Never use the chunked/streaming path when encrypting: the streaming path writes
531
- // compressed data to the writer via onOutputBuffer BEFORE encryption can be applied.
532
- // Encryption requires the full compressed buffer to create the 12-byte header and
533
- // encrypt all data in one pass, so we must use the buffer path (compressFile).
534
- const shouldUseChunked = !useZstd && !options?.password && entry.uncompressedSize && entry.uncompressedSize > bufferSize;
535
- if (shouldUseChunked) {
536
- // Use streaming compression for large files
537
- // Data is written directly via onOutputBuffer callback
538
- const onOutputBuffer = async (data) => {
539
- await new Promise((resolve, reject) => {
540
- writer.outputStream.write(data, (error) => {
541
- if (error) {
542
- reject(error);
543
- }
544
- else {
545
- writer.currentPosition += data.length;
546
- if (callbacks?.onProgress) {
547
- callbacks.onProgress(entry, data.length);
548
- }
549
- resolve();
550
- }
551
- });
552
- });
553
- };
554
- // compressFileStream will set entry.compressedSize and entry.crc
555
- await this.compressFileStream(filePath, entry, options, onOutputBuffer);
556
- }
557
- else {
558
- // Use regular buffer compression for small files
559
- // compressFile will set entry.compressedSize and entry.crc
560
- const compressedData = await this.compressFile(filePath, entry, options);
561
- // Write compressed data to file
595
+ const useZipCrypto = encMethod === 'zipcrypto';
596
+ const shouldUseChunked = !!entry.uncompressedSize &&
597
+ entry.uncompressedSize > bufferSize &&
598
+ !useZipCrypto;
599
+ const writeChunk = async (data) => {
600
+ if (data.length === 0) {
601
+ return;
602
+ }
562
603
  await new Promise((resolve, reject) => {
563
- writer.outputStream.write(compressedData, (error) => {
604
+ writer.outputStream.write(data, (error) => {
564
605
  if (error) {
565
606
  reject(error);
566
607
  }
567
608
  else {
568
- writer.currentPosition += compressedData.length;
609
+ writer.currentPosition += data.length;
569
610
  if (callbacks?.onProgress) {
570
- callbacks.onProgress(entry, compressedData.length);
611
+ callbacks.onProgress(entry, data.length);
571
612
  }
572
613
  resolve();
573
614
  }
574
615
  });
575
616
  });
617
+ };
618
+ if (shouldUseChunked) {
619
+ const useAesStream = isAesRequested || isNeoRequested;
620
+ const encryptor = useAesStream
621
+ ? AesCrypto_1.AesCrypto.createEncryptor(options.password)
622
+ : null;
623
+ let streamedBytes = 0;
624
+ if (encryptor) {
625
+ const hdr = encryptor.header();
626
+ await writeChunk(hdr);
627
+ streamedBytes += hdr.length;
628
+ entry.isEncrypted = true;
629
+ entry.bitFlags |= Headers_1.GP_FLAG.ENCRYPTED;
630
+ }
631
+ // Compress without applying buffer encrypt — we stream-encrypt below.
632
+ const streamOptions = encryptor
633
+ ? { ...options, password: undefined, encryptionMethod: undefined }
634
+ : { ...options };
635
+ const onOutputBuffer = async (data) => {
636
+ const out = encryptor ? encryptor.update(data) : data;
637
+ await writeChunk(out);
638
+ streamedBytes += out.length;
639
+ };
640
+ await this.compressFileStream(filePath, entry, streamOptions, onOutputBuffer);
641
+ if (encryptor) {
642
+ const auth = encryptor.finish();
643
+ await writeChunk(auth);
644
+ streamedBytes += auth.length;
645
+ entry.compressedSize = streamedBytes;
646
+ entry.isEncrypted = true;
647
+ entry.bitFlags |= Headers_1.GP_FLAG.ENCRYPTED;
648
+ // compressFileStream overwrites cmpMethod with the real codec — restore AES/Neo metadata
649
+ if (isAesRequested) {
650
+ entry.realCmpMethod = realCmpMethod;
651
+ entry.cmpMethod = Headers_1.CMP_METHOD.AES_ENCRYPT;
652
+ entry.aesVersion = 1;
653
+ entry.aesStrength = 3;
654
+ }
655
+ else if (isNeoRequested) {
656
+ entry.cmpMethod = realCmpMethod;
657
+ entry.neoCryptoPayloadVersion = 1;
658
+ entry.neoCryptoAlgorithm = NeoCrypto_1.NEO_CRYPTO_ALGORITHM_AES256_V1;
659
+ entry.neoCryptoFlags = 0;
660
+ }
661
+ }
662
+ }
663
+ else {
664
+ // Small files / ZipCrypto: buffer compression (may encrypt inside compressFile)
665
+ const compressedData = await this.compressFile(filePath, entry, options);
666
+ await writeChunk(compressedData);
576
667
  }
577
668
  // Step 4: Patch local header in-place with final compressed size, CRC, and flags
578
669
  if (entry.compressedSize === undefined) {