aboutsummaryrefslogtreecommitdiff
path: root/node_modules/parse-glob
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2016-10-10 03:43:44 +0200
committerFlorian Dold <florian.dold@gmail.com>2016-10-10 03:43:44 +0200
commitabd94a7f5a50f43c797a11b53549ae48fff667c3 (patch)
treeab8ed457f65cdd72e13e0571d2975729428f1551 /node_modules/parse-glob
parenta0247c6a3fd6a09a41a7e35a3441324c4dcb58be (diff)
downloadwallet-core-abd94a7f5a50f43c797a11b53549ae48fff667c3.tar.xz
add node_modules to address #4364
Diffstat (limited to 'node_modules/parse-glob')
-rw-r--r--node_modules/parse-glob/LICENSE21
-rw-r--r--node_modules/parse-glob/README.md115
-rw-r--r--node_modules/parse-glob/index.js156
-rw-r--r--node_modules/parse-glob/package.json124
4 files changed, 416 insertions, 0 deletions
diff --git a/node_modules/parse-glob/LICENSE b/node_modules/parse-glob/LICENSE
new file mode 100644
index 000000000..65f90aca8
--- /dev/null
+++ b/node_modules/parse-glob/LICENSE
@@ -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.
diff --git a/node_modules/parse-glob/README.md b/node_modules/parse-glob/README.md
new file mode 100644
index 000000000..000ccd99c
--- /dev/null
+++ b/node_modules/parse-glob/README.md
@@ -0,0 +1,115 @@
+# parse-glob [![NPM version](https://badge.fury.io/js/parse-glob.svg)](http://badge.fury.io/js/parse-glob) [![Build Status](https://travis-ci.org/jonschlinkert/parse-glob.svg)](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._ \ No newline at end of file
diff --git a/node_modules/parse-glob/index.js b/node_modules/parse-glob/index.js
new file mode 100644
index 000000000..4ab691afc
--- /dev/null
+++ b/node_modules/parse-glob/index.js
@@ -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;
+}
diff --git a/node_modules/parse-glob/package.json b/node_modules/parse-glob/package.json
new file mode 100644
index 000000000..8dcc941e6
--- /dev/null
+++ b/node_modules/parse-glob/package.json
@@ -0,0 +1,124 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "parse-glob@^3.0.4",
+ "scope": null,
+ "escapedName": "parse-glob",
+ "name": "parse-glob",
+ "rawSpec": "^3.0.4",
+ "spec": ">=3.0.4 <4.0.0",
+ "type": "range"
+ },
+ "/home/dold/repos/taler/wallet-webex/node_modules/micromatch"
+ ]
+ ],
+ "_from": "parse-glob@>=3.0.4 <4.0.0",
+ "_id": "parse-glob@3.0.4",
+ "_inCache": true,
+ "_location": "/parse-glob",
+ "_nodeVersion": "0.12.4",
+ "_npmUser": {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ "_npmVersion": "2.10.1",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "parse-glob@^3.0.4",
+ "scope": null,
+ "escapedName": "parse-glob",
+ "name": "parse-glob",
+ "rawSpec": "^3.0.4",
+ "spec": ">=3.0.4 <4.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": "/home/dold/repos/taler/wallet-webex/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",
+ "keywords": [
+ "glob",
+ "match",
+ "bash",
+ "expand",
+ "expansion",
+ "expression",
+ "file",
+ "files",
+ "filter",
+ "find",
+ "glob",
+ "globbing",
+ "globs",
+ "globstar",
+ "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": {},
+ "readme": "ERROR: No README data found!",
+ "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"
+}