@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/dist/zip.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
|
|
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,
|
|
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:
|
|
3165
|
-
maxSize:
|
|
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 !==
|
|
4401
|
-
writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !==
|
|
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
|
-
|
|
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
|
-
|
|
4955
|
+
if (!bufferedWrite) {
|
|
4956
|
+
writingEntryData = false;
|
|
4957
|
+
}
|
|
4947
4958
|
files.set(name, fileEntry);
|
|
4948
4959
|
fileEntry.filename = name;
|
|
4949
4960
|
if (bufferedWrite) {
|
|
4950
|
-
|
|
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
|
|
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 (
|
|
4987
|
+
if (writingBufferedEntryData || writingEntryData) {
|
|
4977
4988
|
zipWriter.hasCorruptedEntries = true;
|
|
4978
4989
|
if (error) {
|
|
4979
4990
|
try {
|