Socket
Socket
Sign inDemoInstall

jszip

Package Overview
Dependencies
12
Maintainers
3
Versions
38
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 3.10.0 to 3.10.1

.eslintrc.js

18

CHANGES.md

@@ -7,6 +7,19 @@ ---

### v3.10.1 2022-08-02
- Add sponsorship files.
+ If you appreciate the time spent maintaining JSZip then I would really appreciate [your sponsorship](https://github.com/sponsors/Stuk).
- Consolidate metadata types and expose OnUpdateCallback [#851](https://github.com/Stuk/jszip/pull/851) and [#852](https://github.com/Stuk/jszip/pull/852)
- use `const` instead `var` in example from README.markdown [#828](https://github.com/Stuk/jszip/pull/828)
- Switch manual download link to HTTPS [#839](https://github.com/Stuk/jszip/pull/839)
Internals:
- Replace jshint with eslint [#842](https://github.com/Stuk/jszip/pull/842)
- Add performance tests [#834](https://github.com/Stuk/jszip/pull/834)
### v3.10.0 2022-05-20
- Change setimmediate dependency to more efficient one. Fixes https://github.com/Stuk/jszip/issues/617 (see [#829](https://github.com/Stuk/jszip/pull/829)
- Update types of `currentFile` metadata to include `null` (see [#826](https://github.com/Stuk/jszip/pull/826)
- Change setimmediate dependency to more efficient one. Fixes https://github.com/Stuk/jszip/issues/617 (see [#829](https://github.com/Stuk/jszip/pull/829))
- Update types of `currentFile` metadata to include `null` (see [#826](https://github.com/Stuk/jszip/pull/826))

@@ -193,2 +206,1 @@ ### v3.9.1 2022-04-06

- First release after a long period without version.

23

index.d.ts

@@ -26,9 +26,2 @@ // Type definitions for JSZip 3.1

interface Metadata {
percent: number;
currentFile: string | null;
}
type OnUpdateCallback = (metadata: Metadata) => void;
interface InputByType {

@@ -75,2 +68,9 @@ base64: string;

interface JSZipMetadata {
percent: number;
currentFile: string | null;
}
type OnUpdateCallback = (metadata: JSZipMetadata) => void;
interface JSZipObject {

@@ -175,7 +175,2 @@ name: string;

interface JSZipMetadata {
percent: number;
currentFile: string;
}
type DataEventCallback<T> = (dataChunk: T, metadata: JSZipMetadata) => void

@@ -293,3 +288,3 @@ type EndEventCallback = () => void

*/
generateAsync<T extends JSZip.OutputType>(options?: JSZip.JSZipGeneratorOptions<T>, onUpdate?: OnUpdateCallback): Promise<OutputByType[T]>;
generateAsync<T extends JSZip.OutputType>(options?: JSZip.JSZipGeneratorOptions<T>, onUpdate?: JSZip.OnUpdateCallback): Promise<OutputByType[T]>;

@@ -303,3 +298,3 @@ /**

*/
generateNodeStream(options?: JSZip.JSZipGeneratorOptions<'nodebuffer'>, onUpdate?: OnUpdateCallback): NodeJS.ReadableStream;
generateNodeStream(options?: JSZip.JSZipGeneratorOptions<'nodebuffer'>, onUpdate?: JSZip.OnUpdateCallback): NodeJS.ReadableStream;

@@ -306,0 +301,0 @@ /**

@@ -1,4 +0,4 @@

'use strict';
var utils = require('./utils');
var support = require('./support');
"use strict";
var utils = require("./utils");
var support = require("./support");
// private property

@@ -58,3 +58,3 @@ var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
input = input.replace(/[^A-Za-z0-9+/=]/g, "");

@@ -61,0 +61,0 @@ var totalLength = input.length * 3 / 4;

@@ -1,7 +0,7 @@

'use strict';
"use strict";
var external = require("./external");
var DataWorker = require('./stream/DataWorker');
var Crc32Probe = require('./stream/Crc32Probe');
var DataLengthProbe = require('./stream/DataLengthProbe');
var DataWorker = require("./stream/DataWorker");
var Crc32Probe = require("./stream/Crc32Probe");
var DataLengthProbe = require("./stream/DataLengthProbe");

@@ -37,3 +37,3 @@ /**

worker.on("end", function () {
if (this.streamInfo['data_length'] !== that.uncompressedSize) {
if (this.streamInfo["data_length"] !== that.uncompressedSize) {
throw new Error("Bug : uncompressed data size mismatch");

@@ -54,3 +54,3 @@ }

.withStreamInfo("compression", this.compression)
;
;
}

@@ -57,0 +57,0 @@ };

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -7,3 +7,3 @@ var GenericWorker = require("./stream/GenericWorker");

magic: "\x00\x00",
compressWorker : function (compressionOptions) {
compressWorker : function () {
return new GenericWorker("STORE compression");

@@ -15,2 +15,2 @@ },

};
exports.DEFLATE = require('./flate');
exports.DEFLATE = require("./flate");

@@ -1,4 +0,4 @@

'use strict';
"use strict";
var utils = require('./utils');
var utils = require("./utils");

@@ -5,0 +5,0 @@ /**

@@ -1,2 +0,2 @@

'use strict';
"use strict";
exports.base64 = false;

@@ -3,0 +3,0 @@ exports.binary = false;

@@ -1,3 +0,2 @@

/* global Promise */
'use strict';
"use strict";

@@ -4,0 +3,0 @@ // load the global object first:

@@ -1,3 +0,3 @@

'use strict';
var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');
"use strict";
var USE_TYPEDARRAY = (typeof Uint8Array !== "undefined") && (typeof Uint16Array !== "undefined") && (typeof Uint32Array !== "undefined");

@@ -4,0 +4,0 @@ var pako = require("pako");

@@ -1,5 +0,5 @@

'use strict';
"use strict";
var compressions = require('../compressions');
var ZipFileWorker = require('./ZipFileWorker');
var compressions = require("../compressions");
var ZipFileWorker = require("./ZipFileWorker");

@@ -41,11 +41,11 @@ /**

file._compressWorker(compression, compressionOptions)
.withStreamInfo("file", {
name : relativePath,
dir : dir,
date : date,
comment : file.comment || "",
unixPermissions : file.unixPermissions,
dosPermissions : file.dosPermissions
})
.pipe(zipFileWorker);
.withStreamInfo("file", {
name : relativePath,
dir : dir,
date : date,
comment : file.comment || "",
unixPermissions : file.unixPermissions,
dosPermissions : file.dosPermissions
})
.pipe(zipFileWorker);
});

@@ -52,0 +52,0 @@ zipFileWorker.entriesCount = entriesCount;

@@ -1,8 +0,8 @@

'use strict';
"use strict";
var utils = require('../utils');
var GenericWorker = require('../stream/GenericWorker');
var utf8 = require('../utf8');
var crc32 = require('../crc32');
var signature = require('../signature');
var utils = require("../utils");
var GenericWorker = require("../stream/GenericWorker");
var utf8 = require("../utf8");
var crc32 = require("../crc32");
var signature = require("../signature");

@@ -65,4 +65,3 @@ /**

*/
var generateDosExternalFileAttr = function (dosPermissions, isDir) {
var generateDosExternalFileAttr = function (dosPermissions) {
// the dir flag is already set for compatibility

@@ -83,19 +82,19 @@ return (dosPermissions || 0) & 0x3F;

var generateZipParts = function(streamInfo, streamedContent, streamingEnded, offset, platform, encodeFileName) {
var file = streamInfo['file'],
compression = streamInfo['compression'],
useCustomEncoding = encodeFileName !== utf8.utf8encode,
encodedFileName = utils.transformTo("string", encodeFileName(file.name)),
utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)),
comment = file.comment,
encodedComment = utils.transformTo("string", encodeFileName(comment)),
utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)),
useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,
useUTF8ForComment = utfEncodedComment.length !== comment.length,
dosTime,
dosDate,
extraFields = "",
unicodePathExtraField = "",
unicodeCommentExtraField = "",
dir = file.dir,
date = file.date;
var file = streamInfo["file"],
compression = streamInfo["compression"],
useCustomEncoding = encodeFileName !== utf8.utf8encode,
encodedFileName = utils.transformTo("string", encodeFileName(file.name)),
utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)),
comment = file.comment,
encodedComment = utils.transformTo("string", encodeFileName(comment)),
utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)),
useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,
useUTF8ForComment = utfEncodedComment.length !== comment.length,
dosTime,
dosDate,
extraFields = "",
unicodePathExtraField = "",
unicodeCommentExtraField = "",
dir = file.dir,
date = file.date;

@@ -112,5 +111,5 @@

if (!streamedContent || streamingEnded) {
dataInfo.crc32 = streamInfo['crc32'];
dataInfo.compressedSize = streamInfo['compressedSize'];
dataInfo.uncompressedSize = streamInfo['uncompressedSize'];
dataInfo.crc32 = streamInfo["crc32"];
dataInfo.compressedSize = streamInfo["compressedSize"];
dataInfo.uncompressedSize = streamInfo["uncompressedSize"];
}

@@ -307,7 +306,7 @@

// crc-32 4 bytes
decToHex(streamInfo['crc32'], 4) +
decToHex(streamInfo["crc32"], 4) +
// compressed size 4 bytes
decToHex(streamInfo['compressedSize'], 4) +
decToHex(streamInfo["compressedSize"], 4) +
// uncompressed size 4 bytes
decToHex(streamInfo['uncompressedSize'], 4);
decToHex(streamInfo["uncompressedSize"], 4);

@@ -391,5 +390,5 @@ return descriptor;

this.currentSourceOffset = this.bytesWritten;
this.currentFile = streamInfo['file'].name;
this.currentFile = streamInfo["file"].name;
var streamedContent = this.streamFiles && !streamInfo['file'].dir;
var streamedContent = this.streamFiles && !streamInfo["file"].dir;

@@ -415,3 +414,3 @@ // don't stream folders (because they don't have any content)

this.accumulate = false;
var streamedContent = this.streamFiles && !streamInfo['file'].dir;
var streamedContent = this.streamFiles && !streamInfo["file"].dir;
var record = generateZipParts(streamInfo, streamedContent, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);

@@ -482,6 +481,6 @@

previous.on('data', function (chunk) {
previous.on("data", function (chunk) {
self.processChunk(chunk);
});
previous.on('end', function () {
previous.on("end", function () {
self.closedSource(self.previous.streamInfo);

@@ -494,3 +493,3 @@ if(self._sources.length) {

});
previous.on('error', function (e) {
previous.on("error", function (e) {
self.error(e);

@@ -497,0 +496,0 @@ });

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -8,3 +8,3 @@ /**

function JSZip() {
// if this constructor is used without `new`, it adds `new` before itself:
// if this constructor is used without `new`, it adds `new` before itself:
if(!(this instanceof JSZip)) {

@@ -42,10 +42,10 @@ return new JSZip();

}
JSZip.prototype = require('./object');
JSZip.prototype.loadAsync = require('./load');
JSZip.support = require('./support');
JSZip.defaults = require('./defaults');
JSZip.prototype = require("./object");
JSZip.prototype.loadAsync = require("./load");
JSZip.support = require("./support");
JSZip.defaults = require("./defaults");
// TODO find a better way to handle this version,
// a require('package.json').version doesn't work with webpack, see #327
JSZip.version = "3.10.0";
JSZip.version = "3.10.1";

@@ -52,0 +52,0 @@ JSZip.loadAsync = function (content, options) {

@@ -1,7 +0,7 @@

'use strict';
var utils = require('./utils');
"use strict";
var utils = require("./utils");
var external = require("./external");
var utf8 = require('./utf8');
var ZipEntries = require('./zipEntries');
var Crc32Probe = require('./stream/Crc32Probe');
var utf8 = require("./utf8");
var ZipEntries = require("./zipEntries");
var Crc32Probe = require("./stream/Crc32Probe");
var nodejsUtils = require("./nodejsUtils");

@@ -8,0 +8,0 @@

"use strict";
var utils = require('../utils');
var GenericWorker = require('../stream/GenericWorker');
var utils = require("../utils");
var GenericWorker = require("../stream/GenericWorker");

@@ -30,24 +30,24 @@ /**

stream
.on("data", function (chunk) {
self.push({
data: chunk,
meta : {
percent : 0
.on("data", function (chunk) {
self.push({
data: chunk,
meta : {
percent : 0
}
});
})
.on("error", function (e) {
if(self.isPaused) {
this.generatedError = e;
} else {
self.error(e);
}
})
.on("end", function () {
if(self.isPaused) {
self._upstreamEnded = true;
} else {
self.end();
}
});
})
.on("error", function (e) {
if(self.isPaused) {
this.generatedError = e;
} else {
self.error(e);
}
})
.on("end", function () {
if(self.isPaused) {
self._upstreamEnded = true;
} else {
self.end();
}
});
};

@@ -54,0 +54,0 @@ NodejsStreamInputAdapter.prototype.pause = function () {

@@ -1,6 +0,6 @@

'use strict';
"use strict";
var Readable = require('readable-stream').Readable;
var Readable = require("readable-stream").Readable;
var utils = require('../utils');
var utils = require("../utils");
utils.inherits(NodejsStreamOutputAdapter, Readable);

@@ -29,8 +29,8 @@

})
.on("error", function(e) {
self.emit('error', e);
})
.on("end", function () {
self.push(null);
});
.on("error", function(e) {
self.emit("error", e);
})
.on("end", function () {
self.push(null);
});
}

@@ -37,0 +37,0 @@

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -3,0 +3,0 @@ module.exports = {

@@ -1,9 +0,9 @@

'use strict';
var utf8 = require('./utf8');
var utils = require('./utils');
var GenericWorker = require('./stream/GenericWorker');
var StreamHelper = require('./stream/StreamHelper');
var defaults = require('./defaults');
var CompressedObject = require('./compressedObject');
var ZipObject = require('./zipObject');
"use strict";
var utf8 = require("./utf8");
var utils = require("./utils");
var GenericWorker = require("./stream/GenericWorker");
var StreamHelper = require("./stream/StreamHelper");
var defaults = require("./defaults");
var CompressedObject = require("./compressedObject");
var ZipObject = require("./zipObject");
var generate = require("./generate");

@@ -110,6 +110,6 @@ var nodejsUtils = require("./nodejsUtils");

var parentFolder = function (path) {
if (path.slice(-1) === '/') {
if (path.slice(-1) === "/") {
path = path.substring(0, path.length - 1);
}
var lastSlash = path.lastIndexOf('/');
var lastSlash = path.lastIndexOf("/");
return (lastSlash > 0) ? path.substring(0, lastSlash) : "";

@@ -141,3 +141,3 @@ };

var folderAdd = function(name, createFolders) {
createFolders = (typeof createFolders !== 'undefined') ? createFolders : defaults.createFolders;
createFolders = (typeof createFolders !== "undefined") ? createFolders : defaults.createFolders;

@@ -184,4 +184,4 @@ name = forceTrailingSlash(name);

var filename, relativePath, file;
/* jshint ignore:start */
// ignore warning about unwanted properties because this.files is a null prototype object
/* eslint-disable-next-line guard-for-in */
for (filename in this.files) {

@@ -194,3 +194,2 @@ file = this.files[filename];

}
/* jshint ignore:end */
},

@@ -308,9 +307,5 @@

/**
* Generate the complete zip file
* @param {Object} options the options to generate the zip file :
* - compression, "STORE" by default.
* - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob.
* @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file
* @deprecated This method has been removed in JSZip 3.0, please check the upgrade guide.
*/
generate: function(options) {
generate: function() {
throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");

@@ -327,49 +322,49 @@ },

generateInternalStream: function(options) {
var worker, opts = {};
try {
opts = utils.extend(options || {}, {
streamFiles: false,
compression: "STORE",
compressionOptions : null,
type: "",
platform: "DOS",
comment: null,
mimeType: 'application/zip',
encodeFileName: utf8.utf8encode
});
var worker, opts = {};
try {
opts = utils.extend(options || {}, {
streamFiles: false,
compression: "STORE",
compressionOptions : null,
type: "",
platform: "DOS",
comment: null,
mimeType: "application/zip",
encodeFileName: utf8.utf8encode
});
opts.type = opts.type.toLowerCase();
opts.compression = opts.compression.toUpperCase();
opts.type = opts.type.toLowerCase();
opts.compression = opts.compression.toUpperCase();
// "binarystring" is preferred but the internals use "string".
if(opts.type === "binarystring") {
opts.type = "string";
}
// "binarystring" is preferred but the internals use "string".
if(opts.type === "binarystring") {
opts.type = "string";
}
if (!opts.type) {
throw new Error("No output type specified.");
}
if (!opts.type) {
throw new Error("No output type specified.");
}
utils.checkSupport(opts.type);
utils.checkSupport(opts.type);
// accept nodejs `process.platform`
if(
opts.platform === 'darwin' ||
opts.platform === 'freebsd' ||
opts.platform === 'linux' ||
opts.platform === 'sunos'
) {
opts.platform = "UNIX";
}
if (opts.platform === 'win32') {
opts.platform = "DOS";
}
// accept nodejs `process.platform`
if(
opts.platform === "darwin" ||
opts.platform === "freebsd" ||
opts.platform === "linux" ||
opts.platform === "sunos"
) {
opts.platform = "UNIX";
}
if (opts.platform === "win32") {
opts.platform = "DOS";
}
var comment = opts.comment || this.comment || "";
worker = generate.generateWorker(this, opts, comment);
} catch (e) {
worker = new GenericWorker("error");
worker.error(e);
}
return new StreamHelper(worker, opts.type || "string", opts.mimeType);
var comment = opts.comment || this.comment || "";
worker = generate.generateWorker(this, opts, comment);
} catch (e) {
worker = new GenericWorker("error");
worker.error(e);
}
return new StreamHelper(worker, opts.type || "string", opts.mimeType);
},

@@ -376,0 +371,0 @@ /**

@@ -0,1 +1,2 @@

"use strict";
/*

@@ -2,0 +3,0 @@ * This file is used by module bundlers (browserify/webpack/etc) when

@@ -1,10 +0,10 @@

'use strict';
var DataReader = require('./DataReader');
var utils = require('../utils');
"use strict";
var DataReader = require("./DataReader");
var utils = require("../utils");
function ArrayReader(data) {
DataReader.call(this, data);
for(var i = 0; i < this.data.length; i++) {
data[i] = data[i] & 0xFF;
}
for(var i = 0; i < this.data.length; i++) {
data[i] = data[i] & 0xFF;
}
}

@@ -11,0 +11,0 @@ utils.inherits(ArrayReader, DataReader);

@@ -1,3 +0,3 @@

'use strict';
var utils = require('../utils');
"use strict";
var utils = require("../utils");

@@ -51,3 +51,3 @@ function DataReader(data) {

*/
byteAt: function(i) {
byteAt: function() {
// see implementations

@@ -83,3 +83,3 @@ },

*/
readData: function(size) {
readData: function() {
// see implementations

@@ -92,3 +92,3 @@ },

*/
lastIndexOfSignature: function(sig) {
lastIndexOfSignature: function() {
// see implementations

@@ -101,3 +101,3 @@ },

*/
readAndCheckSignature: function(sig) {
readAndCheckSignature: function() {
// see implementations

@@ -112,10 +112,10 @@ },

return new Date(Date.UTC(
((dostime >> 25) & 0x7f) + 1980, // year
((dostime >> 21) & 0x0f) - 1, // month
(dostime >> 16) & 0x1f, // day
(dostime >> 11) & 0x1f, // hour
(dostime >> 5) & 0x3f, // minute
(dostime & 0x1f) << 1)); // second
((dostime >> 25) & 0x7f) + 1980, // year
((dostime >> 21) & 0x0f) - 1, // month
(dostime >> 16) & 0x1f, // day
(dostime >> 11) & 0x1f, // hour
(dostime >> 5) & 0x3f, // minute
(dostime & 0x1f) << 1)); // second
}
};
module.exports = DataReader;

@@ -1,4 +0,4 @@

'use strict';
var Uint8ArrayReader = require('./Uint8ArrayReader');
var utils = require('../utils');
"use strict";
var Uint8ArrayReader = require("./Uint8ArrayReader");
var utils = require("../utils");

@@ -5,0 +5,0 @@ function NodeBufferReader(data) {

@@ -1,9 +0,9 @@

'use strict';
"use strict";
var utils = require('../utils');
var support = require('../support');
var ArrayReader = require('./ArrayReader');
var StringReader = require('./StringReader');
var NodeBufferReader = require('./NodeBufferReader');
var Uint8ArrayReader = require('./Uint8ArrayReader');
var utils = require("../utils");
var support = require("../support");
var ArrayReader = require("./ArrayReader");
var StringReader = require("./StringReader");
var NodeBufferReader = require("./NodeBufferReader");
var Uint8ArrayReader = require("./Uint8ArrayReader");

@@ -10,0 +10,0 @@ /**

@@ -1,4 +0,4 @@

'use strict';
var DataReader = require('./DataReader');
var utils = require('../utils');
"use strict";
var DataReader = require("./DataReader");
var utils = require("../utils");

@@ -5,0 +5,0 @@ function StringReader(data) {

@@ -1,4 +0,4 @@

'use strict';
var ArrayReader = require('./ArrayReader');
var utils = require('../utils');
"use strict";
var ArrayReader = require("./ArrayReader");
var utils = require("../utils");

@@ -5,0 +5,0 @@ function Uint8ArrayReader(data) {

@@ -1,2 +0,2 @@

'use strict';
"use strict";
exports.LOCAL_FILE_HEADER = "PK\x03\x04";

@@ -3,0 +3,0 @@ exports.CENTRAL_FILE_HEADER = "PK\x01\x02";

@@ -1,5 +0,5 @@

'use strict';
"use strict";
var GenericWorker = require('./GenericWorker');
var utils = require('../utils');
var GenericWorker = require("./GenericWorker");
var utils = require("../utils");

@@ -6,0 +6,0 @@ /**

@@ -1,6 +0,6 @@

'use strict';
"use strict";
var GenericWorker = require('./GenericWorker');
var crc32 = require('../crc32');
var utils = require('../utils');
var GenericWorker = require("./GenericWorker");
var crc32 = require("../crc32");
var utils = require("../utils");

@@ -7,0 +7,0 @@ /**

@@ -1,5 +0,5 @@

'use strict';
"use strict";
var utils = require('../utils');
var GenericWorker = require('./GenericWorker');
var utils = require("../utils");
var GenericWorker = require("./GenericWorker");

@@ -6,0 +6,0 @@ /**

@@ -1,5 +0,5 @@

'use strict';
"use strict";
var utils = require('../utils');
var GenericWorker = require('./GenericWorker');
var utils = require("../utils");
var GenericWorker = require("./GenericWorker");

@@ -95,11 +95,11 @@ // the size of the generated chunks

switch(this.type) {
case "string":
data = this.data.substring(this.index, nextIndex);
case "string":
data = this.data.substring(this.index, nextIndex);
break;
case "uint8array":
data = this.data.subarray(this.index, nextIndex);
case "uint8array":
data = this.data.subarray(this.index, nextIndex);
break;
case "array":
case "nodebuffer":
data = this.data.slice(this.index, nextIndex);
case "array":
case "nodebuffer":
data = this.data.slice(this.index, nextIndex);
break;

@@ -106,0 +106,0 @@ }

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -34,5 +34,5 @@ /**

this._listeners = {
'data':[],
'end':[],
'error':[]
"data":[],
"end":[],
"error":[]
};

@@ -154,9 +154,9 @@ // the previous worker, if any

var self = this;
previous.on('data', function (chunk) {
previous.on("data", function (chunk) {
self.processChunk(chunk);
});
previous.on('end', function () {
previous.on("end", function () {
self.end();
});
previous.on('error', function (e) {
previous.on("error", function (e) {
self.error(e);

@@ -230,3 +230,3 @@ });

for(var key in this.extraStreamInfo) {
if (!this.extraStreamInfo.hasOwnProperty(key)) {
if (!Object.prototype.hasOwnProperty.call(this.extraStreamInfo, key)) {
continue;

@@ -233,0 +233,0 @@ }

@@ -1,7 +0,7 @@

'use strict';
"use strict";
var utils = require('../utils');
var ConvertWorker = require('./ConvertWorker');
var GenericWorker = require('./GenericWorker');
var base64 = require('../base64');
var utils = require("../utils");
var ConvertWorker = require("./ConvertWorker");
var GenericWorker = require("./GenericWorker");
var base64 = require("../base64");
var support = require("../support");

@@ -13,4 +13,6 @@ var external = require("../external");

try {
NodejsStreamOutputAdapter = require('../nodejs/NodejsStreamOutputAdapter');
} catch(e) {}
NodejsStreamOutputAdapter = require("../nodejs/NodejsStreamOutputAdapter");
} catch(e) {
// ignore
}
}

@@ -29,8 +31,8 @@

switch(type) {
case "blob" :
return utils.newBlob(utils.transformTo("arraybuffer", content), mimeType);
case "base64" :
return base64.encode(content);
default :
return utils.transformTo(type, content);
case "blob" :
return utils.newBlob(utils.transformTo("arraybuffer", content), mimeType);
case "base64" :
return base64.encode(content);
default :
return utils.transformTo(type, content);
}

@@ -52,17 +54,17 @@ }

switch(type) {
case "string":
return dataArray.join("");
case "array":
return Array.prototype.concat.apply([], dataArray);
case "uint8array":
res = new Uint8Array(totalLength);
for(i = 0; i < dataArray.length; i++) {
res.set(dataArray[i], index);
index += dataArray[i].length;
}
return res;
case "nodebuffer":
return Buffer.concat(dataArray);
default:
throw new Error("concat : unsupported type '" + type + "'");
case "string":
return dataArray.join("");
case "array":
return Array.prototype.concat.apply([], dataArray);
case "uint8array":
res = new Uint8Array(totalLength);
for(i = 0; i < dataArray.length; i++) {
res.set(dataArray[i], index);
index += dataArray[i].length;
}
return res;
case "nodebuffer":
return Buffer.concat(dataArray);
default:
throw new Error("concat : unsupported type '" + type + "'");
}

@@ -87,22 +89,22 @@ }

helper
.on('data', function (data, meta) {
dataArray.push(data);
if(updateCallback) {
updateCallback(meta);
}
})
.on('error', function(err) {
dataArray = [];
reject(err);
})
.on('end', function (){
try {
var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType);
resolve(result);
} catch (e) {
reject(e);
}
dataArray = [];
})
.resume();
.on("data", function (data, meta) {
dataArray.push(data);
if(updateCallback) {
updateCallback(meta);
}
})
.on("error", function(err) {
dataArray = [];
reject(err);
})
.on("end", function (){
try {
var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType);
resolve(result);
} catch (e) {
reject(e);
}
dataArray = [];
})
.resume();
});

@@ -121,8 +123,8 @@ }

switch(outputType) {
case "blob":
case "arraybuffer":
internalType = "uint8array";
case "blob":
case "arraybuffer":
internalType = "uint8array";
break;
case "base64":
internalType = "string";
case "base64":
internalType = "string";
break;

@@ -129,0 +131,0 @@ }

@@ -1,2 +0,2 @@

'use strict';
"use strict";

@@ -26,3 +26,3 @@ exports.base64 = true;

builder.append(buffer);
exports.blob = builder.getBlob('application/zip').size === 0;
exports.blob = builder.getBlob("application/zip").size === 0;
}

@@ -36,5 +36,5 @@ catch (e) {

try {
exports.nodestream = !!require('readable-stream').Readable;
exports.nodestream = !!require("readable-stream").Readable;
} catch(e) {
exports.nodestream = false;
}

@@ -1,7 +0,7 @@

'use strict';
"use strict";
var utils = require('./utils');
var support = require('./support');
var nodejsUtils = require('./nodejsUtils');
var GenericWorker = require('./stream/GenericWorker');
var utils = require("./utils");
var support = require("./support");
var nodejsUtils = require("./nodejsUtils");
var GenericWorker = require("./stream/GenericWorker");

@@ -18,3 +18,3 @@ /**

for (var i=0; i<256; i++) {
_utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);
_utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);
}

@@ -110,3 +110,3 @@ _utf8len[254]=_utf8len[254]=1; // Invalid sequence start

var buf2string = function (buf) {
var str, i, out, c, c_len;
var i, out, c, c_len;
var len = buf.length;

@@ -113,0 +113,0 @@

@@ -1,8 +0,8 @@

'use strict';
"use strict";
var support = require('./support');
var base64 = require('./base64');
var nodejsUtils = require('./nodejsUtils');
var support = require("./support");
var base64 = require("./base64");
var nodejsUtils = require("./nodejsUtils");
var external = require("./external");
require('setimmediate');
require("setimmediate");

@@ -20,5 +20,5 @@

if (support.uint8array) {
result = new Uint8Array(str.length);
result = new Uint8Array(str.length);
} else {
result = new Array(str.length);
result = new Array(str.length);
}

@@ -391,7 +391,7 @@ return stringToArrayLike(str, result);

exports.pretty = function(str) {
var res = '',
var res = "",
code, i;
for (i = 0; i < (str || "").length; i++) {
code = str.charCodeAt(i);
res += '\\x' + (code < 16 ? "0" : "") + code.toString(16).toUpperCase();
res += "\\x" + (code < 16 ? "0" : "") + code.toString(16).toUpperCase();
}

@@ -434,3 +434,3 @@ return res;

for (attr in arguments[i]) {
if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === "undefined") {
if (Object.prototype.hasOwnProperty.call(arguments[i], attr) && typeof result[attr] === "undefined") {
result[attr] = arguments[i][attr];

@@ -458,3 +458,3 @@ }

var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1);
var isBlob = support.blob && (data instanceof Blob || ["[object File]", "[object Blob]"].indexOf(Object.prototype.toString.call(data)) !== -1);

@@ -461,0 +461,0 @@ if (isBlob && typeof FileReader !== "undefined") {

@@ -1,8 +0,7 @@

'use strict';
var readerFor = require('./reader/readerFor');
var utils = require('./utils');
var sig = require('./signature');
var ZipEntry = require('./zipEntry');
var utf8 = require('./utf8');
var support = require('./support');
"use strict";
var readerFor = require("./reader/readerFor");
var utils = require("./utils");
var sig = require("./signature");
var ZipEntry = require("./zipEntry");
var support = require("./support");
// class ZipEntries {{{

@@ -9,0 +8,0 @@ /**

@@ -1,9 +0,9 @@

'use strict';
var readerFor = require('./reader/readerFor');
var utils = require('./utils');
var CompressedObject = require('./compressedObject');
var crc32fn = require('./crc32');
var utf8 = require('./utf8');
var compressions = require('./compressions');
var support = require('./support');
"use strict";
var readerFor = require("./reader/readerFor");
var utils = require("./utils");
var CompressedObject = require("./compressedObject");
var crc32fn = require("./crc32");
var utf8 = require("./utf8");
var compressions = require("./compressions");
var support = require("./support");

@@ -20,3 +20,3 @@ var MADE_BY_DOS = 0x00;

for (var method in compressions) {
if (!compressions.hasOwnProperty(method)) {
if (!Object.prototype.hasOwnProperty.call(compressions, method)) {
continue;

@@ -157,3 +157,3 @@ }

// fail safe : if the name ends with a / it probably means a folder
if (!this.dir && this.fileNameStr.slice(-1) === '/') {
if (!this.dir && this.fileNameStr.slice(-1) === "/") {
this.dir = true;

@@ -167,4 +167,3 @@ }

*/
parseZIP64ExtraField: function(reader) {
parseZIP64ExtraField: function() {
if (!this.extraFields[0x0001]) {

@@ -171,0 +170,0 @@ return;

@@ -1,8 +0,8 @@

'use strict';
"use strict";
var StreamHelper = require('./stream/StreamHelper');
var DataWorker = require('./stream/DataWorker');
var utf8 = require('./utf8');
var CompressedObject = require('./compressedObject');
var GenericWorker = require('./stream/GenericWorker');
var StreamHelper = require("./stream/StreamHelper");
var DataWorker = require("./stream/DataWorker");
var utf8 = require("./utf8");
var CompressedObject = require("./compressedObject");
var GenericWorker = require("./stream/GenericWorker");

@@ -9,0 +9,0 @@ /**

{
"name": "jszip",
"version": "3.10.0",
"version": "3.10.1",
"author": "Stuart Knightley <stuart@stuartk.com>",

@@ -9,4 +9,7 @@ "description": "Create, read and edit .zip files with JavaScript http://stuartk.com/jszip",

"test-node": "qunit --require ./test/helpers/test-utils.js --require ./test/helpers/node-test-utils.js test/asserts/",
"test-browser": "grunt build && node test/run.js",
"lint": "grunt jshint"
"test-browser": "grunt build && node test/run.js --test",
"benchmark": "npm run benchmark-node && npm run benchmark-browser",
"benchmark-node": "node test/benchmark/node.js",
"benchmark-browser": "node test/run.js --benchmark",
"lint": "eslint ."
},

@@ -43,10 +46,10 @@ "contributors": [

"devDependencies": {
"benchmark": "^2.1.4",
"browserify": "~13.0.0",
"eslint": "^8.18.0",
"grunt": "~0.4.1",
"grunt-browserify": "~5.0.0",
"grunt-cli": "~1.1.0",
"grunt-contrib-jshint": "~1.0.0",
"grunt-contrib-uglify": "~4.0.1",
"http-server": "^13.0.2",
"jshint": "~2.9.1",
"jszip-utils": "~0.0.2",

@@ -53,0 +56,0 @@ "package-json-versionify": "1.0.2",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc