{ "_args": [ [ "fill-range@^2.1.0", "/home/bernhard/freifunk-app/node_modules/expand-range" ] ], "_from": "fill-range@>=2.1.0 <3.0.0", "_id": "fill-range@2.2.4", "_inCache": true, "_installable": true, "_location": "/fill-range", "_nodeVersion": "10.0.0", "_npmOperationalInternal": { "host": "s3://npm-registry-packages", "tmp": "tmp/fill-range_2.2.4_1525799451635_0.17654086212587705" }, "_npmUser": { "email": "github@sellside.com", "name": "jonschlinkert" }, "_npmVersion": "6.0.0", "_phantomChildren": {}, "_requested": { "name": "fill-range", "raw": "fill-range@^2.1.0", "rawSpec": "^2.1.0", "scope": null, "spec": ">=2.1.0 <3.0.0", "type": "range" }, "_requiredBy": [ "/expand-range" ], "_resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", "_shasum": "eb1e773abb056dcd8df2bfdf6af59b8b3a936565", "_shrinkwrap": null, "_spec": "fill-range@^2.1.0", "_where": "/home/bernhard/freifunk-app/node_modules/expand-range", "author": { "name": "Jon Schlinkert", "url": "https://github.com/jonschlinkert" }, "bugs": { "url": "https://github.com/jonschlinkert/fill-range/issues" }, "dependencies": { "is-number": "^2.1.0", "isobject": "^2.0.0", "randomatic": "^3.0.0", "repeat-element": "^1.1.2", "repeat-string": "^1.5.2" }, "description": "Fill in a range of numbers or letters, optionally passing an increment or multiplier to use.", "devDependencies": { "benchmarked": "^0.1.3", "chalk": "^0.5.1", "gulp-format-md": "^1.0.0", "should": "^13.2.1" }, "directories": {}, "dist": { "fileCount": 4, "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8docCRA9TVsSAnZWagAAW0YQAICq5oyYdKA/14W5RLQi\n9kUoWP84GurnrMLkqnpGfCnizMNsLWBwy1DNIvIA68U0ZffnTcZ54IBBlvut\n8V8iyYW32nTRkCobajyXfnt191dC0xMbuQ8z72QBX0BZ9HqNRj/f+9Ae+AgO\n2pffjKv28vUXvPr+Ive3Orw5wqw5WyRVbognrELjvK10ursPRrvSn3JLRNo4\n74dTHntxANmUpgAHedxK/g2e5Bb5NbHmPjd1X2Vb6hEAtZhI2pa9+LIRhSdW\nZ/hxepMfMb14a5VmbmSVR/zDSnpG5VB+0VnEoVn4MP6ktrxUcprD7AUAy8ms\nVS2Cqw//LCW1DM4iFqigFGH0wyrPqmq/fsvMkzUJ31VBe1aGPvZfnF2GkGkp\nLz0FuOFlYKL0yCt2AjnZqVov6mzHDmTtTnZSa+woLpR6IGaCic1rSZqz42wz\ng/dgPfIFhaJxhMkvDvJqgzuvTk9gLQZrOMHKdxJVmgJKFtzUKdTkFJ0IvDUB\nd8+V7yWy4dZgQvVVIksRLr3x+394ez0qw2y1Wbi5HHLQiWniKjOTFNov949K\nfHnXYhpYyHzJEfQGu6GrPpxkQa5+N23LOapvWqdq0vwQ22geP29IwM3xlF3n\nb18j8C4kdtyAAEOwjF68UJUWGKwY1g25hWa7Li+9ZoCpKETK9RvFygFMGvTf\nmKQf\r\n=8oPR\r\n-----END PGP SIGNATURE-----\r\n", "shasum": "eb1e773abb056dcd8df2bfdf6af59b8b3a936565", "tarball": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", "unpackedSize": 20197 }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], "gitHead": "516e5ad9e40486c168b14062158d136aa3163f2b", "homepage": "https://github.com/jonschlinkert/fill-range", "keywords": [ "alpha", "alphabetical", "bash", "brace", "expand", "expansion", "fill", "glob", "match", "matches", "matching", "number", "numerical", "range", "ranges", "sh" ], "license": "MIT", "main": "index.js", "maintainers": [ { "name": "doowb", "email": "brian.woodward@gmail.com" }, { "name": "es128", "email": "elan.shanker+npm@gmail.com" }, { "name": "jonschlinkert", "email": "github@sellside.com" }, { "name": "paulmillr", "email": "paul@paulmillr.com" } ], "name": "fill-range", "optionalDependencies": {}, "readme": "# fill-range [![NPM version](https://img.shields.io/npm/v/fill-range.svg?style=flat)](https://www.npmjs.com/package/fill-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![NPM total downloads](https://img.shields.io/npm/dt/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/fill-range.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/fill-range)\n\n> Fill in a range of numbers or letters, optionally passing an increment or multiplier to use.\n\nPlease consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.\n\n- [Install](#install)\n- [Usage](#usage)\n * [Invalid ranges](#invalid-ranges)\n * [Custom function](#custom-function)\n * [Special characters](#special-characters)\n + [plus](#plus)\n + [pipe and tilde](#pipe-and-tilde)\n + [angle bracket](#angle-bracket)\n + [question mark](#question-mark)\n- [About](#about)\n\n_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save fill-range\n```\n\n## Usage\n\n```js\nvar range = require('fill-range');\n\nrange('a', 'e');\n//=> ['a', 'b', 'c', 'd', 'e']\n```\n\n**Params**\n\n```js\nrange(start, stop, step, options, fn);\n```\n\n* `start`: **{String|Number}** the number or letter to start with\n* `end`: **{String|Number}** the number or letter to end with\n* `step`: **{String|Number}** optionally pass the step to use. works for letters or numbers.\n* `options`: **{Object}**:\n - `makeRe`: return a regex-compatible string (still returned as an array for consistency)\n - `step`: pass the step on the options as an alternative to passing it as an argument\n - `silent`: `true` by default, set to false to throw errors for invalid ranges.\n* `fn`: **{Function}** optionally [pass a function](#custom-function) to modify each character\n\n**Examples**\n\n```js\nrange(1, 3)\n//=> ['1', '2', '3']\n\nrange('1', '3')\n//=> ['1', '2', '3']\n\nrange('0', '-5')\n//=> [ '0', '-1', '-2', '-3', '-4', '-5' ]\n\nrange(-9, 9, 3)\n//=> [ '-9', '-6', '-3', '0', '3', '6', '9' ])\n\nrange('-1', '-10', '-2')\n//=> [ '-1', '-3', '-5', '-7', '-9' ]\n\nrange('1', '10', '2')\n//=> [ '1', '3', '5', '7', '9' ]\n\nrange('a', 'e')\n//=> ['a', 'b', 'c', 'd', 'e']\n\nrange('a', 'e', 2)\n//=> ['a', 'c', 'e']\n\nrange('A', 'E', 2)\n//=> ['A', 'C', 'E']\n```\n\n### Invalid ranges\n\nWhen an invalid range is passed, `null` is returned.\n\n```js\nrange('1.1', '2');\n//=> null\n\nrange('a', '2');\n//=> null\n\nrange(1, 10, 'foo');\n//=> null\n```\n\nIf you want errors to be throw, pass `silent: false` on the options:\n\n### Custom function\n\nOptionally pass a custom function as the third or fourth argument:\n\n```js\nrange('a', 'e', function (val, isNumber, pad, i) {\n if (!isNumber) {\n return String.fromCharCode(val) + i;\n }\n return val;\n});\n//=> ['a0', 'b1', 'c2', 'd3', 'e4']\n```\n\n### Special characters\n\nA special character may be passed as the third arg instead of a step increment. These characters can be pretty useful for brace expansion, creating file paths, test fixtures and similar use case.\n\n```js\nrange('a', 'z', SPECIAL_CHARACTER_HERE);\n```\n\n**Supported characters**\n\n* `+`: repeat the given string `n` times\n* `|`: create a regex-ready string, instead of an array\n* `>`: join values to single array element\n* `?`: randomize the given pattern using [randomatic]\n\n#### plus\n\nCharacter: _(`+`)_\n\nRepeat the first argument the number of times passed on the second argument.\n\n**Examples:**\n\n```js\nrange('a', 3, '+');\n//=> ['a', 'a', 'a']\n\nrange('abc', 2, '+');\n//=> ['abc', 'abc']\n```\n\n#### pipe and tilde\n\nCharacters: _(`|` and `~`)_\n\nCreates a regex-capable string (either a logical `or` or a character class) from the expanded arguments.\n\n**Examples:**\n\n```js\nrange('a', 'c', '|');\n//=> ['(a|b|c)'\n\nrange('a', 'c', '~');\n//=> ['[a-c]'\n\nrange('a', 'z', '|5');\n//=> ['(a|f|k|p|u|z)'\n```\n\n**Automatic separator correction**\n\nTo avoid this error:\n\n> `Range out of order in character class`\n\nFill-range detects invalid sequences and uses the correct syntax. For example:\n\n**invalid** (regex)\n\nIf you pass these:\n\n```js\nrange('a', 'z', '~5');\n// which would result in this\n//=> ['[a-f-k-p-u-z]']\n\nrange('10', '20', '~');\n// which would result in this\n//=> ['[10-20]']\n```\n\n**valid** (regex)\n\nfill-range corrects them to this:\n\n```js\nrange('a', 'z', '~5');\n//=> ['(a|f|k|p|u|z)'\n\nrange('10', '20', '~');\n//=> ['(10-20)'\n```\n\n#### angle bracket\n\nCharacter: _(`>`)_\n\nJoins all values in the returned array to a single value.\n\n**Examples:**\n\n```js\nrange('a', 'e', '>');\n//=> ['abcde']\n\nrange('5', '8', '>');\n//=> ['5678']\n\nrange('2', '20', '2>');\n//=> ['2468101214161820']\n```\n\n#### question mark\n\nCharacter: _(`?`)_\n\nUses [randomatic] to generate randomized alpha, numeric, or alpha-numeric patterns based on the provided arguments.\n\n**Examples:**\n\n_(actual results would obviously be randomized)_\n\nGenerate a 5-character, uppercase, alphabetical string:\n\n```js\nrange('A', 5, '?');\n//=> ['NSHAK']\n```\n\nGenerate a 5-digit random number:\n\n```js\nrange('0', 5, '?');\n//=> ['36583']\n```\n\nGenerate a 10-character alpha-numeric string:\n\n```js\nrange('A0', 10, '?');\n//=> ['5YJD60VQNN']\n```\n\nSee the [randomatic] repo for all available options and or to create issues or feature requests related to randomization.\n\n## About\n\n
\nContributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n
\n\n
\nRunning Tests\n\nRunning and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:\n\n```sh\n$ npm install && npm test\n```\n\n
\n\n
\nBuilding docs\n\n_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_\n\nTo generate the readme, run the following command:\n\n```sh\n$ npm install -g verbose/verb#dev verb-generate-readme && verb\n```\n\n
\n\n### Related projects\n\nYou might also be interested in these projects:\n\n* [braces](https://www.npmjs.com/package/braces): Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support… [more](https://github.com/micromatch/braces) | [homepage](https://github.com/micromatch/braces \"Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.\")\n* [expand-range](https://www.npmjs.com/package/expand-range): Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used… [more](https://github.com/jonschlinkert/expand-range) | [homepage](https://github.com/jonschlinkert/expand-range \"Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used by [micromatch].\")\n* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob \"Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet\")\n* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/micromatch/micromatch \"Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.\")\n\n### Contributors\n\n| **Commits** | **Contributor** | \n| --- | --- |\n| 111 | [jonschlinkert](https://github.com/jonschlinkert) |\n| 2 | [paulmillr](https://github.com/paulmillr) |\n| 1 | [edorivai](https://github.com/edorivai) |\n| 1 | [realityking](https://github.com/realityking) |\n| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |\n\n### Author\n\n**Jon Schlinkert**\n\n* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)\n* [GitHub Profile](https://github.com/jonschlinkert)\n* [Twitter Profile](https://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT License](LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 08, 2018._", "readmeFilename": "README.md", "repository": { "type": "git", "url": "git+https://github.com/jonschlinkert/fill-range.git" }, "scripts": { "test": "mocha" }, "verb": { "layout": "default", "lint": { "reflinks": true }, "plugins": [ "gulp-format-md" ], "reflinks": [ "micromatch", "randomatic" ], "related": { "list": [ "braces", "expand-range", "is-glob", "micromatch" ] }, "tasks": [ "readme" ], "toc": true }, "version": "2.2.4" }