@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.
@@ -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 = () => { };
@@ -2172,11 +2175,8 @@
2172
2175
  return { writable, closed };
2173
2176
  }
2174
2177
 
2175
- function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI = true) {
2178
+ function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
2176
2179
  let worker, resolvedURI, resolvedOptions;
2177
- if (isModuleType) {
2178
- resolvedOptions = { type: "module" };
2179
- }
2180
2180
  if (webWorkerURI === UNDEFINED_VALUE) {
2181
2181
  // deno-lint-ignore valid-typeof
2182
2182
  const isFunctionURI = typeof url == FUNCTION_TYPE;
@@ -2188,6 +2188,12 @@
2188
2188
  const isDataURI = resolvedURI.startsWith("data:");
2189
2189
  const isBlobURI = resolvedURI.startsWith("blob:");
2190
2190
  if (isDataURI || isBlobURI) {
2191
+ if (isModuleType === UNDEFINED_VALUE) {
2192
+ isModuleType = false;
2193
+ }
2194
+ if (isModuleType) {
2195
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2196
+ }
2191
2197
  try {
2192
2198
  worker = new Worker(resolvedURI, resolvedOptions);
2193
2199
  } catch (error) {
@@ -2207,6 +2213,12 @@
2207
2213
  }
2208
2214
  }
2209
2215
  } else {
2216
+ if (isModuleType === UNDEFINED_VALUE) {
2217
+ isModuleType = true;
2218
+ }
2219
+ if (isModuleType) {
2220
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2221
+ }
2210
2222
  try {
2211
2223
  resolvedURI = new URL(resolvedURI, baseURI);
2212
2224
  } catch {
@@ -2216,7 +2228,7 @@
2216
2228
  worker = new Worker(resolvedURI, resolvedOptions);
2217
2229
  } catch (error) {
2218
2230
  if (!isModuleType) {
2219
- return getWebWorker(url, baseURI, workerData, true, useBlobURI);
2231
+ return getWebWorker(url, baseURI, workerData, false, useBlobURI);
2220
2232
  } else {
2221
2233
  throw error;
2222
2234
  }
@@ -3157,8 +3169,8 @@
3157
3169
  Object.assign(writer, {
3158
3170
  diskNumber: 0,
3159
3171
  diskOffset: 0,
3160
- availableSize: Infinity,
3161
- maxSize: Infinity
3172
+ availableSize: INFINITY_VALUE,
3173
+ maxSize: INFINITY_VALUE
3162
3174
  });
3163
3175
  }
3164
3176
  return writer;
@@ -4393,8 +4405,8 @@
4393
4405
  constructor(writer, options = {}) {
4394
4406
  writer = new GenericWriter(writer);
4395
4407
  const addSplitZipSignature =
4396
- writer.availableSize !== UNDEFINED_VALUE && writer.availableSize > 0 && writer.availableSize !== Infinity &&
4397
- writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !== Infinity;
4408
+ writer.availableSize !== UNDEFINED_VALUE && writer.availableSize > 0 && writer.availableSize !== INFINITY_VALUE &&
4409
+ writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !== INFINITY_VALUE;
4398
4410
  Object.assign(this, {
4399
4411
  writer,
4400
4412
  addSplitZipSignature,
@@ -4890,7 +4902,6 @@
4890
4902
  let writingBufferedEntryData;
4891
4903
  let writingEntryData;
4892
4904
  let fileWriter;
4893
- let blobPromise;
4894
4905
  files.set(name, fileEntry);
4895
4906
  try {
4896
4907
  let lockPreviousFileEntry;
@@ -4899,7 +4910,7 @@
4899
4910
  requestLockCurrentFileEntry();
4900
4911
  }
4901
4912
  if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
4902
- fileWriter = new TransformStream();
4913
+ fileWriter = new TransformStream(UNDEFINED_VALUE, UNDEFINED_VALUE, { highWaterMark: INFINITY_VALUE });
4903
4914
  fileWriter.size = 0;
4904
4915
  bufferedWrite = true;
4905
4916
  zipWriter.bufferedWrites++;
@@ -4930,20 +4941,20 @@
4930
4941
  await skipDiskIfNeeded(writable);
4931
4942
  }
4932
4943
  const { diskNumber } = writer;
4933
- writingEntryData = true;
4934
4944
  fileEntry.diskNumberStart = diskNumber;
4935
- if (bufferedWrite) {
4936
- blobPromise = new Response(fileWriter.readable).blob();
4937
- } else {
4945
+ if (!bufferedWrite) {
4946
+ writingEntryData = true;
4938
4947
  await writeData(fileWriter, localHeaderArray);
4939
4948
  }
4940
4949
  fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
4941
4950
  const { zip64 } = fileEntry;
4942
- writingEntryData = false;
4951
+ if (!bufferedWrite) {
4952
+ writingEntryData = false;
4953
+ }
4943
4954
  files.set(name, fileEntry);
4944
4955
  fileEntry.filename = name;
4945
4956
  if (bufferedWrite) {
4946
- const [blob] = await Promise.all([blobPromise, fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4957
+ await Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4947
4958
  await requestLockWriter();
4948
4959
  writingBufferedEntryData = true;
4949
4960
  fileEntry.diskNumberStart = writer.diskNumber;
@@ -4954,7 +4965,7 @@
4954
4965
  updateLocalHeader(fileEntry, localHeaderView, options);
4955
4966
  await skipDiskIfNeeded(writable);
4956
4967
  await writeData(writer, localHeaderArray);
4957
- await blob.stream().pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4968
+ await fileWriter.readable.pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4958
4969
  writer.size += fileWriter.size;
4959
4970
  writingBufferedEntryData = false;
4960
4971
  } else {
@@ -4969,7 +4980,7 @@
4969
4980
  zipWriter.offset += fileEntry.size;
4970
4981
  return fileEntry;
4971
4982
  } catch (error) {
4972
- if ((bufferedWrite && writingBufferedEntryData) || (!bufferedWrite && writingEntryData)) {
4983
+ if (writingBufferedEntryData || writingEntryData) {
4973
4984
  zipWriter.hasCorruptedEntries = true;
4974
4985
  if (error) {
4975
4986
  try {