'use strict'; var base64 = require('./base64'); /** Usage: zip = new JSZip(); zip.file("hello.txt", "Hello, World!").file("tempfile", "nothing"); zip.folder("images").file("smile.gif", base64Data, {base64: true}); zip.file("Xmas.txt", "Ho ho ho !", {date : new Date("December 25, 2007 00:00:01")}); zip.remove("tempfile"); base64zip = zip.generate(); **/ /** * Representation a of zip file in js * @constructor * @param {String=|ArrayBuffer=|Uint8Array=} data the data to load, if any (optional). * @param {Object=} options the options for creating this objects (optional). */ function JSZip(data, options) { // if this constructor is used without `new`, it adds `new` before itself: if(!(this instanceof JSZip)) return new JSZip(data, options); // object containing the files : // { // "folder/" : {...}, // "folder/data.txt" : {...} // } this.files = {}; this.comment = null; // Where we are in the hierarchy this.root = ""; if (data) { this.load(data, options); } this.clone = function() { var newObj = new JSZip(); for (var i in this) { if (typeof this[i] !== "function") { newObj[i] = this[i]; } } return newObj; }; } JSZip.prototype = require('./object'); JSZip.prototype.load = require('./load'); JSZip.support = require('./support'); JSZip.defaults = require('./defaults'); /** * @deprecated * This namespace will be removed in a future version without replacement. */ JSZip.utils = require('./deprecatedPublicUtils'); JSZip.base64 = { /** * @deprecated * This method will be removed in a future version without replacement. */ encode : function(input) { return base64.encode(input); }, /** * @deprecated * This method will be removed in a future version without replacement. */ decode : function(input) { return base64.decode(input); } }; JSZip.compressions = require('./compressions'); module.exports = JSZip;