@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/dist/zip-fs.js CHANGED
@@ -105,6 +105,7 @@
105
105
  const MIN_DATE = new Date(1980, 0, 1);
106
106
 
107
107
  const UNDEFINED_VALUE = undefined;
108
+ const INFINITY_VALUE = Infinity;
108
109
  const UNDEFINED_TYPE = "undefined";
109
110
  const FUNCTION_TYPE = "function";
110
111
  const OBJECT_TYPE = "object";
@@ -1964,6 +1965,8 @@
1964
1965
  */
1965
1966
 
1966
1967
 
1968
+ const MODULE_WORKER_OPTIONS = { type: "module" };
1969
+
1967
1970
  let webWorkerSupported, webWorkerURI, webWorkerOptions;
1968
1971
  let transferStreamsSupported = true;
1969
1972
  let initModule$1 = () => { };
@@ -2176,11 +2179,8 @@
2176
2179
  return { writable, closed };
2177
2180
  }
2178
2181
 
2179
- function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI = true) {
2182
+ function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
2180
2183
  let worker, resolvedURI, resolvedOptions;
2181
- if (isModuleType) {
2182
- resolvedOptions = { type: "module" };
2183
- }
2184
2184
  if (webWorkerURI === UNDEFINED_VALUE) {
2185
2185
  // deno-lint-ignore valid-typeof
2186
2186
  const isFunctionURI = typeof url == FUNCTION_TYPE;
@@ -2192,6 +2192,12 @@
2192
2192
  const isDataURI = resolvedURI.startsWith("data:");
2193
2193
  const isBlobURI = resolvedURI.startsWith("blob:");
2194
2194
  if (isDataURI || isBlobURI) {
2195
+ if (isModuleType === UNDEFINED_VALUE) {
2196
+ isModuleType = false;
2197
+ }
2198
+ if (isModuleType) {
2199
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2200
+ }
2195
2201
  try {
2196
2202
  worker = new Worker(resolvedURI, resolvedOptions);
2197
2203
  } catch (error) {
@@ -2211,6 +2217,12 @@
2211
2217
  }
2212
2218
  }
2213
2219
  } else {
2220
+ if (isModuleType === UNDEFINED_VALUE) {
2221
+ isModuleType = true;
2222
+ }
2223
+ if (isModuleType) {
2224
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2225
+ }
2214
2226
  try {
2215
2227
  resolvedURI = new URL(resolvedURI, baseURI);
2216
2228
  } catch {
@@ -2220,7 +2232,7 @@
2220
2232
  worker = new Worker(resolvedURI, resolvedOptions);
2221
2233
  } catch (error) {
2222
2234
  if (!isModuleType) {
2223
- return getWebWorker(url, baseURI, workerData, true, useBlobURI);
2235
+ return getWebWorker(url, baseURI, workerData, false, useBlobURI);
2224
2236
  } else {
2225
2237
  throw error;
2226
2238
  }
@@ -3161,8 +3173,8 @@
3161
3173
  Object.assign(writer, {
3162
3174
  diskNumber: 0,
3163
3175
  diskOffset: 0,
3164
- availableSize: Infinity,
3165
- maxSize: Infinity
3176
+ availableSize: INFINITY_VALUE,
3177
+ maxSize: INFINITY_VALUE
3166
3178
  });
3167
3179
  }
3168
3180
  return writer;
@@ -4397,8 +4409,8 @@
4397
4409
  constructor(writer, options = {}) {
4398
4410
  writer = new GenericWriter(writer);
4399
4411
  const addSplitZipSignature =
4400
- writer.availableSize !== UNDEFINED_VALUE && writer.availableSize > 0 && writer.availableSize !== Infinity &&
4401
- writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !== Infinity;
4412
+ writer.availableSize !== UNDEFINED_VALUE && writer.availableSize > 0 && writer.availableSize !== INFINITY_VALUE &&
4413
+ writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !== INFINITY_VALUE;
4402
4414
  Object.assign(this, {
4403
4415
  writer,
4404
4416
  addSplitZipSignature,
@@ -4894,7 +4906,6 @@
4894
4906
  let writingBufferedEntryData;
4895
4907
  let writingEntryData;
4896
4908
  let fileWriter;
4897
- let blobPromise;
4898
4909
  files.set(name, fileEntry);
4899
4910
  try {
4900
4911
  let lockPreviousFileEntry;
@@ -4903,7 +4914,7 @@
4903
4914
  requestLockCurrentFileEntry();
4904
4915
  }
4905
4916
  if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
4906
- fileWriter = new TransformStream();
4917
+ fileWriter = new TransformStream(UNDEFINED_VALUE, UNDEFINED_VALUE, { highWaterMark: INFINITY_VALUE });
4907
4918
  fileWriter.size = 0;
4908
4919
  bufferedWrite = true;
4909
4920
  zipWriter.bufferedWrites++;
@@ -4934,20 +4945,20 @@
4934
4945
  await skipDiskIfNeeded(writable);
4935
4946
  }
4936
4947
  const { diskNumber } = writer;
4937
- writingEntryData = true;
4938
4948
  fileEntry.diskNumberStart = diskNumber;
4939
- if (bufferedWrite) {
4940
- blobPromise = new Response(fileWriter.readable).blob();
4941
- } else {
4949
+ if (!bufferedWrite) {
4950
+ writingEntryData = true;
4942
4951
  await writeData(fileWriter, localHeaderArray);
4943
4952
  }
4944
4953
  fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
4945
4954
  const { zip64 } = fileEntry;
4946
- writingEntryData = false;
4955
+ if (!bufferedWrite) {
4956
+ writingEntryData = false;
4957
+ }
4947
4958
  files.set(name, fileEntry);
4948
4959
  fileEntry.filename = name;
4949
4960
  if (bufferedWrite) {
4950
- const [blob] = await Promise.all([blobPromise, fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4961
+ await Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4951
4962
  await requestLockWriter();
4952
4963
  writingBufferedEntryData = true;
4953
4964
  fileEntry.diskNumberStart = writer.diskNumber;
@@ -4958,7 +4969,7 @@
4958
4969
  updateLocalHeader(fileEntry, localHeaderView, options);
4959
4970
  await skipDiskIfNeeded(writable);
4960
4971
  await writeData(writer, localHeaderArray);
4961
- await blob.stream().pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4972
+ await fileWriter.readable.pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4962
4973
  writer.size += fileWriter.size;
4963
4974
  writingBufferedEntryData = false;
4964
4975
  } else {
@@ -4973,7 +4984,7 @@
4973
4984
  zipWriter.offset += fileEntry.size;
4974
4985
  return fileEntry;
4975
4986
  } catch (error) {
4976
- if ((bufferedWrite && writingBufferedEntryData) || (!bufferedWrite && writingEntryData)) {
4987
+ if (writingBufferedEntryData || writingEntryData) {
4977
4988
  zipWriter.hasCorruptedEntries = true;
4978
4989
  if (error) {
4979
4990
  try {