{"versions":{"1.2.0":{"name":"get-down","version":"1.2.0","description":"Download and optionally extract files","repository":{"type":"git","url":"git://github.com/tschaub/get-down.git"},"bugs":{"url":"https://github.com/tschaub/get-down/issues"},"main":"lib/index.js","scripts":{"pretest":"eslint lib test","test":"mocha test --recursive"},"license":"MIT","devDependencies":{"chai":"~4.0.2","eslint":"^4.1.1","eslint-config-tschaub":"^7.0.0","mocha":"^3.4.2","mock-fs":"~4.4.1","nock":"9.0.13","rimraf":"^2.6.1"},"dependencies":{"decompress-zip":"0.3.0","graceful-fs":"4.1.11","junk":"2.1.0","mout":"1.0.0","q":"1.5.0","request":"2.81.0","request-progress":"3.0.0","retry":"0.10.1","tar":"3.1.5","tmp":"0.0.31"},"eslintConfig":{"extends":"tschaub"},"gitHead":"96468e56023406640f20edb2a7cfaca05fe2589f","homepage":"https://github.com/tschaub/get-down#readme","_id":"get-down@1.2.0","_npmVersion":"5.0.3","_nodeVersion":"8.1.0","_npmUser":{"name":"anonymous","email":"tim.schaub@gmail.com"},"dist":{"shasum":"6aeca5043ef0aeaa5170c90b0f746c650017a3c3","size":9428,"noattachment":false,"tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/get-down/-/get-down-1.2.0.tgz","integrity":"sha512-SbpdXn+fNmGN6pp/vBALveh3oCbWYTR3wb5qifauPSFhAfAVQ7TMOnAkVzQm4YZD2KABzJB3sA2kmMLaOylA2A=="},"maintainers":[{"name":"anonymous","email":"tim.schaub@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/get-down-1.2.0.tgz_1498670590721_0.7386473547667265"},"directories":{},"publish_time":1498670590807,"_hasShrinkwrap":false,"_cnpm_publish_time":1498670590807,"_cnpmcore_publish_time":"2021-12-17T01:19:52.489Z","contributors":[]},"1.1.0":{"name":"get-down","version":"1.1.0","description":"Download and optionally extract files","repository":{"type":"git","url":"git://github.com/tschaub/get-down.git"},"bugs":{"url":"https://github.com/tschaub/get-down/issues"},"licenses":[{"type":"MIT","url":"http://tschaub.mit-license.org/"}],"main":"lib/index.js","scripts":{"test":"grunt --stack test","debug-test":"node --stack-trace-limit=50 --debug-brk ./node_modules/.bin/grunt cafemocha","start":"grunt --stack start"},"license":"MIT","devDependencies":{"chai":"~3.2.0","grunt":"~0.4.5","grunt-cafe-mocha":"~0.1.13","grunt-cli":"~0.1.13","grunt-contrib-jshint":"~0.10.0","grunt-contrib-watch":"~0.6.1","grunt-newer":"~1.1.1","mock-fs":"~3.1.0","nock":"0.27.1","rimraf":"^2.2.8"},"dependencies":{"q":"1.0.0","graceful-fs":"4.1.2","junk":"1.0.2","tar":"1.0.1","mout":"0.10.0","decompress-zip":"0.3.0","tmp":"0.0.27","request-progress":"0.3.1","retry":"0.6.1","request":"2.61.0"},"gitHead":"8136515cd9538ef391ce14df7676348d3879f509","homepage":"https://github.com/tschaub/get-down#readme","_id":"get-down@1.1.0","_shasum":"894db38d4600a1a160b225fd0b4bc967ade8c401","_from":".","_npmVersion":"3.5.2","_nodeVersion":"4.2.4","_npmUser":{"name":"anonymous","email":"tim.schaub@gmail.com"},"dist":{"shasum":"894db38d4600a1a160b225fd0b4bc967ade8c401","size":9950,"noattachment":false,"tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/get-down/-/get-down-1.1.0.tgz","integrity":"sha512-19K8jFgVzp239IpjbPHCwYnESSFrAp/4OfJdRUaEYPU4hzcHkaiG+3bt4BOLRprHLp3bbP5uu/snzmaKYRfQwA=="},"maintainers":[{"name":"anonymous","email":"tim.schaub@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/get-down-1.1.0.tgz_1462896311103_0.5676947915926576"},"directories":{},"publish_time":1462896313616,"_hasShrinkwrap":false,"_cnpm_publish_time":1462896313616,"_cnpmcore_publish_time":"2021-12-17T01:19:52.711Z","contributors":[]},"1.0.0":{"name":"get-down","version":"1.0.0","description":"Download and optionally extract files","repository":{"type":"git","url":"git://github.com/tschaub/get-down.git"},"bugs":{"url":"https://github.com/tschaub/get-down/issues"},"licenses":[{"type":"MIT","url":"http://tschaub.mit-license.org/"}],"main":"lib/index.js","scripts":{"test":"grunt --stack test","debug-test":"node --stack-trace-limit=50 --debug-brk ./node_modules/.bin/grunt cafemocha","start":"grunt --stack start"},"license":"MIT","devDependencies":{"chai":"~3.2.0","grunt":"~0.4.5","grunt-cafe-mocha":"~0.1.13","grunt-cli":"~0.1.13","grunt-contrib-jshint":"~0.10.0","grunt-contrib-watch":"~0.6.1","grunt-newer":"~1.1.1","mock-fs":"~3.1.0","nock":"0.27.1","rimraf":"^2.2.8"},"dependencies":{"q":"1.0.0","graceful-fs":"4.1.2","junk":"1.0.2","tar":"1.0.1","mout":"0.10.0","decompress-zip":"0.2.0","tmp":"0.0.27","request-progress":"0.3.1","retry":"0.6.1","request":"2.61.0"},"gitHead":"ff7694dc9b852b68dfcbd043d7dced337d6299e3","homepage":"https://github.com/tschaub/get-down#readme","_id":"get-down@1.0.0","_shasum":"db39ac48a4cc70a62d6ee45e510bd4dddc9e3dc2","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.12.4","_npmUser":{"name":"anonymous","email":"tim.schaub@gmail.com"},"maintainers":[{"name":"anonymous","email":"tim.schaub@gmail.com"}],"dist":{"shasum":"db39ac48a4cc70a62d6ee45e510bd4dddc9e3dc2","size":9984,"noattachment":false,"tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/get-down/-/get-down-1.0.0.tgz","integrity":"sha512-IiJJqpYi7t27rI6vzZB2yWUsyO3eTF+lk66ONohIlDU+Uu+C2JRl+DN4AXOsWF+is30MukpRNybdsNA8ZbiLYQ=="},"directories":{},"publish_time":1441403742850,"_hasShrinkwrap":false,"_cnpm_publish_time":1441403742850,"_cnpmcore_publish_time":"2021-12-17T01:19:52.919Z","contributors":[]},"0.5.0":{"name":"get-down","version":"0.5.0","description":"Download and optionally extract files","repository":{"type":"git","url":"git://github.com/tschaub/get-down.git"},"bugs":{"url":"https://github.com/tschaub/get-down/issues"},"licenses":[{"type":"MIT","url":"http://tschaub.mit-license.org/"}],"main":"lib/index.js","scripts":{"test":"grunt --stack test","debug-test":"node --stack-trace-limit=50 --debug-brk ./node_modules/.bin/grunt cafemocha","start":"grunt --stack start"},"license":"MIT","devDependencies":{"chai":"~1.9.1","grunt":"~0.4.5","grunt-cafe-mocha":"~0.1.12","grunt-cli":"~0.1.13","grunt-contrib-jshint":"~0.10.0","grunt-contrib-watch":"~0.6.1","grunt-newer":"~0.7.0","mock-fs":"~2.3.1","nock":"0.27.1","rimraf":"^2.2.8"},"dependencies":{"q":"1.0.0","graceful-fs":"3.0.2","junk":"1.0.0","tar":"1.0.1","mout":"0.10.0","decompress-zip":"0.0.8","tmp":"0.0.24","request-progress":"0.3.1","retry":"0.6.1","request":"2.42.0"},"homepage":"https://github.com/tschaub/get-down","_id":"get-down@0.5.0","dist":{"shasum":"07906eaf06dab80abecaa718ba8a31e6c56da6ae","size":10127,"noattachment":false,"tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/get-down/-/get-down-0.5.0.tgz","integrity":"sha512-r75/fWtnC0VSJi0OO5kHGFhrwLMx3nwuv3wZDZt8w1i+IFtbw43Z6fwcCv5M/QBvix5XNj2A7LwbsoSTi48ArA=="},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"anonymous","email":"tim.schaub@gmail.com"},"maintainers":[{"name":"anonymous","email":"tim.schaub@gmail.com"}],"directories":{},"publish_time":1410899828169,"_hasShrinkwrap":false,"_cnpm_publish_time":1410899828169,"_cnpmcore_publish_time":"2021-12-17T01:19:53.168Z","contributors":[]},"0.4.0":{"name":"get-down","version":"0.4.0","description":"Download and optionally extract files","repository":{"type":"git","url":"git://github.com/tschaub/get-down.git"},"bugs":{"url":"https://github.com/tschaub/get-down/issues"},"licenses":[{"type":"MIT","url":"http://tschaub.mit-license.org/"}],"main":"lib/index.js","scripts":{"test":"grunt --stack test","debug-test":"node --stack-trace-limit=50 --debug-brk ./node_modules/.bin/grunt cafemocha","start":"grunt --stack start"},"license":"MIT","devDependencies":{"chai":"~1.9.1","grunt":"~0.4.5","grunt-cafe-mocha":"~0.1.12","grunt-cli":"~0.1.13","grunt-contrib-jshint":"~0.10.0","grunt-contrib-watch":"~0.6.1","grunt-newer":"~0.7.0","mock-fs":"~2.3.1","nock":"0.27.1","rimraf":"^2.2.8"},"dependencies":{"q":"1.0.0","graceful-fs":"3.0.2","junk":"0.2.2","tar":"0.1.19","mout":"0.9.1","decompress-zip":"0.0.8","tmp":"0.0.23","request-progress":"0.3.1","retry":"0.6.0","request":"2.36.0"},"homepage":"https://github.com/tschaub/get-down","_id":"get-down@0.4.0","_shasum":"339c7d31a7c6c6936552048e662aeeb0647be95f","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"anonymous","email":"tim.schaub@gmail.com"},"maintainers":[{"name":"anonymous","email":"tim.schaub@gmail.com"}],"dist":{"shasum":"339c7d31a7c6c6936552048e662aeeb0647be95f","size":10068,"noattachment":false,"tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/get-down/-/get-down-0.4.0.tgz","integrity":"sha512-NBUjkEoWtGGVxwlqnuyJfZwAcx+eX+j71O7A5GuEucVuh8FGMwMa+/uQJNE2LgNoSfXtuPJmXhYDBbfoFMk++A=="},"directories":{},"publish_time":1402679118078,"_hasShrinkwrap":false,"_cnpm_publish_time":1402679118078,"_cnpmcore_publish_time":"2021-12-17T01:19:53.402Z","contributors":[]},"0.3.1":{"name":"get-down","version":"0.3.1","description":"Download and optionally extract files","repository":{"type":"git","url":"git://github.com/tschaub/get-down.git"},"bugs":{"url":"https://github.com/tschaub/get-down/issues"},"licenses":[{"type":"MIT","url":"http://tschaub.mit-license.org/"}],"main":"lib/index.js","scripts":{"test":"grunt --stack test","debug-test":"node --stack-trace-limit=50 --debug-brk ./node_modules/.bin/grunt cafemocha","start":"grunt --stack start"},"license":"MIT","devDependencies":{"grunt-cli":"~0.1.11","grunt-contrib-jshint":"~0.8.0","grunt-cafe-mocha":"~0.1.10","grunt":"~0.4.2","chai":"~1.8.1","grunt-contrib-watch":"~0.5.3","grunt-newer":"~0.6.0","mock-fs":"~1.3.0","nock":"~0.27.1"},"dependencies":{"q":"1.0.0","graceful-fs":"2.0.1","junk":"0.2.2","zlib":"1.0.5","tar":"0.1.19","mout":"0.8.0","decompress-zip":"0.0.3","tmp":"0.0.23","request-progress":"0.3.1","retry":"0.6.0","request":"2.30.0"},"readmeFilename":"readme.md","homepage":"https://github.com/tschaub/get-down","_id":"get-down@0.3.1","dist":{"tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/get-down/-/get-down-0.3.1.tgz","shasum":"735f49696e12e2723ed638360628292ac12ce094","size":10064,"noattachment":false,"integrity":"sha512-OROBo7sL2MWcI2hXKtvM9a46kXZuSxL3dWk7cGoab+LHgaO3ATvVjw1b1j48aKvLYKtVfBtMVUcDMi/cVod8tg=="},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"anonymous","email":"tim.schaub@gmail.com"},"maintainers":[{"name":"anonymous","email":"tim.schaub@gmail.com"}],"directories":{},"publish_time":1389203122753,"_hasShrinkwrap":false,"_cnpm_publish_time":1389203122753,"_cnpmcore_publish_time":"2021-12-17T01:19:53.633Z","contributors":[]},"0.3.0":{"name":"get-down","version":"0.3.0","description":"Download and optionally extract files","repository":{"type":"git","url":"git://github.com/tschaub/get-down.git"},"bugs":{"url":"https://github.com/tschaub/get-down/issues"},"licenses":[{"type":"MIT","url":"http://tschaub.mit-license.org/"}],"main":"lib/index.js","scripts":{"test":"grunt --stack test","debug-test":"node --stack-trace-limit=50 --debug-brk ./node_modules/.bin/grunt cafemocha","start":"grunt --stack start"},"license":"MIT","devDependencies":{"grunt-cli":"~0.1.11","grunt-contrib-jshint":"~0.8.0","grunt-cafe-mocha":"~0.1.10","grunt":"~0.4.2","chai":"~1.8.1","grunt-contrib-watch":"~0.5.3","grunt-newer":"~0.6.0","mock-fs":"~1.3.0","nock":"~0.27.1"},"dependencies":{"q":"1.0.0","graceful-fs":"2.0.1","junk":"0.2.2","zlib":"1.0.5","tar":"0.1.19","mout":"0.8.0","decompress-zip":"0.0.3","tmp":"0.0.23","request-progress":"0.3.1","retry":"0.6.0","request":"2.30.0"},"readmeFilename":"readme.md","_id":"get-down@0.3.0","dist":{"tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/get-down/-/get-down-0.3.0.tgz","shasum":"6443c44018fbb66eb1125c33cfaa2c16d2fc237b","size":8819,"noattachment":false,"integrity":"sha512-OM3IP4O5o+Z3C6uH7fVP4UFpml0AaECmh7OuBA+eLlUeKlr5d0KdYDqLBwI7WzQeEnchR6GwpGE9lZsGPBMwHw=="},"_from":".","_npmVersion":"1.2.30","_npmUser":{"name":"anonymous","email":"tim.schaub@gmail.com"},"maintainers":[{"name":"anonymous","email":"tim.schaub@gmail.com"}],"directories":{},"publish_time":1389158963409,"_hasShrinkwrap":false,"_cnpm_publish_time":1389158963409,"_cnpmcore_publish_time":"2021-12-17T01:19:53.821Z","contributors":[]},"0.2.0":{"name":"get-down","version":"0.2.0","description":"Download and optionally extract files","repository":{"type":"git","url":"git://github.com/tschaub/get-down.git"},"bugs":{"url":"https://github.com/tschaub/get-down/issues"},"licenses":[{"type":"MIT","url":"http://tschaub.mit-license.org/"}],"main":"lib/index.js","scripts":{"test":"grunt --stack test","debug-test":"node --stack-trace-limit=50 --debug-brk ./node_modules/.bin/grunt cafemocha","start":"grunt --stack start"},"license":"MIT","devDependencies":{"grunt-cli":"~0.1.11","grunt-contrib-jshint":"~0.8.0","grunt-cafe-mocha":"~0.1.10","grunt":"~0.4.2","chai":"~1.8.1","grunt-contrib-watch":"~0.5.3","grunt-newer":"~0.6.0","mock-fs":"~1.3.0","nock":"~0.27.1"},"dependencies":{"q":"1.0.0","graceful-fs":"2.0.1","junk":"0.2.2","zlib":"1.0.5","tar":"0.1.19","mout":"0.8.0","decompress-zip":"0.0.3","tmp":"0.0.23","request-progress":"0.3.1","retry":"0.6.0","request":"2.30.0"},"readmeFilename":"readme.md","homepage":"https://github.com/tschaub/get-down","_id":"get-down@0.2.0","dist":{"tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/get-down/-/get-down-0.2.0.tgz","shasum":"affeac399b08a67069bf754c8d419ff0e84cd58d","size":8372,"noattachment":false,"integrity":"sha512-Lds2agc0iep/d2t5/AKlRD5VwEJe7w1hIQRjfYbeCEmjS1K/D4hjEu7IEiQJj/rMoahoTjyqxFVEbLQCH47d9w=="},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"anonymous","email":"tim.schaub@gmail.com"},"maintainers":[{"name":"anonymous","email":"tim.schaub@gmail.com"}],"directories":{},"publish_time":1389115190051,"_hasShrinkwrap":false,"_cnpm_publish_time":1389115190051,"_cnpmcore_publish_time":"2021-12-17T01:19:54.009Z","contributors":[]},"0.1.0":{"name":"get-down","version":"0.1.0","description":"Download and optionally extract files","main":"index.js","scripts":{"test":"grunt --stack test","debug-test":"node --debug-brk ./node_modules/.bin/grunt cafemocha","start":"grunt --stack start"},"license":"MIT","devDependencies":{"grunt-cli":"~0.1.11","grunt-contrib-jshint":"~0.8.0","grunt-cafe-mocha":"~0.1.10","grunt":"~0.4.2","chai":"~1.8.1","grunt-contrib-watch":"~0.5.3","grunt-newer":"~0.6.0","mock-fs":"~1.1.0"},"dependencies":{"q":"1.0.0","graceful-fs":"2.0.1","junk":"0.2.2","zlib":"1.0.5","tar":"0.1.19","mout":"0.8.0","decompress-zip":"0.0.3","tmp":"0.0.23","request":"2.30.0"},"readmeFilename":"readme.md","_id":"get-down@0.1.0","dist":{"tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/get-down/-/get-down-0.1.0.tgz","shasum":"3fe1a7a4287d0ef02ce0f75d33d92399b67d9c97","size":7408,"noattachment":false,"integrity":"sha512-Q82yHXS6inNb17LtUW59rBg4NXUAgZLlHq7CcVo4vdLwbD7NQKE5sU1iKnHU6597o6cXmT8QMLiOsTMuBBHkBA=="},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"anonymous","email":"tim.schaub@gmail.com"},"maintainers":[{"name":"anonymous","email":"tim.schaub@gmail.com"}],"directories":{},"publish_time":1389056815806,"_hasShrinkwrap":false,"_cnpm_publish_time":1389056815806,"_cnpmcore_publish_time":"2021-12-17T01:19:54.266Z","contributors":[]}},"dist-tags":{"latest":"1.2.0"},"name":"get-down","time":{"created":"2022-01-26T21:26:32.822Z","modified":"2022-01-26T21:26:32.822Z","1.2.0":"2017-06-28T17:23:10.807Z","1.1.0":"2016-05-10T16:05:13.616Z","1.0.0":"2015-09-04T21:55:42.850Z","0.5.0":"2014-09-16T20:37:08.169Z","0.4.0":"2014-06-13T17:05:18.078Z","0.3.1":"2014-01-08T17:45:22.753Z","0.3.0":"2014-01-08T05:29:23.409Z","0.2.0":"2014-01-07T17:19:50.051Z","0.1.0":"2014-01-07T01:06:55.806Z"},"readme":"# `get-down`\n\n**Download and optionally extract files.**\n\nThis draws heavily from [Bower's](http://bower.io/) download and extract utilities.  Those utilities are [copyright Twitter](https://github.com/bower/bower/blob/master/LICENSE) and carry the MIT license.\n\n## Example use\n\nDownload a file and save it to the working directory with the same name:\n```js\nvar download = require('get-down');\ndownload('http://example.com/file.txt');\n```\n\nSame as above, but saving to a different directory:\n```js\nvar download = require('get-down');\ndownload('http://example.com/file.txt', {dest: 'different/directory'});\n// the provided directory must already exist\n```\n\nIn addition to providing a `dest` directory, you can provide a new file name:\n```js\nvar download = require('get-down');\ndownload('http://example.com/file.txt', {dest: 'different/name.txt'});\n// the provided file must not already exist\n```\n\nThe `extract` option can be used to extract `tar`, `tgz`, `gz`, or `zip` files:\n```js\nvar download = require('get-down');\ndownload('http://example.com/file.zip', {dest: 'some/directory', extract: true});\n// the dest directory must already exist\n```\n\nAs you might expect, `download` is all async.  You get an event emitter in return:\n```js\nvar download = require('get-down');\ndownload('http://example.com/file.txt').on('end', function(dest) {\n  console.log('downloaded', dest);\n});\n```\n\n## API Docs\n\n## `download(url, [options])`\n\n * **url** - `string` URL for the resource you want to download.  E.g. `'http://example.com/file.txt'` or `'https://example.com/archive.zip'`.\n * **options** - `Object` An optional object with properties to configure the download operation.  See the available options below.\n\nDownload a resource.  Returns an [`EventEmitter`](http://nodejs.org/api/events.html#events_class_events_eventemitter) that emits the events described below.\n\n### Options\n\n#### <a id=\"optionsdest\">options.dest</a>\n\n * type: `string`\n * default: `process.cwd()`\n\nThe destination directory or file path for saving downloaded resources.  If `dest` is a directory, it must already exist.  If `dest` is a path to a file, the parent directory must already exist (existing files will not be overwritten).  If the [`extract` option](#optionsextract) is `false` and you provide a directory here, the filename will be derived from the provided `url` (e.g. a `url` of `'http://example.com/some/file.txt'` and a `dest` of `'local/path'` will result in `'local/path/file.txt'`).  Finally, if the [`extract` option](#optionsextract) is `true`, you must provide the path to an existing directory.\n\n#### <a id=\"optionsextract\">options.extract</a>\n\n * type: `boolean`\n * default: `false`\n\nExtract the downloaded archive.  If the `url` points to a .zip, .tar, .tgz, or .gz file, you can optionally extract/defalate it after download.  If not obvious from the file extension, the archive type will be determined from the content type header of the response.\n\n\n### Events\n\n#### `progress` event\n\nEmitted periodically during the download.  Listeners will receive a state object representing one of two types of progress.  As more data is received, the state object will have the following properties:\n\n * **received** - `number` The cumulative number of bytes received.\n * **total** - `number|null` If the response headers provided it, this will be the total content size in bytes.  If not provided, it will be `null`.\n * **percent** - `number|null` As a convenience, if `total` is available, this will be the percentage of the total file size received (otherwise it will be `null`).\n\nIf the download fails due to network issues, it will be retried (up to 5 times).  In the event of a retry, progress listeners will receive a state object with the following properties:\n\n * **retry** - `boolean` This will always be `true` in the event of a retry.\n * **timeout** - `number` The number of milliseconds before the download is attempted again.\n * **error** - `Error` An error representing the failure.\n\nA progress listener might handle both types of progress with code like this:\n\n```js\n  download('http://example.com/big-file.txt').on('progress', function(state) {\n    if (state.retry) {\n      var delay = Math.round(state.timeout / 1000) + 's';\n      console.log('Download failed, retrying again in ' + delay);\n    } else {\n      var progress = Math.floor(state.received / 1024) + 'K';\n      if (state.percent) {\n        progress = state.percent + '% (' + progress + ')';\n      }\n      console.log('Received ' + progress);\n    }\n  });\n```\n\n#### `error` event\n\nEmitted in the event of an error during download or extraction.  Listeners will receive an `Error` object with a message describing what went wrong.  Temporary files created during a download will be removed when your program completes.\n\n#### `end` event\n\nEmitted in upon success.  Listeners will be called with a (`string`) path to the saved resource.  If the [`extract` option](optionsextract) is `true`, this will be a path to the directory where the resource was extracted.  Otherwise, it will be a path to the saved file.\n\n## That's all\n\nPlease [report any issues](https://github.com/tschaub/get-down/issues) you find.  To contribute, fork and start out by running the tests.\n\n```\nnpm install\nnpm test\n```\n\nYou can run `npm start` to have the linter and tests run continuously during development.\n\n[![Build Status](https://travis-ci.org/tschaub/get-down.svg?branch=master)](https://travis-ci.org/tschaub/get-down)","users":{}}