diff options
Diffstat (limited to 'node_modules/to-regex')
| -rw-r--r-- | node_modules/to-regex/LICENSE | 21 | ||||
| -rw-r--r-- | node_modules/to-regex/README.md | 205 | ||||
| -rw-r--r-- | node_modules/to-regex/index.js | 155 | ||||
| -rw-r--r-- | node_modules/to-regex/package.json | 101 | 
4 files changed, 482 insertions, 0 deletions
diff --git a/node_modules/to-regex/LICENSE b/node_modules/to-regex/LICENSE new file mode 100644 index 0000000..7c9987b --- /dev/null +++ b/node_modules/to-regex/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016-2018, 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/to-regex/README.md b/node_modules/to-regex/README.md new file mode 100644 index 0000000..5a28fc3 --- /dev/null +++ b/node_modules/to-regex/README.md @@ -0,0 +1,205 @@ +# to-regex [](https://www.npmjs.com/package/to-regex) [](https://npmjs.org/package/to-regex) [](https://npmjs.org/package/to-regex) [](https://travis-ci.org/jonschlinkert/to-regex) + +> Generate a regex from a string or array of strings. + +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) +- [Usage](#usage) +- [Options](#options) +  * [options.contains](#optionscontains) +  * [options.negate](#optionsnegate) +  * [options.nocase](#optionsnocase) +  * [options.flags](#optionsflags) +  * [options.cache](#optionscache) +  * [options.safe](#optionssafe) +- [About](#about) +  * [Related projects](#related-projects) +  * [Author](#author) +  * [License](#license) + +_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_ + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save to-regex +``` + +## Usage + +```js +var toRegex = require('to-regex'); + +console.log(toRegex('foo')); +//=> /^(?:foo)$/ + +console.log(toRegex('foo', {negate: true})); +//=> /^(?:(?:(?!^(?:foo)$).)*)$/ + +console.log(toRegex('foo', {contains: true})); +//=> /(?:foo)/ + +console.log(toRegex(['foo', 'bar'], {negate: true})); +//=> /^(?:(?:(?!^(?:(?:foo)|(?:bar))$).)*)$/ + +console.log(toRegex(['foo', 'bar'], {negate: true, contains: true})); +//=> /^(?:(?:(?!(?:(?:foo)|(?:bar))).)*)$/ +``` + +## Options + +### options.contains + +**Type**: `Boolean` + +**Default**: `undefined` + +Generate a regex that will match any string that _contains_ the given pattern. By default, regex is strict will only return true for exact matches. + +```js +var toRegex = require('to-regex'); +console.log(toRegex('foo', {contains: true})); +//=> /(?:foo)/ +``` + +### options.negate + +**Type**: `Boolean` + +**Default**: `undefined` + +Create a regex that will match everything except the given pattern. + +```js +var toRegex = require('to-regex'); +console.log(toRegex('foo', {negate: true})); +//=> /^(?:(?:(?!^(?:foo)$).)*)$/ +``` + +### options.nocase + +**Type**: `Boolean` + +**Default**: `undefined` + +Adds the `i` flag, to enable case-insensitive matching. + +```js +var toRegex = require('to-regex'); +console.log(toRegex('foo', {nocase: true})); +//=> /^(?:foo)$/i +``` + +Alternatively you can pass the flags you want directly on [options.flags](#options.flags). + +### options.flags + +**Type**: `String` + +**Default**: `undefined` + +Define the flags you want to use on the generated regex. + +```js +var toRegex = require('to-regex'); +console.log(toRegex('foo', {flags: 'gm'})); +//=> /^(?:foo)$/gm +console.log(toRegex('foo', {flags: 'gmi', nocase: true})); //<= handles redundancy +//=> /^(?:foo)$/gmi +``` + +### options.cache + +**Type**: `Boolean` + +**Default**: `true` + +Generated regex is cached based on the provided string and options. As a result, runtime compilation only happens once per pattern (as long as options are also the same), which can result in dramatic speed improvements. + +This also helps with debugging, since adding options and pattern are added to the generated regex. + +**Disable caching** + +```js +toRegex('foo', {cache: false}); +``` + +### options.safe + +**Type**: `Boolean` + +**Default**: `undefined` + +Check the generated regular expression with [safe-regex](https://github.com/substack/safe-regex) and throw an error if the regex is potentially unsafe. + +**Examples** + +```js +console.log(toRegex('(x+x+)+y')); +//=> /^(?:(x+x+)+y)$/ + +// The following would throw an error +toRegex('(x+x+)+y', {safe: true}); +``` + +## 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> + +### Related projects + +You might also be interested in these projects: + +* [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob "Returns `true` if an array has a glob pattern.") +* [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") +* [path-regex](https://www.npmjs.com/package/path-regex): Regular expression for matching the parts of a file path. | [homepage](https://github.com/regexps/path-regex "Regular expression for matching the parts of a file path.") +* [to-regex-range](https://www.npmjs.com/package/to-regex-range): Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than… [more](https://github.com/micromatch/to-regex-range) | [homepage](https://github.com/micromatch/to-regex-range "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.") + +### Author + +**Jon Schlinkert** + +* [linkedin/in/jonschlinkert](https://linkedin.com/in/jonschlinkert) +* [github/jonschlinkert](https://github.com/jonschlinkert) +* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) + +### License + +Copyright © 2018, [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.6.0, on February 24, 2018._
\ No newline at end of file diff --git a/node_modules/to-regex/index.js b/node_modules/to-regex/index.js new file mode 100644 index 0000000..a87d015 --- /dev/null +++ b/node_modules/to-regex/index.js @@ -0,0 +1,155 @@ +'use strict'; + +var safe = require('safe-regex'); +var define = require('define-property'); +var extend = require('extend-shallow'); +var not = require('regex-not'); +var MAX_LENGTH = 1024 * 64; + +/** + * Session cache + */ + +var cache = {}; + +/** + * Create a regular expression from the given `pattern` string. + * + * @param {String|RegExp} `pattern` Pattern can be a string or regular expression. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ + +module.exports = function(patterns, options) { +  if (!Array.isArray(patterns)) { +    return makeRe(patterns, options); +  } +  return makeRe(patterns.join('|'), options); +}; + +/** + * Create a regular expression from the given `pattern` string. + * + * @param {String|RegExp} `pattern` Pattern can be a string or regular expression. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ + +function makeRe(pattern, options) { +  if (pattern instanceof RegExp) { +    return pattern; +  } + +  if (typeof pattern !== 'string') { +    throw new TypeError('expected a string'); +  } + +  if (pattern.length > MAX_LENGTH) { +    throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters'); +  } + +  var key = pattern; +  // do this before shallow cloning options, it's a lot faster +  if (!options || (options && options.cache !== false)) { +    key = createKey(pattern, options); + +    if (cache.hasOwnProperty(key)) { +      return cache[key]; +    } +  } + +  var opts = extend({}, options); +  if (opts.contains === true) { +    if (opts.negate === true) { +      opts.strictNegate = false; +    } else { +      opts.strict = false; +    } +  } + +  if (opts.strict === false) { +    opts.strictOpen = false; +    opts.strictClose = false; +  } + +  var open = opts.strictOpen !== false ? '^' : ''; +  var close = opts.strictClose !== false ? '$' : ''; +  var flags = opts.flags || ''; +  var regex; + +  if (opts.nocase === true && !/i/.test(flags)) { +    flags += 'i'; +  } + +  try { +    if (opts.negate || typeof opts.strictNegate === 'boolean') { +      pattern = not.create(pattern, opts); +    } + +    var str = open + '(?:' + pattern + ')' + close; +    regex = new RegExp(str, flags); + +    if (opts.safe === true && safe(regex) === false) { +      throw new Error('potentially unsafe regular expression: ' + regex.source); +    } + +  } catch (err) { +    if (opts.strictErrors === true || opts.safe === true) { +      err.key = key; +      err.pattern = pattern; +      err.originalOptions = options; +      err.createdOptions = opts; +      throw err; +    } + +    try { +      regex = new RegExp('^' + pattern.replace(/(\W)/g, '\\$1') + '$'); +    } catch (err) { +      regex = /.^/; //<= match nothing +    } +  } + +  if (opts.cache !== false) { +    memoize(regex, key, pattern, opts); +  } +  return regex; +} + +/** + * Memoize generated regex. This can result in dramatic speed improvements + * and simplify debugging by adding options and pattern to the regex. It can be + * disabled by passing setting `options.cache` to false. + */ + +function memoize(regex, key, pattern, options) { +  define(regex, 'cached', true); +  define(regex, 'pattern', pattern); +  define(regex, 'options', options); +  define(regex, 'key', key); +  cache[key] = regex; +} + +/** + * Create the key to use for memoization. The key is generated + * by iterating over the options and concatenating key-value pairs + * to the pattern string. + */ + +function createKey(pattern, options) { +  if (!options) return pattern; +  var key = pattern; +  for (var prop in options) { +    if (options.hasOwnProperty(prop)) { +      key += ';' + prop + '=' + String(options[prop]); +    } +  } +  return key; +} + +/** + * Expose `makeRe` + */ + +module.exports.makeRe = makeRe; diff --git a/node_modules/to-regex/package.json b/node_modules/to-regex/package.json new file mode 100644 index 0000000..bd679b3 --- /dev/null +++ b/node_modules/to-regex/package.json @@ -0,0 +1,101 @@ +{ +  "_args": [ +    [ +      "to-regex@3.0.2", +      "/home/dstaesse/git/website" +    ] +  ], +  "_development": true, +  "_from": "to-regex@3.0.2", +  "_id": "to-regex@3.0.2", +  "_inBundle": false, +  "_integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", +  "_location": "/to-regex", +  "_phantomChildren": {}, +  "_requested": { +    "type": "version", +    "registry": true, +    "raw": "to-regex@3.0.2", +    "name": "to-regex", +    "escapedName": "to-regex", +    "rawSpec": "3.0.2", +    "saveSpec": null, +    "fetchSpec": "3.0.2" +  }, +  "_requiredBy": [ +    "/braces", +    "/expand-brackets", +    "/extglob", +    "/micromatch", +    "/nanomatch" +  ], +  "_resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", +  "_spec": "3.0.2", +  "_where": "/home/dstaesse/git/website", +  "author": { +    "name": "Jon Schlinkert", +    "url": "https://github.com/jonschlinkert" +  }, +  "bugs": { +    "url": "https://github.com/jonschlinkert/to-regex/issues" +  }, +  "dependencies": { +    "define-property": "^2.0.2", +    "extend-shallow": "^3.0.2", +    "regex-not": "^1.0.2", +    "safe-regex": "^1.1.0" +  }, +  "description": "Generate a regex from a string or array of strings.", +  "devDependencies": { +    "gulp-format-md": "^1.0.0", +    "mocha": "^3.5.3" +  }, +  "engines": { +    "node": ">=0.10.0" +  }, +  "files": [ +    "index.js" +  ], +  "homepage": "https://github.com/jonschlinkert/to-regex", +  "keywords": [ +    "match", +    "regex", +    "regular expression", +    "test", +    "to" +  ], +  "license": "MIT", +  "main": "index.js", +  "name": "to-regex", +  "repository": { +    "type": "git", +    "url": "git+https://github.com/jonschlinkert/to-regex.git" +  }, +  "scripts": { +    "test": "mocha" +  }, +  "verb": { +    "toc": { +      "method": "preWrite" +    }, +    "layout": "default", +    "tasks": [ +      "readme" +    ], +    "plugins": [ +      "gulp-format-md" +    ], +    "related": { +      "list": [ +        "has-glob", +        "is-glob", +        "path-regex", +        "to-regex-range" +      ] +    }, +    "lint": { +      "reflinks": true +    } +  }, +  "version": "3.0.2" +}  | 
