@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/deno.json +1 -1
- package/dist/zip-core.js +30 -19
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core.js +30 -19
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-native.js +30 -19
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +30 -19
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +30 -19
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +30 -19
- package/dist/zip-native.min.js +1 -1
- package/dist/zip.js +30 -19
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +30 -19
- package/index-native.min.js +1 -1
- package/index.cjs +30 -19
- package/index.d.ts +7 -0
- package/index.min.js +1 -1
- package/lib/core/codec-worker.js +16 -5
- package/lib/core/constants.js +2 -0
- package/lib/core/io.js +3 -2
- package/lib/core/options.js +2 -0
- package/lib/core/zip-writer.js +13 -13
- package/package.json +3 -6
package/index-native.cjs
CHANGED
|
@@ -99,6 +99,7 @@ const MAX_DATE = new Date(2107, 11, 31);
|
|
|
99
99
|
const MIN_DATE = new Date(1980, 0, 1);
|
|
100
100
|
|
|
101
101
|
const UNDEFINED_VALUE = undefined;
|
|
102
|
+
const INFINITY_VALUE = Infinity;
|
|
102
103
|
const UNDEFINED_TYPE = "undefined";
|
|
103
104
|
const FUNCTION_TYPE = "function";
|
|
104
105
|
const OBJECT_TYPE = "object";
|
|
@@ -1958,6 +1959,8 @@ class ChunkStream extends TransformStream {
|
|
|
1958
1959
|
*/
|
|
1959
1960
|
|
|
1960
1961
|
|
|
1962
|
+
const MODULE_WORKER_OPTIONS = { type: "module" };
|
|
1963
|
+
|
|
1961
1964
|
let webWorkerSupported, webWorkerURI, webWorkerOptions;
|
|
1962
1965
|
let transferStreamsSupported = true;
|
|
1963
1966
|
let initModule = () => { };
|
|
@@ -2166,11 +2169,8 @@ function watchClosedStream(writableSource) {
|
|
|
2166
2169
|
return { writable, closed };
|
|
2167
2170
|
}
|
|
2168
2171
|
|
|
2169
|
-
function getWebWorker(url, baseURI, workerData, isModuleType
|
|
2172
|
+
function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
|
|
2170
2173
|
let worker, resolvedURI, resolvedOptions;
|
|
2171
|
-
if (isModuleType) {
|
|
2172
|
-
resolvedOptions = { type: "module" };
|
|
2173
|
-
}
|
|
2174
2174
|
if (webWorkerURI === UNDEFINED_VALUE) {
|
|
2175
2175
|
// deno-lint-ignore valid-typeof
|
|
2176
2176
|
const isFunctionURI = typeof url == FUNCTION_TYPE;
|
|
@@ -2182,6 +2182,12 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
|
|
|
2182
2182
|
const isDataURI = resolvedURI.startsWith("data:");
|
|
2183
2183
|
const isBlobURI = resolvedURI.startsWith("blob:");
|
|
2184
2184
|
if (isDataURI || isBlobURI) {
|
|
2185
|
+
if (isModuleType === UNDEFINED_VALUE) {
|
|
2186
|
+
isModuleType = false;
|
|
2187
|
+
}
|
|
2188
|
+
if (isModuleType) {
|
|
2189
|
+
resolvedOptions = MODULE_WORKER_OPTIONS;
|
|
2190
|
+
}
|
|
2185
2191
|
try {
|
|
2186
2192
|
worker = new Worker(resolvedURI, resolvedOptions);
|
|
2187
2193
|
} catch (error) {
|
|
@@ -2201,6 +2207,12 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
|
|
|
2201
2207
|
}
|
|
2202
2208
|
}
|
|
2203
2209
|
} else {
|
|
2210
|
+
if (isModuleType === UNDEFINED_VALUE) {
|
|
2211
|
+
isModuleType = true;
|
|
2212
|
+
}
|
|
2213
|
+
if (isModuleType) {
|
|
2214
|
+
resolvedOptions = MODULE_WORKER_OPTIONS;
|
|
2215
|
+
}
|
|
2204
2216
|
try {
|
|
2205
2217
|
resolvedURI = new URL(resolvedURI, baseURI);
|
|
2206
2218
|
} catch {
|
|
@@ -2210,7 +2222,7 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
|
|
|
2210
2222
|
worker = new Worker(resolvedURI, resolvedOptions);
|
|
2211
2223
|
} catch (error) {
|
|
2212
2224
|
if (!isModuleType) {
|
|
2213
|
-
return getWebWorker(url, baseURI, workerData,
|
|
2225
|
+
return getWebWorker(url, baseURI, workerData, false, useBlobURI);
|
|
2214
2226
|
} else {
|
|
2215
2227
|
throw error;
|
|
2216
2228
|
}
|
|
@@ -3151,8 +3163,8 @@ class GenericWriter {
|
|
|
3151
3163
|
Object.assign(writer, {
|
|
3152
3164
|
diskNumber: 0,
|
|
3153
3165
|
diskOffset: 0,
|
|
3154
|
-
availableSize:
|
|
3155
|
-
maxSize:
|
|
3166
|
+
availableSize: INFINITY_VALUE,
|
|
3167
|
+
maxSize: INFINITY_VALUE
|
|
3156
3168
|
});
|
|
3157
3169
|
}
|
|
3158
3170
|
return writer;
|
|
@@ -4387,8 +4399,8 @@ class ZipWriter {
|
|
|
4387
4399
|
constructor(writer, options = {}) {
|
|
4388
4400
|
writer = new GenericWriter(writer);
|
|
4389
4401
|
const addSplitZipSignature =
|
|
4390
|
-
writer.availableSize !== UNDEFINED_VALUE && writer.availableSize > 0 && writer.availableSize !==
|
|
4391
|
-
writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !==
|
|
4402
|
+
writer.availableSize !== UNDEFINED_VALUE && writer.availableSize > 0 && writer.availableSize !== INFINITY_VALUE &&
|
|
4403
|
+
writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !== INFINITY_VALUE;
|
|
4392
4404
|
Object.assign(this, {
|
|
4393
4405
|
writer,
|
|
4394
4406
|
addSplitZipSignature,
|
|
@@ -4884,7 +4896,6 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
4884
4896
|
let writingBufferedEntryData;
|
|
4885
4897
|
let writingEntryData;
|
|
4886
4898
|
let fileWriter;
|
|
4887
|
-
let blobPromise;
|
|
4888
4899
|
files.set(name, fileEntry);
|
|
4889
4900
|
try {
|
|
4890
4901
|
let lockPreviousFileEntry;
|
|
@@ -4893,7 +4904,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
4893
4904
|
requestLockCurrentFileEntry();
|
|
4894
4905
|
}
|
|
4895
4906
|
if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
|
|
4896
|
-
fileWriter = new TransformStream();
|
|
4907
|
+
fileWriter = new TransformStream(UNDEFINED_VALUE, UNDEFINED_VALUE, { highWaterMark: INFINITY_VALUE });
|
|
4897
4908
|
fileWriter.size = 0;
|
|
4898
4909
|
bufferedWrite = true;
|
|
4899
4910
|
zipWriter.bufferedWrites++;
|
|
@@ -4924,20 +4935,20 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
4924
4935
|
await skipDiskIfNeeded(writable);
|
|
4925
4936
|
}
|
|
4926
4937
|
const { diskNumber } = writer;
|
|
4927
|
-
writingEntryData = true;
|
|
4928
4938
|
fileEntry.diskNumberStart = diskNumber;
|
|
4929
|
-
if (bufferedWrite) {
|
|
4930
|
-
|
|
4931
|
-
} else {
|
|
4939
|
+
if (!bufferedWrite) {
|
|
4940
|
+
writingEntryData = true;
|
|
4932
4941
|
await writeData(fileWriter, localHeaderArray);
|
|
4933
4942
|
}
|
|
4934
4943
|
fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
|
|
4935
4944
|
const { zip64 } = fileEntry;
|
|
4936
|
-
|
|
4945
|
+
if (!bufferedWrite) {
|
|
4946
|
+
writingEntryData = false;
|
|
4947
|
+
}
|
|
4937
4948
|
files.set(name, fileEntry);
|
|
4938
4949
|
fileEntry.filename = name;
|
|
4939
4950
|
if (bufferedWrite) {
|
|
4940
|
-
|
|
4951
|
+
await Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
|
|
4941
4952
|
await requestLockWriter();
|
|
4942
4953
|
writingBufferedEntryData = true;
|
|
4943
4954
|
fileEntry.diskNumberStart = writer.diskNumber;
|
|
@@ -4948,7 +4959,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
4948
4959
|
updateLocalHeader(fileEntry, localHeaderView, options);
|
|
4949
4960
|
await skipDiskIfNeeded(writable);
|
|
4950
4961
|
await writeData(writer, localHeaderArray);
|
|
4951
|
-
await
|
|
4962
|
+
await fileWriter.readable.pipeTo(writable, { preventClose: true, preventAbort: true, signal });
|
|
4952
4963
|
writer.size += fileWriter.size;
|
|
4953
4964
|
writingBufferedEntryData = false;
|
|
4954
4965
|
} else {
|
|
@@ -4963,7 +4974,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
4963
4974
|
zipWriter.offset += fileEntry.size;
|
|
4964
4975
|
return fileEntry;
|
|
4965
4976
|
} catch (error) {
|
|
4966
|
-
if (
|
|
4977
|
+
if (writingBufferedEntryData || writingEntryData) {
|
|
4967
4978
|
zipWriter.hasCorruptedEntries = true;
|
|
4968
4979
|
if (error) {
|
|
4969
4980
|
try {
|