diff options
| author | Joel Kronqvist <joel.h.kronqvist@gmail.com> | 2022-03-05 19:02:27 +0200 | 
|---|---|---|
| committer | Joel Kronqvist <joel.h.kronqvist@gmail.com> | 2022-03-05 19:02:27 +0200 | 
| commit | 5d309ff52cd399a6b71968a6b9a70c8ac0b98981 (patch) | |
| tree | 360f7eb50f956e2367ef38fa1fc6ac7ac5258042 /node_modules/fill-range | |
| parent | b500a50f1b97d93c98b36ed9a980f8188d648147 (diff) | |
| download | LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.tar.gz LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.zip  | |
Added node_modules for the updating to work properly.
Diffstat (limited to 'node_modules/fill-range')
| -rw-r--r-- | node_modules/fill-range/LICENSE | 21 | ||||
| -rw-r--r-- | node_modules/fill-range/README.md | 237 | ||||
| -rw-r--r-- | node_modules/fill-range/index.js | 249 | ||||
| -rw-r--r-- | node_modules/fill-range/package.json | 69 | 
4 files changed, 576 insertions, 0 deletions
diff --git a/node_modules/fill-range/LICENSE b/node_modules/fill-range/LICENSE new file mode 100644 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/fill-range/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, 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/node_modules/fill-range/README.md b/node_modules/fill-range/README.md new file mode 100644 index 0000000..8d756fe --- /dev/null +++ b/node_modules/fill-range/README.md @@ -0,0 +1,237 @@ +# fill-range [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [](https://www.npmjs.com/package/fill-range) [](https://npmjs.org/package/fill-range) [](https://npmjs.org/package/fill-range) [](https://travis-ci.org/jonschlinkert/fill-range) + +> Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex` + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save fill-range +``` + +## Usage + +Expands numbers and letters, optionally using a `step` as the last argument. _(Numbers may be defined as JavaScript numbers or strings)_. + +```js +const fill = require('fill-range'); +// fill(from, to[, step, options]); + +console.log(fill('1', '10')); //=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] +console.log(fill('1', '10', { toRegex: true })); //=> [1-9]|10 +``` + +**Params** + +* `from`: **{String|Number}** the number or letter to start with +* `to`: **{String|Number}** the number or letter to end with +* `step`: **{String|Number|Object|Function}** Optionally pass a [step](#optionsstep) to use. +* `options`: **{Object|Function}**: See all available [options](#options) + +## Examples + +By default, an array of values is returned. + +**Alphabetical ranges** + +```js +console.log(fill('a', 'e')); //=> ['a', 'b', 'c', 'd', 'e'] +console.log(fill('A', 'E')); //=> [ 'A', 'B', 'C', 'D', 'E' ] +``` + +**Numerical ranges** + +Numbers can be defined as actual numbers or strings. + +```js +console.log(fill(1, 5));     //=> [ 1, 2, 3, 4, 5 ] +console.log(fill('1', '5')); //=> [ 1, 2, 3, 4, 5 ] +``` + +**Negative ranges** + +Numbers can be defined as actual numbers or strings. + +```js +console.log(fill('-5', '-1')); //=> [ '-5', '-4', '-3', '-2', '-1' ] +console.log(fill('-5', '5')); //=> [ '-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5' ] +``` + +**Steps (increments)** + +```js +// numerical ranges with increments +console.log(fill('0', '25', 4)); //=> [ '0', '4', '8', '12', '16', '20', '24' ] +console.log(fill('0', '25', 5)); //=> [ '0', '5', '10', '15', '20', '25' ] +console.log(fill('0', '25', 6)); //=> [ '0', '6', '12', '18', '24' ] + +// alphabetical ranges with increments +console.log(fill('a', 'z', 4)); //=> [ 'a', 'e', 'i', 'm', 'q', 'u', 'y' ] +console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] +console.log(fill('a', 'z', 6)); //=> [ 'a', 'g', 'm', 's', 'y' ] +``` + +## Options + +### options.step + +**Type**: `number` (formatted as a string or number) + +**Default**: `undefined` + +**Description**: The increment to use for the range. Can be used with letters or numbers. + +**Example(s)** + +```js +// numbers +console.log(fill('1', '10', 2)); //=> [ '1', '3', '5', '7', '9' ] +console.log(fill('1', '10', 3)); //=> [ '1', '4', '7', '10' ] +console.log(fill('1', '10', 4)); //=> [ '1', '5', '9' ] + +// letters +console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] +console.log(fill('a', 'z', 7)); //=> [ 'a', 'h', 'o', 'v' ] +console.log(fill('a', 'z', 9)); //=> [ 'a', 'j', 's' ] +``` + +### options.strictRanges + +**Type**: `boolean` + +**Default**: `false` + +**Description**: By default, `null` is returned when an invalid range is passed. Enable this option to throw a `RangeError` on invalid ranges. + +**Example(s)** + +The following are all invalid: + +```js +fill('1.1', '2');   // decimals not supported in ranges +fill('a', '2');     // incompatible range values +fill(1, 10, 'foo'); // invalid "step" argument +``` + +### options.stringify + +**Type**: `boolean` + +**Default**: `undefined` + +**Description**: Cast all returned values to strings. By default, integers are returned as numbers. + +**Example(s)** + +```js +console.log(fill(1, 5));                    //=> [ 1, 2, 3, 4, 5 ] +console.log(fill(1, 5, { stringify: true })); //=> [ '1', '2', '3', '4', '5' ] +``` + +### options.toRegex + +**Type**: `boolean` + +**Default**: `undefined` + +**Description**: Create a regex-compatible source string, instead of expanding values to an array. + +**Example(s)** + +```js +// alphabetical range +console.log(fill('a', 'e', { toRegex: true })); //=> '[a-e]' +// alphabetical with step +console.log(fill('a', 'z', 3, { toRegex: true })); //=> 'a|d|g|j|m|p|s|v|y' +// numerical range +console.log(fill('1', '100', { toRegex: true })); //=> '[1-9]|[1-9][0-9]|100' +// numerical range with zero padding +console.log(fill('000001', '100000', { toRegex: true })); +//=> '0{5}[1-9]|0{4}[1-9][0-9]|0{3}[1-9][0-9]{2}|0{2}[1-9][0-9]{3}|0[1-9][0-9]{4}|100000' +``` + +### options.transform + +**Type**: `function` + +**Default**: `undefined` + +**Description**: Customize each value in the returned array (or [string](#optionstoRegex)). _(you can also pass this function as the last argument to `fill()`)_. + +**Example(s)** + +```js +// add zero padding +console.log(fill(1, 5, value => String(value).padStart(4, '0'))); +//=> ['0001', '0002', '0003', '0004', '0005'] +``` + +## About + +<details> +<summary><strong>Contributing</strong></summary> + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +</details> + +<details> +<summary><strong>Running Tests</strong></summary> + +Running 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: + +```sh +$ npm install && npm test +``` + +</details> + +<details> +<summary><strong>Building docs</strong></summary> + +_(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.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +</details> + +### Contributors + +| **Commits** | **Contributor** |   +| --- | --- |   +| 116 | [jonschlinkert](https://github.com/jonschlinkert) |   +| 4   | [paulmillr](https://github.com/paulmillr) |   +| 2   | [realityking](https://github.com/realityking) |   +| 2   | [bluelovers](https://github.com/bluelovers) |   +| 1   | [edorivai](https://github.com/edorivai) |   +| 1   | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |   + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +Please consider supporting me on Patreon, or [start your own Patreon page](https://patreon.com/invite/bxpbvm)! + +<a href="https://www.patreon.com/jonschlinkert"> +<img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" height="50"> +</a> + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._
\ No newline at end of file diff --git a/node_modules/fill-range/index.js b/node_modules/fill-range/index.js new file mode 100644 index 0000000..97ce35a --- /dev/null +++ b/node_modules/fill-range/index.js @@ -0,0 +1,249 @@ +/*! + * fill-range <https://github.com/jonschlinkert/fill-range> + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ + +'use strict'; + +const util = require('util'); +const toRegexRange = require('to-regex-range'); + +const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); + +const transform = toNumber => { +  return value => toNumber === true ? Number(value) : String(value); +}; + +const isValidValue = value => { +  return typeof value === 'number' || (typeof value === 'string' && value !== ''); +}; + +const isNumber = num => Number.isInteger(+num); + +const zeros = input => { +  let value = `${input}`; +  let index = -1; +  if (value[0] === '-') value = value.slice(1); +  if (value === '0') return false; +  while (value[++index] === '0'); +  return index > 0; +}; + +const stringify = (start, end, options) => { +  if (typeof start === 'string' || typeof end === 'string') { +    return true; +  } +  return options.stringify === true; +}; + +const pad = (input, maxLength, toNumber) => { +  if (maxLength > 0) { +    let dash = input[0] === '-' ? '-' : ''; +    if (dash) input = input.slice(1); +    input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); +  } +  if (toNumber === false) { +    return String(input); +  } +  return input; +}; + +const toMaxLen = (input, maxLength) => { +  let negative = input[0] === '-' ? '-' : ''; +  if (negative) { +    input = input.slice(1); +    maxLength--; +  } +  while (input.length < maxLength) input = '0' + input; +  return negative ? ('-' + input) : input; +}; + +const toSequence = (parts, options) => { +  parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); +  parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + +  let prefix = options.capture ? '' : '?:'; +  let positives = ''; +  let negatives = ''; +  let result; + +  if (parts.positives.length) { +    positives = parts.positives.join('|'); +  } + +  if (parts.negatives.length) { +    negatives = `-(${prefix}${parts.negatives.join('|')})`; +  } + +  if (positives && negatives) { +    result = `${positives}|${negatives}`; +  } else { +    result = positives || negatives; +  } + +  if (options.wrap) { +    return `(${prefix}${result})`; +  } + +  return result; +}; + +const toRange = (a, b, isNumbers, options) => { +  if (isNumbers) { +    return toRegexRange(a, b, { wrap: false, ...options }); +  } + +  let start = String.fromCharCode(a); +  if (a === b) return start; + +  let stop = String.fromCharCode(b); +  return `[${start}-${stop}]`; +}; + +const toRegex = (start, end, options) => { +  if (Array.isArray(start)) { +    let wrap = options.wrap === true; +    let prefix = options.capture ? '' : '?:'; +    return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); +  } +  return toRegexRange(start, end, options); +}; + +const rangeError = (...args) => { +  return new RangeError('Invalid range arguments: ' + util.inspect(...args)); +}; + +const invalidRange = (start, end, options) => { +  if (options.strictRanges === true) throw rangeError([start, end]); +  return []; +}; + +const invalidStep = (step, options) => { +  if (options.strictRanges === true) { +    throw new TypeError(`Expected step "${step}" to be a number`); +  } +  return []; +}; + +const fillNumbers = (start, end, step = 1, options = {}) => { +  let a = Number(start); +  let b = Number(end); + +  if (!Number.isInteger(a) || !Number.isInteger(b)) { +    if (options.strictRanges === true) throw rangeError([start, end]); +    return []; +  } + +  // fix negative zero +  if (a === 0) a = 0; +  if (b === 0) b = 0; + +  let descending = a > b; +  let startString = String(start); +  let endString = String(end); +  let stepString = String(step); +  step = Math.max(Math.abs(step), 1); + +  let padded = zeros(startString) || zeros(endString) || zeros(stepString); +  let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; +  let toNumber = padded === false && stringify(start, end, options) === false; +  let format = options.transform || transform(toNumber); + +  if (options.toRegex && step === 1) { +    return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); +  } + +  let parts = { negatives: [], positives: [] }; +  let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); +  let range = []; +  let index = 0; + +  while (descending ? a >= b : a <= b) { +    if (options.toRegex === true && step > 1) { +      push(a); +    } else { +      range.push(pad(format(a, index), maxLen, toNumber)); +    } +    a = descending ? a - step : a + step; +    index++; +  } + +  if (options.toRegex === true) { +    return step > 1 +      ? toSequence(parts, options) +      : toRegex(range, null, { wrap: false, ...options }); +  } + +  return range; +}; + +const fillLetters = (start, end, step = 1, options = {}) => { +  if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) { +    return invalidRange(start, end, options); +  } + + +  let format = options.transform || (val => String.fromCharCode(val)); +  let a = `${start}`.charCodeAt(0); +  let b = `${end}`.charCodeAt(0); + +  let descending = a > b; +  let min = Math.min(a, b); +  let max = Math.max(a, b); + +  if (options.toRegex && step === 1) { +    return toRange(min, max, false, options); +  } + +  let range = []; +  let index = 0; + +  while (descending ? a >= b : a <= b) { +    range.push(format(a, index)); +    a = descending ? a - step : a + step; +    index++; +  } + +  if (options.toRegex === true) { +    return toRegex(range, null, { wrap: false, options }); +  } + +  return range; +}; + +const fill = (start, end, step, options = {}) => { +  if (end == null && isValidValue(start)) { +    return [start]; +  } + +  if (!isValidValue(start) || !isValidValue(end)) { +    return invalidRange(start, end, options); +  } + +  if (typeof step === 'function') { +    return fill(start, end, 1, { transform: step }); +  } + +  if (isObject(step)) { +    return fill(start, end, 0, step); +  } + +  let opts = { ...options }; +  if (opts.capture === true) opts.wrap = true; +  step = step || opts.step || 1; + +  if (!isNumber(step)) { +    if (step != null && !isObject(step)) return invalidStep(step, opts); +    return fill(start, end, 1, step); +  } + +  if (isNumber(start) && isNumber(end)) { +    return fillNumbers(start, end, step, opts); +  } + +  return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); +}; + +module.exports = fill; diff --git a/node_modules/fill-range/package.json b/node_modules/fill-range/package.json new file mode 100644 index 0000000..07d3076 --- /dev/null +++ b/node_modules/fill-range/package.json @@ -0,0 +1,69 @@ +{ +  "name": "fill-range", +  "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", +  "version": "7.0.1", +  "homepage": "https://github.com/jonschlinkert/fill-range", +  "author": "Jon Schlinkert (https://github.com/jonschlinkert)", +  "contributors": [ +    "Edo Rivai (edo.rivai.nl)", +    "Jon Schlinkert (http://twitter.com/jonschlinkert)", +    "Paul Miller (paulmillr.com)", +    "Rouven Weßling (www.rouvenwessling.de)", +    "(https://github.com/wtgtybhertgeghgtwtg)" +  ], +  "repository": "jonschlinkert/fill-range", +  "bugs": { +    "url": "https://github.com/jonschlinkert/fill-range/issues" +  }, +  "license": "MIT", +  "files": [ +    "index.js" +  ], +  "main": "index.js", +  "engines": { +    "node": ">=8" +  }, +  "scripts": { +    "test": "mocha" +  }, +  "dependencies": { +    "to-regex-range": "^5.0.1" +  }, +  "devDependencies": { +    "gulp-format-md": "^2.0.0", +    "mocha": "^6.1.1" +  }, +  "keywords": [ +    "alpha", +    "alphabetical", +    "array", +    "bash", +    "brace", +    "expand", +    "expansion", +    "fill", +    "glob", +    "match", +    "matches", +    "matching", +    "number", +    "numerical", +    "range", +    "ranges", +    "regex", +    "sh" +  ], +  "verb": { +    "toc": false, +    "layout": "default", +    "tasks": [ +      "readme" +    ], +    "plugins": [ +      "gulp-format-md" +    ], +    "lint": { +      "reflinks": true +    } +  } +}  | 
