{“ast”:null,“code”:“'use strict';nnvar utils = require('./utils');nnvar external = require("./external");nnvar utf8 = require('./utf8');nnvar utils = require('./utils');nnvar ZipEntries = require('./zipEntries');nnvar Crc32Probe = require('./stream/Crc32Probe');nnvar nodejsUtils = require("./nodejsUtils");n/**n * Check the CRC32 of an entry.n * @param {ZipEntry} zipEntry the zip entry to check.n * @return {Promise} the result.n */nnnfunction checkEntryCRC32(zipEntry) {n return new external.Promise(function (resolve, reject) {n var worker = zipEntry.decompressed.getContentWorker().pipe(new Crc32Probe());n worker.on("error", function (e) {n reject(e);n }).on("end", function () {n if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) {n reject(new Error("Corrupted zip : CRC32 mismatch"));n } else {n resolve();n }n }).resume();n });n}nnmodule.exports = function (data, options) {n var zip = this;n options = utils.extend(options || {}, {n base64: false,n checkCRC32: false,n optimizedBinaryString: false,n createFolders: false,n decodeFileName: utf8.utf8decoden });nn if (nodejsUtils.isNode && nodejsUtils.isStream(data)) {n return external.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file."));n }nn return utils.prepareContent("the loaded zip file", data, true, options.optimizedBinaryString, options.base64).then(function (data) {n var zipEntries = new ZipEntries(options);n zipEntries.load(data);n return zipEntries;n }).then(function checkCRC32(zipEntries) {n var promises = [external.Promise.resolve(zipEntries)];n var files = zipEntries.files;nn if (options.checkCRC32) {n for (var i = 0; i < files.length; i++) {n promises.push(checkEntryCRC32(files));n }n }nn return external.Promise.all(promises);n }).then(function addFiles(results) {n var zipEntries = results.shift();n var files = zipEntries.files;nn for (var i = 0; i < files.length; i++) {n var input = files;n zip.file(input.fileNameStr, input.decompressed, {n binary: true,n optimizedBinaryString: true,n date: input.date,n dir: input.dir,n comment: input.fileCommentStr.length ? input.fileCommentStr : null,n unixPermissions: input.unixPermissions,n dosPermissions: input.dosPermissions,n createFolders: options.createFoldersn });n }nn if (zipEntries.zipComment.length) {n zip.comment = zipEntries.zipComment;n }nn return zip;n });n};”,“map”:null,“metadata”:{},“sourceType”:“module”}