forked from dachan/dach
		
	a lot of changes
This commit is contained in:
		
							
								
								
									
										2
									
								
								node_modules/balanced-match/.github/FUNDING.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								node_modules/balanced-match/.github/FUNDING.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
tidelift: "npm/balanced-match"
 | 
			
		||||
patreon: juliangruber
 | 
			
		||||
							
								
								
									
										21
									
								
								node_modules/balanced-match/LICENSE.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								node_modules/balanced-match/LICENSE.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
(MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
							
								
								
									
										97
									
								
								node_modules/balanced-match/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								node_modules/balanced-match/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,97 @@
 | 
			
		||||
# balanced-match
 | 
			
		||||
 | 
			
		||||
Match balanced string pairs, like `{` and `}` or `<b>` and `</b>`. Supports regular expressions as well!
 | 
			
		||||
 | 
			
		||||
[](http://travis-ci.org/juliangruber/balanced-match)
 | 
			
		||||
[](https://www.npmjs.org/package/balanced-match)
 | 
			
		||||
 | 
			
		||||
[](https://ci.testling.com/juliangruber/balanced-match)
 | 
			
		||||
 | 
			
		||||
## Example
 | 
			
		||||
 | 
			
		||||
Get the first matching pair of braces:
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
var balanced = require('balanced-match');
 | 
			
		||||
 | 
			
		||||
console.log(balanced('{', '}', 'pre{in{nested}}post'));
 | 
			
		||||
console.log(balanced('{', '}', 'pre{first}between{second}post'));
 | 
			
		||||
console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre  {   in{nest}   }  post'));
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The matches are:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ node example.js
 | 
			
		||||
{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' }
 | 
			
		||||
{ start: 3,
 | 
			
		||||
  end: 9,
 | 
			
		||||
  pre: 'pre',
 | 
			
		||||
  body: 'first',
 | 
			
		||||
  post: 'between{second}post' }
 | 
			
		||||
{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' }
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## API
 | 
			
		||||
 | 
			
		||||
### var m = balanced(a, b, str)
 | 
			
		||||
 | 
			
		||||
For the first non-nested matching pair of `a` and `b` in `str`, return an
 | 
			
		||||
object with those keys:
 | 
			
		||||
 | 
			
		||||
* **start** the index of the first match of `a`
 | 
			
		||||
* **end** the index of the matching `b`
 | 
			
		||||
* **pre** the preamble, `a` and `b` not included
 | 
			
		||||
* **body** the match, `a` and `b` not included
 | 
			
		||||
* **post** the postscript, `a` and `b` not included
 | 
			
		||||
 | 
			
		||||
If there's no match, `undefined` will be returned.
 | 
			
		||||
 | 
			
		||||
If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`.
 | 
			
		||||
 | 
			
		||||
### var r = balanced.range(a, b, str)
 | 
			
		||||
 | 
			
		||||
For the first non-nested matching pair of `a` and `b` in `str`, return an
 | 
			
		||||
array with indexes: `[ <a index>, <b index> ]`.
 | 
			
		||||
 | 
			
		||||
If there's no match, `undefined` will be returned.
 | 
			
		||||
 | 
			
		||||
If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`.
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
With [npm](https://npmjs.org) do:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
npm install balanced-match
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Security contact information
 | 
			
		||||
 | 
			
		||||
To report a security vulnerability, please use the
 | 
			
		||||
[Tidelift security contact](https://tidelift.com/security).
 | 
			
		||||
Tidelift will coordinate the fix and disclosure.
 | 
			
		||||
 | 
			
		||||
## License
 | 
			
		||||
 | 
			
		||||
(MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
							
								
								
									
										62
									
								
								node_modules/balanced-match/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								node_modules/balanced-match/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
module.exports = balanced;
 | 
			
		||||
function balanced(a, b, str) {
 | 
			
		||||
  if (a instanceof RegExp) a = maybeMatch(a, str);
 | 
			
		||||
  if (b instanceof RegExp) b = maybeMatch(b, str);
 | 
			
		||||
 | 
			
		||||
  var r = range(a, b, str);
 | 
			
		||||
 | 
			
		||||
  return r && {
 | 
			
		||||
    start: r[0],
 | 
			
		||||
    end: r[1],
 | 
			
		||||
    pre: str.slice(0, r[0]),
 | 
			
		||||
    body: str.slice(r[0] + a.length, r[1]),
 | 
			
		||||
    post: str.slice(r[1] + b.length)
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function maybeMatch(reg, str) {
 | 
			
		||||
  var m = str.match(reg);
 | 
			
		||||
  return m ? m[0] : null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
balanced.range = range;
 | 
			
		||||
function range(a, b, str) {
 | 
			
		||||
  var begs, beg, left, right, result;
 | 
			
		||||
  var ai = str.indexOf(a);
 | 
			
		||||
  var bi = str.indexOf(b, ai + 1);
 | 
			
		||||
  var i = ai;
 | 
			
		||||
 | 
			
		||||
  if (ai >= 0 && bi > 0) {
 | 
			
		||||
    if(a===b) {
 | 
			
		||||
      return [ai, bi];
 | 
			
		||||
    }
 | 
			
		||||
    begs = [];
 | 
			
		||||
    left = str.length;
 | 
			
		||||
 | 
			
		||||
    while (i >= 0 && !result) {
 | 
			
		||||
      if (i == ai) {
 | 
			
		||||
        begs.push(i);
 | 
			
		||||
        ai = str.indexOf(a, i + 1);
 | 
			
		||||
      } else if (begs.length == 1) {
 | 
			
		||||
        result = [ begs.pop(), bi ];
 | 
			
		||||
      } else {
 | 
			
		||||
        beg = begs.pop();
 | 
			
		||||
        if (beg < left) {
 | 
			
		||||
          left = beg;
 | 
			
		||||
          right = bi;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        bi = str.indexOf(b, i + 1);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      i = ai < bi && ai >= 0 ? ai : bi;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (begs.length) {
 | 
			
		||||
      result = [ left, right ];
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return result;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										48
									
								
								node_modules/balanced-match/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								node_modules/balanced-match/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "balanced-match",
 | 
			
		||||
  "description": "Match balanced character pairs, like \"{\" and \"}\"",
 | 
			
		||||
  "version": "1.0.2",
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "git://github.com/juliangruber/balanced-match.git"
 | 
			
		||||
  },
 | 
			
		||||
  "homepage": "https://github.com/juliangruber/balanced-match",
 | 
			
		||||
  "main": "index.js",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "test": "tape test/test.js",
 | 
			
		||||
    "bench": "matcha test/bench.js"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "matcha": "^0.7.0",
 | 
			
		||||
    "tape": "^4.6.0"
 | 
			
		||||
  },
 | 
			
		||||
  "keywords": [
 | 
			
		||||
    "match",
 | 
			
		||||
    "regexp",
 | 
			
		||||
    "test",
 | 
			
		||||
    "balanced",
 | 
			
		||||
    "parse"
 | 
			
		||||
  ],
 | 
			
		||||
  "author": {
 | 
			
		||||
    "name": "Julian Gruber",
 | 
			
		||||
    "email": "mail@juliangruber.com",
 | 
			
		||||
    "url": "http://juliangruber.com"
 | 
			
		||||
  },
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "testling": {
 | 
			
		||||
    "files": "test/*.js",
 | 
			
		||||
    "browsers": [
 | 
			
		||||
      "ie/8..latest",
 | 
			
		||||
      "firefox/20..latest",
 | 
			
		||||
      "firefox/nightly",
 | 
			
		||||
      "chrome/25..latest",
 | 
			
		||||
      "chrome/canary",
 | 
			
		||||
      "opera/12..latest",
 | 
			
		||||
      "opera/next",
 | 
			
		||||
      "safari/5.1..latest",
 | 
			
		||||
      "ipad/6.0..latest",
 | 
			
		||||
      "iphone/6.0..latest",
 | 
			
		||||
      "android-browser/4.2..latest"
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user