aboutsummaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range')
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/LICENSE21
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/README.md290
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/index.js408
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/package.json131
4 files changed, 850 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/LICENSE b/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/LICENSE
new file mode 100644
index 00000000..fa30c4cb
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-2015, Jon Schlinkert.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/README.md b/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/README.md
new file mode 100644
index 00000000..c69694a3
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/README.md
@@ -0,0 +1,290 @@
+# fill-range [![NPM version](https://badge.fury.io/js/fill-range.svg)](http://badge.fury.io/js/fill-range) [![Build Status](https://travis-ci.org/jonschlinkert/fill-range.svg)](https://travis-ci.org/jonschlinkert/fill-range)
+
+> Fill in a range of numbers or letters, optionally passing an increment or multiplier to use.
+
+## Install with [npm](npmjs.org)
+
+```bash
+npm i fill-range --save
+```
+
+<!-- toc -->
+
+- [Usage](#usage)
+ * [Invalid ranges](#invalid-ranges)
+ * [Custom function](#custom-function)
+ * [Special characters](#special-characters)
+ + [plus](#plus)
+ + [pipe and tilde](#pipe-and-tilde)
+ + [angle bracket](#angle-bracket)
+ + [question mark](#question-mark)
+- [Other useful libs](#other-useful-libs)
+- [Running tests](#running-tests)
+- [Contributing](#contributing)
+- [Author](#author)
+- [License](#license)
+
+_(Table of contents generated by [verb])_
+
+<!-- tocstop -->
+
+## Usage
+
+```js
+var range = require('fill-range');
+
+range('a', 'e');
+//=> ['a', 'b', 'c', 'd', 'e']
+```
+
+**Params**
+
+```js
+range(start, stop, step, options, fn);
+```
+
+ - `start`: **{String|Number}** the number or letter to start with
+ - `end`: **{String|Number}** the number or letter to end with
+ - `step`: **{String|Number}** optionally pass the step to use. works for letters or numbers.
+ - `options`: **{Object}**:
+ + `makeRe`: return a regex-compatible string (still returned as an array for consistency)
+ + `step`: pass the step on the options as an alternative to passing it as an argument
+ + `silent`: `true` by default, set to false to throw errors for invalid ranges.
+ - `fn`: **{Function}** optionally [pass a function](#custom-function) to modify each character
+
+
+**Examples**
+
+```js
+range(1, 3)
+//=> ['1', '2', '3']
+
+range('1', '3')
+//=> ['1', '2', '3']
+
+range('0', '-5')
+//=> [ '0', '-1', '-2', '-3', '-4', '-5' ]
+
+range(-9, 9, 3)
+//=> [ '-9', '-6', '-3', '0', '3', '6', '9' ])
+
+range('-1', '-10', '-2')
+//=> [ '-1', '-3', '-5', '-7', '-9' ]
+
+range('1', '10', '2')
+//=> [ '1', '3', '5', '7', '9' ]
+
+range('a', 'e')
+//=> ['a', 'b', 'c', 'd', 'e']
+
+range('a', 'e', 2)
+//=> ['a', 'c', 'e']
+
+range('A', 'E', 2)
+//=> ['A', 'C', 'E']
+```
+
+### Invalid ranges
+
+When an invalid range is passed, `null` is returned.
+
+```js
+range('1.1', '2');
+//=> null
+
+range('a', '2');
+//=> null
+
+range(1, 10, 'foo');
+//=> null
+```
+
+If you want errors to be throw, pass `silent: false` on the options:
+
+
+### Custom function
+
+Optionally pass a custom function as the third or fourth argument:
+
+```js
+range('a', 'e', function (val, isNumber, pad, i) {
+ if (!isNumber) {
+ return String.fromCharCode(val) + i;
+ }
+ return val;
+});
+//=> ['a0', 'b1', 'c2', 'd3', 'e4']
+```
+
+### Special characters
+
+A 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.
+
+```js
+range('a', 'z', SPECIAL_CHARACTER_HERE);
+```
+
+**Supported characters**
+
+ - `+`: repeat the given string `n` times
+ - `|`: create a regex-ready string, instead of an array
+ - `>`: join values to single array element
+ - `?`: randomize the given pattern using [randomatic]
+
+#### plus
+
+Character: _(`+`)_
+
+Repeat the first argument the number of times passed on the second argument.
+
+**Examples:**
+
+```js
+range('a', 3, '+');
+//=> ['a', 'a', 'a']
+
+range('abc', 2, '+');
+//=> ['abc', 'abc']
+```
+
+#### pipe and tilde
+
+Characters: _(`|` and `~`)_
+
+Creates a regex-capable string (either a logical `or` or a character class) from the expanded arguments.
+
+**Examples:**
+
+```js
+range('a', 'c', '|');
+//=> ['(a|b|c)'
+
+range('a', 'c', '~');
+//=> ['[a-c]'
+
+range('a', 'z', '|5');
+//=> ['(a|f|k|p|u|z)'
+```
+
+**Automatic separator correction**
+
+To avoid this error:
+
+> `Range out of order in character class`
+
+Fill-range detects invalid sequences and uses the correct syntax. For example:
+
+**invalid** (regex)
+
+If you pass these:
+
+```js
+range('a', 'z', '~5');
+// which would result in this
+//=> ['[a-f-k-p-u-z]']
+
+range('10', '20', '~');
+// which would result in this
+//=> ['[10-20]']
+```
+
+**valid** (regex)
+
+fill-range corrects them to this:
+
+```js
+range('a', 'z', '~5');
+//=> ['(a|f|k|p|u|z)'
+
+range('10', '20', '~');
+//=> ['(10-20)'
+```
+
+#### angle bracket
+
+Character: _(`>`)_
+
+Joins all values in the returned array to a single value.
+
+**Examples:**
+
+```js
+range('a', 'e', '>');
+//=> ['abcde']
+
+range('5', '8', '>');
+//=> ['5678']
+
+range('2', '20', '2>');
+//=> ['2468101214161820']
+```
+
+
+#### question mark
+
+Character: _(`?`)_
+
+Uses [randomatic] to generate randomized alpha, numeric, or alpha-numeric patterns based on the provided arguments.
+
+**Examples:**
+
+_(actual results would obviously be randomized)_
+
+Generate a 5-character, uppercase, alphabetical string:
+
+```js
+range('A', 5, '?');
+//=> ['NSHAK']
+```
+
+Generate a 5-digit random number:
+
+```js
+range('0', 5, '?');
+//=> ['36583']
+```
+
+Generate a 10-character alpha-numeric string:
+
+```js
+range('A0', 10, '?');
+//=> ['5YJD60VQNN']
+```
+
+See the [randomatic] repo for all available options and or to create issues or feature requests related to randomization.
+
+## Other useful libs
+ * [micromatch](https://github.com/jonschlinkert/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. Just use `micromatch.isMatch()` instead of `minimatch()`, or use `micromatch()` instead of `multimatch()`.
+ * [expand-range](https://github.com/jonschlinkert/expand-range): Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. See the benchmarks. Used by micromatch.
+ * [braces](https://github.com/jonschlinkert/braces): Fastest brace expansion for node.js, with the most complete support for the Bash 4.3 braces specification.
+ * [is-glob](https://github.com/jonschlinkert/is-glob): Returns `true` if the given string looks like a glob pattern.
+
+## Running tests
+Install dev dependencies:
+
+```bash
+npm i -d && npm test
+```
+
+## Contributing
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/fill-range/issues)
+
+## Author
+
+**Jon Schlinkert**
+
++ [github/jonschlinkert](https://github.com/jonschlinkert)
++ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
+
+## License
+Copyright (c) 2014-2015 Jon Schlinkert
+Released under the MIT license
+
+***
+
+_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on April 07, 2015._
+
+[randomatic]: https://github.com/jonschlinkert/randomatic
+[expand-range]: https://github.com/jonschlinkert/expand-range
+[micromatch]: https://github.com/jonschlinkert/micromatch
+[braces]: https://github.com/jonschlinkert/braces \ No newline at end of file
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/index.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/index.js
new file mode 100644
index 00000000..5657051b
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/index.js
@@ -0,0 +1,408 @@
+/*!
+ * fill-range <https://github.com/jonschlinkert/fill-range>
+ *
+ * Copyright (c) 2014-2015, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */
+
+'use strict';
+
+var isObject = require('isobject');
+var isNumber = require('is-number');
+var randomize = require('randomatic');
+var repeatStr = require('repeat-string');
+var repeat = require('repeat-element');
+
+/**
+ * Expose `fillRange`
+ */
+
+module.exports = fillRange;
+
+/**
+ * Return a range of numbers or letters.
+ *
+ * @param {String} `a` Start of the range
+ * @param {String} `b` End of the range
+ * @param {String} `step` Increment or decrement to use.
+ * @param {Function} `fn` Custom function to modify each element in the range.
+ * @return {Array}
+ */
+
+function fillRange(a, b, step, options, fn) {
+ if (a == null || b == null) {
+ throw new Error('fill-range expects the first and second args to be strings.');
+ }
+
+ if (typeof step === 'function') {
+ fn = step; options = {}; step = null;
+ }
+
+ if (typeof options === 'function') {
+ fn = options; options = {};
+ }
+
+ if (isObject(step)) {
+ options = step; step = '';
+ }
+
+ var expand, regex = false, sep = '';
+ var opts = options || {};
+
+ if (typeof opts.silent === 'undefined') {
+ opts.silent = true;
+ }
+
+ step = step || opts.step;
+
+ // store a ref to unmodified arg
+ var origA = a, origB = b;
+
+ b = (b.toString() === '-0') ? 0 : b;
+
+ if (opts.optimize || opts.makeRe) {
+ step = step ? (step += '~') : step;
+ expand = true;
+ regex = true;
+ sep = '~';
+ }
+
+ // handle special step characters
+ if (typeof step === 'string') {
+ var match = stepRe().exec(step);
+
+ if (match) {
+ var i = match.index;
+ var m = match[0];
+
+ // repeat string
+ if (m === '+') {
+ return repeat(a, b);
+
+ // randomize a, `b` times
+ } else if (m === '?') {
+ return [randomize(a, b)];
+
+ // expand right, no regex reduction
+ } else if (m === '>') {
+ step = step.substr(0, i) + step.substr(i + 1);
+ expand = true;
+
+ // expand to an array, or if valid create a reduced
+ // string for a regex logic `or`
+ } else if (m === '|') {
+ step = step.substr(0, i) + step.substr(i + 1);
+ expand = true;
+ regex = true;
+ sep = m;
+
+ // expand to an array, or if valid create a reduced
+ // string for a regex range
+ } else if (m === '~') {
+ step = step.substr(0, i) + step.substr(i + 1);
+ expand = true;
+ regex = true;
+ sep = m;
+ }
+ } else if (!isNumber(step)) {
+ if (!opts.silent) {
+ throw new TypeError('fill-range: invalid step.');
+ }
+ return null;
+ }
+ }
+
+ if (/[.&*()[\]^%$#@!]/.test(a) || /[.&*()[\]^%$#@!]/.test(b)) {
+ if (!opts.silent) {
+ throw new RangeError('fill-range: invalid range arguments.');
+ }
+ return null;
+ }
+
+ // has neither a letter nor number, or has both letters and numbers
+ // this needs to be after the step logic
+ if (!noAlphaNum(a) || !noAlphaNum(b) || hasBoth(a) || hasBoth(b)) {
+ if (!opts.silent) {
+ throw new RangeError('fill-range: invalid range arguments.');
+ }
+ return null;
+ }
+
+ // validate arguments
+ var isNumA = isNumber(zeros(a));
+ var isNumB = isNumber(zeros(b));
+
+ if ((!isNumA && isNumB) || (isNumA && !isNumB)) {
+ if (!opts.silent) {
+ throw new TypeError('fill-range: first range argument is incompatible with second.');
+ }
+ return null;
+ }
+
+ // by this point both are the same, so we
+ // can use A to check going forward.
+ var isNum = isNumA;
+ var num = formatStep(step);
+
+ // is the range alphabetical? or numeric?
+ if (isNum) {
+ // if numeric, coerce to an integer
+ a = +a; b = +b;
+ } else {
+ // otherwise, get the charCode to expand alpha ranges
+ a = a.charCodeAt(0);
+ b = b.charCodeAt(0);
+ }
+
+ // is the pattern descending?
+ var isDescending = a > b;
+
+ // don't create a character class if the args are < 0
+ if (a < 0 || b < 0) {
+ expand = false;
+ regex = false;
+ }
+
+ // detect padding
+ var padding = isPadded(origA, origB);
+ var res, pad, arr = [];
+ var ii = 0;
+
+ // character classes, ranges and logical `or`
+ if (regex) {
+ if (shouldExpand(a, b, num, isNum, padding, opts)) {
+ // make sure the correct separator is used
+ if (sep === '|' || sep === '~') {
+ sep = detectSeparator(a, b, num, isNum, isDescending);
+ }
+ return wrap([origA, origB], sep, opts);
+ }
+ }
+
+ while (isDescending ? (a >= b) : (a <= b)) {
+ if (padding && isNum) {
+ pad = padding(a);
+ }
+
+ // custom function
+ if (typeof fn === 'function') {
+ res = fn(a, isNum, pad, ii++);
+
+ // letters
+ } else if (!isNum) {
+ if (regex && isInvalidChar(a)) {
+ res = null;
+ } else {
+ res = String.fromCharCode(a);
+ }
+
+ // numbers
+ } else {
+ res = formatPadding(a, pad);
+ }
+
+ // add result to the array, filtering any nulled values
+ if (res !== null) arr.push(res);
+
+ // increment or decrement
+ if (isDescending) {
+ a -= num;
+ } else {
+ a += num;
+ }
+ }
+
+ // now that the array is expanded, we need to handle regex
+ // character classes, ranges or logical `or` that wasn't
+ // already handled before the loop
+ if ((regex || expand) && !opts.noexpand) {
+ // make sure the correct separator is used
+ if (sep === '|' || sep === '~') {
+ sep = detectSeparator(a, b, num, isNum, isDescending);
+ }
+ if (arr.length === 1 || a < 0 || b < 0) { return arr; }
+ return wrap(arr, sep, opts);
+ }
+
+ return arr;
+}
+
+/**
+ * Wrap the string with the correct regex
+ * syntax.
+ */
+
+function wrap(arr, sep, opts) {
+ if (sep === '~') { sep = '-'; }
+ var str = arr.join(sep);
+ var pre = opts && opts.regexPrefix;
+
+ // regex logical `or`
+ if (sep === '|') {
+ str = pre ? pre + str : str;
+ str = '(' + str + ')';
+ }
+
+ // regex character class
+ if (sep === '-') {
+ str = (pre && pre === '^')
+ ? pre + str
+ : str;
+ str = '[' + str + ']';
+ }
+ return [str];
+}
+
+/**
+ * Check for invalid characters
+ */
+
+function isCharClass(a, b, step, isNum, isDescending) {
+ if (isDescending) { return false; }
+ if (isNum) { return a <= 9 && b <= 9; }
+ if (a < b) { return step === 1; }
+ return false;
+}
+
+/**
+ * Detect the correct separator to use
+ */
+
+function shouldExpand(a, b, num, isNum, padding, opts) {
+ if (isNum && (a > 9 || b > 9)) { return false; }
+ return !padding && num === 1 && a < b;
+}
+
+/**
+ * Detect the correct separator to use
+ */
+
+function detectSeparator(a, b, step, isNum, isDescending) {
+ var isChar = isCharClass(a, b, step, isNum, isDescending);
+ if (!isChar) {
+ return '|';
+ }
+ return '~';
+}
+
+/**
+ * Correctly format the step based on type
+ */
+
+function formatStep(step) {
+ return Math.abs(step >> 0) || 1;
+}
+
+/**
+ * Format padding, taking leading `-` into account
+ */
+
+function formatPadding(ch, pad) {
+ var res = pad ? pad + ch : ch;
+ if (pad && ch.toString().charAt(0) === '-') {
+ res = '-' + pad + ch.toString().substr(1);
+ }
+ return res.toString();
+}
+
+/**
+ * Check for invalid characters
+ */
+
+function isInvalidChar(str) {
+ var ch = toStr(str);
+ return ch === '\\'
+ || ch === '['
+ || ch === ']'
+ || ch === '^'
+ || ch === '('
+ || ch === ')'
+ || ch === '`';
+}
+
+/**
+ * Convert to a string from a charCode
+ */
+
+function toStr(ch) {
+ return String.fromCharCode(ch);
+}
+
+
+/**
+ * Step regex
+ */
+
+function stepRe() {
+ return /\?|>|\||\+|\~/g;
+}
+
+/**
+ * Return true if `val` has either a letter
+ * or a number
+ */
+
+function noAlphaNum(val) {
+ return /[a-z0-9]/i.test(val);
+}
+
+/**
+ * Return true if `val` has both a letter and
+ * a number (invalid)
+ */
+
+function hasBoth(val) {
+ return /[a-z][0-9]|[0-9][a-z]/i.test(val);
+}
+
+/**
+ * Normalize zeros for checks
+ */
+
+function zeros(val) {
+ if (/^-*0+$/.test(val.toString())) {
+ return '0';
+ }
+ return val;
+}
+
+/**
+ * Return true if `val` has leading zeros,
+ * or a similar valid pattern.
+ */
+
+function hasZeros(val) {
+ return /[^.]\.|^-*0+[0-9]/.test(val);
+}
+
+/**
+ * If the string is padded, returns a curried function with
+ * the a cached padding string, or `false` if no padding.
+ *
+ * @param {*} `origA` String or number.
+ * @return {String|Boolean}
+ */
+
+function isPadded(origA, origB) {
+ if (hasZeros(origA) || hasZeros(origB)) {
+ var alen = length(origA);
+ var blen = length(origB);
+
+ var len = alen >= blen
+ ? alen
+ : blen;
+
+ return function (a) {
+ return repeatStr('0', len - length(a));
+ };
+ }
+ return false;
+}
+
+/**
+ * Get the string length of `val`
+ */
+
+function length(val) {
+ return val.toString().length;
+}
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/package.json b/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/package.json
new file mode 100644
index 00000000..56daa40b
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/fill-range/package.json
@@ -0,0 +1,131 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "fill-range@^2.1.0",
+ "scope": null,
+ "escapedName": "fill-range",
+ "name": "fill-range",
+ "rawSpec": "^2.1.0",
+ "spec": ">=2.1.0 <3.0.0",
+ "type": "range"
+ },
+ "C:\\apache-tomcat-8.5.11\\webapps\\vnfmarket\\node_modules\\expand-range"
+ ]
+ ],
+ "_from": "fill-range@>=2.1.0 <3.0.0",
+ "_id": "fill-range@2.2.3",
+ "_inCache": true,
+ "_location": "/fill-range",
+ "_nodeVersion": "5.0.0",
+ "_npmUser": {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ "_npmVersion": "3.3.6",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "fill-range@^2.1.0",
+ "scope": null,
+ "escapedName": "fill-range",
+ "name": "fill-range",
+ "rawSpec": "^2.1.0",
+ "spec": ">=2.1.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/expand-range"
+ ],
+ "_resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+ "_shasum": "50b77dfd7e469bc7492470963699fe7a8485a723",
+ "_shrinkwrap": null,
+ "_spec": "fill-range@^2.1.0",
+ "_where": "C:\\apache-tomcat-8.5.11\\webapps\\vnfmarket\\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": "^1.1.3",
+ "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",
+ "should": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "50b77dfd7e469bc7492470963699fe7a8485a723",
+ "tarball": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "6cb50d5c679d9e6d9e8ad97bb2efd63a8c8da610",
+ "homepage": "https://github.com/jonschlinkert/fill-range",
+ "keywords": [
+ "alpha",
+ "alphabetical",
+ "bash",
+ "brace",
+ "expand",
+ "expansion",
+ "glob",
+ "match",
+ "matches",
+ "matching",
+ "number",
+ "numerical",
+ "range",
+ "ranges",
+ "sh"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ {
+ "name": "doowb",
+ "email": "brian.woodward@gmail.com"
+ },
+ {
+ "name": "es128",
+ "email": "elan.shanker+npm@gmail.com"
+ }
+ ],
+ "name": "fill-range",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/jonschlinkert/fill-range.git"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "verb": {
+ "related": {
+ "list": [
+ "micromatch",
+ "expand-range",
+ "braces",
+ "is-glob"
+ ]
+ }
+ },
+ "version": "2.2.3"
+}