{
  "name": "range-parser",
  "author": {
    "name": "TJ Holowaychuk",
    "email": "tj@vision-media.ca",
    "url": "http://tjholowaychuk.com"
  },
  "description": "Range header field string parser",
  "version": "1.2.0",
  "contributors": [
    {
      "name": "Douglas Christopher Wilson",
      "email": "doug@somethingdoug.com"
    },
    {
      "name": "James Wyatt Cready",
      "email": "wyatt.cready@lanetix.com"
    },
    {
      "name": "Jonathan Ong",
      "email": "me@jongleberry.com",
      "url": "http://jongleberry.com"
    }
  ],
  "license": "MIT",
  "keywords": [
    "range",
    "parser",
    "http"
  ],
  "repository": {
    "type": "git",
    "url": "git://github.com/jshttp/range-parser"
  },
  "devDependencies": {
    "eslint": "2.11.1",
    "eslint-config-standard": "5.3.1",
    "eslint-plugin-promise": "1.1.0",
    "eslint-plugin-standard": "1.3.2",
    "istanbul": "0.4.3",
    "mocha": "1.21.5"
  },
  "files": [
    "HISTORY.md",
    "LICENSE",
    "index.js"
  ],
  "engines": {
    "node": ">= 0.6"
  },
  "scripts": {
    "lint": "eslint **/*.js",
    "test": "mocha --reporter spec",
    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot",
    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"
  },
  "readme": "# range-parser\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Node.js Version][node-version-image]][node-version-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nRange header field parser.\n\n## Installation\n\n```\n$ npm install range-parser\n```\n\n## API\n\n```js\nvar parseRange = require('range-parser')\n```\n\n### parseRange(size, header, options)\n\nParse the given `header` string where `size` is the maximum size of the resource.\nAn array of ranges will be returned or negative numbers indicating an error parsing.\n\n  * `-2` signals a malformed header string\n  * `-1` signals an unsatisfiable range\n\n```js\n// parse header from request\nvar range = parseRange(size, req.headers.range)\n\n// the type of the range\nif (range.type === 'bytes') {\n  // the ranges\n  range.forEach(function (r) {\n    // do something with r.start and r.end\n  })\n}\n```\n\n#### Options\n\nThese properties are accepted in the options object.\n\n##### combine\n\nSpecifies if overlapping & adjacent ranges should be combined, defaults to `false`.\nWhen `true`, ranges will be combined and returned as if they were specified that\nway in the header.\n\n```js\nparseRange(100, 'bytes=50-55,0-10,5-10,56-60', { combine: true })\n// => [\n//      { start: 0,  end: 10 },\n//      { start: 50, end: 60 }\n//    ]\n```\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/range-parser.svg\n[npm-url]: https://npmjs.org/package/range-parser\n[node-version-image]: https://img.shields.io/node/v/range-parser.svg\n[node-version-url]: https://nodejs.org/endownload\n[travis-image]: https://img.shields.io/travis/jshttp/range-parser.svg\n[travis-url]: https://travis-ci.org/jshttp/range-parser\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/range-parser.svg\n[coveralls-url]: https://coveralls.io/r/jshttp/range-parser\n[downloads-image]: https://img.shields.io/npm/dm/range-parser.svg\n[downloads-url]: https://npmjs.org/package/range-parser\n",
  "readmeFilename": "README.md",
  "bugs": {
    "url": "https://github.com/jshttp/range-parser/issues"
  },
  "homepage": "https://github.com/jshttp/range-parser",
  "_id": "range-parser@1.2.0",
  "_shasum": "f49be6b487894ddc40dcc94a322f611092e00d5e",
  "_from": "range-parser@~1.2.0",
  "_resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz"
}
