Template Upload
This commit is contained in:
21
node_modules/parse-glob/LICENSE
generated
vendored
Normal file
21
node_modules/parse-glob/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 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.
|
115
node_modules/parse-glob/README.md
generated
vendored
Normal file
115
node_modules/parse-glob/README.md
generated
vendored
Normal file
@ -0,0 +1,115 @@
|
||||
# parse-glob [](http://badge.fury.io/js/parse-glob) [](https://travis-ci.org/jonschlinkert/parse-glob)
|
||||
|
||||
> Parse a glob pattern into an object of tokens.
|
||||
|
||||
**Changes from v1.0.0 to v3.0.4**
|
||||
|
||||
* all path-related properties are now on the `path` object
|
||||
* all boolean properties are now on the `is` object
|
||||
* adds `base` property
|
||||
|
||||
See the [properties](#properties) section for details.
|
||||
|
||||
Install with [npm](https://www.npmjs.com/)
|
||||
|
||||
```sh
|
||||
$ npm i parse-glob --save
|
||||
```
|
||||
|
||||
* parses 1,000+ glob patterns in 29ms (2.3 GHz Intel Core i7)
|
||||
* Extensive [unit tests](./test.js) (more than 1,000 lines), covering wildcards, globstars, character classes, brace patterns, extglobs, dotfiles and other complex patterns.
|
||||
|
||||
See the tests for [hundreds of examples](./test.js).
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
var parseGlob = require('parse-glob');
|
||||
```
|
||||
|
||||
**Example**
|
||||
|
||||
```js
|
||||
parseGlob('a/b/c/**/*.{yml,json}');
|
||||
```
|
||||
|
||||
**Returns:**
|
||||
|
||||
```js
|
||||
{ orig: 'a/b/c/**/*.{yml,json}',
|
||||
is:
|
||||
{ glob: true,
|
||||
negated: false,
|
||||
extglob: false,
|
||||
braces: true,
|
||||
brackets: false,
|
||||
globstar: true,
|
||||
dotfile: false,
|
||||
dotdir: false },
|
||||
glob: '**/*.{yml,json}',
|
||||
base: 'a/b/c',
|
||||
path:
|
||||
{ dirname: 'a/b/c/**/',
|
||||
basename: '*.{yml,json}',
|
||||
filename: '*',
|
||||
extname: '.{yml,json}',
|
||||
ext: '{yml,json}' } }
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
The object returned by parseGlob has the following properties:
|
||||
|
||||
* `orig`: a copy of the original, unmodified glob pattern
|
||||
* `is`: an object with boolean information about the glob:
|
||||
- `glob`: true if the pattern actually a glob pattern
|
||||
- `negated`: true if it's a negation pattern (`!**/foo.js`)
|
||||
- `extglob`: true if it has extglobs (`@(foo|bar)`)
|
||||
- `braces`: true if it has braces (`{1..2}` or `.{txt,md}`)
|
||||
- `brackets`: true if it has POSIX brackets (`[[:alpha:]]`)
|
||||
- `globstar`: true if the pattern has a globstar (double star, `**`)
|
||||
- `dotfile`: true if the pattern should match dotfiles
|
||||
- `dotdir`: true if the pattern should match dot-directories (like `.git`)
|
||||
* `glob`: the glob pattern part of the string, if any
|
||||
* `base`: the non-glob part of the string, if any
|
||||
* `path`: file path segments
|
||||
- `dirname`: directory
|
||||
- `basename`: file name with extension
|
||||
- `filename`: file name without extension
|
||||
- `extname`: file extension with dot
|
||||
- `ext`: file extension without dot
|
||||
|
||||
## Related
|
||||
* [glob-base](https://www.npmjs.com/package/glob-base): Returns an object with the (non-glob) base path and the actual pattern. | [homepage](https://github.com/jonschlinkert/glob-base)
|
||||
* [glob-parent](https://www.npmjs.com/package/glob-parent): Strips glob magic from a string to provide the parent path | [homepage](https://github.com/es128/glob-parent)
|
||||
* [glob-path-regex](https://www.npmjs.com/package/glob-path-regex): Regular expression for matching the parts of glob pattern. | [homepage](https://github.com/regexps/glob-path-regex)
|
||||
* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern. | [homepage](https://github.com/jonschlinkert/is-glob)
|
||||
* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. Just… [more](https://www.npmjs.com/package/micromatch) | [homepage](https://github.com/jonschlinkert/micromatch)
|
||||
|
||||
## Contributing
|
||||
|
||||
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/parse-glob/issues/new).
|
||||
|
||||
## Tests
|
||||
|
||||
Install dev dependencies:
|
||||
|
||||
```sh
|
||||
$ npm i -d && npm test
|
||||
```
|
||||
|
||||
## Author
|
||||
|
||||
**Jon Schlinkert**
|
||||
|
||||
+ [github/jonschlinkert](https://github.com/jonschlinkert)
|
||||
+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
|
||||
|
||||
## License
|
||||
|
||||
Copyright © 2014-2015 Jon Schlinkert
|
||||
Released under the MIT license.
|
||||
|
||||
***
|
||||
|
||||
_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on September 22, 2015._
|
156
node_modules/parse-glob/index.js
generated
vendored
Normal file
156
node_modules/parse-glob/index.js
generated
vendored
Normal file
@ -0,0 +1,156 @@
|
||||
/*!
|
||||
* parse-glob <https://github.com/jonschlinkert/parse-glob>
|
||||
*
|
||||
* Copyright (c) 2015, Jon Schlinkert.
|
||||
* Licensed under the MIT License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var isGlob = require('is-glob');
|
||||
var findBase = require('glob-base');
|
||||
var extglob = require('is-extglob');
|
||||
var dotfile = require('is-dotfile');
|
||||
|
||||
/**
|
||||
* Expose `cache`
|
||||
*/
|
||||
|
||||
var cache = module.exports.cache = {};
|
||||
|
||||
/**
|
||||
* Parse a glob pattern into tokens.
|
||||
*
|
||||
* When no paths or '**' are in the glob, we use a
|
||||
* different strategy for parsing the filename, since
|
||||
* file names can contain braces and other difficult
|
||||
* patterns. such as:
|
||||
*
|
||||
* - `*.{a,b}`
|
||||
* - `(**|*.js)`
|
||||
*/
|
||||
|
||||
module.exports = function parseGlob(glob) {
|
||||
if (cache.hasOwnProperty(glob)) {
|
||||
return cache[glob];
|
||||
}
|
||||
|
||||
var tok = {};
|
||||
tok.orig = glob;
|
||||
tok.is = {};
|
||||
|
||||
// unescape dots and slashes in braces/brackets
|
||||
glob = escape(glob);
|
||||
|
||||
var parsed = findBase(glob);
|
||||
tok.is.glob = parsed.isGlob;
|
||||
|
||||
tok.glob = parsed.glob;
|
||||
tok.base = parsed.base;
|
||||
var segs = /([^\/]*)$/.exec(glob);
|
||||
|
||||
tok.path = {};
|
||||
tok.path.dirname = '';
|
||||
tok.path.basename = segs[1] || '';
|
||||
tok.path.dirname = glob.split(tok.path.basename).join('') || '';
|
||||
var basename = (tok.path.basename || '').split('.') || '';
|
||||
tok.path.filename = basename[0] || '';
|
||||
tok.path.extname = basename.slice(1).join('.') || '';
|
||||
tok.path.ext = '';
|
||||
|
||||
if (isGlob(tok.path.dirname) && !tok.path.basename) {
|
||||
if (!/\/$/.test(tok.glob)) {
|
||||
tok.path.basename = tok.glob;
|
||||
}
|
||||
tok.path.dirname = tok.base;
|
||||
}
|
||||
|
||||
if (glob.indexOf('/') === -1 && !tok.is.globstar) {
|
||||
tok.path.dirname = '';
|
||||
tok.path.basename = tok.orig;
|
||||
}
|
||||
|
||||
var dot = tok.path.basename.indexOf('.');
|
||||
if (dot !== -1) {
|
||||
tok.path.filename = tok.path.basename.slice(0, dot);
|
||||
tok.path.extname = tok.path.basename.slice(dot);
|
||||
}
|
||||
|
||||
if (tok.path.extname.charAt(0) === '.') {
|
||||
var exts = tok.path.extname.split('.');
|
||||
tok.path.ext = exts[exts.length - 1];
|
||||
}
|
||||
|
||||
// unescape dots and slashes in braces/brackets
|
||||
tok.glob = unescape(tok.glob);
|
||||
tok.path.dirname = unescape(tok.path.dirname);
|
||||
tok.path.basename = unescape(tok.path.basename);
|
||||
tok.path.filename = unescape(tok.path.filename);
|
||||
tok.path.extname = unescape(tok.path.extname);
|
||||
|
||||
// Booleans
|
||||
var is = (glob && tok.is.glob);
|
||||
tok.is.negated = glob && glob.charAt(0) === '!';
|
||||
tok.is.extglob = glob && extglob(glob);
|
||||
tok.is.braces = has(is, glob, '{');
|
||||
tok.is.brackets = has(is, glob, '[:');
|
||||
tok.is.globstar = has(is, glob, '**');
|
||||
tok.is.dotfile = dotfile(tok.path.basename) || dotfile(tok.path.filename);
|
||||
tok.is.dotdir = dotdir(tok.path.dirname);
|
||||
return (cache[glob] = tok);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the glob matches dot-directories.
|
||||
*
|
||||
* @param {Object} `tok` The tokens object
|
||||
* @param {Object} `path` The path object
|
||||
* @return {Object}
|
||||
*/
|
||||
|
||||
function dotdir(base) {
|
||||
if (base.indexOf('/.') !== -1) {
|
||||
return true;
|
||||
}
|
||||
if (base.charAt(0) === '.' && base.charAt(1) !== '/') {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the pattern has the given `ch`aracter(s)
|
||||
*
|
||||
* @param {Object} `glob` The glob pattern.
|
||||
* @param {Object} `ch` The character to test for
|
||||
* @return {Object}
|
||||
*/
|
||||
|
||||
function has(is, glob, ch) {
|
||||
return is && glob.indexOf(ch) !== -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape/unescape utils
|
||||
*/
|
||||
|
||||
function escape(str) {
|
||||
var re = /\{([^{}]*?)}|\(([^()]*?)\)|\[([^\[\]]*?)\]/g;
|
||||
return str.replace(re, function (outter, braces, parens, brackets) {
|
||||
var inner = braces || parens || brackets;
|
||||
if (!inner) { return outter; }
|
||||
return outter.split(inner).join(esc(inner));
|
||||
});
|
||||
}
|
||||
|
||||
function esc(str) {
|
||||
str = str.split('/').join('__SLASH__');
|
||||
str = str.split('.').join('__DOT__');
|
||||
return str;
|
||||
}
|
||||
|
||||
function unescape(str) {
|
||||
str = str.split('__SLASH__').join('/');
|
||||
str = str.split('__DOT__').join('.');
|
||||
return str;
|
||||
}
|
115
node_modules/parse-glob/package.json
generated
vendored
Normal file
115
node_modules/parse-glob/package.json
generated
vendored
Normal file
@ -0,0 +1,115 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"parse-glob@^3.0.4",
|
||||
"C:\\Users\\x2mjbyrn\\Source\\Repos\\Skeleton\\node_modules\\micromatch"
|
||||
]
|
||||
],
|
||||
"_from": "parse-glob@>=3.0.4-0 <4.0.0-0",
|
||||
"_id": "parse-glob@3.0.4",
|
||||
"_inCache": true,
|
||||
"_location": "/parse-glob",
|
||||
"_nodeVersion": "0.12.4",
|
||||
"_npmUser": {
|
||||
"email": "github@sellside.com",
|
||||
"name": "jonschlinkert"
|
||||
},
|
||||
"_npmVersion": "2.10.1",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"name": "parse-glob",
|
||||
"raw": "parse-glob@^3.0.4",
|
||||
"rawSpec": "^3.0.4",
|
||||
"scope": null,
|
||||
"spec": ">=3.0.4-0 <4.0.0-0",
|
||||
"type": "range"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/micromatch"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
|
||||
"_shasum": "b2c376cfb11f35513badd173ef0bb6e3a388391c",
|
||||
"_shrinkwrap": null,
|
||||
"_spec": "parse-glob@^3.0.4",
|
||||
"_where": "C:\\Users\\x2mjbyrn\\Source\\Repos\\Skeleton\\node_modules\\micromatch",
|
||||
"author": {
|
||||
"name": "Jon Schlinkert",
|
||||
"url": "https://github.com/jonschlinkert"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/jonschlinkert/parse-glob/issues"
|
||||
},
|
||||
"dependencies": {
|
||||
"glob-base": "^0.3.0",
|
||||
"is-dotfile": "^1.0.0",
|
||||
"is-extglob": "^1.0.0",
|
||||
"is-glob": "^2.0.0"
|
||||
},
|
||||
"description": "Parse a glob pattern into an object of tokens.",
|
||||
"devDependencies": {
|
||||
"browserify": "^9.0.3",
|
||||
"lodash": "^3.3.1",
|
||||
"mocha": "*"
|
||||
},
|
||||
"directories": {},
|
||||
"dist": {
|
||||
"shasum": "b2c376cfb11f35513badd173ef0bb6e3a388391c",
|
||||
"tarball": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
},
|
||||
"files": [
|
||||
"index.js"
|
||||
],
|
||||
"gitHead": "9bfccb63acdeb3b1ed62035b3adef0e5081d8fc6",
|
||||
"homepage": "https://github.com/jonschlinkert/parse-glob",
|
||||
"installable": true,
|
||||
"keywords": [
|
||||
"bash",
|
||||
"expand",
|
||||
"expansion",
|
||||
"expression",
|
||||
"file",
|
||||
"files",
|
||||
"filter",
|
||||
"find",
|
||||
"glob",
|
||||
"glob",
|
||||
"globbing",
|
||||
"globs",
|
||||
"globstar",
|
||||
"match",
|
||||
"match",
|
||||
"matcher",
|
||||
"matches",
|
||||
"matching",
|
||||
"path",
|
||||
"pattern",
|
||||
"patterns",
|
||||
"regex",
|
||||
"regexp",
|
||||
"regular",
|
||||
"shell",
|
||||
"wildcard"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "index.js",
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "jonschlinkert",
|
||||
"email": "github@sellside.com"
|
||||
}
|
||||
],
|
||||
"name": "parse-glob",
|
||||
"optionalDependencies": {},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/jonschlinkert/parse-glob.git"
|
||||
},
|
||||
"scripts": {
|
||||
"prepublish": "browserify -o browser.js -e index.js",
|
||||
"test": "mocha"
|
||||
},
|
||||
"version": "3.0.4"
|
||||
}
|
Reference in New Issue
Block a user