@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-native.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 = () => { };
|
|
@@ -2172,11 +2175,8 @@
|
|
|
2172
2175
|
return { writable, closed };
|
|
2173
2176
|
}
|
|
2174
2177
|
|
|
2175
|
-
function getWebWorker(url, baseURI, workerData, isModuleType
|
|
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,
|
|
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:
|
|
3161
|
-
maxSize:
|
|
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 !==
|
|
4397
|
-
writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !==
|
|
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
|
-
|
|
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
|
-
|
|
4951
|
+
if (!bufferedWrite) {
|
|
4952
|
+
writingEntryData = false;
|
|
4953
|
+
}
|
|
4943
4954
|
files.set(name, fileEntry);
|
|
4944
4955
|
fileEntry.filename = name;
|
|
4945
4956
|
if (bufferedWrite) {
|
|
4946
|
-
|
|
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
|
|
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 (
|
|
4983
|
+
if (writingBufferedEntryData || writingEntryData) {
|
|
4973
4984
|
zipWriter.hasCorruptedEntries = true;
|
|
4974
4985
|
if (error) {
|
|
4975
4986
|
try {
|