@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/lib/core/codec-worker.js
CHANGED
|
@@ -44,6 +44,8 @@ import {
|
|
|
44
44
|
MESSAGE_CLOSE
|
|
45
45
|
} from "./streams/codec-stream.js";
|
|
46
46
|
|
|
47
|
+
const MODULE_WORKER_OPTIONS = { type: "module" };
|
|
48
|
+
|
|
47
49
|
let webWorkerSupported, webWorkerURI, webWorkerOptions;
|
|
48
50
|
let transferStreamsSupported = true;
|
|
49
51
|
let initModule = () => { };
|
|
@@ -261,11 +263,8 @@ function watchClosedStream(writableSource) {
|
|
|
261
263
|
return { writable, closed };
|
|
262
264
|
}
|
|
263
265
|
|
|
264
|
-
function getWebWorker(url, baseURI, workerData, isModuleType
|
|
266
|
+
function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
|
|
265
267
|
let worker, resolvedURI, resolvedOptions;
|
|
266
|
-
if (isModuleType) {
|
|
267
|
-
resolvedOptions = { type: "module" };
|
|
268
|
-
}
|
|
269
268
|
if (webWorkerURI === UNDEFINED_VALUE) {
|
|
270
269
|
// deno-lint-ignore valid-typeof
|
|
271
270
|
const isFunctionURI = typeof url == FUNCTION_TYPE;
|
|
@@ -277,6 +276,12 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
|
|
|
277
276
|
const isDataURI = resolvedURI.startsWith("data:");
|
|
278
277
|
const isBlobURI = resolvedURI.startsWith("blob:");
|
|
279
278
|
if (isDataURI || isBlobURI) {
|
|
279
|
+
if (isModuleType === UNDEFINED_VALUE) {
|
|
280
|
+
isModuleType = false;
|
|
281
|
+
}
|
|
282
|
+
if (isModuleType) {
|
|
283
|
+
resolvedOptions = MODULE_WORKER_OPTIONS;
|
|
284
|
+
}
|
|
280
285
|
try {
|
|
281
286
|
worker = new Worker(resolvedURI, resolvedOptions);
|
|
282
287
|
} catch (error) {
|
|
@@ -296,6 +301,12 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
|
|
|
296
301
|
}
|
|
297
302
|
}
|
|
298
303
|
} else {
|
|
304
|
+
if (isModuleType === UNDEFINED_VALUE) {
|
|
305
|
+
isModuleType = true;
|
|
306
|
+
}
|
|
307
|
+
if (isModuleType) {
|
|
308
|
+
resolvedOptions = MODULE_WORKER_OPTIONS;
|
|
309
|
+
}
|
|
299
310
|
try {
|
|
300
311
|
resolvedURI = new URL(resolvedURI, baseURI);
|
|
301
312
|
} catch {
|
|
@@ -305,7 +316,7 @@ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI
|
|
|
305
316
|
worker = new Worker(resolvedURI, resolvedOptions);
|
|
306
317
|
} catch (error) {
|
|
307
318
|
if (!isModuleType) {
|
|
308
|
-
return getWebWorker(url, baseURI, workerData,
|
|
319
|
+
return getWebWorker(url, baseURI, workerData, false, useBlobURI);
|
|
309
320
|
} else {
|
|
310
321
|
throw error;
|
|
311
322
|
}
|
package/lib/core/options.js
CHANGED
|
@@ -48,6 +48,7 @@ const OPTION_EXTENDED_TIMESTAMP = "extendedTimestamp";
|
|
|
48
48
|
const OPTION_KEEP_ORDER = "keepOrder";
|
|
49
49
|
const OPTION_LEVEL = "level";
|
|
50
50
|
const OPTION_BUFFERED_WRITE = "bufferedWrite";
|
|
51
|
+
const OPTION_CREATE_TEMP_STREAM = "createTempStream";
|
|
51
52
|
const OPTION_DATA_DESCRIPTOR_SIGNATURE = "dataDescriptorSignature";
|
|
52
53
|
const OPTION_USE_UNICODE_FILE_NAMES = "useUnicodeFileNames";
|
|
53
54
|
const OPTION_DATA_DESCRIPTOR = "dataDescriptor";
|
|
@@ -80,6 +81,7 @@ export {
|
|
|
80
81
|
OPTION_KEEP_ORDER,
|
|
81
82
|
OPTION_LEVEL,
|
|
82
83
|
OPTION_BUFFERED_WRITE,
|
|
84
|
+
OPTION_CREATE_TEMP_STREAM,
|
|
83
85
|
OPTION_DATA_DESCRIPTOR_SIGNATURE,
|
|
84
86
|
OPTION_USE_UNICODE_FILE_NAMES,
|
|
85
87
|
OPTION_DATA_DESCRIPTOR,
|
package/lib/core/zip-writer.js
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
27
27
|
*/
|
|
28
28
|
|
|
29
|
-
/* global TransformStream
|
|
29
|
+
/* global TransformStream */
|
|
30
30
|
// deno-lint-ignore-file no-this-alias
|
|
31
31
|
|
|
32
32
|
import {
|
|
@@ -701,7 +701,6 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
701
701
|
let writingBufferedEntryData;
|
|
702
702
|
let writingEntryData;
|
|
703
703
|
let fileWriter;
|
|
704
|
-
let blobPromise;
|
|
705
704
|
files.set(name, fileEntry);
|
|
706
705
|
try {
|
|
707
706
|
let lockPreviousFileEntry;
|
|
@@ -710,7 +709,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
710
709
|
requestLockCurrentFileEntry();
|
|
711
710
|
}
|
|
712
711
|
if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
|
|
713
|
-
fileWriter = new TransformStream();
|
|
712
|
+
fileWriter = new TransformStream(undefined, undefined, { highWaterMark: Infinity });
|
|
714
713
|
fileWriter.size = 0;
|
|
715
714
|
bufferedWrite = true;
|
|
716
715
|
zipWriter.bufferedWrites++;
|
|
@@ -741,20 +740,20 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
741
740
|
await skipDiskIfNeeded(writable);
|
|
742
741
|
}
|
|
743
742
|
const { diskNumber } = writer;
|
|
744
|
-
writingEntryData = true;
|
|
745
743
|
fileEntry.diskNumberStart = diskNumber;
|
|
746
|
-
if (bufferedWrite) {
|
|
747
|
-
|
|
748
|
-
} else {
|
|
744
|
+
if (!bufferedWrite) {
|
|
745
|
+
writingEntryData = true;
|
|
749
746
|
await writeData(fileWriter, localHeaderArray);
|
|
750
747
|
}
|
|
751
748
|
fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
|
|
752
749
|
const { zip64 } = fileEntry;
|
|
753
|
-
|
|
750
|
+
if (!bufferedWrite) {
|
|
751
|
+
writingEntryData = false;
|
|
752
|
+
}
|
|
754
753
|
files.set(name, fileEntry);
|
|
755
754
|
fileEntry.filename = name;
|
|
756
755
|
if (bufferedWrite) {
|
|
757
|
-
|
|
756
|
+
await Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
|
|
758
757
|
await requestLockWriter();
|
|
759
758
|
writingBufferedEntryData = true;
|
|
760
759
|
fileEntry.diskNumberStart = writer.diskNumber;
|
|
@@ -765,7 +764,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
765
764
|
updateLocalHeader(fileEntry, localHeaderView, options);
|
|
766
765
|
await skipDiskIfNeeded(writable);
|
|
767
766
|
await writeData(writer, localHeaderArray);
|
|
768
|
-
await
|
|
767
|
+
await fileWriter.readable.pipeTo(writable, { preventClose: true, preventAbort: true, signal });
|
|
769
768
|
writer.size += fileWriter.size;
|
|
770
769
|
writingBufferedEntryData = false;
|
|
771
770
|
} else {
|
|
@@ -780,7 +779,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
780
779
|
zipWriter.offset += fileEntry.size;
|
|
781
780
|
return fileEntry;
|
|
782
781
|
} catch (error) {
|
|
783
|
-
if (
|
|
782
|
+
if (writingBufferedEntryData || writingEntryData) {
|
|
784
783
|
zipWriter.hasCorruptedEntries = true;
|
|
785
784
|
if (error) {
|
|
786
785
|
try {
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "A JavaScript library to zip and unzip files in the browser, Deno and Node.js",
|
|
4
4
|
"author": "Gildas Lormeau",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
|
-
"version": "2.8.
|
|
6
|
+
"version": "2.8.18",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"zip",
|
|
@@ -156,11 +156,11 @@
|
|
|
156
156
|
"devDependencies": {
|
|
157
157
|
"@rollup/plugin-replace": "^6.0.3",
|
|
158
158
|
"@rollup/plugin-terser": "^0.4.4",
|
|
159
|
-
"eslint": "^
|
|
159
|
+
"eslint": "^10.0.0",
|
|
160
160
|
"http-server": "^14.1.1",
|
|
161
161
|
"rollup": "^4.57.1",
|
|
162
162
|
"typedoc": "^0.28.16",
|
|
163
|
-
"typedoc-plugin-markdown": "^4.
|
|
163
|
+
"typedoc-plugin-markdown": "^4.10.0"
|
|
164
164
|
},
|
|
165
165
|
"dependencies": {
|
|
166
166
|
"web-worker": "^1.5.0"
|