@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/dist/zip.js CHANGED
@@ -1964,6 +1964,8 @@
1964
1964
  */
1965
1965
 
1966
1966
 
1967
+ const MODULE_WORKER_OPTIONS = { type: "module" };
1968
+
1967
1969
  let webWorkerSupported, webWorkerURI, webWorkerOptions;
1968
1970
  let transferStreamsSupported = true;
1969
1971
  let initModule$1 = () => { };
@@ -2176,11 +2178,8 @@
2176
2178
  return { writable, closed };
2177
2179
  }
2178
2180
 
2179
- function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI = true) {
2181
+ function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
2180
2182
  let worker, resolvedURI, resolvedOptions;
2181
- if (isModuleType) {
2182
- resolvedOptions = { type: "module" };
2183
- }
2184
2183
  if (webWorkerURI === UNDEFINED_VALUE) {
2185
2184
  // deno-lint-ignore valid-typeof
2186
2185
  const isFunctionURI = typeof url == FUNCTION_TYPE;
@@ -2192,6 +2191,12 @@
2192
2191
  const isDataURI = resolvedURI.startsWith("data:");
2193
2192
  const isBlobURI = resolvedURI.startsWith("blob:");
2194
2193
  if (isDataURI || isBlobURI) {
2194
+ if (isModuleType === UNDEFINED_VALUE) {
2195
+ isModuleType = false;
2196
+ }
2197
+ if (isModuleType) {
2198
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2199
+ }
2195
2200
  try {
2196
2201
  worker = new Worker(resolvedURI, resolvedOptions);
2197
2202
  } catch (error) {
@@ -2211,6 +2216,12 @@
2211
2216
  }
2212
2217
  }
2213
2218
  } else {
2219
+ if (isModuleType === UNDEFINED_VALUE) {
2220
+ isModuleType = true;
2221
+ }
2222
+ if (isModuleType) {
2223
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2224
+ }
2214
2225
  try {
2215
2226
  resolvedURI = new URL(resolvedURI, baseURI);
2216
2227
  } catch {
@@ -2220,7 +2231,7 @@
2220
2231
  worker = new Worker(resolvedURI, resolvedOptions);
2221
2232
  } catch (error) {
2222
2233
  if (!isModuleType) {
2223
- return getWebWorker(url, baseURI, workerData, true, useBlobURI);
2234
+ return getWebWorker(url, baseURI, workerData, false, useBlobURI);
2224
2235
  } else {
2225
2236
  throw error;
2226
2237
  }
@@ -4894,7 +4905,6 @@
4894
4905
  let writingBufferedEntryData;
4895
4906
  let writingEntryData;
4896
4907
  let fileWriter;
4897
- let blobPromise;
4898
4908
  files.set(name, fileEntry);
4899
4909
  try {
4900
4910
  let lockPreviousFileEntry;
@@ -4903,7 +4913,7 @@
4903
4913
  requestLockCurrentFileEntry();
4904
4914
  }
4905
4915
  if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
4906
- fileWriter = new TransformStream();
4916
+ fileWriter = new TransformStream(undefined, undefined, { highWaterMark: Infinity });
4907
4917
  fileWriter.size = 0;
4908
4918
  bufferedWrite = true;
4909
4919
  zipWriter.bufferedWrites++;
@@ -4934,20 +4944,20 @@
4934
4944
  await skipDiskIfNeeded(writable);
4935
4945
  }
4936
4946
  const { diskNumber } = writer;
4937
- writingEntryData = true;
4938
4947
  fileEntry.diskNumberStart = diskNumber;
4939
- if (bufferedWrite) {
4940
- blobPromise = new Response(fileWriter.readable).blob();
4941
- } else {
4948
+ if (!bufferedWrite) {
4949
+ writingEntryData = true;
4942
4950
  await writeData(fileWriter, localHeaderArray);
4943
4951
  }
4944
4952
  fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
4945
4953
  const { zip64 } = fileEntry;
4946
- writingEntryData = false;
4954
+ if (!bufferedWrite) {
4955
+ writingEntryData = false;
4956
+ }
4947
4957
  files.set(name, fileEntry);
4948
4958
  fileEntry.filename = name;
4949
4959
  if (bufferedWrite) {
4950
- const [blob] = await Promise.all([blobPromise, fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4960
+ await Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4951
4961
  await requestLockWriter();
4952
4962
  writingBufferedEntryData = true;
4953
4963
  fileEntry.diskNumberStart = writer.diskNumber;
@@ -4958,7 +4968,7 @@
4958
4968
  updateLocalHeader(fileEntry, localHeaderView, options);
4959
4969
  await skipDiskIfNeeded(writable);
4960
4970
  await writeData(writer, localHeaderArray);
4961
- await blob.stream().pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4971
+ await fileWriter.readable.pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4962
4972
  writer.size += fileWriter.size;
4963
4973
  writingBufferedEntryData = false;
4964
4974
  } else {
@@ -4973,7 +4983,7 @@
4973
4983
  zipWriter.offset += fileEntry.size;
4974
4984
  return fileEntry;
4975
4985
  } catch (error) {
4976
- if ((bufferedWrite && writingBufferedEntryData) || (!bufferedWrite && writingEntryData)) {
4986
+ if (writingBufferedEntryData || writingEntryData) {
4977
4987
  zipWriter.hasCorruptedEntries = true;
4978
4988
  if (error) {
4979
4989
  try {