@zip.js/zip.js 2.18.2 → 2.19.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 (44) hide show
  1. package/BENCHMARKS.md +122 -118
  2. package/deno.json +1 -1
  3. package/dist/zip-core-external.js +54 -81
  4. package/dist/zip-core-external.min.js +1 -1
  5. package/dist/zip-core.js +54 -81
  6. package/dist/zip-core.min.js +1 -1
  7. package/dist/zip-fs-core-external.js +54 -81
  8. package/dist/zip-fs-core-external.min.js +1 -1
  9. package/dist/zip-fs-core.js +54 -81
  10. package/dist/zip-fs-core.min.js +1 -1
  11. package/dist/zip-fs-external.js +54 -81
  12. package/dist/zip-fs-external.min.js +1 -1
  13. package/dist/zip-fs-native.js +56 -83
  14. package/dist/zip-fs-native.min.js +1 -1
  15. package/dist/zip-fs.js +55 -82
  16. package/dist/zip-fs.min.js +1 -1
  17. package/dist/zip-legacy.js +56 -83
  18. package/dist/zip-legacy.min.js +1 -1
  19. package/dist/zip-native.js +56 -83
  20. package/dist/zip-native.min.js +1 -1
  21. package/dist/zip-web-worker-native.js +1 -1
  22. package/dist/zip-web-worker.js +1 -1
  23. package/dist/zip.js +55 -82
  24. package/dist/zip.min.js +1 -1
  25. package/index-native.cjs +56 -83
  26. package/index-native.min.js +1 -1
  27. package/index.cjs +55 -82
  28. package/index.d.cts +27 -18
  29. package/index.d.ts +27 -18
  30. package/index.min.js +1 -1
  31. package/lib/core/codec-pool.js +1 -2
  32. package/lib/core/codec-worker-web.js +11 -39
  33. package/lib/core/codec-worker.js +1 -2
  34. package/lib/core/configuration.js +1 -1
  35. package/lib/core/options.js +0 -2
  36. package/lib/core/streams/codec-stream.js +1 -1
  37. package/lib/core/version.js +1 -1
  38. package/lib/core/web-worker-base.js +2 -3
  39. package/lib/core/web-worker-inline-native.js +1 -1
  40. package/lib/core/web-worker-inline-wasm.js +1 -1
  41. package/lib/core/zip-reader.js +21 -23
  42. package/lib/core/zip-writer.js +18 -14
  43. package/package.json +1 -1
  44. package/worker-message-property-names.js +1 -1
