@zip.js/zip.js 2.8.17 → 2.8.18

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
@@ -1958,6 +1958,8 @@ class ChunkStream extends TransformStream {
1958
1958
  */
1959
1959
 
1960
1960
 
1961
+ const MODULE_WORKER_OPTIONS = { type: "module" };
1962
+
1961
1963
  let webWorkerSupported, webWorkerURI, webWorkerOptions;
1962
1964
  let transferStreamsSupported = true;
1963
1965
  let initModule = () => { };
@@ -2166,11 +2168,8 @@ function watchClosedStream(writableSource) {
2166
2168
  return { writable, closed };
2167
2169
  }
2168
2170
 
2169
- function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI = true) {
2171
+ function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
2170
2172
  let worker, resolvedURI, resolvedOptions;
2171
- if (isModuleType) {
2172
- resolvedOptions = { type: "module" };
2173
- }
2174
2173
  if (webWorkerURI === UNDEFINED_VALUE) {
2175
2174
  // deno-lint-ignore valid-typeof
2176
2175
  const isFunctionURI = typeof url == FUNCTION_TYPE;
@@ -2182,6 +2181,12 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
2182
2181
  const isDataURI = resolvedURI.startsWith("data:");
2183
2182
  const isBlobURI = resolvedURI.startsWith("blob:");
2184
2183
  if (isDataURI || isBlobURI) {
2184
+ if (isModuleType === UNDEFINED_VALUE) {
2185
+ isModuleType = false;
2186
+ }
2187
+ if (isModuleType) {
2188
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2189
+ }
2185
2190
  try {
2186
2191
  worker = new Worker(resolvedURI, resolvedOptions);
2187
2192
  } catch (error) {
@@ -2201,6 +2206,12 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
2201
2206
  }
2202
2207
  }
2203
2208
  } else {
2209
+ if (isModuleType === UNDEFINED_VALUE) {
2210
+ isModuleType = true;
2211
+ }
2212
+ if (isModuleType) {
2213
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2214
+ }
2204
2215
  try {
2205
2216
  resolvedURI = new URL(resolvedURI, baseURI);
2206
2217
  } catch {
@@ -2210,7 +2221,7 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
2210
2221
  worker = new Worker(resolvedURI, resolvedOptions);
2211
2222
  } catch (error) {
2212
2223
  if (!isModuleType) {
2213
- return getWebWorker(url, baseURI, workerData, true, useBlobURI);
2224
+ return getWebWorker(url, baseURI, workerData, false, useBlobURI);
2214
2225
  } else {
2215
2226
  throw error;
2216
2227
  }
@@ -4884,7 +4895,6 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
4884
4895
  let writingBufferedEntryData;
4885
4896
  let writingEntryData;
4886
4897
  let fileWriter;
4887
- let blobPromise;
4888
4898
  files.set(name, fileEntry);
4889
4899
  try {
4890
4900
  let lockPreviousFileEntry;
@@ -4893,7 +4903,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
4893
4903
  requestLockCurrentFileEntry();
4894
4904
  }
4895
4905
  if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
4896
- fileWriter = new TransformStream();
4906
+ fileWriter = new TransformStream(undefined, undefined, { highWaterMark: Infinity });
4897
4907
  fileWriter.size = 0;
4898
4908
  bufferedWrite = true;
4899
4909
  zipWriter.bufferedWrites++;
@@ -4924,20 +4934,20 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
4924
4934
  await skipDiskIfNeeded(writable);
4925
4935
  }
4926
4936
  const { diskNumber } = writer;
4927
- writingEntryData = true;
4928
4937
  fileEntry.diskNumberStart = diskNumber;
4929
- if (bufferedWrite) {
4930
- blobPromise = new Response(fileWriter.readable).blob();
4931
- } else {
4938
+ if (!bufferedWrite) {
4939
+ writingEntryData = true;
4932
4940
  await writeData(fileWriter, localHeaderArray);
4933
4941
  }
4934
4942
  fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
4935
4943
  const { zip64 } = fileEntry;
4936
- writingEntryData = false;
4944
+ if (!bufferedWrite) {
4945
+ writingEntryData = false;
4946
+ }
4937
4947
  files.set(name, fileEntry);
4938
4948
  fileEntry.filename = name;
4939
4949
  if (bufferedWrite) {
4940
- const [blob] = await Promise.all([blobPromise, fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4950
+ await Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4941
4951
  await requestLockWriter();
4942
4952
  writingBufferedEntryData = true;
4943
4953
  fileEntry.diskNumberStart = writer.diskNumber;
@@ -4948,7 +4958,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
4948
4958
  updateLocalHeader(fileEntry, localHeaderView, options);
4949
4959
  await skipDiskIfNeeded(writable);
4950
4960
  await writeData(writer, localHeaderArray);
4951
- await blob.stream().pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4961
+ await fileWriter.readable.pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4952
4962
  writer.size += fileWriter.size;
4953
4963
  writingBufferedEntryData = false;
4954
4964
  } else {
@@ -4963,7 +4973,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
4963
4973
  zipWriter.offset += fileEntry.size;
4964
4974
  return fileEntry;
4965
4975
  } catch (error) {
4966
- if ((bufferedWrite && writingBufferedEntryData) || (!bufferedWrite && writingEntryData)) {
4976
+ if (writingBufferedEntryData || writingEntryData) {
4967
4977
  zipWriter.hasCorruptedEntries = true;
4968
4978
  if (error) {
4969
4979
  try {