@zip.js/zip.js 2.8.17 → 2.8.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index-native.cjs CHANGED
@@ -99,6 +99,7 @@ const MAX_DATE = new Date(2107, 11, 31);
99
99
  const MIN_DATE = new Date(1980, 0, 1);
100
100
 
101
101
  const UNDEFINED_VALUE = undefined;
102
+ const INFINITY_VALUE = Infinity;
102
103
  const UNDEFINED_TYPE = "undefined";
103
104
  const FUNCTION_TYPE = "function";
104
105
  const OBJECT_TYPE = "object";
@@ -1958,6 +1959,8 @@ class ChunkStream extends TransformStream {
1958
1959
  */
1959
1960
 
1960
1961
 
1962
+ const MODULE_WORKER_OPTIONS = { type: "module" };
1963
+
1961
1964
  let webWorkerSupported, webWorkerURI, webWorkerOptions;
1962
1965
  let transferStreamsSupported = true;
1963
1966
  let initModule = () => { };
@@ -2166,11 +2169,8 @@ function watchClosedStream(writableSource) {
2166
2169
  return { writable, closed };
2167
2170
  }
2168
2171
 
2169
- function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI = true) {
2172
+ function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
2170
2173
  let worker, resolvedURI, resolvedOptions;
2171
- if (isModuleType) {
2172
- resolvedOptions = { type: "module" };
2173
- }
2174
2174
  if (webWorkerURI === UNDEFINED_VALUE) {
2175
2175
  // deno-lint-ignore valid-typeof
2176
2176
  const isFunctionURI = typeof url == FUNCTION_TYPE;
@@ -2182,6 +2182,12 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
2182
2182
  const isDataURI = resolvedURI.startsWith("data:");
2183
2183
  const isBlobURI = resolvedURI.startsWith("blob:");
2184
2184
  if (isDataURI || isBlobURI) {
2185
+ if (isModuleType === UNDEFINED_VALUE) {
2186
+ isModuleType = false;
2187
+ }
2188
+ if (isModuleType) {
2189
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2190
+ }
2185
2191
  try {
2186
2192
  worker = new Worker(resolvedURI, resolvedOptions);
2187
2193
  } catch (error) {
@@ -2201,6 +2207,12 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
2201
2207
  }
2202
2208
  }
2203
2209
  } else {
2210
+ if (isModuleType === UNDEFINED_VALUE) {
2211
+ isModuleType = true;
2212
+ }
2213
+ if (isModuleType) {
2214
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2215
+ }
2204
2216
  try {
2205
2217
  resolvedURI = new URL(resolvedURI, baseURI);
2206
2218
  } catch {
@@ -2210,7 +2222,7 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
2210
2222
  worker = new Worker(resolvedURI, resolvedOptions);
2211
2223
  } catch (error) {
2212
2224
  if (!isModuleType) {
2213
- return getWebWorker(url, baseURI, workerData, true, useBlobURI);
2225
+ return getWebWorker(url, baseURI, workerData, false, useBlobURI);
2214
2226
  } else {
2215
2227
  throw error;
2216
2228
  }
@@ -3151,8 +3163,8 @@ class GenericWriter {
3151
3163
  Object.assign(writer, {
3152
3164
  diskNumber: 0,
3153
3165
  diskOffset: 0,
3154
- availableSize: Infinity,
3155
- maxSize: Infinity
3166
+ availableSize: INFINITY_VALUE,
3167
+ maxSize: INFINITY_VALUE
3156
3168
  });
3157
3169
  }
3158
3170
  return writer;
@@ -4387,8 +4399,8 @@ class ZipWriter {
4387
4399
  constructor(writer, options = {}) {
4388
4400
  writer = new GenericWriter(writer);
4389
4401
  const addSplitZipSignature =
4390
- writer.availableSize !== UNDEFINED_VALUE && writer.availableSize > 0 && writer.availableSize !== Infinity &&
4391
- writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !== Infinity;
4402
+ writer.availableSize !== UNDEFINED_VALUE && writer.availableSize > 0 && writer.availableSize !== INFINITY_VALUE &&
4403
+ writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !== INFINITY_VALUE;
4392
4404
  Object.assign(this, {
4393
4405
  writer,
4394
4406
  addSplitZipSignature,
@@ -4884,7 +4896,6 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
4884
4896
  let writingBufferedEntryData;
4885
4897
  let writingEntryData;
4886
4898
  let fileWriter;
4887
- let blobPromise;
4888
4899
  files.set(name, fileEntry);
4889
4900
  try {
4890
4901
  let lockPreviousFileEntry;
@@ -4893,7 +4904,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
4893
4904
  requestLockCurrentFileEntry();
4894
4905
  }
4895
4906
  if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
4896
- fileWriter = new TransformStream();
4907
+ fileWriter = new TransformStream(UNDEFINED_VALUE, UNDEFINED_VALUE, { highWaterMark: INFINITY_VALUE });
4897
4908
  fileWriter.size = 0;
4898
4909
  bufferedWrite = true;
4899
4910
  zipWriter.bufferedWrites++;
@@ -4924,20 +4935,20 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
4924
4935
  await skipDiskIfNeeded(writable);
4925
4936
  }
4926
4937
  const { diskNumber } = writer;
4927
- writingEntryData = true;
4928
4938
  fileEntry.diskNumberStart = diskNumber;
4929
- if (bufferedWrite) {
4930
- blobPromise = new Response(fileWriter.readable).blob();
4931
- } else {
4939
+ if (!bufferedWrite) {
4940
+ writingEntryData = true;
4932
4941
  await writeData(fileWriter, localHeaderArray);
4933
4942
  }
4934
4943
  fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
4935
4944
  const { zip64 } = fileEntry;
4936
- writingEntryData = false;
4945
+ if (!bufferedWrite) {
4946
+ writingEntryData = false;
4947
+ }
4937
4948
  files.set(name, fileEntry);
4938
4949
  fileEntry.filename = name;
4939
4950
  if (bufferedWrite) {
4940
- const [blob] = await Promise.all([blobPromise, fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4951
+ await Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4941
4952
  await requestLockWriter();
4942
4953
  writingBufferedEntryData = true;
4943
4954
  fileEntry.diskNumberStart = writer.diskNumber;
@@ -4948,7 +4959,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
4948
4959
  updateLocalHeader(fileEntry, localHeaderView, options);
4949
4960
  await skipDiskIfNeeded(writable);
4950
4961
  await writeData(writer, localHeaderArray);
4951
- await blob.stream().pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4962
+ await fileWriter.readable.pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4952
4963
  writer.size += fileWriter.size;
4953
4964
  writingBufferedEntryData = false;
4954
4965
  } else {
@@ -4963,7 +4974,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
4963
4974
  zipWriter.offset += fileEntry.size;
4964
4975
  return fileEntry;
4965
4976
  } catch (error) {
4966
- if ((bufferedWrite && writingBufferedEntryData) || (!bufferedWrite && writingEntryData)) {
4977
+ if (writingBufferedEntryData || writingEntryData) {
4967
4978
  zipWriter.hasCorruptedEntries = true;
4968
4979
  if (error) {
4969
4980
  try {