@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/deno.json +1 -1
- package/dist/zip-core.js +25 -15
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core.js +25 -15
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-native.js +25 -15
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +25 -15
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +25 -15
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +25 -15
- package/dist/zip-native.min.js +1 -1
- package/dist/zip.js +25 -15
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +25 -15
- package/index-native.min.js +1 -1
- package/index.cjs +25 -15
- package/index.d.ts +7 -0
- package/index.min.js +1 -1
- package/lib/core/codec-worker.js +16 -5
- package/lib/core/options.js +2 -0
- package/lib/core/zip-writer.js +10 -11
- package/package.json +3 -3
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
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
4944
|
+
if (!bufferedWrite) {
|
|
4945
|
+
writingEntryData = false;
|
|
4946
|
+
}
|
|
4937
4947
|
files.set(name, fileEntry);
|
|
4938
4948
|
fileEntry.filename = name;
|
|
4939
4949
|
if (bufferedWrite) {
|
|
4940
|
-
|
|
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
|
|
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 (
|
|
4976
|
+
if (writingBufferedEntryData || writingEntryData) {
|
|
4967
4977
|
zipWriter.hasCorruptedEntries = true;
|
|
4968
4978
|
if (error) {
|
|
4969
4979
|
try {
|