diff options
| author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2019-10-06 21:37:45 +0200 | 
|---|---|---|
| committer | Dimitri Staessens <dimitri@ouroboros.rocks> | 2019-10-06 21:37:45 +0200 | 
| commit | 3c51c3be85bb0d1bdb87ea0d6632f1c256912f27 (patch) | |
| tree | c7ccc8279b12c4f7bdbbb4270d617e48f51722e4 /node_modules/split-string | |
| parent | 412c104bebc507bea9c94fd53b5bdc4b64cbfe31 (diff) | |
| download | website-3c51c3be85bb0d1bdb87ea0d6632f1c256912f27.tar.gz website-3c51c3be85bb0d1bdb87ea0d6632f1c256912f27.zip  | |
build: Add some required modules for node
Diffstat (limited to 'node_modules/split-string')
| -rw-r--r-- | node_modules/split-string/LICENSE | 21 | ||||
| -rw-r--r-- | node_modules/split-string/README.md | 321 | ||||
| -rw-r--r-- | node_modules/split-string/index.js | 171 | ||||
| -rw-r--r-- | node_modules/split-string/package.json | 107 | 
4 files changed, 620 insertions, 0 deletions
diff --git a/node_modules/split-string/LICENSE b/node_modules/split-string/LICENSE new file mode 100644 index 0000000..e33d14b --- /dev/null +++ b/node_modules/split-string/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015-2017, 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/split-string/README.md b/node_modules/split-string/README.md new file mode 100644 index 0000000..d622e44 --- /dev/null +++ b/node_modules/split-string/README.md @@ -0,0 +1,321 @@ +# split-string [](https://www.npmjs.com/package/split-string) [](https://npmjs.org/package/split-string) [](https://npmjs.org/package/split-string) [](https://travis-ci.org/jonschlinkert/split-string) + +> Split a string on a character except when the character is escaped. + +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 split-string +``` + +<!-- section: Why use this? --> + +<details> +<summary><strong>Why use this?</strong></summary> + +<br> + +Although it's easy to split on a string: + +```js +console.log('a.b.c'.split('.')); +//=> ['a', 'b', 'c'] +``` + +It's more challenging to split a string whilst respecting escaped or quoted characters. + +**Bad** + +```js +console.log('a\\.b.c'.split('.')); +//=> ['a\\', 'b', 'c'] + +console.log('"a.b.c".d'.split('.')); +//=> ['"a', 'b', 'c"', 'd'] +``` + +**Good** + +```js +var split = require('split-string'); +console.log(split('a\\.b.c')); +//=> ['a.b', 'c'] + +console.log(split('"a.b.c".d')); +//=> ['a.b.c', 'd'] +``` + +See the [options](#options) to learn how to choose the separator or retain quotes or escaping. + +<br> + +</details> + +## Usage + +```js +var split = require('split-string'); + +split('a.b.c'); +//=> ['a', 'b', 'c'] + +// respects escaped characters +split('a.b.c\\.d'); +//=> ['a', 'b', 'c.d'] + +// respects double-quoted strings +split('a."b.c.d".e'); +//=> ['a', 'b.c.d', 'e'] +``` + +**Brackets** + +Also respects brackets [unless disabled](#optionsbrackets): + +```js +split('a (b c d) e', ' '); +//=> ['a', '(b c d)', 'e'] +``` + +## Options + +### options.brackets + +**Type**: `object|boolean` + +**Default**: `undefined` + +**Description** + +If enabled, split-string will not split inside brackets. The following brackets types are supported when `options.brackets` is `true`, + +```js +{ +  '<': '>', +  '(': ')', +  '[': ']', +  '{': '}' +} +``` + +Or, if object of brackets must be passed, each property on the object must be a bracket type, where the property key is the opening delimiter and property value is the closing delimiter. + +**Examples** + +```js +// no bracket support by default +split('a.{b.c}'); +//=> [ 'a', '{b', 'c}' ] + +// support all basic bracket types: "<>{}[]()" +split('a.{b.c}', {brackets: true}); +//=> [ 'a', '{b.c}' ] + +// also supports nested brackets  +split('a.{b.{c.d}.e}.f', {brackets: true}); +//=> [ 'a', '{b.{c.d}.e}', 'f' ] + +// support only the specified brackets +split('[a.b].(c.d)', {brackets: {'[': ']'}}); +//=> [ '[a.b]', '(c', 'd)' ] +``` + +### options.sep + +**Type**: `string` + +**Default**: `.` + +The separator/character to split on. + +**Example** + +```js +split('a.b,c', {sep: ','}); +//=> ['a.b', 'c'] + +// you can also pass the separator as string as the last argument +split('a.b,c', ','); +//=> ['a.b', 'c'] +``` + +### options.keepEscaping + +**Type**: `boolean` + +**Default**: `undefined` + +Keep backslashes in the result. + +**Example** + +```js +split('a.b\\.c'); +//=> ['a', 'b.c'] + +split('a.b.\\c', {keepEscaping: true}); +//=> ['a', 'b\.c'] +``` + +### options.keepQuotes + +**Type**: `boolean` + +**Default**: `undefined` + +Keep single- or double-quotes in the result. + +**Example** + +```js +split('a."b.c.d".e'); +//=> ['a', 'b.c.d', 'e'] + +split('a."b.c.d".e', {keepQuotes: true}); +//=> ['a', '"b.c.d"', 'e'] + +split('a.\'b.c.d\'.e', {keepQuotes: true}); +//=> ['a', '\'b.c.d\'', 'e'] +``` + +### options.keepDoubleQuotes + +**Type**: `boolean` + +**Default**: `undefined` + +Keep double-quotes in the result. + +**Example** + +```js +split('a."b.c.d".e'); +//=> ['a', 'b.c.d', 'e'] + +split('a."b.c.d".e', {keepDoubleQuotes: true}); +//=> ['a', '"b.c.d"', 'e'] +``` + +### options.keepSingleQuotes + +**Type**: `boolean` + +**Default**: `undefined` + +Keep single-quotes in the result. + +**Example** + +```js +split('a.\'b.c.d\'.e'); +//=> ['a', 'b.c.d', 'e'] + +split('a.\'b.c.d\'.e', {keepSingleQuotes: true}); +//=> ['a', '\'b.c.d\'', 'e'] +``` + +## Customizer + +**Type**: `function` + +**Default**: `undefined` + +Pass a function as the last argument to customize how tokens are added to the array. + +**Example** + +```js +var arr = split('a.b', function(tok) { +  if (tok.arr[tok.arr.length - 1] === 'a') { +    tok.split = false; +  } +}); +console.log(arr); +//=> ['a.b'] +``` + +**Properties** + +The `tok` object has the following properties: + +* `tok.val` (string) The current value about to be pushed onto the result array +* `tok.idx` (number) the current index in the string +* `tok.str` (string) the entire string +* `tok.arr` (array) the result array + +## Release history + +### v3.0.0 - 2017-06-17 + +**Added** + +* adds support for brackets + +## 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: + +* [deromanize](https://www.npmjs.com/package/deromanize): Convert roman numerals to arabic numbers (useful for books, outlines, documentation, slide decks, etc) | [homepage](https://github.com/jonschlinkert/deromanize "Convert roman numerals to arabic numbers (useful for books, outlines, documentation, slide decks, etc)") +* [randomatic](https://www.npmjs.com/package/randomatic): Generate randomized strings of a specified length using simple character sequences. The original generate-password. | [homepage](https://github.com/jonschlinkert/randomatic "Generate randomized strings of a specified length using simple character sequences. The original generate-password.") +* [repeat-string](https://www.npmjs.com/package/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string. | [homepage](https://github.com/jonschlinkert/repeat-string "Repeat the given string n times. Fastest implementation for repeating a string.") +* [romanize](https://www.npmjs.com/package/romanize): Convert numbers to roman numerals (useful for books, outlines, documentation, slide decks, etc) | [homepage](https://github.com/jonschlinkert/romanize "Convert numbers to roman numerals (useful for books, outlines, documentation, slide decks, etc)") + +### Contributors + +| **Commits** | **Contributor** |  +| --- | --- | +| 28 | [jonschlinkert](https://github.com/jonschlinkert) | +| 9 | [doowb](https://github.com/doowb) | + +### Author + +**Jon Schlinkert** + +* [github/jonschlinkert](https://github.com/jonschlinkert) +* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) + +### License + +Copyright © 2017, [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 November 19, 2017._
\ No newline at end of file diff --git a/node_modules/split-string/index.js b/node_modules/split-string/index.js new file mode 100644 index 0000000..7bc0ea9 --- /dev/null +++ b/node_modules/split-string/index.js @@ -0,0 +1,171 @@ +/*! + * split-string <https://github.com/jonschlinkert/split-string> + * + * Copyright (c) 2015-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +var extend = require('extend-shallow'); + +module.exports = function(str, options, fn) { +  if (typeof str !== 'string') { +    throw new TypeError('expected a string'); +  } + +  if (typeof options === 'function') { +    fn = options; +    options = null; +  } + +  // allow separator to be defined as a string +  if (typeof options === 'string') { +    options = { sep: options }; +  } + +  var opts = extend({sep: '.'}, options); +  var quotes = opts.quotes || ['"', "'", '`']; +  var brackets; + +  if (opts.brackets === true) { +    brackets = { +      '<': '>', +      '(': ')', +      '[': ']', +      '{': '}' +    }; +  } else if (opts.brackets) { +    brackets = opts.brackets; +  } + +  var tokens = []; +  var stack = []; +  var arr = ['']; +  var sep = opts.sep; +  var len = str.length; +  var idx = -1; +  var closeIdx; + +  function expected() { +    if (brackets && stack.length) { +      return brackets[stack[stack.length - 1]]; +    } +  } + +  while (++idx < len) { +    var ch = str[idx]; +    var next = str[idx + 1]; +    var tok = { val: ch, idx: idx, arr: arr, str: str }; +    tokens.push(tok); + +    if (ch === '\\') { +      tok.val = keepEscaping(opts, str, idx) === true ? (ch + next) : next; +      tok.escaped = true; +      if (typeof fn === 'function') { +        fn(tok); +      } +      arr[arr.length - 1] += tok.val; +      idx++; +      continue; +    } + +    if (brackets && brackets[ch]) { +      stack.push(ch); +      var e = expected(); +      var i = idx + 1; + +      if (str.indexOf(e, i + 1) !== -1) { +        while (stack.length && i < len) { +          var s = str[++i]; +          if (s === '\\') { +            s++; +            continue; +          } + +          if (quotes.indexOf(s) !== -1) { +            i = getClosingQuote(str, s, i + 1); +            continue; +          } + +          e = expected(); +          if (stack.length && str.indexOf(e, i + 1) === -1) { +            break; +          } + +          if (brackets[s]) { +            stack.push(s); +            continue; +          } + +          if (e === s) { +            stack.pop(); +          } +        } +      } + +      closeIdx = i; +      if (closeIdx === -1) { +        arr[arr.length - 1] += ch; +        continue; +      } + +      ch = str.slice(idx, closeIdx + 1); +      tok.val = ch; +      tok.idx = idx = closeIdx; +    } + +    if (quotes.indexOf(ch) !== -1) { +      closeIdx = getClosingQuote(str, ch, idx + 1); +      if (closeIdx === -1) { +        arr[arr.length - 1] += ch; +        continue; +      } + +      if (keepQuotes(ch, opts) === true) { +        ch = str.slice(idx, closeIdx + 1); +      } else { +        ch = str.slice(idx + 1, closeIdx); +      } + +      tok.val = ch; +      tok.idx = idx = closeIdx; +    } + +    if (typeof fn === 'function') { +      fn(tok, tokens); +      ch = tok.val; +      idx = tok.idx; +    } + +    if (tok.val === sep && tok.split !== false) { +      arr.push(''); +      continue; +    } + +    arr[arr.length - 1] += tok.val; +  } + +  return arr; +}; + +function getClosingQuote(str, ch, i, brackets) { +  var idx = str.indexOf(ch, i); +  if (str.charAt(idx - 1) === '\\') { +    return getClosingQuote(str, ch, idx + 1); +  } +  return idx; +} + +function keepQuotes(ch, opts) { +  if (opts.keepDoubleQuotes === true && ch === '"') return true; +  if (opts.keepSingleQuotes === true && ch === "'") return true; +  return opts.keepQuotes; +} + +function keepEscaping(opts, str, idx) { +  if (typeof opts.keepEscaping === 'function') { +    return opts.keepEscaping(str, idx); +  } +  return opts.keepEscaping === true || str[idx + 1] === '\\'; +} diff --git a/node_modules/split-string/package.json b/node_modules/split-string/package.json new file mode 100644 index 0000000..565b534 --- /dev/null +++ b/node_modules/split-string/package.json @@ -0,0 +1,107 @@ +{ +  "_args": [ +    [ +      "split-string@3.1.0", +      "/home/dstaesse/git/website" +    ] +  ], +  "_development": true, +  "_from": "split-string@3.1.0", +  "_id": "split-string@3.1.0", +  "_inBundle": false, +  "_integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", +  "_location": "/split-string", +  "_phantomChildren": {}, +  "_requested": { +    "type": "version", +    "registry": true, +    "raw": "split-string@3.1.0", +    "name": "split-string", +    "escapedName": "split-string", +    "rawSpec": "3.1.0", +    "saveSpec": null, +    "fetchSpec": "3.1.0" +  }, +  "_requiredBy": [ +    "/braces", +    "/set-value" +  ], +  "_resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", +  "_spec": "3.1.0", +  "_where": "/home/dstaesse/git/website", +  "author": { +    "name": "Jon Schlinkert", +    "url": "https://github.com/jonschlinkert" +  }, +  "bugs": { +    "url": "https://github.com/jonschlinkert/split-string/issues" +  }, +  "contributors": [ +    { +      "name": "Brian Woodward", +      "url": "https://twitter.com/doowb" +    }, +    { +      "name": "Jon Schlinkert", +      "url": "http://twitter.com/jonschlinkert" +    } +  ], +  "dependencies": { +    "extend-shallow": "^3.0.0" +  }, +  "description": "Split a string on a character except when the character is escaped.", +  "devDependencies": { +    "gulp-format-md": "^1.0.0", +    "mocha": "^3.5.3" +  }, +  "engines": { +    "node": ">=0.10.0" +  }, +  "files": [ +    "index.js" +  ], +  "homepage": "https://github.com/jonschlinkert/split-string", +  "keywords": [ +    "character", +    "escape", +    "split", +    "string" +  ], +  "license": "MIT", +  "main": "index.js", +  "name": "split-string", +  "repository": { +    "type": "git", +    "url": "git+https://github.com/jonschlinkert/split-string.git" +  }, +  "scripts": { +    "test": "mocha" +  }, +  "verb": { +    "toc": false, +    "layout": "default", +    "titles": [ +      ".", +      "install", +      "Why use this?" +    ], +    "related": { +      "list": [ +        "deromanize", +        "randomatic", +        "repeat-string", +        "romanize" +      ] +    }, +    "tasks": [ +      "readme" +    ], +    "plugins": [ +      "gulp-format-md" +    ], +    "lint": { +      "reflinks": true +    } +  }, +  "version": "3.1.0" +}  | 