@@ -218,7 +218,6 @@ import {
218
218
  OPTION_SIGNAL,
219
219
  OPTION_USE_WEB_WORKERS,
220
220
  OPTION_USE_COMPRESSION_STREAM,
221
- OPTION_TRANSFER_STREAMS,
222
221
  OPTION_PREVENT_CLOSE,
223
222
  OPTION_ENCRYPTION_STRENGTH,
224
223
  OPTION_EXTENDED_TIMESTAMP,
@@ -449,6 +448,7 @@ class ZipWriter {
449
448
  rawExtraFieldExtendedTimestamp: EMPTY_UINT8_ARRAY,
450
449
  rawExtraFieldNTFS: EMPTY_UINT8_ARRAY,
451
450
  rawExtraFieldUnix: EMPTY_UINT8_ARRAY,
451
+ rawCentralExtraFieldUnix: EMPTY_UINT8_ARRAY,
452
452
  rawExtraField,
453
453
  rawCentralExtraField: EMPTY_UINT8_ARRAY,
454
454
  headerArray,
@@ -1063,7 +1063,6 @@ function resolveMetadata(zipWriter, name, options) {
1063
1063
  const ntfsTimestamp = getOptionValue(zipWriter, options, OPTION_NTFS_TIMESTAMP);
1064
1064
  const keepOrder = getOptionValue(zipWriter, options, OPTION_KEEP_ORDER, true);
1065
1065
  const useWebWorkers = getOptionValue(zipWriter, options, OPTION_USE_WEB_WORKERS);
1066
- const transferStreams = getOptionValue(zipWriter, options, OPTION_TRANSFER_STREAMS);
1067
1066
  const bufferedWrite = getOptionValue(zipWriter, options, OPTION_BUFFERED_WRITE);
1068
1067
  const createTempStream = getFunctionOptionValue(zipWriter, options, OPTION_CREATE_TEMP_STREAM);
1069
1068
  const dataDescriptorSignature = getOptionValue(zipWriter, options, OPTION_DATA_DESCRIPTOR_SIGNATURE, true);
@@ -1129,7 +1128,6 @@ function resolveMetadata(zipWriter, name, options) {
1129
1128
  ntfsTimestamp,
1130
1129
  keepOrder,
1131
1130
  useWebWorkers,
1132
- transferStreams,
1133
1131
  bufferedWrite,
1134
1132
  createTempStream,
1135
1133
  dataDescriptorSignature,
@@ -1188,7 +1186,7 @@ async function resolveSizes(zipWriter, reader, { resolvedOptions: metadata }, op
1188
1186
  if (reader) {
1189
1187
  reader = new GenericReader(reader);
1190
1188
  await initStream(reader);
1191
- if (!reader.readable && !reader.readUint8Array) {
1189
+ if (!reader.readUint8Array && !reader.readable) {
1192
1190
  throw new Error(ERR_INVALID_READER);
1193
1191
  }
1194
1192
  ({ size: contentSize } = reader);
@@ -1549,6 +1547,7 @@ async function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry
1549
1547
  extraFieldExtendedTimestampTime,
1550
1548
  rawExtraFieldNTFS,
1551
1549
  rawExtraFieldUnix,
1550
+ rawCentralExtraFieldUnix,
1552
1551
  rawExtraFieldAES,
1553
1552
  } = headerInfo;
1554
1553
  const { dataDescriptorArray } = dataDescriptorInfo;
@@ -1573,7 +1572,6 @@ async function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry
1573
1572
  rawExtraField,
1574
1573
  rawCentralExtraField,
1575
1574
  useWebWorkers,
1576
- transferStreams,
1577
1575
  onstart,
1578
1576
  onprogress,
1579
1577
  onend,
@@ -1615,6 +1613,7 @@ async function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry
1615
1613
  rawExtraFieldExtendedTimestamp,
1616
1614
  rawExtraFieldNTFS,
1617
1615
  rawExtraFieldUnix,
1616
+ rawCentralExtraFieldUnix,
1618
1617
  rawExtraFieldAES,
1619
1618
  rawExtraField,
1620
1619
  rawCentralExtraField,
@@ -1661,7 +1660,6 @@ async function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry
1661
1660
  encrypted: encrypted && !passThroughEncryption,
1662
1661
  useWebWorkers,
1663
1662
  useCompressionStream,
1664
- transferStreams,
1665
1663
  format,
1666
1664
  codecURI,
1667
1665
  compressionMethod
@@ -1839,6 +1837,7 @@ function getHeaderInfo(options) {
1839
1837
  rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = EMPTY_UINT8_ARRAY;
1840
1838
  }
1841
1839
  let rawExtraFieldUnix;
1840
+ let rawCentralExtraFieldUnix;
1842
1841
  try {
1843
1842
  const { uid, gid, unixExtraFieldType } = options;
1844
1843
  if (unixExtraFieldType == INFOZIP_EXTRA_FIELD_TYPE && (uid !== UNDEFINED_VALUE || gid !== UNDEFINED_VALUE)) {
@@ -1853,7 +1852,7 @@ function getHeaderInfo(options) {
1853
1852
  extraFieldUnix.writeBytes(uidBytes);
1854
1853
  extraFieldUnix.writeUint8(gidBytes.length);
1855
1854
  extraFieldUnix.writeBytes(gidBytes);
1856
- rawExtraFieldUnix = extraFieldUnix.array;
1855
+ rawExtraFieldUnix = rawCentralExtraFieldUnix = extraFieldUnix.array;
1857
1856
  } else if (unixExtraFieldType == UNIX_EXTRA_FIELD_TYPE && (uid !== UNDEFINED_VALUE || gid !== UNDEFINED_VALUE)) {
1858
1857
  const extraFieldUnix = createRecordWriter(8);
1859
1858
  extraFieldUnix.writeUint16(EXTRAFIELD_TYPE_UNIX);
@@ -1861,11 +1860,15 @@ function getHeaderInfo(options) {
1861
1860
  extraFieldUnix.writeUint16((uid === UNDEFINED_VALUE ? 0 : uid) & MAX_16_BITS);
1862
1861
  extraFieldUnix.writeUint16((gid === UNDEFINED_VALUE ? 0 : gid) & MAX_16_BITS);
1863
1862
  rawExtraFieldUnix = extraFieldUnix.array;
1863
+ const centralExtraFieldUnix = createRecordWriter(4);
1864
+ centralExtraFieldUnix.writeUint16(EXTRAFIELD_TYPE_UNIX);
1865
+ centralExtraFieldUnix.writeUint16(0);
1866
+ rawCentralExtraFieldUnix = centralExtraFieldUnix.array;
1864
1867
  } else {
1865
- rawExtraFieldUnix = EMPTY_UINT8_ARRAY;
1868
+ rawExtraFieldUnix = rawCentralExtraFieldUnix = EMPTY_UINT8_ARRAY;
1866
1869
  }
1867
1870
  } catch {
1868
- rawExtraFieldUnix = EMPTY_UINT8_ARRAY;
1871
+ rawExtraFieldUnix = rawCentralExtraFieldUnix = EMPTY_UINT8_ARRAY;
1869
1872
  }
1870
1873
  if (compressionMethod === UNDEFINED_VALUE) {
1871
1874
  compressionMethod = compressed ? COMPRESSION_METHOD_DEFLATE : COMPRESSION_METHOD_STORE;
@@ -1957,6 +1960,7 @@ function getHeaderInfo(options) {
1957
1960
  rawExtraFieldExtendedTimestamp,
1958
1961
  rawExtraFieldNTFS,
1959
1962
  rawExtraFieldUnix,
1963
+ rawCentralExtraFieldUnix,
1960
1964
  rawExtraFieldAES,
1961
1965
  extraFieldLength
1962
1966
  };
@@ -2132,7 +2136,7 @@ function createDirectoryRecords(files) {
2132
2136
  rawExtraFieldAES,
2133
2137
  rawComment,
2134
2138
  rawExtraFieldNTFS,
2135
- rawExtraFieldUnix,
2139
+ rawCentralExtraFieldUnix,
2136
2140
  rawExtraField,
2137
2141
  rawCentralExtraField,
2138
2142
  extraFieldExtendedTimestampFlag,
@@ -2194,7 +2198,7 @@ function createDirectoryRecords(files) {
2194
2198
  rawExtraFieldZip64,
2195
2199
  rawExtraFieldAES,
2196
2200
  rawExtraFieldNTFS,
2197
- rawExtraFieldUnix,
2201
+ rawCentralExtraFieldUnix,
2198
2202
  rawExtraFieldTimestamp,
2199
2203
  rawExtraField,
2200
2204
  rawCentralExtraField);
@@ -2223,7 +2227,7 @@ async function writeDirectoryRecords(zipWriter, directoryDataLength, options) {
2223
2227
  rawExtraFieldAES,
2224
2228
  rawExtraFieldExtendedTimestamp,
2225
2229
  rawExtraFieldNTFS,
2226
- rawExtraFieldUnix,
2230
+ rawCentralExtraFieldUnix,
2227
2231
  rawExtraField,
2228
2232
  rawCentralExtraField,
2229
2233
  rawComment,
@@ -2240,7 +2244,7 @@ async function writeDirectoryRecords(zipWriter, directoryDataLength, options) {
2240
2244
  uncompressedSize,
2241
2245
  compressedSize
2242
2246
  } = fileEntry;
2243
- const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraFieldUnix, rawExtraField, rawCentralExtraField);
2247
+ const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawCentralExtraFieldUnix, rawExtraField, rawCentralExtraField);
2244
2248
  const directoryRecordLength = CENTRAL_FILE_HEADER_LENGTH + getLength(rawFilename, rawComment) + extraFieldLength;
2245
2249
  if (exceedsAvailableSize(writer, offset + directoryRecordLength - directoryDiskOffset)) {
2246
2250
  await writeData(writer, directoryArray.slice(directoryDiskOffset, offset));
@@ -2276,7 +2280,7 @@ async function writeDirectoryRecords(zipWriter, directoryDataLength, options) {
2276
2280
  directoryRecord.writeBytes(rawExtraFieldAES);
2277
2281
  directoryRecord.writeBytes(rawExtraFieldExtendedTimestamp);
2278
2282
  directoryRecord.writeBytes(rawExtraFieldNTFS);
2279
- directoryRecord.writeBytes(rawExtraFieldUnix);
2283
+ directoryRecord.writeBytes(rawCentralExtraFieldUnix);
2280
2284
  directoryRecord.writeBytes(rawExtraField);
2281
2285
  directoryRecord.writeBytes(rawCentralExtraField);
2282
2286
  directoryRecord.writeBytes(rawComment);
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "A JavaScript library to zip and unzip files in the browser, Deno and Node.js",
4
4
  "author": "Gildas Lormeau",
5
5
  "license": "BSD-3-Clause",
6
- "version": "2.18.2",
6
+ "version": "2.19.0",
7
7
  "type": "module",
8
8
  "keywords": [
9
9
  "zip",
@@ -1,3 +1,3 @@
1
- const WORKER_MESSAGE_PROPERTY_NAMES = ["baseURI", "cause", "checkAuthenticationCode", "checkCrc32", "checkPasswordOnly", "chunkSize", "code", "codecImportFailed", "codecType", "codecURI", "compressed", "compressionMethod", "computeCrc32", "config", "crc32", "deflate64", "done", "encrypted", "encryptionStrength", "error", "errorValue", "format", "inputSize", "level", "message", "messageId", "name", "options", "outputSize", "password", "passwordVerification", "rawBitFlag", "rawPassword", "readable", "result", "stack", "transferStreams", "type", "useCompressionStream", "useWebWorkers", "value", "wasmURI", "workerStartupTimeout", "writable", "zipCrypto"];
1
+ const WORKER_MESSAGE_PROPERTY_NAMES = ["baseURI", "cause", "checkAuthenticationCode", "checkCrc32", "checkPasswordOnly", "chunkSize", "code", "codecImportFailed", "codecType", "codecURI", "compressed", "compressionMethod", "computeCrc32", "config", "crc32", "deflate64", "done", "encrypted", "encryptionStrength", "error", "errorValue", "format", "inputSize", "level", "message", "messageId", "name", "options", "outputSize", "password", "passwordVerification", "rawBitFlag", "rawPassword", "result", "stack", "type", "useCompressionStream", "useWebWorkers", "value", "wasmURI", "workerStartupTimeout", "zipCrypto"];
2
2
 
3
3
  export { WORKER_MESSAGE_PROPERTY_NAMES };