By clicking Post Your Answer, you agree to our terms of service, privacy policy and cookie policy. Please In JSZip, you can read a compressed file as JavaScript string using read-a-file-inside-a-zip-archive-as-string-using-jszip.js Copy to clipboard Download zip.file("filename.txt").async("string").then(function(data) { // data is a string // TODO your code goes here, this is just an example console.log(data); }) Full example These are the top rated real world TypeScript examples of jszip.file extracted from open source projects. How to / examples; Performances / limitations; JSZip on Github; JSZip. TypeScript file - 19 examples found. An out-of-box UI solution for enterprise applications. . Although the 2nd has more code, I do not particularly see how it is worse. How do you explicitly set a new property on `window` in TypeScript? Browse StackBlitz projects using jszip, crack open the code and start editing in your browser. Newest development stack of vue. JSZip.loadAsync. With .folder(name), the returned object has a different root : if you add files 25. License : JSZip is dual-licensed. operator? There are more advanced and complicated libraries available, like zip.js, but JSZip will likely cover most use cases. Programming Language: JavaScript Namespace/Package Name: JSZip Method/Function: generate Examples at hotexamples.com: 30 Example #1 0 Jszip Examples. function filter2<Type, Func extends (arg: Type) => boolean> ( arr: Type [], func: Func ): Type [] { return arr.filter (func); } According to the description the 1st one is said to be better compared to the 2nd. JSZip.loadAsync(data) .then((zip) => {New! Did the apostolic or early church fathers acknowledge Papal infallibility? Monta Vista Model United Nations Club Website, IgniteUI/igniteui-live-editing-samples: calendar-sample-5, IgniteUI/igniteui-live-editing-samples: grid-filtering-sample, IgniteUI/igniteui-angular-examples: line-chart-multiple-sources, IgniteUI/igniteui-live-editing-samples: datepicker-sample-1, IgniteUI/igniteui-live-editing-samples: dropdown-sample-1, Create, read and edit .zip files with JavaScript http://stuartk.com/jszip. Download multiple files then compress to one zip file using JSZip & JSZip-utils Raw download-multiple-files.js var zip = new JSZip(); var count = 0; var zipFilename = "zipFilename.zip"; var urls = [ 'http://image-url-1', 'http://image-url-2', 'http://image-url-3' ]; urls.forEach(function(url){ var filename = "filename"; mauve January 13, 2020, 12:02pm #3 JSZip. JavaScript JSZip - 3 examples found. Is it possible to hide or delete the new Toolbar in 13.1? Start a free trial. const outdata = yield zip.generateAsync({ type:'nodebuffer' }); The first step is to create an instance of JSZip : On this instance, we can add (and update) files and folders with When I look into my (one and only) node_modules/@types dir, all files are there: here are the relevant entries from package.json, It seems that the issue is fixed in jszip 3.3.0: see Fix browser module resolution #614, Moreover I think the issue was only related to the client side (angular) build. Since node has its own stream package. Lots of awesome features. (And, what's it called? Examples 1: Find the min element in an array using reduce. You can add them, remove them, modify them. You can rate examples to help us improve the quality of examples. and include the file dist/jszip.js or dist/jszip.min.js. angular.module("fa.extractAndParse", [ ]) .factory("extractAndParse", ["$q", function ($q) { //. to use Codespaces. Great ! Jszip Examples. Jszip Examples. By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. In nodejs In nodejs, you can require it : var JSZip = require("jszip"); Use Git or checkout with SVN using the web URL. (see here for RequireJS). About Stub TypeScript definitions entry for jszip, which provides its own types definitions 87,281 Weekly Downloads. The extractAndParse method calls the unzip method which returns a promise; we then return the promise to the MainCtrl after calling JSON.parse on the results of the operation. Browse StackBlitz projects using jszip, crack open the code and start editing in your browser. TypeScript jszip generateNodeStream Examples TypeScript generateNodeStream - 2 examples found. JSZip can generate Buffers so you can do the following : Learn more. Jszip Examples. Tabnine Pro 14-day free trial. They return the current JSZip instance so you can chain the calls. You can also import an existing zip file or generate one. jszip. These are the top rated real world JavaScript examples of JSZip.generate extracted from open source projects. video.js TypeScript (SFC) Vue3 Composition API URL . Views; 191. rev2022.12.9.43105. Does Typescript support the ?. the types seem to be in the correct location, I thought typescript only uses the name: e.g. dist/jszip.min.js (include just one). Not the answer you're looking for? These are the top rated real world TypeScript examples of jszip.generateNodeStream extracted from open source projects. ), TypeScript getting error TS2304: cannot find name ' require'. See In Typescript, what is the ! Are strongly-typed functions as parameters possible in TypeScript? sign in MIT license or the GPLv3 license. For a browser, there are two interesting files : dist/jszip.js and // Property 'toUpperCase' does not exist on type 'number'. There is no method in JSZip to do that. Forks; TypeScript; Chat App Angular Created by: nakulkundra Example usage of Kendo UI for Angular See https://www.telerik . You can now check our Typesetting Malayalam in xelatex & lualatex gives error, Books that explain fundamental chess concepts, Sed based on 2 words, then replace whole line with variable, Better way to check if an element only exists in one array, Bracers of armor Vs incorporeal touch attack. You can add them, remove them, modify them. 7. This browser doesn't support blobs, this demo won't work :( TypeScript generate - 3 examples found jszip.generate extracted from open source projects. on this object, you will put them in the created subfolder. loadAsync. This will compile and create a new helloworld.js JavaScript file. Site design / logo 2022 Stack Exchange Inc; user contributions licensed under CC BY-SA. Strong Copyleft License, Build available. For example, if we want to find the blog post with the least number of likes, we can do it like this: const posts = [. In order to deploy the example, you need to run the following command: $ serverless deploy After running deploy, you should see output similar to: Deploying aws-node-typescript to stage dev (us-east-1) Service deployed to stack aws-node-typescript-dev (112s) functions: hello: aws-node-typescript-dev-hello (806 B) Invocation These are the top rated real world JavaScript examples of JSZip.default extracted from open source projects. Best JavaScript code snippets using jszip.JSZip. zip.file(curr, file.data, { base64:true });. new JSZip() or JSZip() JSZip#file(name) JSZip#file(regex) JSZip#file(name, data [,options]) . Are there breakers which can be triggered by an external signal and have to be reset by hand? Programming Language: TypeScript Namespace/Package Name: jszip If you use an AMD loader (RequireJS for example) JSZip will register itself : Learn how to use @types/jszip by viewing and forking @types/jszip example apps on CodeSandbox. . TypeScript jszip loadAsync Examples TypeScript loadAsync - 12 examples found. If you're using a third party library with ajax support (jQuery for example), you can easily GET the text file and put the result into a JSZip instance. {id: 1, title: 'Clean TypeScript', category: 'TypeScript', likes: 91}, JSZip is dual-licensed. // data is Uint8Array { 0=72, 1=101, 2=108, more}. JSZip API. You may use it under the all work fine, except for jszip: Error: (9, 24) TS7016: Could not find a declaration file for module 'jszip'. When we have an array of objects, reduce is an easy way to identify the smallest element. JavaScript generate - 30 examples found. a zip file (not a real file but its representation in memory). When would I give a checkpoint to my D&D party that they can return to if they die? Angular6 Export Xlsx (forked) Created by: shijithkm Angular 6 Project that shows a demo of exporting the JSON data into an excel file with extension .xlsx. These are the top rated real world TypeScript examples of jszip.loadAsync extracted from open source projects. TypeScript Typescript example: Beginners Guide To Typescript By Krunal - January 21, 2022 4 Typescript is a typed superset of Javascript that compiles to plain JavaScript. Check So I don't understand how your fix works^^. [Typescript] (.d.ts) Typescript . See https://stuk.github.io/jszip for all the documentation. You can rate examples to help us improve the quality of examples. You can rate examples to help us improve the quality of examples. function. I think also the version mismatch shoudl not be an issue: the code-completion in the IDE shows also the types: Asking for help, clarification, or responding to other answers. Why is it so much harder to run on a treadmill when not holding the handlebars? An instance of JSZip represents a set of files. Without any loader, JSZip will declare in the global scope a variable named JSZip. JavaScript generateAsync - 25 examples found. Why does the USA not have a constitutional court? Consolidate metadata types and expose OnUpdateCallback. 21.4K subscribers How to Create ZIP Files in Javascript Using JSZIP Library and FileSaver.js Library Full Tutorial #filesaverjs #jszip #javascriptproject Welcome Folks My name is Gautam and. license. view, the added files will also be in the root object. I found the issue: in tsconfig.json we had an explicit path definition: after removing this, the build failed with: and the solution to this is to install the stream package (thanks to this issue-comment), Note: maybe there is a better way to fix this - see this issue-comment. Installed ? Are you sure you want to create this branch? Making statements based on opinion; back them up with references or personal experience. vue-element-admin A magical vue admin. If you use an AMD loader (RequireJS for example) JSZip will register itself : you just have to put the js file at the right place, or configure the loader (see here for RequireJS ). What is TypeScript // you now have every files contained in the loaded zip. Browse StackBlitz projects using jszip, crack open the code and start editing in your browser. Lots of awesome features vue-element-admin A magical vue admin. in. Firebase Gtk Web Start Created by: . How to convert a string to number in TypeScript? In nodejs. Rds Sdk Template Created by: wallace41290 Blank starter project for building TypeScript apps. An instance of JSZip represents a set of files. this page to see how to Blank starter project for building TypeScript apps. Programming Language: TypeScript Namespace/Package Name: jszip Method/Function: file Examples at hotexamples.com: 19 Example #1 0 Show file Implement jszip-cli with how-to, Q&A, fixes, code snippets. Without any loader, JSZip will declare in the global scope a variable named JSZip. License MIT . Programming Language: TypeScript Namespace/Package Name: jszip Method/Function: generate Examples at hotexamples.com: 3 Example #1 0 Show file File: common.ts Project: 928PJY/docfx How does legislative oversight work in Switzerland when there is technically no "opposition" in parliament? Hence, the examples include jszip.min.js like so: <script src="js/libs/jszip.min.js"></script> I guess you just have to ensure that jszip.min.js is globally available in your app. How to smoothen the round border of a created buffer to make it look more natural? Programming Language: TypeScript Namespace/Package Name: jszip Method/Function: loadAsync This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. You can also import an existing zip file or generate one. One great example of taking advantage of Zip files on the client side is in the Service Worker Cookbook: cache a Zip file locally, extract its contents, and serve within a service worker. See https://stuk.github.io/jszip for all the documentation. Browse StackBlitz projects using jszip, crack open the code and start editing in your browser. A magical vue admin. These are the top rated real world JavaScript examples of JSZip.generateAsync extracted from open source projects. If you want to let your Gears users download several files at once I really recommend having a look at some of his examples. function funcWithGeneric<T extends Record<string, any>> (propertyName: keyof T) { propertyName.toUpperCase () // ^ Errors with // Property 'toUpperCase' does not exist on type 'string | number | symbol'. A library for creating, reading and editing .zip files with JavaScript, with a Views; 147. Ready to optimize your JavaScript with Rust? Typescript is a new data structure that can be implemented in ES6 in which a map can be authorized to reserve entries in a key-value format which is like what a map can do in other programming languages, a map is a group in which it has a size, an order, and we can repeat above its key and values. To learn more, see our tips on writing great answers. If nothing happens, download GitHub Desktop and try again. Is it correct to say "The glue on the back of the sticker is dying down so I can not stick the sticker to the wall"? If you have Node.js installed, you can run node helloworld.js. When I look into my (one and only) node_modules/@types dir, all files are there: here are the relevant entries from package.json (2339) } Penrose diagram of hypothetical astrophysical white hole, Allow non-GPL plugins in a GPL main program. You can rate examples to help us improve the quality of examples. jszip Create, read and edit .zip files with JavaScript http://stuartk.com/jszip Version: 3.10.1 Updated: 11/18/2022 By: Stuk License: (MIT OR GPL-3.-or-later) Downloads Last 30 Days: 27943.1k https://github.com/Stuk/jszip npm i jszip yarn add jszip CDNs bundle.run https://bundle.run/jszip jsDelivr https://cdn.jsdelivr.net/npm/jszip Find centralized, trusted content and collaborate around the technologies you use most. Would it be possible, given current technology, ten years, and an infinite amount of money, to construct a 7,000 foot (2200 meter) aircraft carrier? watch If you try to load a binary file (image, sound, zip) you may be interested in this comment. You can access the file content with .file(name) and in my source-file I use these imports e.g. do properly (its more tricky that it seems). With .loadAsync(data) you can load a zip file. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. See LICENSE.markdown. 'ROOT/node_modules/jszip/dist/jszip.min.js' implicitly has an 'any' type. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. kandi ratings - Low support, No Bugs, No Vulnerabilities. Check There was a problem preparing your codespace, please try again. lovely and simple API. Help us identify new roles for community members, Proposing a Community-Specific Closure Reason for non-English content. dotnet add package jszip.TypeScript.DefinitelyTyped --version 0.0.2 NuGet\Install-Package jszip.TypeScript.DefinitelyTyped -Version 0.0.2 This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package . Here's a contrived example to demonstrate the issue. You can rate examples to help us improve the quality of examples. . Thanks for contributing an answer to Stack Overflow! Work fast with our official CLI. I do see that Func is being used similar to a type . You can rate examples to help us improve the quality of examples. We do not currently allow content pasted from ChatGPT on Stack Overflow; read our policy here. Overview of Typescript Map Type. Code Index Add Tabnine to your IDE (free) How to use. DefinitelyTyped 0.1.0 .NET CLI Package Manager PackageReference Paket CLI Script & Interactive Cake dotnet add package jszip.TypeScript.DefinitelyTyped --version 0.1.0 README Frameworks Dependencies Used By Versions TypeScript Definitions (d.ts) for jszip. Latest version 3.4.1. Create, read and edit .zip files with Javascript. function extractAndParse (zipfile) { return unzip(zipfile) Example var zip = new JSZip (); zip.file ("Hello.txt", "Hello World\n"); var img = zip.folder ("images"); img.file ("smile.gif", imgData, {base64: true}); zip.generateAsync ( {type:"blob"}) .then (function (content) { // see FileSaver.js saveAs (content, "example.zip"); }); Run! Forks . (exclamation mark / bang) operator when dereferencing a member? This is just a when importing, but it seems that I am wrong, because the types of. I have a strange issue where typescript does not find the types for jszip. lovely and simple API. JSZip A library for creating, reading and editing .zip files with JavaScript, with a lovely and simple API. you just have to put the js file at the right place, or configure the loader information on how to write / give the file to the user. If nothing happens, download Xcode and try again. guides and examples ! typescript doc: consume declaration files. JavaScript loadAsync - 30 examples found. Installation With npm : npm install jszip jszip const zip = require ('jszip') (); let files = event.target.files; for (let file = 0; file zip.file (files [file].name, files [file]); } zip.generateAsync ( {type: "blob"}).then (content => { saveAs (content, "example.zip"); }); } How do I zip a folder with JSZip? Franz Buchinger has written a brilliant tutorial on using JSZip with Google Gears . its getters : You can also remove files or folders with .remove(name) : With .generateAsync(options) or .generateNodeStream(options) you can generate See, Tested with node.js 0.10 / latest version, If you're looking for information about a specific method, try the. Jszip typescript example return of excess contribution 401k # 1 dofu sports live stream for iphone To compile your TypeScript code, you can open the Integrated Terminal ( Ctrl+`) and type tsc helloworld.ts. You can rate examples to help us improve the quality of examples. A tag already exists with the provided branch name. You may use it under the MIT license or the GPLv3 Newest development stack of vue. The jszip version of the official repository is not an ES6 module file. LICENSE.markdown. this page for more Connect and share knowledge within a single location that is structured and easy to search. You can rate examples to help us improve the quality of examples. . TypeScript. JSZip is a javascript library for creating, reading and editing .zip files, with a Excel Workbook Manager - Read and Write xlsx and csv Files. Effect of coal and natural gas burning on particulate matter pollution. These are the top rated real world JavaScript examples of JSZip.loadAsync extracted from open source projects. Learn how to use @types/jszip by viewing and forking @types/jszip example apps on CodeSandbox. Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide. React / TypeScript; Angular Xlsx Style Created by: alcfeoh Starter project for Angular apps that exports to the Angular CLI. // by removing the folder, you also remove its content. An out-of-box UI solution for enterprise applications. You signed in with another tab or window. loadAsync (Showing top 7 results out of 315) TypeScript has one extra compilation step to JavaScript that catches all kinds of errors before reaching runtime and breaking something in the code. With component : component install Stuk/jszip, Manually : download JSZip jszip examples - CodeSandbox Create Sandbox Jszip Examples Learn how to use jszip by viewing and forking example apps that make use of jszip on CodeSandbox. How can I use a VPN to access a Russian website that is banned in the EU? .file(name, content) and .folder(name). Likely cover most use cases do you explicitly set a new helloworld.js JavaScript file, the returned has... Composition API URL if you have Node.js installed, you can also import an existing zip file or generate.... Brilliant tutorial on using JSZip, which provides its own types definitions Weekly. See our tips on writing great answers can add them, modify them and simple API writing great answers allow... D & D party that they can return to if they die be interested this. There was a problem preparing your codespace, please try again true } ) ; to! Its own types definitions 87,281 Weekly Downloads I am wrong, because the types for JSZip JSZip. Seem to be in the Created subfolder can not find name ' require ' there is method. Are you sure you want to let your Gears users download several files at once I recommend... On writing great answers the GPLv3 Newest development Stack of vue written a brilliant tutorial on JSZip... To see how to use easy to search added files will also be in the global scope variable... An ES6 module file why is it so much harder to run on a when... Statements based on opinion ; back them up with references or personal experience JSZip, crack open the code start. App Angular Created by: wallace41290 Blank starter project for building TypeScript apps be reset by?! Will compile and create a new helloworld.js JavaScript file it so much harder to run on a treadmill not. Definitions 87,281 Weekly Downloads not find name ' require ' Buchinger has written a brilliant tutorial on JSZip! Use @ types/jszip Example apps on CodeSandbox, because the types for JSZip, crack open the and! Try again commands accept both tag and branch names, so creating this branch the EU learn how to the... More code, I do not currently allow content pasted from ChatGPT on Stack Overflow ; our. Be interested in this comment an array of objects, reduce is an easy way to identify the element..., Reach developers & technologists worldwide more Connect and share knowledge within a single location that is banned the... Be in the Created subfolder.folder ( name ), TypeScript getting error TS2304: not. Am wrong, because the types for JSZip a real file but its representation in memory ) Weekly Downloads delete. Here & # x27 ; implicitly has an & # x27 ; s a contrived Example to demonstrate the.! You will put them in the loaded zip with.folder ( name ) there was a problem preparing codespace! To / examples ; Performances / limitations ; JSZip on Github ; JSZip them, them... Generatenodestream examples TypeScript generateNodeStream - 2 examples found JavaScript, with a lovely and simple API accept both tag branch. Effect of coal and natural gas burning on particulate matter pollution load a file! Angular apps that exports to the Angular CLI use these imports e.g a member you have. Hide or delete the new Toolbar in 13.1 more natural Github Desktop and try again, read edit! Root/Node_Modules/Jszip/Dist/Jszip.Min.Js & # x27 ; implicitly has an & # x27 ; type, with a lovely simple... Image, sound, zip ) you can also import an existing zip file or generate.... 12 examples found be in the Created subfolder, please try again to hide or delete the Toolbar. This is just a when importing, but JSZip will likely cover most use cases file. At once I really recommend having a look at some of his examples CC BY-SA your codespace, please again! Interested in this comment the apostolic or early church fathers acknowledge Papal infallibility Exchange! Jszip, crack open the code and start editing in your browser 87,281 Weekly Downloads a helloworld.js... The round border of a Created buffer to make it look more?. You want to let your Gears users download several files at once I really recommend a. Examples ; Performances / limitations ; JSZip, { base64: true } ) ; make it look natural! Reset by hand / examples ; Performances / limitations ; JSZip I give a to... Privacy policy and cookie policy lots of awesome features vue-element-admin a magical vue admin of official! I have a constitutional court thought TypeScript only uses the name: e.g I do see that Func is used! Nakulkundra Example usage of Kendo UI for Angular apps that exports to the Angular CLI:! Base64: true } ) ; delete the new Toolbar in 13.1 let your Gears users several! Apps that exports to the Angular CLI Example usage of Kendo UI for Angular see https:.... You explicitly set a new property on ` window ` in TypeScript, reading and editing files... You will put them in the Created subfolder and easy to search technologists share private knowledge with coworkers, developers. And start editing in your browser because the types seem to be in the loaded zip in an array reduce. To demonstrate the issue for JSZip is Uint8Array { 0=72, 1=101, 2=108, more } on object... Removing the folder, you also remove its content ; type compile and create a new helloworld.js file... With.loadAsync ( data ) you may use it under the MIT license or GPLv3... Apps on CodeSandbox: alcfeoh starter project for building TypeScript apps identify smallest... In your browser Angular apps that exports to the Angular CLI // you have. Any & # x27 ; any & # x27 ; implicitly has &! Low support, No Vulnerabilities CC BY-SA being used similar to a type can do the following: learn,... A treadmill when not holding the handlebars a Created buffer to make it look more?! In your browser, read and edit.zip files with JavaScript of awesome features vue-element-admin a vue. The new Toolbar in 13.1 jszip typescript example court ; Chat App Angular Created by: wallace41290 Blank starter for... Create this branch may cause unexpected behavior variable named JSZip Post your Answer, you can rate to. Apostolic or early church fathers acknowledge Papal infallibility 1=101, 2=108, more } Community-Specific Reason... Number in TypeScript this RSS feed, copy and paste this URL into your RSS reader will likely cover use! Extracted from open source projects great answers projects using JSZip, crack open the code and editing... In JSZip to do that but JSZip will declare in the loaded zip remove its content, remove,. Uses the name: JSZip Method/Function: generate examples at hotexamples.com: Example. To Blank starter project for building TypeScript apps ; type, file.data, { base64: true } ).... Jszip can generate Buffers so you can chain the calls pasted from ChatGPT on Stack Overflow ; read our here!: find the types for JSZip does the USA not have a court..., Proposing a Community-Specific Closure Reason for non-English content users download several files at once I really recommend having look... Tutorial on using JSZip, crack open the code and start editing your. Agree to our terms of service, privacy policy and cookie policy own types jszip typescript example 87,281 Weekly.... More, see our tips on writing great answers that Func is used! Mit license or the GPLv3 Newest development Stack of vue use these imports e.g reader. Which can be triggered by an external signal and have to be in the correct location I. Open the code and start editing in your browser SFC ) Vue3 API... And start editing in your browser Answer, you will put them the... Put them in the global scope a variable named JSZip Func is being similar! The apostolic or early church fathers acknowledge Papal infallibility would I give a checkpoint to my D D! Do you explicitly set a new helloworld.js JavaScript file codespace, please try again MIT... Ts2304: can not find name ' require ' can be triggered by an external signal have. If you add files 25 libraries available, like zip.js, but it seems that I wrong...: learn more that it seems that I am wrong, because the types seem to be by. = & gt ; { new to a type the MIT license the... Library for creating, reading and editing.zip files with JavaScript, with a Views ; 147 issue TypeScript... Generate Buffers so you can chain the calls an easy way to identify smallest. Look more natural TypeScript does not find the types seem to be in the loaded.. Can load a zip file ( not a real file but its representation in memory ) really recommend having look... Complicated libraries available, like zip.js, but it seems that I am wrong, because the types for.. Development Stack of vue objects, reduce is an easy way to the... How your fix works^^ with.loadAsync ( data ).then ( ( zip ) = & gt ; {!! Used similar to a type to make it look more natural your Answer, you also its. Technologists worldwide root: if you try to load a zip file file ( not a real file but representation... Jszip.Generatenodestream extracted from open source projects are the top rated real world TypeScript examples of JSZip.generateAsync from... Read our policy here examples found Example usage of Kendo UI for Angular apps that exports the! A new helloworld.js JavaScript file can be triggered by an external signal have... Name, content ) and.folder ( name ), download Xcode and try again Stack Exchange ;. Remove them, modify them under CC BY-SA Func is being used to. And easy to search why does the USA not have a strange issue where TypeScript does find... They return the current JSZip instance so you can add them, modify them zip or! Existing zip file or generate one USA not have a constitutional court JSZip to do that please try again JSZip!