@zip.js/zip.js 2.6.9 → 2.6.12
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/dist/zip-fs-full.js +9 -3
- package/dist/zip-fs-full.min.js +1 -1
- package/dist/zip-fs.js +9 -3
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-full.js +9 -3
- package/dist/zip-full.min.js +1 -1
- package/dist/zip-no-worker-deflate.min.js +1 -1
- package/dist/zip-no-worker.min.js +1 -1
- package/dist/zip.js +9 -3
- package/dist/zip.min.js +1 -1
- package/index.d.ts +71 -3
- package/lib/core/zip-writer.js +9 -3
- package/package.json +16 -7
- package/tests/all/loader.html +2 -4
- package/tests/all/test-abort-signal-read.js +0 -1
- package/tests/all/test-abort-signal-write.js +0 -1
- package/tests/all/test-array.js +3 -1
- package/tests/all/test-base64.js +3 -1
- package/tests/all/test-blob.js +5 -1
- package/tests/all/test-codecs-interoperability.js +3 -1
- package/tests/all/test-crc.js +7 -12
- package/tests/all/test-crypto.js +3 -1
- package/tests/all/test-custom-io.js +3 -1
- package/tests/all/test-data-descriptor-signature.js +7 -1
- package/tests/all/test-data-descriptor.js +7 -1
- package/tests/all/test-duplicated-filename.js +24 -0
- package/tests/all/test-empty.js +3 -1
- package/tests/all/test-extended-timestamp.js +3 -1
- package/tests/all/test-extra-field.js +3 -2
- package/tests/all/test-fflate-no-worker.js +3 -1
- package/tests/all/test-fflate.js +3 -1
- package/tests/all/test-fs-base64.js +3 -1
- package/tests/all/test-fs-export-options.js +3 -1
- package/tests/all/test-fs-http-import.js +3 -1
- package/tests/all/test-fs-http-reader.js +3 -1
- package/tests/all/test-fs-replace.js +3 -1
- package/tests/all/test-fs-streams.js +3 -1
- package/tests/all/test-fs-text.js +3 -1
- package/tests/all/test-fs-unzip-store.js +3 -1
- package/tests/all/test-fs.js +3 -1
- package/tests/all/test-http-crypto.js +3 -2
- package/tests/all/test-http-range.js +3 -2
- package/tests/all/test-http-zip64.js +3 -2
- package/tests/all/test-invalid-crc.js +3 -1
- package/tests/all/test-no-worker.js +3 -1
- package/tests/all/test-pako-no-worker.js +3 -1
- package/tests/all/test-pako.js +3 -1
- package/tests/all/test-parallel-reads.js +3 -1
- package/tests/all/test-parallel-writes-auto-buffered.js +3 -1
- package/tests/all/test-parallel-writes-ordered.js +4 -2
- package/tests/all/test-parallel-writes.js +3 -1
- package/tests/all/test-readable-stream.js +8 -12
- package/tests/all/test-readable-zip-stream.js +3 -2
- package/tests/all/test-safe-closing.js +3 -1
- package/tests/all/test-store.js +9 -1
- package/tests/all/test-sw.js +0 -1
- package/tests/all/test-worker-timeout.js +7 -12
- package/tests/all/test-wrapped.js +4 -2
- package/tests/all/test-writable-stream.js +23 -25
- package/tests/all/test-zip64-auto.js +3 -1
- package/tests/all/test-zip64-crypto.js +3 -1
- package/tests/all/test-zip64.js +3 -1
- package/tests/all/test-zipcrypto.js +3 -1
- package/tests/node-runner.js +17 -9
- package/tests/tests-data.js +1 -0
- package/build.sh +0 -3
- package/tests/run-tests.sh +0 -3
|
@@ -12,16 +12,11 @@ async function test() {
|
|
|
12
12
|
zip.configure({ chunkSize: 128, terminateWorkerTimeout: Infinity, useWebWorkers: true });
|
|
13
13
|
const blobWriter = new zip.BlobWriter("application/zip");
|
|
14
14
|
const zipWriter = new zip.ZipWriter(blobWriter);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
await zipReader.close();
|
|
23
|
-
zip.terminateWorkers();
|
|
24
|
-
return TEXT_CONTENT == (await data.text()) && entries[0].filename == FILENAME && entries[0].uncompressedSize == TEXT_CONTENT.length;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
15
|
+
await zipWriter.add(FILENAME, new zip.BlobReader(BLOB));
|
|
16
|
+
await zipWriter.close();
|
|
17
|
+
const zipReader = new zip.ZipReader(new zip.BlobReader(blobWriter.getData()));
|
|
18
|
+
const entries = await zipReader.getEntries();
|
|
19
|
+
await entries[0].getData(new zip.BlobWriter(zip.getMimeType(entries[0].filename)));
|
|
20
|
+
await zipReader.close();
|
|
21
|
+
zip.terminateWorkers();
|
|
27
22
|
}
|
|
@@ -19,10 +19,12 @@ async function test() {
|
|
|
19
19
|
await zipWriter.close(COMMENT);
|
|
20
20
|
const zipReader = new zip.ZipReader(new zip.BlobReader(blobWriter.getData()), { extractPrependedData: true });
|
|
21
21
|
const entries = await zipReader.getEntries();
|
|
22
|
-
|
|
22
|
+
await entries[0].getData(new zip.BlobWriter(zip.getMimeType(entries[0].filename)));
|
|
23
23
|
await zipReader.close();
|
|
24
24
|
const comment = Array.from(zipReader.comment).toString();
|
|
25
25
|
const prependedData = Array.from(zipReader.prependedData).toString();
|
|
26
26
|
zip.terminateWorkers();
|
|
27
|
-
|
|
27
|
+
if (prependedData != Array.from(PREPENDED_DATA) || comment != Array.from(COMMENT)) {
|
|
28
|
+
throw new Error();
|
|
29
|
+
}
|
|
28
30
|
}
|
|
@@ -12,30 +12,28 @@ async function test() {
|
|
|
12
12
|
zip.configure({ chunkSize: 128, useWebWorkers: true });
|
|
13
13
|
const blobWriter = new zip.BlobWriter("application/zip");
|
|
14
14
|
const zipWriter = new zip.ZipWriter(blobWriter);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return TEXT_CONTENT == (await new Blob([data]).text()) && writerClosed;
|
|
39
|
-
}
|
|
15
|
+
await zipWriter.add(FILENAME, new zip.BlobReader(BLOB));
|
|
16
|
+
await zipWriter.close();
|
|
17
|
+
const zipReader = new zip.ZipReader(new zip.BlobReader(blobWriter.getData()));
|
|
18
|
+
const entries = await zipReader.getEntries();
|
|
19
|
+
const data = new Uint8Array(entries[0].uncompressedSize);
|
|
20
|
+
let dataOffset = 0;
|
|
21
|
+
let writerClosed;
|
|
22
|
+
const writer = {
|
|
23
|
+
writable: new WritableStream({
|
|
24
|
+
write(chunk) {
|
|
25
|
+
data.set(chunk, dataOffset);
|
|
26
|
+
dataOffset += chunk.length;
|
|
27
|
+
},
|
|
28
|
+
close() {
|
|
29
|
+
writerClosed = true;
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
};
|
|
33
|
+
await entries[0].getData(writer);
|
|
34
|
+
await zipReader.close();
|
|
35
|
+
zip.terminateWorkers();
|
|
36
|
+
if (TEXT_CONTENT != await new Blob([data]).text() || !writerClosed) {
|
|
37
|
+
throw new Error();
|
|
40
38
|
}
|
|
41
39
|
}
|
|
@@ -23,5 +23,7 @@ async function test() {
|
|
|
23
23
|
const data = await entries[0].getData(new zip.BlobWriter(zip.getMimeType(entries[0].filename)));
|
|
24
24
|
await zipReader.close();
|
|
25
25
|
zip.terminateWorkers();
|
|
26
|
-
|
|
26
|
+
if (TEXT_CONTENT != await data.text()) {
|
|
27
|
+
throw new Error();
|
|
28
|
+
}
|
|
27
29
|
}
|
|
@@ -29,5 +29,7 @@ async function test() {
|
|
|
29
29
|
}
|
|
30
30
|
await zipReader.close();
|
|
31
31
|
zip.terminateWorkers();
|
|
32
|
-
|
|
32
|
+
if (TEXT_CONTENT != await data.text() || !entries[0].zip64 || entries[0].uncompressedSize != TEXT_CONTENT.length) {
|
|
33
|
+
throw new Error();
|
|
34
|
+
}
|
|
33
35
|
}
|
package/tests/all/test-zip64.js
CHANGED
|
@@ -19,5 +19,7 @@ async function test() {
|
|
|
19
19
|
const data = await entries[0].getData(new zip.BlobWriter(zip.getMimeType(entries[0].filename)));
|
|
20
20
|
await zipReader.close();
|
|
21
21
|
zip.terminateWorkers();
|
|
22
|
-
|
|
22
|
+
if (TEXT_CONTENT != await data.text() || !entries[0].zip64 || entries[0].uncompressedSize != TEXT_CONTENT.length) {
|
|
23
|
+
throw new Error();
|
|
24
|
+
}
|
|
23
25
|
}
|
|
@@ -35,5 +35,7 @@ async function test() {
|
|
|
35
35
|
}
|
|
36
36
|
await zipReader.close();
|
|
37
37
|
zip.terminateWorkers();
|
|
38
|
-
|
|
38
|
+
if (TEXT_CONTENT != await data.text()) {
|
|
39
|
+
throw new Error();
|
|
40
|
+
}
|
|
39
41
|
}
|
package/tests/node-runner.js
CHANGED
|
@@ -8,25 +8,33 @@ async function runTests() {
|
|
|
8
8
|
let passed = true;
|
|
9
9
|
let passedCount = 0;
|
|
10
10
|
const tests = data.filter(test => !test.env || test.env.includes("node"));
|
|
11
|
-
console.log("
|
|
11
|
+
console.log("\u001b[38;5;240mrunning " + tests.length + " tests from ./node-runner.js\u001b[0m");
|
|
12
|
+
const start = Date.now();
|
|
12
13
|
for (const test of tests) {
|
|
13
14
|
const fn = async () => (await import("./all/" + test.script)).test();
|
|
14
15
|
try {
|
|
15
|
-
|
|
16
|
+
const start = Date.now();
|
|
17
|
+
console.log(test.title + " ...", (await fn(), "\u001b[32mok\u001b[0m"), "\u001b[38;5;240m(" + delayToString(Date.now() - start) + ")\u001b[0m");
|
|
16
18
|
passedCount++;
|
|
17
19
|
} catch (error) {
|
|
18
20
|
passed = false;
|
|
19
|
-
console.error(test.title + "...", "
|
|
21
|
+
console.error(test.title + "...", "\u001b[31mFAILED\u001b[0m");
|
|
20
22
|
console.error(error);
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
25
|
console.log("");
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
console.error("error: Test failed");
|
|
29
|
-
console.log("");
|
|
26
|
+
console.log("\u001b[32mok\u001b[0m", "|", passedCount + " passed", "|", (tests.length - passedCount) + " failed", "\u001b[38;5;240m(" + delayToString(Date.now() - start) + ")\u001b[0m");
|
|
27
|
+
console.log("");
|
|
28
|
+
if (!passed) {
|
|
29
|
+
console.error("\u001b[31merror\u001b[0m: Test failed");
|
|
30
30
|
process.exit(-1);
|
|
31
31
|
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function delayToString(delay) {
|
|
35
|
+
if (delay < 1000) {
|
|
36
|
+
return delay + "ms";
|
|
37
|
+
} else {
|
|
38
|
+
return Math.floor(delay / 1000) + "s";
|
|
39
|
+
}
|
|
32
40
|
}
|
package/tests/tests-data.js
CHANGED
|
@@ -9,6 +9,7 @@ export default ([
|
|
|
9
9
|
{ title: "Custom IO classes", script: "./test-custom-io.js" },
|
|
10
10
|
{ title: "Data descriptor signature", script: "./test-data-descriptor-signature.js" },
|
|
11
11
|
{ title: "Data descriptor", script: "./test-data-descriptor.js" },
|
|
12
|
+
{ title: "Duplicated Filename", script: "./test-duplicated-filename.js" },
|
|
12
13
|
{ title: "Empty zip file", script: "./test-empty.js" },
|
|
13
14
|
{ title: "Extended timestamp", script: "./test-extended-timestamp.js" },
|
|
14
15
|
{ title: "Extra field", script: "./test-extra-field.js" },
|
package/build.sh
DELETED
package/tests/run-tests.sh
DELETED