Skip to content
Snippets Groups Projects
Commit dde9718b authored by Praveen Arimbrathodiyil's avatar Praveen Arimbrathodiyil
Browse files

Import Upstream version 3.1.4

parents
No related branches found
No related tags found
No related merge requests found
---
engines:
duplication:
enabled: true
config:
languages:
- javascript
eslint:
enabled: true
fixme:
enabled: true
ratings:
paths:
- "lib/*.js"
exclude_paths:
- "dist/*"
root = true
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
indent_style = space
indent_size = 4
*~
node_modules
sauce_connect.log
.c9revisions
\ No newline at end of file
node_modules
{
"curly": true,
"eqeqeq": true,
"nonew": true,
"noarg": true,
"forin": true,
"futurehostile": true,
"freeze": true,
"undef": true,
"strict": true,
"sub": true,
"esversion": 3,
"globals": {
"TextEncoder": false,
"TextDecoder": false
},
"browser": true,
"node": true
}
_config.yml
bower.json
component.json
docs
documentation
Gruntfile.js
index.html
test
language: node_js
sudo: false
matrix:
include:
- node_js: "stable"
env: COMMAND=lint
- node_js: "0.10"
env: COMMAND=test-node
- node_js: "0.12"
env: COMMAND=test-node
- node_js: "4.4"
env: COMMAND=test-node
- node_js: "stable"
env: COMMAND=test-node
- node_js: "stable"
env: COMMAND=test-browser
env:
global:
- secure: MhA8GHU42X3GWTUMaqdZVvarx4BMjhQCUGNi3kvuD/iCmKVb7gMwj4jbds7AcJdsCRsRk8bBGzZs/E7HidBJMPDa5DhgLKy9EV1s42JlHq8lVzbJeWIGgrtyJvhVUkGRy2OJjnDSgh3U6elkQmvDn74jreSQc6m/yGoPFF1nqq8=
- secure: qREw6aUu2DnB+2reMuHgygSkumRiJvt7Z5Fz4uEVoraqbe65e4PGhtzypr9uIgCN43vxS2D5tAIeDbfid5VQrWFUQnrC9O5Z5qgVPsKN94zZ1tvYurXI4wRlAg58nNjkfGXWhLI3VUjjDTp5gYcMqgfe5hpEFYUPnUQkKGnaqAk=
script: npm run $COMMAND
---
title: Changelog
layout: default
section: main
---
### v3.1.4 2017-08-24
- consistently use our own utils object for inheritance (see [#395](https://github.com/Stuk/jszip/pull/395)).
- lower the memory consumption in `generate*` with a lot of files (see [#449](https://github.com/Stuk/jszip/pull/449)).
### v3.1.3 2016-10-06
- instanceof failing in window / iframe contexts (see [#350](https://github.com/Stuk/jszip/pull/350)).
- remove a copy with blob output (see [#357](https://github.com/Stuk/jszip/pull/357)).
- fix crc32 check for empty entries (see [#358](https://github.com/Stuk/jszip/pull/358)).
- fix the base64 error message with data uri (see [#359](https://github.com/Stuk/jszip/pull/359)).
### v3.1.2 2016-08-23
- fix support of nodejs `process.platform` in `generate*` methods (see [#335](https://github.com/Stuk/jszip/pull/335)).
- improve browserify/webpack support (see [#333](https://github.com/Stuk/jszip/pull/333)).
- partial support of a promise of text (see [#337](https://github.com/Stuk/jszip/pull/337)).
- fix streamed zip files containing folders (see [#342](https://github.com/Stuk/jszip/pull/342)).
### v3.1.1 2016-08-08
- Use a hard-coded JSZip.version, fix an issue with webpack (see [#328](https://github.com/Stuk/jszip/pull/328)).
### v3.1.0 2016-08-03
- utils.delay: use macro tasks instead of micro tasks (see [#288](https://github.com/Stuk/jszip/pull/288)).
- Harden base64 decode (see [#316](https://github.com/Stuk/jszip/pull/316)).
- Add JSZip.version and the version in the header (see [#317](https://github.com/Stuk/jszip/pull/317)).
- Support Promise(Blob) (see [#318](https://github.com/Stuk/jszip/pull/318)).
- Change JSZip.external.Promise implementation (see [#321](https://github.com/Stuk/jszip/pull/321)).
- Update pako to v1.0.2 to fix a DEFLATE bug (see [#322](https://github.com/Stuk/jszip/pull/322)).
### v3.0.0 2016-04-13
This release changes a lot of methods, please see [the upgrade guide](http://stuk.github.io/jszip/documentation/upgrade_guide.html).
- replace sync getters and `generate()` with async methods (see [#195](https://github.com/Stuk/jszip/pull/195)).
- support nodejs streams (in `file()` and `generateAsync()`).
- support Blob and Promise in `file()` and `loadAsync()` (see [#275](https://github.com/Stuk/jszip/pull/275)).
- add `support.nodestream`.
- zip.filter: remove the defensive copy.
- remove the deprecated API (see [#253](https://github.com/Stuk/jszip/pull/253)).
- `type` is now mandatory in `generateAsync()`.
- change the createFolders default value (now `true`).
- Dates: use UTC instead of the local timezone.
- Add `base64` and `array` as possible output type.
- Add a forEach method.
- Drop node 0.8 support (see [#270](https://github.com/Stuk/jszip/pull/270)).
### v2.6.1 2016-07-28
- update pako to v1.0.2 to fix a DEFLATE bug (see [#322](https://github.com/Stuk/jszip/pull/322)).
### v2.6.0 2016-03-23
- publish `dist/` files in the npm package (see [#225](https://github.com/Stuk/jszip/pull/225)).
- update pako to v1.0.0 (see [#261](https://github.com/Stuk/jszip/pull/261)).
- add support of Array in JSZip#load (see [#252](https://github.com/Stuk/jszip/pull/252)).
- improve file name / comment encoding support (see [#211](https://github.com/Stuk/jszip/pull/211)).
- handle prepended data (see [#266](https://github.com/Stuk/jszip/pull/266)).
- improve platform coverage in tests (see [#233](https://github.com/Stuk/jszip/pull/233) and [#269](https://github.com/Stuk/jszip/pull/269)).
### v2.5.0 2015-03-10
- add support for custom mime-types (see [#199](https://github.com/Stuk/jszip/issues/199)).
- add an option to set the DEFLATE level (see [#201](https://github.com/Stuk/jszip/issues/201)).
- improve the error message with corrupted zip (see [#202](https://github.com/Stuk/jszip/issues/202)).
- add support for UNIX / DOS permissions (see [#200](https://github.com/Stuk/jszip/issues/200) and [#205](https://github.com/Stuk/jszip/issues/205)).
### v2.4.0 2014-07-24
- update pako to 0.2.5 (see [#156](https://github.com/Stuk/jszip/issues/156)).
- make JSZip work in a Firefox addon context (see [#151](https://github.com/Stuk/jszip/issues/151)).
- add an option (`createFolders`) to control the subfolder generation (see [#154](https://github.com/Stuk/jszip/issues/154)).
- allow `Buffer` polyfill in the browser (see [#139](https://github.com/Stuk/jszip/issues/139)).
### v2.3.0 2014-06-18
- don't generate subfolders (see [#130](https://github.com/Stuk/jszip/issues/130)).
- add comment support (see [#134](https://github.com/Stuk/jszip/issues/134)).
- on `ZipObject#options`, the attributes `date` and `dir` have been deprecated and are now on `ZipObject` (see [the upgrade guide](http://stuk.github.io/jszip/documentation/upgrade_guide.html)).
- on `ZipObject#options`, the attributes `base64` and `binary` have been deprecated (see [the upgrade guide](http://stuk.github.io/jszip/documentation/upgrade_guide.html)).
- deprecate internal functions exposed in the public API (see [#123](https://github.com/Stuk/jszip/issues/123)).
- improve UTF-8 support (see [#142](https://github.com/Stuk/jszip/issues/142)).
### v2.2.2, 2014-05-01
- update pako to v0.2.1, fix an error when decompressing some files (see [#126](https://github.com/Stuk/jszip/issues/126)).
### v2.2.1, 2014-04-23
- fix unreadable generated file on Windows 8 (see [#112](https://github.com/Stuk/jszip/issues/112)).
- replace zlibjs with pako.
### v2.2.0, 2014-02-25
- make the `new` operator optional before the `JSZip` constructor (see [#93](https://github.com/Stuk/jszip/pull/93)).
- update zlibjs to v0.2.0.
### v2.1.1, 2014-02-13
- use the npm package for zlib.js instead of the github url.
### v2.1.0, 2014-02-06
- split the files and use Browserify to generate the final file (see [#74](https://github.com/Stuk/jszip/pull/74))
- packaging change : instead of 4 files (jszip.js, jszip-load.js, jszip-inflate.js, jszip-deflate.js) we now have 2 files : dist/jszip.js and dist/jszip.min.js
- add component/bower support
- rename variable: 'byte' is a reserved word (see [#76](https://github.com/Stuk/jszip/pull/76))
- add support for the unicode path extra field (see [#82](https://github.com/Stuk/jszip/pull/82))
- ensure that the generated files have a header with the licenses (see [#80](https://github.com/Stuk/jszip/pull/80))
# v2.0.0, 2013-10-20
- `JSZipBase64` has been renamed to `JSZip.base64`.
- The `data` attribute on the object returned by `zip.file(name)` has been removed. Use `asText()`, `asBinary()`, `asUint8Array()`, `asArrayBuffer()` or `asNodeBuffer()`.
- [Fix issue with Android browser](https://github.com/Stuk/jszip/pull/60)
- The compression/decompression methods now give their input type with the `compressInputType` and `uncompressInputType` attributes.
- Lazily decompress data when needed and [improve performance in general](https://github.com/Stuk/jszip/pull/56)
- [Add support for `Buffer` in Node.js](https://github.com/Stuk/jszip/pull/57).
- Package for CommonJS/npm.
### v1.0.1, 2013-03-04
- Fixed an issue when generating a compressed zip file with empty files or folders, see #33.
- With bad data (null or undefined), asText/asBinary/asUint8Array/asArrayBuffer methods now return an empty string, see #36.
# v1.0.0, 2013-02-14
- First release after a long period without version.
/*jshint node: true */
'use strict';
module.exports = function(grunt) {
// see https://saucelabs.com/rest/v1/info/browsers/webdriver
var browsers = [{
browserName: "iphone",
version: "7.0"
}, {
browserName: "iphone",
version: "9.2"
}, {
browserName: "android",
platform: "Linux",
version: "4.0"
}, {
browserName: "android",
platform: "Linux",
version: "4.4"
}, {
browserName: "android",
platform: "Linux",
version: "5.1"
}, {
browserName: "firefox",
platform: "Windows 10"
}, {
browserName: "chrome",
platform: "Windows 10"
}, {
browserName: "internet explorer",
platform: "XP",
version: "6"
}, {
browserName: "internet explorer",
platform: "XP",
version: "7"
}, {
browserName: "internet explorer",
platform: "Windows 7",
version: "8"
}, {
browserName: "internet explorer",
platform: "Windows 7",
version: "9"
}, {
browserName: "internet explorer",
platform: "Windows 8",
version: "10"
}, {
browserName: "internet explorer",
platform: "Windows 10",
version: "11"
}, {
browserName: "MicrosoftEdge",
platform: "Windows 10",
version: "13"
}, {
browserName: "opera",
platform: "Windows 2008",
version: "12"
}, {
browserName: "safari",
platform: "OS X 10.8",
version: "6"
}, {
browserName: "safari",
platform: "OS X 10.9",
version: "7"
}, {
browserName: "safari",
platform: "OS X 10.10",
version: "8"
}, {
browserName: "safari",
platform: "OS X 10.11",
version: "9"
}];
var tags = [];
if (process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST != "false") {
tags.push("pr" + process.env.TRAVIS_PULL_REQUEST);
} else if (process.env.TRAVIS_BRANCH) {
tags.push(process.env.TRAVIS_BRANCH);
}
var version = require("./package.json").version;
grunt.initConfig({
connect: {
server: {
options: {
base: "",
port: 9999
}
}
},
'saucelabs-qunit': {
all: {
options: {
urls: ["http://127.0.0.1:9999/test/index.html?hidepassed"],
build: process.env.TRAVIS_JOB_ID,
throttled: 3,
"max-duration" : 600, // seconds, IE6 is slow
browsers: browsers,
testname: "qunit tests",
tags: tags
}
}
},
jshint: {
// see https://github.com/gruntjs/grunt-contrib-jshint/issues/198
// we can't override the options using the jshintrc path
options: grunt.file.readJSON('.jshintrc'),
production: ['./lib/**/*.js'],
test: ['./test/helpers/**/*.js', './test/asserts/**/*.js'],
documentation: {
options: {
// we include js files with jekyll, jshint can't see all
// variables and we can't declare all of them
undef: false,
// 'implied' still give false positives in our case
strict: false
},
files: {
src: ['./documentation/**/*.js']
}
}
},
browserify: {
all: {
files: {
'dist/jszip.js': ['lib/index.js']
},
options: {
browserifyOptions: {
standalone: 'JSZip',
transform: ['package-json-versionify'],
insertGlobalVars: {
process: undefined,
Buffer: undefined,
__filename: undefined,
__dirname: undefined
},
builtins: false
},
banner : grunt.file.read('lib/license_header.js').replace(/__VERSION__/, version)
}
}
},
uglify: {
options: {
mangle: true,
preserveComments: false,
banner : grunt.file.read('lib/license_header.js').replace(/__VERSION__/, version)
},
all: {
src: 'dist/jszip.js',
dest: 'dist/jszip.min.js'
}
},
qunit: {
all: ['test/**/*.html']
}
});
grunt.loadNpmTasks("grunt-saucelabs");
grunt.loadNpmTasks("grunt-contrib-connect");
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-qunit');
if (process.env.SAUCE_USERNAME && process.env.SAUCE_ACCESS_KEY) {
grunt.registerTask("test", ["qunit", "connect", "saucelabs-qunit"]);
} else {
grunt.registerTask("test", ["qunit"]);
}
grunt.registerTask("build", ["browserify", "uglify"]);
grunt.registerTask("default", ["jshint", "build"]);
};
This diff is collapsed.
JSZip [![Build Status](https://api.travis-ci.org/Stuk/jszip.svg?branch=master)](http://travis-ci.org/Stuk/jszip) [![Code Climate](https://codeclimate.com/github/Stuk/jszip/badges/gpa.svg)](https://codeclimate.com/github/Stuk/jszip)
=====
[![Selenium Test Status](https://saucelabs.com/browser-matrix/jszip.svg)](https://saucelabs.com/u/jszip)
A library for creating, reading and editing .zip files with Javascript, with a
lovely and simple API.
See https://stuk.github.io/jszip for all the documentation.
```javascript
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");
});
/*
Results in a zip containing
Hello.txt
images/
smile.gif
*/
```
License
-------
JSZip is dual-licensed. You may use it under the MIT license *or* the GPLv3
license. See [LICENSE.markdown](LICENSE.markdown).
# will be overwritten by github, see https://help.github.com/articles/using-jekyll-with-pages
lsi: false
safe: true
source: ./
incremental: false
highlighter: rouge
gist:
noscript: false
# /overwritten
baseurl: /jszip
layouts_dir: ./documentation/_layouts
permalink: none
exclude: ['bin', 'README.md', 'node_modules']
kramdown:
input: GFM
hard_wrap: false
gems:
- jekyll-coffeescript
- jekyll-paginate
{
"name": "jszip",
"homepage": "http://stuartk.com/jszip",
"authors": [
"Stuart Knightley <stuart@stuartk.com>"
],
"description": "Create, read and edit .zip files with Javascript http://stuartk.com/jszip",
"main": "dist/jszip.js",
"keywords": [
"zip",
"deflate",
"inflate"
],
"license": "MIT or GPLv3",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
]
}
{
"name": "jszip",
"repo": "Stuk/jszip",
"description": "Create, read and edit .zip files with Javascript http://stuartk.com/jszip",
"version": "3.1.4",
"keywords": [
"zip",
"deflate",
"inflate"
],
"main": "dist/jszip.js",
"license": "MIT or GPLv3",
"scripts": [
"dist/jszip.js"
]
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Here are the notes I made while working through the ZIP file specification.
For each file:
local file header signature 4 bytes (0x04034b50)
version needed to extract 2 bytes
general purpose bit flag 2 bytes
compression method 2 bytes
last mod file time 2 bytes
last mod file date 2 bytes
crc-32 4 bytes
compressed size 4 bytes
uncompressed size 4 bytes
file name length 2 bytes
extra field length 2 bytes
|sig |v |g |c |t |d |crc |csz |usz |n |x |
PK.. ## 00 00 ?? ?? xxxx ???? ???? ?? 00
<file name><file data>
Central directory:
central file header signature 4 bytes (0x02014b50)
version made by 2 bytes
version needed to extract 2 bytes *
general purpose bit flag 2 bytes *
compression method 2 bytes *
last mod file time 2 bytes *
last mod file date 2 bytes *
crc-32 4 bytes *
compressed size 4 bytes *
uncompressed size 4 bytes *
file name length 2 bytes *
extra field length 2 bytes *
file comment length 2 bytes
disk number start 2 bytes
internal file attributes 2 bytes
external file attributes 4 bytes
relative offset of local header 4 bytes
file name (variable size)
extra field (variable size)
file comment (variable size)
|sig |vm|vx|g |c |d |t |crc |csz |usz |n |x |cm|dn|ia|xa |roff|
PK.. ## ## 00 00 ?? ?? xxxx ???? ???? ?? 00 00 00 00 xxxx ????
End of central directory:
end of central dir signature 4 bytes (0x06054b50)
number of this disk 2 bytes
number of the disk with the
start of the central directory 2 bytes
total number of entries in the
central directory on this disk 2 bytes
total number of entries in
the central directory 2 bytes
size of the central directory 4 bytes
offset of start of central
directory with respect to
the starting disk number 4 bytes
.ZIP file comment length 2 bytes
.ZIP file comment (variable size)
|sig |n1|n2|e |ne|size|off |cm|
PK.. 00 00 ?? ?? ???? ???? 00
Zip format
----------
http://www.pkware.com/support/zip-application-note
http://www.xxcopy.com/xxcopy06.htm
Data URL
--------
https://developer.mozilla.org/en/The_data_URL_scheme
http://msdn.microsoft.com/en-us/library/cc848897(VS.85).aspx
http://www.phpied.com/mhtml-when-you-need-data-uris-in-ie7-and-under/
http://www.motobit.com/util/base64-decoder-encoder.asp
Saving files
------------
http://msdn.microsoft.com/en-us/library/ms536676(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms536419(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms537418(VS.85).aspx
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Create .zip files using Javascript. Provides a simple API to place any content generated by Javascript into a .zip file for your users." />
<title>{{page.title}}</title>
<!--
Any version of jQuery will do (it's just to write some examples), this one
happens to be available in our tests.
-->
<script type="text/javascript" src="{{site.baseurl}}/test/jquery-1.8.3.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="{{site.baseurl}}/documentation/css/pygments.css">
<link rel="stylesheet" href="{{site.baseurl}}/documentation/css/main.css">
<script type="text/javascript" src="{{site.baseurl}}/dist/jszip.js"></script>
<script type="text/javascript" src="//stuk.github.io/jszip-utils/dist/jszip-utils.js"></script>
<!--
Mandatory in IE 6, 7, 8 and 9.
-->
<!--[if IE]>
<script type="text/javascript" src="//stuk.github.io/jszip-utils/dist/jszip-utils-ie.js"></script>
<![endif]-->
<script type="text/javascript" src="{{site.baseurl}}/vendor/FileSaver.js"></script>
</head>
<body>
<div class="container">
<div class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="{{site.baseurl}}/"><strong>JS</strong>Zip</a>
</div>
<ul class="nav navbar-nav">
<li {% if page.section == "api" %}class="active"{% endif %}>
<a href="{{site.baseurl}}/documentation/api_jszip.html">API</a>
</li>
<li {% if page.section == "example" %}class="active"{% endif %}>
<a href="{{site.baseurl}}/documentation/examples.html">How to / examples</a>
</li>
<li {% if page.section == "limitations" %}class="active"{% endif %}>
<a href="{{site.baseurl}}/documentation/limitations.html">Performances / limitations</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="https://github.com/Stuk/jszip">JSZip on Github</a>
</li>
</ul>
</div>
</div>
{% if page.section and page.fullpage != true %}
<div class="row">
<nav class="col-md-3">
{% case page.section %}
{% when "main" %}
<h4>JSZip users :</h4>
<ul class="nav">
<li><a href="{{site.baseurl}}/">Installation</a></li>
<li><a href="{{site.baseurl}}/documentation/faq.html">FAQ</a></li>
<li><a href="{{site.baseurl}}/CHANGES.html">Changelog</a></li>
<li><a href="{{site.baseurl}}/documentation/upgrade_guide.html">Upgrade guide</a></li>
<li><a href="https://github.com/Stuk/jszip/issues">Bug tracker</a></li>
</ul>
<h4>JSZip developers :</h4>
<ul class="nav">
<li><a href="{{site.baseurl}}/documentation/contributing.html">How to contribute</a></li>
<li><a href="https://github.com/Stuk/jszip/graphs/contributors">Contributors</a></li>
</ul>
{% when "api" %}
<ul class="nav">
<li><a href="{{site.baseurl}}/documentation/api_jszip.html">JSZip</a>
<ul>
<li><a href="{{site.baseurl}}/documentation/api_jszip/constructor.html">new JSZip() or JSZip()</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/file_name.html">JSZip#file(name)</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/file_regex.html">JSZip#file(regex)</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/file_data.html">JSZip#file(name, data [,options])</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/folder_name.html">JSZip#folder(name)</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/folder_regex.html">JSZip#folder(regex)</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/for_each.html">JSZip#forEach(callback)</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/filter.html">JSZip#filter(predicate)</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/remove.html">JSZip#remove(name)</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/generate_async.html">JSZip#generateAsync(options[, onUpdate])</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/generate_node_stream.html">JSZip#generateNodeStream(options[, onUpdate])</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/generate_internal_stream.html">JSZip#generateInternalStream(options)</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/load_async.html">JSZip#loadAsync(data [, options])</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/load_async_object.html">JSZip.loadAsync(data [, options])</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/support.html">JSZip.support</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/external.html">JSZip.external</a></li>
<li><a href="{{site.baseurl}}/documentation/api_jszip/version.html">JSZip.version</a></li>
</ul>
</li>
<li><a href="{{site.baseurl}}/documentation/api_zipobject.html">ZipObject</a></li>
<ul>
<li><a href="{{site.baseurl}}/documentation/api_zipobject/async.html">ZipObject#async(type[, onUpdate])</a></li>
<li><a href="{{site.baseurl}}/documentation/api_zipobject/node_stream.html">ZipObject#nodeStream(type[, onUpdate])</a></li>
<li><a href="{{site.baseurl}}/documentation/api_zipobject/internal_stream.html">ZipObject#internalStream(type)</a></li>
</ul>
<li><a href="{{site.baseurl}}/documentation/api_streamhelper.html">StreamHelper</a>
<ul>
<li><a href="{{site.baseurl}}/documentation/api_streamhelper/on.html">StreamHelper#on(event, callback)</a></li>
<li><a href="{{site.baseurl}}/documentation/api_streamhelper/accumulate.html">StreamHelper#accumulate( [updateCallback])</a></li>
<li><a href="{{site.baseurl}}/documentation/api_streamhelper/resume.html">StreamHelper#resume()</a></li>
<li><a href="{{site.baseurl}}/documentation/api_streamhelper/pause.html">StreamHelper#pause()</a></li>
</ul>
</li>
</ul>
{% when "example" %}
<h4>How to ...</h4>
<ul class="nav">
<li><a href="{{site.baseurl}}/documentation/examples.html">Use JSZip</a></li>
<li><a href="{{site.baseurl}}/documentation/howto/read_zip.html">Read a file</a></li>
<li><a href="{{site.baseurl}}/documentation/howto/write_zip.html">Write a file</a></li>
</ul>
<h4>Examples</h4>
<ul class="nav">
<li><a href="{{site.baseurl}}/documentation/examples/read-local-file-api.html">Read local file</a></li>
<li><a href="{{site.baseurl}}/documentation/examples/get-binary-files-ajax.html">Read remote file</a></li>
<li><a href="{{site.baseurl}}/documentation/examples/download-zip-file.html">Give the user its zip file</a></li>
<li><a href="{{site.baseurl}}/documentation/examples/downloader.html">Mini app : downloader</a></li>
</ul>
{% endcase %}
<!-- <ul class="nav"> -->
<!-- <li><a href="{{site.baseurl}}/documentation/faq.html">FAQ</a></li> -->
<!-- </ul> -->
<!-- <li><a href="{{site.baseurl}}/">installation</a></li> -->
</nav>
{% endif %}
<div class="{% if page.section and page.fullpage != true%}col-md-9{% else %}col-md-12{% endif %}">
<h1>{{page.title}}</h1>
<!-- ===================== -->
<!-- === C O N T E N T === -->
<!-- ===================== -->
{{content}}
<!-- ===================== -->
<!-- == / C O N T E N T == -->
<!-- ===================== -->
</div>
</div>
</div>
<script>
// FIXME find how to do that cleanly
(function(){
var tables = document.getElementsByTagName("table");
for(var i = 0; i < tables.length; i++) {
tables[i].className += " table table-condensed table-striped table-bordered ";
}
})();
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-52085706-1', 'stuk.github.io');
ga('send', 'pageview');
</script>
</body>
</html>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment