aboutsummaryrefslogtreecommitdiff
path: root/node_modules/glob-stream
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2016-11-03 01:33:53 +0100
committerFlorian Dold <florian.dold@gmail.com>2016-11-03 01:33:53 +0100
commitd1291f67551c58168af43698a359cb5ddfd266b0 (patch)
tree55a13ed29fe1915e3f42f1b1b7038dafa2e975a7 /node_modules/glob-stream
parentd0a0695fb5d34996850723f7d4b1b59c3df909c2 (diff)
downloadwallet-core-d1291f67551c58168af43698a359cb5ddfd266b0.tar.xz
node_modules
Diffstat (limited to 'node_modules/glob-stream')
-rwxr-xr-xnode_modules/glob-stream/LICENSE35
-rw-r--r--node_modules/glob-stream/README.md94
-rw-r--r--node_modules/glob-stream/index.js206
-rw-r--r--node_modules/glob-stream/node_modules/glob/README.md42
-rw-r--r--node_modules/glob-stream/node_modules/glob/common.js54
-rw-r--r--node_modules/glob-stream/node_modules/glob/glob.js18
-rw-r--r--node_modules/glob-stream/node_modules/glob/package.json111
-rw-r--r--node_modules/glob-stream/node_modules/glob/sync.js11
-rw-r--r--node_modules/glob-stream/node_modules/isarray/README.md54
-rw-r--r--node_modules/glob-stream/node_modules/isarray/build/build.js209
-rw-r--r--node_modules/glob-stream/node_modules/isarray/component.json19
-rw-r--r--node_modules/glob-stream/node_modules/isarray/index.js3
-rw-r--r--node_modules/glob-stream/node_modules/isarray/package.json25
-rw-r--r--node_modules/glob-stream/node_modules/minimatch/LICENSE15
-rw-r--r--node_modules/glob-stream/node_modules/minimatch/README.md216
-rw-r--r--node_modules/glob-stream/node_modules/minimatch/browser.js1159
-rw-r--r--node_modules/glob-stream/node_modules/minimatch/minimatch.js912
-rw-r--r--node_modules/glob-stream/node_modules/minimatch/package.json98
-rw-r--r--node_modules/glob-stream/node_modules/readable-stream/package.json112
-rw-r--r--node_modules/glob-stream/node_modules/through2/package.json103
-rw-r--r--node_modules/glob-stream/package.json141
21 files changed, 711 insertions, 2926 deletions
diff --git a/node_modules/glob-stream/LICENSE b/node_modules/glob-stream/LICENSE
index 4f482f9ba..9aedc0d72 100755
--- a/node_modules/glob-stream/LICENSE
+++ b/node_modules/glob-stream/LICENSE
@@ -1,20 +1,21 @@
-Copyright (c) 2013 Fractal <contact@wearefractal.com>
+The MIT License (MIT)
-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:
+Copyright (c) 2015 Blaine Bublitz, Eric Schoffstall and other contributors
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+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 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.
+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/glob-stream/README.md b/node_modules/glob-stream/README.md
index b0dbd4544..0481dcc21 100644
--- a/node_modules/glob-stream/README.md
+++ b/node_modules/glob-stream/README.md
@@ -1,30 +1,21 @@
-# glob-stream [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Dependency Status][david-image]][david-url]
+<p align="center">
+ <a href="http://gulpjs.com">
+ <img height="257" width="114" src="https://raw.githubusercontent.com/gulpjs/artwork/master/gulp-2x.png">
+ </a>
+</p>
+# glob-stream
-## Information
+[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-<table>
-<tr>
-<td>Package</td><td>glob-stream</td>
-</tr>
-<tr>
-<td>Description</td>
-<td>File system globs as a stream</td>
-</tr>
-<tr>
-<td>Node Version</td>
-<td>>= 0.9</td>
-</tr>
-</table>
-
-This is a simple wrapper around node-glob to make it streamy.
+A wrapper around [node-glob][node-glob-url] to make it streamy.
## Usage
```javascript
var gs = require('glob-stream');
-var stream = gs.create("./files/**/*.coffee", {options});
+var stream = gs.create('./files/**/*.coffee', { /* options */ });
stream.on('data', function(file){
// file has path, base, and cwd attrs
@@ -33,35 +24,72 @@ stream.on('data', function(file){
You can pass any combination of globs. One caveat is that you can not only pass a glob negation, you must give it at least one positive glob so it knows where to start. All given must match for the file to be returned.
+## API
+
+### create(globs, options)
+
+Returns a stream for multiple globs or filters.
+
+### createStream(positiveGlob, negativeGlobs, options)
+
+Returns a stream for a single glob or filter.
+
### Options
- cwd
- Default is `process.cwd()`
- base
- - Default is everything before a glob starts (see [glob2base](https://github.com/wearefractal/glob2base))
+ - Default is everything before a glob starts (see [glob-parent][glob-parent-url])
- cwdbase
- Default is `false`
- When true it is the same as saying opt.base = opt.cwd
+- allowEmpty
+ - Default is `false`
+ - If true, won't emit an error when a glob pointing at a single file fails to match
+- Any through2 related options are documented in [through2][through2-url]
-This argument is passed directly to [node-glob](https://github.com/isaacs/node-glob) so check there for more options
+This argument is passed directly to [node-glob][node-glob-url] so check there for more options
-#### Glob
+### Glob
-```javascript
-var stream = gs.create(["./**/*.js", "!./node_modules/**/*.*"]);
+```js
+var stream = gs.create(['./**/*.js', '!./node_modules/**/*']);
+```
+
+Globs are executed in order, so negations should follow positive globs. For example:
+
+```js
+gulp.src(['!b*.js', '*.js'])
+```
+
+would not exclude any files, but this would
+
+```js
+gulp.src(['*.js', '!b*.js'])
```
-[npm-url]: https://npmjs.org/package/glob-stream
-[npm-image]: https://badge.fury.io/js/glob-stream.png
+## Related
+
+- [globby][globby-url] - Non-streaming `glob` wrapper with support for multiple patterns.
+
+## License
+
+MIT
+
+[globby-url]: https://github.com/sindresorhus/globby
+[through2-url]: https://github.com/rvagg/through2
+[node-glob-url]: https://github.com/isaacs/node-glob
+[glob-parent-url]: https://github.com/es128/glob-parent
-[travis-url]: https://travis-ci.org/wearefractal/glob-stream
-[travis-image]: https://travis-ci.org/wearefractal/glob-stream.png?branch=master
+[downloads-image]: http://img.shields.io/npm/dm/glob-stream.svg
+[npm-url]: https://www.npmjs.com/package/glob-stream
+[npm-image]: https://badge.fury.io/js/glob-stream.svg
-[coveralls-url]: https://coveralls.io/r/wearefractal/glob-stream
-[coveralls-image]: https://coveralls.io/repos/wearefractal/glob-stream/badge.png
+[travis-url]: https://travis-ci.org/gulpjs/glob-stream
+[travis-image]: https://travis-ci.org/gulpjs/glob-stream.svg?branch=master
-[depstat-url]: https://david-dm.org/wearefractal/glob-stream
-[depstat-image]: https://david-dm.org/wearefractal/glob-stream.png
+[coveralls-url]: https://coveralls.io/r/gulpjs/glob-stream
+[coveralls-image]: https://coveralls.io/repos/gulpjs/glob-stream/badge.svg
-[david-url]: https://david-dm.org/wearefractal/glob-stream
-[david-image]: https://david-dm.org/wearefractal/glob-stream.png?theme=shields.io
+[gitter-url]: https://gitter.im/gulpjs/gulp
+[gitter-image]: https://badges.gitter.im/gulpjs/gulp.png
diff --git a/node_modules/glob-stream/index.js b/node_modules/glob-stream/index.js
index 0960c7c74..363a29dac 100644
--- a/node_modules/glob-stream/index.js
+++ b/node_modules/glob-stream/index.js
@@ -1,5 +1,3 @@
-/*jslint node: true */
-
'use strict';
var through2 = require('through2');
@@ -7,111 +5,205 @@ var Combine = require('ordered-read-streams');
var unique = require('unique-stream');
var glob = require('glob');
-var minimatch = require('minimatch');
-var glob2base = require('glob2base');
+var micromatch = require('micromatch');
+var resolveGlob = require('to-absolute-glob');
+var globParent = require('glob-parent');
var path = require('path');
+var extend = require('extend');
+var sepRe = (process.platform === 'win32' ? /[\/\\]/ : /\/+/);
var gs = {
- // creates a stream for a single glob or filter
+ // Creates a stream for a single glob or filter
createStream: function(ourGlob, negatives, opt) {
- if (!negatives) negatives = [];
- if (!opt) opt = {};
- if (typeof opt.cwd !== 'string') opt.cwd = process.cwd();
- if (typeof opt.dot !== 'boolean') opt.dot = false;
- if (typeof opt.silent !== 'boolean') opt.silent = true;
- if (typeof opt.nonull !== 'boolean') opt.nonull = false;
- if (typeof opt.cwdbase !== 'boolean') opt.cwdbase = false;
- if (opt.cwdbase) opt.base = opt.cwd;
- // remove path relativity to make globs make sense
- ourGlob = unrelative(opt.cwd, ourGlob);
- negatives = negatives.map(unrelative.bind(null, opt.cwd));
+ var ourOpt = extend({}, opt);
+ delete ourOpt.root;
+
+ // Extract base path from glob
+ var basePath = ourOpt.base || getBasePath(ourGlob, opt);
+
+ // Remove path relativity to make globs make sense
+ ourGlob = resolveGlob(ourGlob, opt);
- // create globbing stuff
- var globber = new glob.Glob(ourGlob, opt);
+ // Create globbing stuff
+ var globber = new glob.Glob(ourGlob, ourOpt);
- // extract base path from glob
- var basePath = opt.base ? opt.base : glob2base(globber);
+ // Create stream and map events from globber to it
+ var stream = through2.obj(opt,
+ negatives.length ? filterNegatives : undefined);
- // create stream and map events from globber to it
- var stream = through2.obj(negatives.length ? filterNegatives : undefined);
+ var found = false;
globber.on('error', stream.emit.bind(stream, 'error'));
- globber.on('end', function(/* some args here so can't use bind directly */){
+ globber.once('end', function() {
+ if (opt.allowEmpty !== true && !found && globIsSingular(globber)) {
+ stream.emit('error',
+ new Error('File not found with singular glob: ' + ourGlob));
+ }
+
stream.end();
});
globber.on('match', function(filename) {
+ found = true;
+
stream.write({
cwd: opt.cwd,
base: basePath,
- path: path.resolve(opt.cwd, filename)
+ path: path.normalize(filename),
});
});
return stream;
function filterNegatives(filename, enc, cb) {
- var matcha = isMatch.bind(null, filename, opt);
+ var matcha = isMatch.bind(null, filename);
if (negatives.every(matcha)) {
- cb(null, filename); // pass
+ cb(null, filename); // Pass
} else {
- cb(); // ignore
+ cb(); // Ignore
}
}
},
- // creates a stream for multiple globs or filters
+ // Creates a stream for multiple globs or filters
create: function(globs, opt) {
- if (!opt) opt = {};
+ if (!opt) {
+ opt = {};
+ }
+ if (typeof opt.cwd !== 'string') {
+ opt.cwd = process.cwd();
+ }
+ if (typeof opt.dot !== 'boolean') {
+ opt.dot = false;
+ }
+ if (typeof opt.silent !== 'boolean') {
+ opt.silent = true;
+ }
+ if (typeof opt.nonull !== 'boolean') {
+ opt.nonull = false;
+ }
+ if (typeof opt.cwdbase !== 'boolean') {
+ opt.cwdbase = false;
+ }
+ if (opt.cwdbase) {
+ opt.base = opt.cwd;
+ }
+
+ // Only one glob no need to aggregate
+ if (!Array.isArray(globs)) {
+ globs = [globs];
+ }
- // only one glob no need to aggregate
- if (!Array.isArray(globs)) return gs.createStream(globs, null, opt);
+ var positives = [];
+ var negatives = [];
- var positives = globs.filter(isPositive);
- var negatives = globs.filter(isNegative);
+ var ourOpt = extend({}, opt);
+ delete ourOpt.root;
- if (positives.length === 0) throw new Error("Missing positive glob");
+ globs.forEach(function(glob, index) {
+ if (typeof glob !== 'string' && !(glob instanceof RegExp)) {
+ throw new Error('Invalid glob at index ' + index);
+ }
- // only one positive glob no need to aggregate
- if (positives.length === 1) return gs.createStream(positives[0], negatives, opt);
+ var globArray = isNegative(glob) ? negatives : positives;
- // create all individual streams
- var streams = positives.map(function(glob){
- return gs.createStream(glob, negatives, opt);
+ // Create Minimatch instances for negative glob patterns
+ if (globArray === negatives && typeof glob === 'string') {
+ var ourGlob = resolveGlob(glob, opt);
+ glob = micromatch.matcher(ourGlob, ourOpt);
+ }
+
+ globArray.push({
+ index: index,
+ glob: glob,
+ });
});
- // then just pipe them to a single unique stream and return it
+ if (positives.length === 0) {
+ throw new Error('Missing positive glob');
+ }
+
+ // Only one positive glob no need to aggregate
+ if (positives.length === 1) {
+ return streamFromPositive(positives[0]);
+ }
+
+ // Create all individual streams
+ var streams = positives.map(streamFromPositive);
+
+ // Then just pipe them to a single unique stream and return it
var aggregate = new Combine(streams);
var uniqueStream = unique('path');
+ var returnStream = aggregate.pipe(uniqueStream);
- return aggregate.pipe(uniqueStream);
- }
+ aggregate.on('error', function(err) {
+ returnStream.emit('error', err);
+ });
+
+ return returnStream;
+
+ function streamFromPositive(positive) {
+ var negativeGlobs = negatives.filter(indexGreaterThan(positive.index))
+ .map(toGlob);
+ return gs.createStream(positive.glob, negativeGlobs, opt);
+ }
+ },
};
-function isMatch(file, opt, pattern) {
- if (typeof pattern === 'string') return minimatch(file.path, pattern, opt);
- if (pattern instanceof RegExp) return pattern.test(file.path);
- return true; // unknown glob type?
+function isMatch(file, matcher) {
+ if (typeof matcher === 'function') {
+ return matcher(file.path);
+ }
+ if (matcher instanceof RegExp) {
+ return matcher.test(file.path);
+ }
}
function isNegative(pattern) {
- if (typeof pattern !== 'string') return true;
- if (pattern[0] === '!') return true;
- return false;
+ if (typeof pattern === 'string') {
+ return pattern[0] === '!';
+ }
+ if (pattern instanceof RegExp) {
+ return true;
+ }
+}
+
+function indexGreaterThan(index) {
+ return function(obj) {
+ return obj.index > index;
+ };
}
-function isPositive(pattern) {
- return !isNegative(pattern);
+function toGlob(obj) {
+ return obj.glob;
}
-function unrelative(cwd, glob) {
- var mod = '';
- if (glob[0] === '!') {
- mod = glob[0];
- glob = glob.slice(1);
+function globIsSingular(glob) {
+ var globSet = glob.minimatch.set;
+
+ if (globSet.length !== 1) {
+ return false;
}
- return mod+path.resolve(cwd, glob);
+
+ return globSet[0].every(function isString(value) {
+ return typeof value === 'string';
+ });
}
+function getBasePath(ourGlob, opt) {
+ var basePath;
+ var parent = globParent(ourGlob);
+
+ if (parent === '/' && opt && opt.root) {
+ basePath = path.normalize(opt.root);
+ } else {
+ basePath = resolveGlob(parent, opt);
+ }
+
+ if (!sepRe.test(basePath.charAt(basePath.length - 1))) {
+ basePath += path.sep;
+ }
+ return basePath;
+}
module.exports = gs;
diff --git a/node_modules/glob-stream/node_modules/glob/README.md b/node_modules/glob-stream/node_modules/glob/README.md
index 258257ecb..063cf950a 100644
--- a/node_modules/glob-stream/node_modules/glob/README.md
+++ b/node_modules/glob-stream/node_modules/glob/README.md
@@ -79,7 +79,8 @@ with a matching basename. For example, `*.js` would match
The intent for negation would be for a pattern starting with `!` to
match everything that *doesn't* match the supplied pattern. However,
the implementation is weird, and for the time being, this should be
-avoided. The behavior will change or be deprecated in version 5.
+avoided. The behavior is deprecated in version 5, and will be removed
+entirely in version 6.
### Empty Sets
@@ -159,8 +160,6 @@ be immediately available on the `g.found` member.
* `aborted` Boolean which is set to true when calling `abort()`. There
is no way at this time to continue a glob search after aborting, but
you can re-use the statCache to avoid having to duplicate syscalls.
-* `statCache` Collection of all the stat results the glob search
- performed.
* `cache` Convenience object. Each field has the following possible
values:
* `false` - Path does not exist
@@ -263,9 +262,6 @@ the filesystem.
* `matchBase` Perform a basename-only match if the pattern does not
contain any slash characters. That is, `*.js` would be treated as
equivalent to `**/*.js`, matching all js files in all directories.
-* `nonegate` Suppress `negate` behavior. (See below.)
-* `nocomment` Suppress `comment` behavior. (See below.)
-* `nonull` Return the pattern when no matches are found.
* `nodir` Do not match directories, only files. (Note: to match
*only* directories, simply put a `/` at the end of the pattern.)
* `ignore` Add a pattern or an array of patterns to exclude matches.
@@ -276,6 +272,10 @@ the filesystem.
In the case of a symlink that cannot be resolved, the full absolute
path to the matched entry is returned (though it will usually be a
broken symlink)
+* `nonegate` Suppress deprecated `negate` behavior. (See below.)
+ Default=true
+* `nocomment` Suppress deprecated `comment` behavior. (See below.)
+ Default=true
## Comparisons to other fnmatch/glob implementations
@@ -283,17 +283,6 @@ While strict compliance with the existing standards is a worthwhile
goal, some discrepancies exist between node-glob and other
implementations, and are intentional.
-If the pattern starts with a `!` character, then it is negated. Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally. This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything. Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
The double-star character `**` is supported by default, unless the
`noglobstar` flag is set. This is supported in the manner of bsdglob
and bash 4.3, where `**` only has special significance if it is the only
@@ -317,6 +306,25 @@ other interpretation of the glob pattern. Thus, a pattern like
**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
checked for validity. Since those two are valid, matching proceeds.
+### Comments and Negation
+
+**Note**: In version 5 of this module, negation and comments are
+**disabled** by default. You can explicitly set `nonegate:false` or
+`nocomment:false` to re-enable them. They are going away entirely in
+version 6.
+
+The intent for negation would be for a pattern starting with `!` to
+match everything that *doesn't* match the supplied pattern. However,
+the implementation is weird. It is better to use the `ignore` option
+to set a pattern or set of patterns to exclude from matches. If you
+want the "everything except *x*" type of behavior, you can use `**` as
+the main pattern, and set an `ignore` for the things to exclude.
+
+The comments feature is added in minimatch, primarily to more easily
+support use cases like ignore files, where a `#` at the start of a
+line makes the pattern "empty". However, in the context of a
+straightforward filesystem globber, "comments" don't make much sense.
+
## Windows
**Please only use forward-slashes in glob expressions.**
diff --git a/node_modules/glob-stream/node_modules/glob/common.js b/node_modules/glob-stream/node_modules/glob/common.js
index cd7c82448..e36a631ca 100644
--- a/node_modules/glob-stream/node_modules/glob/common.js
+++ b/node_modules/glob-stream/node_modules/glob/common.js
@@ -1,6 +1,5 @@
exports.alphasort = alphasort
exports.alphasorti = alphasorti
-exports.isAbsolute = process.platform === "win32" ? absWin : absUnix
exports.setopts = setopts
exports.ownProp = ownProp
exports.makeAbs = makeAbs
@@ -15,26 +14,9 @@ function ownProp (obj, field) {
var path = require("path")
var minimatch = require("minimatch")
+var isAbsolute = require("path-is-absolute")
var Minimatch = minimatch.Minimatch
-function absWin (p) {
- if (absUnix(p)) return true
- // pull off the device/UNC bit from a windows path.
- // from node's lib/path.js
- var splitDeviceRe =
- /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/
- var result = splitDeviceRe.exec(p)
- var device = result[1] || ''
- var isUnc = device && device.charAt(1) !== ':'
- var isAbsolute = !!result[2] || isUnc // UNC paths are always absolute
-
- return isAbsolute
-}
-
-function absUnix (p) {
- return p.charAt(0) === "/" || p === ""
-}
-
function alphasorti (a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase())
}
@@ -58,11 +40,11 @@ function ignoreMap (pattern) {
var gmatcher = null
if (pattern.slice(-3) === '/**') {
var gpattern = pattern.replace(/(\/\*\*)+$/, '')
- gmatcher = new Minimatch(gpattern, { nonegate: true })
+ gmatcher = new Minimatch(gpattern)
}
return {
- matcher: new Minimatch(pattern, { nonegate: true }),
+ matcher: new Minimatch(pattern),
gmatcher: gmatcher
}
}
@@ -79,6 +61,7 @@ function setopts (self, pattern, options) {
pattern = "**/" + pattern
}
+ self.silent = !!options.silent
self.pattern = pattern
self.strict = options.strict !== false
self.realpath = !!options.realpath
@@ -120,10 +103,35 @@ function setopts (self, pattern, options) {
self.nomount = !!options.nomount
+ // disable comments and negation unless the user explicitly
+ // passes in false as the option.
+ options.nonegate = options.nonegate === false ? false : true
+ options.nocomment = options.nocomment === false ? false : true
+ deprecationWarning(options)
+
self.minimatch = new Minimatch(pattern, options)
self.options = self.minimatch.options
}
+// TODO(isaacs): remove entirely in v6
+// exported to reset in tests
+exports.deprecationWarned
+function deprecationWarning(options) {
+ if (!options.nonegate || !options.nocomment) {
+ if (process.noDeprecation !== true && !exports.deprecationWarned) {
+ var msg = 'glob WARNING: comments and negation will be disabled in v6'
+ if (process.throwDeprecation)
+ throw new Error(msg)
+ else if (process.traceDeprecation)
+ console.trace(msg)
+ else
+ console.error(msg)
+
+ exports.deprecationWarned = true
+ }
+ }
+}
+
function finish (self) {
var nou = self.nounique
var all = nou ? [] : Object.create(null)
@@ -205,11 +213,11 @@ function makeAbs (self, f) {
var abs = f
if (f.charAt(0) === '/') {
abs = path.join(self.root, f)
- } else if (exports.isAbsolute(f)) {
+ } else if (isAbsolute(f) || f === '') {
abs = f
} else if (self.changedCwd) {
abs = path.resolve(self.cwd, f)
- } else if (self.realpath) {
+ } else {
abs = path.resolve(f)
}
return abs
diff --git a/node_modules/glob-stream/node_modules/glob/glob.js b/node_modules/glob-stream/node_modules/glob/glob.js
index eac0693cc..022d2ac8c 100644
--- a/node_modules/glob-stream/node_modules/glob/glob.js
+++ b/node_modules/glob-stream/node_modules/glob/glob.js
@@ -47,16 +47,17 @@ var inherits = require('inherits')
var EE = require('events').EventEmitter
var path = require('path')
var assert = require('assert')
+var isAbsolute = require('path-is-absolute')
var globSync = require('./sync.js')
var common = require('./common.js')
var alphasort = common.alphasort
var alphasorti = common.alphasorti
-var isAbsolute = common.isAbsolute
var setopts = common.setopts
var ownProp = common.ownProp
var inflight = require('inflight')
var util = require('util')
var childrenIgnored = common.childrenIgnored
+var isIgnored = common.isIgnored
var once = require('once')
@@ -432,6 +433,9 @@ Glob.prototype._emitMatch = function (index, e) {
if (this.matches[index][e])
return
+ if (isIgnored(this, e))
+ return
+
if (this.paused) {
this._emitQueue.push([index, e])
return
@@ -552,6 +556,7 @@ Glob.prototype._readdirError = function (f, er, cb) {
// handle errors, and cache the information
switch (er.code) {
+ case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
case 'ENOTDIR': // totally normal. means it *does* exist.
this.cache[this._makeAbs(f)] = 'FILE'
break
@@ -565,10 +570,17 @@ Glob.prototype._readdirError = function (f, er, cb) {
default: // some unusual error. Treat as failure.
this.cache[this._makeAbs(f)] = false
- if (this.strict) return this.emit('error', er)
- if (!this.silent) console.error('glob error', er)
+ if (this.strict) {
+ this.emit('error', er)
+ // If the error is handled, then we abort
+ // if not, we threw out of here
+ this.abort()
+ }
+ if (!this.silent)
+ console.error('glob error', er)
break
}
+
return cb()
}
diff --git a/node_modules/glob-stream/node_modules/glob/package.json b/node_modules/glob-stream/node_modules/glob/package.json
index 887bad528..9e98d23eb 100644
--- a/node_modules/glob-stream/node_modules/glob/package.json
+++ b/node_modules/glob-stream/node_modules/glob/package.json
@@ -1,105 +1,42 @@
{
- "_args": [
- [
- {
- "raw": "glob@^4.3.1",
- "scope": null,
- "escapedName": "glob",
- "name": "glob",
- "rawSpec": "^4.3.1",
- "spec": ">=4.3.1 <5.0.0",
- "type": "range"
- },
- "/home/dold/repos/taler/wallet-webex/node_modules/glob-stream"
- ]
- ],
- "_from": "glob@>=4.3.1 <5.0.0",
- "_id": "glob@4.5.3",
- "_inCache": true,
- "_location": "/glob-stream/glob",
- "_nodeVersion": "1.4.2",
- "_npmUser": {
- "name": "isaacs",
- "email": "i@izs.me"
- },
- "_npmVersion": "2.7.1",
- "_phantomChildren": {},
- "_requested": {
- "raw": "glob@^4.3.1",
- "scope": null,
- "escapedName": "glob",
- "name": "glob",
- "rawSpec": "^4.3.1",
- "spec": ">=4.3.1 <5.0.0",
- "type": "range"
+ "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
+ "name": "glob",
+ "description": "a little globber",
+ "version": "5.0.15",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/node-glob.git"
},
- "_requiredBy": [
- "/glob-stream"
+ "main": "glob.js",
+ "files": [
+ "glob.js",
+ "sync.js",
+ "common.js"
],
- "_resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
- "_shasum": "c6cb73d3226c1efef04de3c56d012f03377ee15f",
- "_shrinkwrap": null,
- "_spec": "glob@^4.3.1",
- "_where": "/home/dold/repos/taler/wallet-webex/node_modules/glob-stream",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/isaacs/node-glob/issues"
+ "engines": {
+ "node": "*"
},
"dependencies": {
"inflight": "^1.0.4",
"inherits": "2",
- "minimatch": "^2.0.1",
- "once": "^1.3.0"
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
},
- "description": "a little globber",
"devDependencies": {
"mkdirp": "0",
"rimraf": "^2.2.8",
- "tap": "^0.5.0",
+ "tap": "^1.1.4",
"tick": "0.0.6"
},
- "directories": {},
- "dist": {
- "shasum": "c6cb73d3226c1efef04de3c56d012f03377ee15f",
- "tarball": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz"
- },
- "engines": {
- "node": "*"
- },
- "files": [
- "glob.js",
- "sync.js",
- "common.js"
- ],
- "gitHead": "a4e461ab59a837eee80a4d8dbdbf5ae1054a646f",
- "homepage": "https://github.com/isaacs/node-glob",
- "license": "ISC",
- "main": "glob.js",
- "maintainers": [
- {
- "name": "isaacs",
- "email": "i@izs.me"
- }
- ],
- "name": "glob",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/node-glob.git"
- },
"scripts": {
- "bench": "bash benchmark.sh",
- "benchclean": "bash benchclean.sh",
"prepublish": "npm run benchclean",
- "prof": "bash prof.sh && cat profile.txt",
"profclean": "rm -f v8.log profile.txt",
- "test": "npm run profclean && tap test/*.js",
- "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js"
+ "test": "tap test/*.js --cov",
+ "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js",
+ "bench": "bash benchmark.sh",
+ "prof": "bash prof.sh && cat profile.txt",
+ "benchclean": "node benchclean.js"
},
- "version": "4.5.3"
+ "license": "ISC"
}
diff --git a/node_modules/glob-stream/node_modules/glob/sync.js b/node_modules/glob-stream/node_modules/glob/sync.js
index f4f5e36d4..09883d2ce 100644
--- a/node_modules/glob-stream/node_modules/glob/sync.js
+++ b/node_modules/glob-stream/node_modules/glob/sync.js
@@ -8,10 +8,10 @@ var Glob = require('./glob.js').Glob
var util = require('util')
var path = require('path')
var assert = require('assert')
+var isAbsolute = require('path-is-absolute')
var common = require('./common.js')
var alphasort = common.alphasort
var alphasorti = common.alphasorti
-var isAbsolute = common.isAbsolute
var setopts = common.setopts
var ownProp = common.ownProp
var childrenIgnored = common.childrenIgnored
@@ -57,7 +57,7 @@ GlobSync.prototype._finish = function () {
for (var p in matchset) {
try {
p = self._makeAbs(p)
- var real = fs.realpathSync(p, this.realpathCache)
+ var real = fs.realpathSync(p, self.realpathCache)
set[real] = true
} catch (er) {
if (er.syscall === 'stat')
@@ -303,6 +303,7 @@ GlobSync.prototype._readdirEntries = function (abs, entries) {
GlobSync.prototype._readdirError = function (f, er) {
// handle errors, and cache the information
switch (er.code) {
+ case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
case 'ENOTDIR': // totally normal. means it *does* exist.
this.cache[this._makeAbs(f)] = 'FILE'
break
@@ -316,8 +317,10 @@ GlobSync.prototype._readdirError = function (f, er) {
default: // some unusual error. Treat as failure.
this.cache[this._makeAbs(f)] = false
- if (this.strict) throw er
- if (!this.silent) console.error('glob error', er)
+ if (this.strict)
+ throw er
+ if (!this.silent)
+ console.error('glob error', er)
break
}
}
diff --git a/node_modules/glob-stream/node_modules/isarray/README.md b/node_modules/glob-stream/node_modules/isarray/README.md
new file mode 100644
index 000000000..052a62b8d
--- /dev/null
+++ b/node_modules/glob-stream/node_modules/isarray/README.md
@@ -0,0 +1,54 @@
+
+# isarray
+
+`Array#isArray` for older browsers.
+
+## Usage
+
+```js
+var isArray = require('isarray');
+
+console.log(isArray([])); // => true
+console.log(isArray({})); // => false
+```
+
+## Installation
+
+With [npm](http://npmjs.org) do
+
+```bash
+$ npm install isarray
+```
+
+Then bundle for the browser with
+[browserify](https://github.com/substack/browserify).
+
+With [component](http://component.io) do
+
+```bash
+$ component install juliangruber/isarray
+```
+
+## License
+
+(MIT)
+
+Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
+
+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/glob-stream/node_modules/isarray/build/build.js b/node_modules/glob-stream/node_modules/isarray/build/build.js
new file mode 100644
index 000000000..ec58596ae
--- /dev/null
+++ b/node_modules/glob-stream/node_modules/isarray/build/build.js
@@ -0,0 +1,209 @@
+
+/**
+ * Require the given path.
+ *
+ * @param {String} path
+ * @return {Object} exports
+ * @api public
+ */
+
+function require(path, parent, orig) {
+ var resolved = require.resolve(path);
+
+ // lookup failed
+ if (null == resolved) {
+ orig = orig || path;
+ parent = parent || 'root';
+ var err = new Error('Failed to require "' + orig + '" from "' + parent + '"');
+ err.path = orig;
+ err.parent = parent;
+ err.require = true;
+ throw err;
+ }
+
+ var module = require.modules[resolved];
+
+ // perform real require()
+ // by invoking the module's
+ // registered function
+ if (!module.exports) {
+ module.exports = {};
+ module.client = module.component = true;
+ module.call(this, module.exports, require.relative(resolved), module);
+ }
+
+ return module.exports;
+}
+
+/**
+ * Registered modules.
+ */
+
+require.modules = {};
+
+/**
+ * Registered aliases.
+ */
+
+require.aliases = {};
+
+/**
+ * Resolve `path`.
+ *
+ * Lookup:
+ *
+ * - PATH/index.js
+ * - PATH.js
+ * - PATH
+ *
+ * @param {String} path
+ * @return {String} path or null
+ * @api private
+ */
+
+require.resolve = function(path) {
+ if (path.charAt(0) === '/') path = path.slice(1);
+ var index = path + '/index.js';
+
+ var paths = [
+ path,
+ path + '.js',
+ path + '.json',
+ path + '/index.js',
+ path + '/index.json'
+ ];
+
+ for (var i = 0; i < paths.length; i++) {
+ var path = paths[i];
+ if (require.modules.hasOwnProperty(path)) return path;
+ }
+
+ if (require.aliases.hasOwnProperty(index)) {
+ return require.aliases[index];
+ }
+};
+
+/**
+ * Normalize `path` relative to the current path.
+ *
+ * @param {String} curr
+ * @param {String} path
+ * @return {String}
+ * @api private
+ */
+
+require.normalize = function(curr, path) {
+ var segs = [];
+
+ if ('.' != path.charAt(0)) return path;
+
+ curr = curr.split('/');
+ path = path.split('/');
+
+ for (var i = 0; i < path.length; ++i) {
+ if ('..' == path[i]) {
+ curr.pop();
+ } else if ('.' != path[i] && '' != path[i]) {
+ segs.push(path[i]);
+ }
+ }
+
+ return curr.concat(segs).join('/');
+};
+
+/**
+ * Register module at `path` with callback `definition`.
+ *
+ * @param {String} path
+ * @param {Function} definition
+ * @api private
+ */
+
+require.register = function(path, definition) {
+ require.modules[path] = definition;
+};
+
+/**
+ * Alias a module definition.
+ *
+ * @param {String} from
+ * @param {String} to
+ * @api private
+ */
+
+require.alias = function(from, to) {
+ if (!require.modules.hasOwnProperty(from)) {
+ throw new Error('Failed to alias "' + from + '", it does not exist');
+ }
+ require.aliases[to] = from;
+};
+
+/**
+ * Return a require function relative to the `parent` path.
+ *
+ * @param {String} parent
+ * @return {Function}
+ * @api private
+ */
+
+require.relative = function(parent) {
+ var p = require.normalize(parent, '..');
+
+ /**
+ * lastIndexOf helper.
+ */
+
+ function lastIndexOf(arr, obj) {
+ var i = arr.length;
+ while (i--) {
+ if (arr[i] === obj) return i;
+ }
+ return -1;
+ }
+
+ /**
+ * The relative require() itself.
+ */
+
+ function localRequire(path) {
+ var resolved = localRequire.resolve(path);
+ return require(resolved, parent, path);
+ }
+
+ /**
+ * Resolve relative to the parent.
+ */
+
+ localRequire.resolve = function(path) {
+ var c = path.charAt(0);
+ if ('/' == c) return path.slice(1);
+ if ('.' == c) return require.normalize(p, path);
+
+ // resolve deps by returning
+ // the dep in the nearest "deps"
+ // directory
+ var segs = parent.split('/');
+ var i = lastIndexOf(segs, 'deps') + 1;
+ if (!i) i = 0;
+ path = segs.slice(0, i + 1).join('/') + '/deps/' + path;
+ return path;
+ };
+
+ /**
+ * Check if module is defined at `path`.
+ */
+
+ localRequire.exists = function(path) {
+ return require.modules.hasOwnProperty(localRequire.resolve(path));
+ };
+
+ return localRequire;
+};
+require.register("isarray/index.js", function(exports, require, module){
+module.exports = Array.isArray || function (arr) {
+ return Object.prototype.toString.call(arr) == '[object Array]';
+};
+
+});
+require.alias("isarray/index.js", "isarray/index.js");
+
diff --git a/node_modules/glob-stream/node_modules/isarray/component.json b/node_modules/glob-stream/node_modules/isarray/component.json
new file mode 100644
index 000000000..9e31b6838
--- /dev/null
+++ b/node_modules/glob-stream/node_modules/isarray/component.json
@@ -0,0 +1,19 @@
+{
+ "name" : "isarray",
+ "description" : "Array#isArray for older browsers",
+ "version" : "0.0.1",
+ "repository" : "juliangruber/isarray",
+ "homepage": "https://github.com/juliangruber/isarray",
+ "main" : "index.js",
+ "scripts" : [
+ "index.js"
+ ],
+ "dependencies" : {},
+ "keywords": ["browser","isarray","array"],
+ "author": {
+ "name": "Julian Gruber",
+ "email": "mail@juliangruber.com",
+ "url": "http://juliangruber.com"
+ },
+ "license": "MIT"
+}
diff --git a/node_modules/glob-stream/node_modules/isarray/index.js b/node_modules/glob-stream/node_modules/isarray/index.js
new file mode 100644
index 000000000..5f5ad45d4
--- /dev/null
+++ b/node_modules/glob-stream/node_modules/isarray/index.js
@@ -0,0 +1,3 @@
+module.exports = Array.isArray || function (arr) {
+ return Object.prototype.toString.call(arr) == '[object Array]';
+};
diff --git a/node_modules/glob-stream/node_modules/isarray/package.json b/node_modules/glob-stream/node_modules/isarray/package.json
new file mode 100644
index 000000000..5a1e9c109
--- /dev/null
+++ b/node_modules/glob-stream/node_modules/isarray/package.json
@@ -0,0 +1,25 @@
+{
+ "name" : "isarray",
+ "description" : "Array#isArray for older browsers",
+ "version" : "0.0.1",
+ "repository" : {
+ "type" : "git",
+ "url" : "git://github.com/juliangruber/isarray.git"
+ },
+ "homepage": "https://github.com/juliangruber/isarray",
+ "main" : "index.js",
+ "scripts" : {
+ "test" : "tap test/*.js"
+ },
+ "dependencies" : {},
+ "devDependencies" : {
+ "tap" : "*"
+ },
+ "keywords": ["browser","isarray","array"],
+ "author": {
+ "name": "Julian Gruber",
+ "email": "mail@juliangruber.com",
+ "url": "http://juliangruber.com"
+ },
+ "license": "MIT"
+}
diff --git a/node_modules/glob-stream/node_modules/minimatch/LICENSE b/node_modules/glob-stream/node_modules/minimatch/LICENSE
deleted file mode 100644
index 19129e315..000000000
--- a/node_modules/glob-stream/node_modules/minimatch/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/glob-stream/node_modules/minimatch/README.md b/node_modules/glob-stream/node_modules/minimatch/README.md
deleted file mode 100644
index d458bc2e0..000000000
--- a/node_modules/glob-stream/node_modules/minimatch/README.md
+++ /dev/null
@@ -1,216 +0,0 @@
-# minimatch
-
-A minimal matching utility.
-
-[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)
-
-
-This is the matching library used internally by npm.
-
-It works by converting glob expressions into JavaScript `RegExp`
-objects.
-
-## Usage
-
-```javascript
-var minimatch = require("minimatch")
-
-minimatch("bar.foo", "*.foo") // true!
-minimatch("bar.foo", "*.bar") // false!
-minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy!
-```
-
-## Features
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-
-## Minimatch Class
-
-Create a minimatch object by instanting the `minimatch.Minimatch` class.
-
-```javascript
-var Minimatch = require("minimatch").Minimatch
-var mm = new Minimatch(pattern, options)
-```
-
-### Properties
-
-* `pattern` The original pattern the minimatch object represents.
-* `options` The options supplied to the constructor.
-* `set` A 2-dimensional array of regexp or string expressions.
- Each row in the
- array corresponds to a brace-expanded pattern. Each item in the row
- corresponds to a single path-part. For example, the pattern
- `{a,b/c}/d` would expand to a set of patterns like:
-
- [ [ a, d ]
- , [ b, c, d ] ]
-
- If a portion of the pattern doesn't have any "magic" in it
- (that is, it's something like `"foo"` rather than `fo*o?`), then it
- will be left as a string rather than converted to a regular
- expression.
-
-* `regexp` Created by the `makeRe` method. A single regular expression
- expressing the entire pattern. This is useful in cases where you wish
- to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
-* `negate` True if the pattern is negated.
-* `comment` True if the pattern is a comment.
-* `empty` True if the pattern is `""`.
-
-### Methods
-
-* `makeRe` Generate the `regexp` member if necessary, and return it.
- Will return `false` if the pattern is invalid.
-* `match(fname)` Return true if the filename matches the pattern, or
- false otherwise.
-* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
- filename, and match it against a single row in the `regExpSet`. This
- method is mainly for internal use, but is exposed so that it can be
- used by a glob-walker that needs to avoid excessive filesystem calls.
-
-All other methods are internal, and will be called as necessary.
-
-## Functions
-
-The top-level exported function has a `cache` property, which is an LRU
-cache set to store 100 items. So, calling these methods repeatedly
-with the same pattern and options will use the same Minimatch object,
-saving the cost of parsing it multiple times.
-
-### minimatch(path, pattern, options)
-
-Main export. Tests a path against the pattern using the options.
-
-```javascript
-var isJS = minimatch(file, "*.js", { matchBase: true })
-```
-
-### minimatch.filter(pattern, options)
-
-Returns a function that tests its
-supplied argument, suitable for use with `Array.filter`. Example:
-
-```javascript
-var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
-```
-
-### minimatch.match(list, pattern, options)
-
-Match against the list of
-files, in the style of fnmatch or glob. If nothing is matched, and
-options.nonull is set, then return a list containing the pattern itself.
-
-```javascript
-var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
-```
-
-### minimatch.makeRe(pattern, options)
-
-Make a regular expression object from the pattern.
-
-## Options
-
-All options are `false` by default.
-
-### debug
-
-Dump a ton of stuff to stderr.
-
-### nobrace
-
-Do not expand `{a,b}` and `{1..3}` brace sets.
-
-### noglobstar
-
-Disable `**` matching against multiple folder names.
-
-### dot
-
-Allow patterns to match filenames starting with a period, even if
-the pattern does not explicitly have a period in that spot.
-
-Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
-is set.
-
-### noext
-
-Disable "extglob" style patterns like `+(a|b)`.
-
-### nocase
-
-Perform a case-insensitive match.
-
-### nonull
-
-When a match is not found by `minimatch.match`, return a list containing
-the pattern itself if this option is set. When not set, an empty list
-is returned if there are no matches.
-
-### matchBase
-
-If set, then patterns without slashes will be matched
-against the basename of the path if it contains slashes. For example,
-`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
-
-### nocomment
-
-Suppress the behavior of treating `#` at the start of a pattern as a
-comment.
-
-### nonegate
-
-Suppress the behavior of treating a leading `!` character as negation.
-
-### flipNegate
-
-Returns from negate expressions the same as if they were not negated.
-(Ie, true on a hit, false on a miss.)
-
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between minimatch and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated. Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally. This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything. Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set. This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then minimatch.match returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`. This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern. Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity. Since those two are valid, matching proceeds.
diff --git a/node_modules/glob-stream/node_modules/minimatch/browser.js b/node_modules/glob-stream/node_modules/minimatch/browser.js
deleted file mode 100644
index 7d0515920..000000000
--- a/node_modules/glob-stream/node_modules/minimatch/browser.js
+++ /dev/null
@@ -1,1159 +0,0 @@
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.minimatch = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-module.exports = minimatch
-minimatch.Minimatch = Minimatch
-
-var path = { sep: '/' }
-try {
- path = require('path')
-} catch (er) {}
-
-var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
-var expand = require('brace-expansion')
-
-// any single thing other than /
-// don't need to escape / when using new RegExp()
-var qmark = '[^/]'
-
-// * => any number of characters
-var star = qmark + '*?'
-
-// ** when dots are allowed. Anything goes, except .. and .
-// not (^ or / followed by one or two dots followed by $ or /),
-// followed by anything, any number of times.
-var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
-
-// not a ^ or / followed by a dot,
-// followed by anything, any number of times.
-var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
-
-// characters that need to be escaped in RegExp.
-var reSpecials = charSet('().*{}+?[]^$\\!')
-
-// "abc" -> { a:true, b:true, c:true }
-function charSet (s) {
- return s.split('').reduce(function (set, c) {
- set[c] = true
- return set
- }, {})
-}
-
-// normalizes slashes.
-var slashSplit = /\/+/
-
-minimatch.filter = filter
-function filter (pattern, options) {
- options = options || {}
- return function (p, i, list) {
- return minimatch(p, pattern, options)
- }
-}
-
-function ext (a, b) {
- a = a || {}
- b = b || {}
- var t = {}
- Object.keys(b).forEach(function (k) {
- t[k] = b[k]
- })
- Object.keys(a).forEach(function (k) {
- t[k] = a[k]
- })
- return t
-}
-
-minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return minimatch
-
- var orig = minimatch
-
- var m = function minimatch (p, pattern, options) {
- return orig.minimatch(p, pattern, ext(def, options))
- }
-
- m.Minimatch = function Minimatch (pattern, options) {
- return new orig.Minimatch(pattern, ext(def, options))
- }
-
- return m
-}
-
-Minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return Minimatch
- return minimatch.defaults(def).Minimatch
-}
-
-function minimatch (p, pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
-
- // shortcut: comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- return false
- }
-
- // "" only matches ""
- if (pattern.trim() === '') return p === ''
-
- return new Minimatch(pattern, options).match(p)
-}
-
-function Minimatch (pattern, options) {
- if (!(this instanceof Minimatch)) {
- return new Minimatch(pattern, options)
- }
-
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
- pattern = pattern.trim()
-
- // windows support: need to use /, not \
- if (path.sep !== '/') {
- pattern = pattern.split(path.sep).join('/')
- }
-
- this.options = options
- this.set = []
- this.pattern = pattern
- this.regexp = null
- this.negate = false
- this.comment = false
- this.empty = false
-
- // make the set of regexps etc.
- this.make()
-}
-
-Minimatch.prototype.debug = function () {}
-
-Minimatch.prototype.make = make
-function make () {
- // don't do it more than once.
- if (this._made) return
-
- var pattern = this.pattern
- var options = this.options
-
- // empty patterns and comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- this.comment = true
- return
- }
- if (!pattern) {
- this.empty = true
- return
- }
-
- // step 1: figure out negation, etc.
- this.parseNegate()
-
- // step 2: expand braces
- var set = this.globSet = this.braceExpand()
-
- if (options.debug) this.debug = console.error
-
- this.debug(this.pattern, set)
-
- // step 3: now we have a set, so turn each one into a series of path-portion
- // matching patterns.
- // These will be regexps, except in the case of "**", which is
- // set to the GLOBSTAR object for globstar behavior,
- // and will not contain any / characters
- set = this.globParts = set.map(function (s) {
- return s.split(slashSplit)
- })
-
- this.debug(this.pattern, set)
-
- // glob --> regexps
- set = set.map(function (s, si, set) {
- return s.map(this.parse, this)
- }, this)
-
- this.debug(this.pattern, set)
-
- // filter out everything that didn't compile properly.
- set = set.filter(function (s) {
- return s.indexOf(false) === -1
- })
-
- this.debug(this.pattern, set)
-
- this.set = set
-}
-
-Minimatch.prototype.parseNegate = parseNegate
-function parseNegate () {
- var pattern = this.pattern
- var negate = false
- var options = this.options
- var negateOffset = 0
-
- if (options.nonegate) return
-
- for (var i = 0, l = pattern.length
- ; i < l && pattern.charAt(i) === '!'
- ; i++) {
- negate = !negate
- negateOffset++
- }
-
- if (negateOffset) this.pattern = pattern.substr(negateOffset)
- this.negate = negate
-}
-
-// Brace expansion:
-// a{b,c}d -> abd acd
-// a{b,}c -> abc ac
-// a{0..3}d -> a0d a1d a2d a3d
-// a{b,c{d,e}f}g -> abg acdfg acefg
-// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
-//
-// Invalid sets are not expanded.
-// a{2..}b -> a{2..}b
-// a{b}c -> a{b}c
-minimatch.braceExpand = function (pattern, options) {
- return braceExpand(pattern, options)
-}
-
-Minimatch.prototype.braceExpand = braceExpand
-
-function braceExpand (pattern, options) {
- if (!options) {
- if (this instanceof Minimatch) {
- options = this.options
- } else {
- options = {}
- }
- }
-
- pattern = typeof pattern === 'undefined'
- ? this.pattern : pattern
-
- if (typeof pattern === 'undefined') {
- throw new Error('undefined pattern')
- }
-
- if (options.nobrace ||
- !pattern.match(/\{.*\}/)) {
- // shortcut. no need to expand.
- return [pattern]
- }
-
- return expand(pattern)
-}
-
-// parse a component of the expanded set.
-// At this point, no pattern may contain "/" in it
-// so we're going to return a 2d array, where each entry is the full
-// pattern, split on '/', and then turned into a regular expression.
-// A regexp is made at the end which joins each array with an
-// escaped /, and another full one which joins each regexp with |.
-//
-// Following the lead of Bash 4.1, note that "**" only has special meaning
-// when it is the *only* thing in a path portion. Otherwise, any series
-// of * is equivalent to a single *. Globstar behavior is enabled by
-// default, and can be disabled by setting options.noglobstar.
-Minimatch.prototype.parse = parse
-var SUBPARSE = {}
-function parse (pattern, isSub) {
- var options = this.options
-
- // shortcuts
- if (!options.noglobstar && pattern === '**') return GLOBSTAR
- if (pattern === '') return ''
-
- var re = ''
- var hasMagic = !!options.nocase
- var escaping = false
- // ? => one single character
- var patternListStack = []
- var negativeLists = []
- var plType
- var stateChar
- var inClass = false
- var reClassStart = -1
- var classStart = -1
- // . and .. never match anything that doesn't start with .,
- // even when options.dot is set.
- var patternStart = pattern.charAt(0) === '.' ? '' // anything
- // not (start or / followed by . or .. followed by / or end)
- : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
- : '(?!\\.)'
- var self = this
-
- function clearStateChar () {
- if (stateChar) {
- // we had some state-tracking character
- // that wasn't consumed by this pass.
- switch (stateChar) {
- case '*':
- re += star
- hasMagic = true
- break
- case '?':
- re += qmark
- hasMagic = true
- break
- default:
- re += '\\' + stateChar
- break
- }
- self.debug('clearStateChar %j %j', stateChar, re)
- stateChar = false
- }
- }
-
- for (var i = 0, len = pattern.length, c
- ; (i < len) && (c = pattern.charAt(i))
- ; i++) {
- this.debug('%s\t%s %s %j', pattern, i, re, c)
-
- // skip over any that are escaped.
- if (escaping && reSpecials[c]) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- switch (c) {
- case '/':
- // completely not allowed, even escaped.
- // Should already be path-split by now.
- return false
-
- case '\\':
- clearStateChar()
- escaping = true
- continue
-
- // the various stateChar values
- // for the "extglob" stuff.
- case '?':
- case '*':
- case '+':
- case '@':
- case '!':
- this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
-
- // all of those are literals inside a class, except that
- // the glob [!a] means [^a] in regexp
- if (inClass) {
- this.debug(' in class')
- if (c === '!' && i === classStart + 1) c = '^'
- re += c
- continue
- }
-
- // if we already have a stateChar, then it means
- // that there was something like ** or +? in there.
- // Handle the stateChar, then proceed with this one.
- self.debug('call clearStateChar %j', stateChar)
- clearStateChar()
- stateChar = c
- // if extglob is disabled, then +(asdf|foo) isn't a thing.
- // just clear the statechar *now*, rather than even diving into
- // the patternList stuff.
- if (options.noext) clearStateChar()
- continue
-
- case '(':
- if (inClass) {
- re += '('
- continue
- }
-
- if (!stateChar) {
- re += '\\('
- continue
- }
-
- plType = stateChar
- patternListStack.push({
- type: plType,
- start: i - 1,
- reStart: re.length
- })
- // negation is (?:(?!js)[^/]*)
- re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
- this.debug('plType %j %j', stateChar, re)
- stateChar = false
- continue
-
- case ')':
- if (inClass || !patternListStack.length) {
- re += '\\)'
- continue
- }
-
- clearStateChar()
- hasMagic = true
- re += ')'
- var pl = patternListStack.pop()
- plType = pl.type
- // negation is (?:(?!js)[^/]*)
- // The others are (?:<pattern>)<type>
- switch (plType) {
- case '!':
- negativeLists.push(pl)
- re += ')[^/]*?)'
- pl.reEnd = re.length
- break
- case '?':
- case '+':
- case '*':
- re += plType
- break
- case '@': break // the default anyway
- }
- continue
-
- case '|':
- if (inClass || !patternListStack.length || escaping) {
- re += '\\|'
- escaping = false
- continue
- }
-
- clearStateChar()
- re += '|'
- continue
-
- // these are mostly the same in regexp and glob
- case '[':
- // swallow any state-tracking char before the [
- clearStateChar()
-
- if (inClass) {
- re += '\\' + c
- continue
- }
-
- inClass = true
- classStart = i
- reClassStart = re.length
- re += c
- continue
-
- case ']':
- // a right bracket shall lose its special
- // meaning and represent itself in
- // a bracket expression if it occurs
- // first in the list. -- POSIX.2 2.8.3.2
- if (i === classStart + 1 || !inClass) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- // handle the case where we left a class open.
- // "[z-a]" is valid, equivalent to "\[z-a\]"
- if (inClass) {
- // split where the last [ was, make sure we don't have
- // an invalid re. if so, re-walk the contents of the
- // would-be class to re-translate any characters that
- // were passed through as-is
- // TODO: It would probably be faster to determine this
- // without a try/catch and a new RegExp, but it's tricky
- // to do safely. For now, this is safe and works.
- var cs = pattern.substring(classStart + 1, i)
- try {
- RegExp('[' + cs + ']')
- } catch (er) {
- // not a valid class!
- var sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
- hasMagic = hasMagic || sp[1]
- inClass = false
- continue
- }
- }
-
- // finish up the class.
- hasMagic = true
- inClass = false
- re += c
- continue
-
- default:
- // swallow any state char that wasn't consumed
- clearStateChar()
-
- if (escaping) {
- // no need
- escaping = false
- } else if (reSpecials[c]
- && !(c === '^' && inClass)) {
- re += '\\'
- }
-
- re += c
-
- } // switch
- } // for
-
- // handle the case where we left a class open.
- // "[abc" is valid, equivalent to "\[abc"
- if (inClass) {
- // split where the last [ was, and escape it
- // this is a huge pita. We now have to re-walk
- // the contents of the would-be class to re-translate
- // any characters that were passed through as-is
- cs = pattern.substr(classStart + 1)
- sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0]
- hasMagic = hasMagic || sp[1]
- }
-
- // handle the case where we had a +( thing at the *end*
- // of the pattern.
- // each pattern list stack adds 3 chars, and we need to go through
- // and escape any | chars that were passed through as-is for the regexp.
- // Go through and escape them, taking care not to double-escape any
- // | chars that were already escaped.
- for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
- var tail = re.slice(pl.reStart + 3)
- // maybe some even number of \, then maybe 1 \, followed by a |
- tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) {
- if (!$2) {
- // the | isn't already escaped, so escape it.
- $2 = '\\'
- }
-
- // need to escape all those slashes *again*, without escaping the
- // one that we need for escaping the | character. As it works out,
- // escaping an even number of slashes can be done by simply repeating
- // it exactly after itself. That's why this trick works.
- //
- // I am sorry that you have to see this.
- return $1 + $1 + $2 + '|'
- })
-
- this.debug('tail=%j\n %s', tail, tail)
- var t = pl.type === '*' ? star
- : pl.type === '?' ? qmark
- : '\\' + pl.type
-
- hasMagic = true
- re = re.slice(0, pl.reStart) + t + '\\(' + tail
- }
-
- // handle trailing things that only matter at the very end.
- clearStateChar()
- if (escaping) {
- // trailing \\
- re += '\\\\'
- }
-
- // only need to apply the nodot start if the re starts with
- // something that could conceivably capture a dot
- var addPatternStart = false
- switch (re.charAt(0)) {
- case '.':
- case '[':
- case '(': addPatternStart = true
- }
-
- // Hack to work around lack of negative lookbehind in JS
- // A pattern like: *.!(x).!(y|z) needs to ensure that a name
- // like 'a.xyz.yz' doesn't match. So, the first negative
- // lookahead, has to look ALL the way ahead, to the end of
- // the pattern.
- for (var n = negativeLists.length - 1; n > -1; n--) {
- var nl = negativeLists[n]
-
- var nlBefore = re.slice(0, nl.reStart)
- var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
- var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
- var nlAfter = re.slice(nl.reEnd)
-
- nlLast += nlAfter
-
- // Handle nested stuff like *(*.js|!(*.json)), where open parens
- // mean that we should *not* include the ) in the bit that is considered
- // "after" the negated section.
- var openParensBefore = nlBefore.split('(').length - 1
- var cleanAfter = nlAfter
- for (i = 0; i < openParensBefore; i++) {
- cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
- }
- nlAfter = cleanAfter
-
- var dollar = ''
- if (nlAfter === '' && isSub !== SUBPARSE) {
- dollar = '$'
- }
- var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
- re = newRe
- }
-
- // if the re is not "" at this point, then we need to make sure
- // it doesn't match against an empty path part.
- // Otherwise a/* will match a/, which it should not.
- if (re !== '' && hasMagic) {
- re = '(?=.)' + re
- }
-
- if (addPatternStart) {
- re = patternStart + re
- }
-
- // parsing just a piece of a larger pattern.
- if (isSub === SUBPARSE) {
- return [re, hasMagic]
- }
-
- // skip the regexp for non-magical patterns
- // unescape anything in it, though, so that it'll be
- // an exact match against a file etc.
- if (!hasMagic) {
- return globUnescape(pattern)
- }
-
- var flags = options.nocase ? 'i' : ''
- var regExp = new RegExp('^' + re + '$', flags)
-
- regExp._glob = pattern
- regExp._src = re
-
- return regExp
-}
-
-minimatch.makeRe = function (pattern, options) {
- return new Minimatch(pattern, options || {}).makeRe()
-}
-
-Minimatch.prototype.makeRe = makeRe
-function makeRe () {
- if (this.regexp || this.regexp === false) return this.regexp
-
- // at this point, this.set is a 2d array of partial
- // pattern strings, or "**".
- //
- // It's better to use .match(). This function shouldn't
- // be used, really, but it's pretty convenient sometimes,
- // when you just want to work with a regex.
- var set = this.set
-
- if (!set.length) {
- this.regexp = false
- return this.regexp
- }
- var options = this.options
-
- var twoStar = options.noglobstar ? star
- : options.dot ? twoStarDot
- : twoStarNoDot
- var flags = options.nocase ? 'i' : ''
-
- var re = set.map(function (pattern) {
- return pattern.map(function (p) {
- return (p === GLOBSTAR) ? twoStar
- : (typeof p === 'string') ? regExpEscape(p)
- : p._src
- }).join('\\\/')
- }).join('|')
-
- // must match entire pattern
- // ending in a * or ** will make it less strict.
- re = '^(?:' + re + ')$'
-
- // can match anything, as long as it's not this.
- if (this.negate) re = '^(?!' + re + ').*$'
-
- try {
- this.regexp = new RegExp(re, flags)
- } catch (ex) {
- this.regexp = false
- }
- return this.regexp
-}
-
-minimatch.match = function (list, pattern, options) {
- options = options || {}
- var mm = new Minimatch(pattern, options)
- list = list.filter(function (f) {
- return mm.match(f)
- })
- if (mm.options.nonull && !list.length) {
- list.push(pattern)
- }
- return list
-}
-
-Minimatch.prototype.match = match
-function match (f, partial) {
- this.debug('match', f, this.pattern)
- // short-circuit in the case of busted things.
- // comments, etc.
- if (this.comment) return false
- if (this.empty) return f === ''
-
- if (f === '/' && partial) return true
-
- var options = this.options
-
- // windows: need to use /, not \
- if (path.sep !== '/') {
- f = f.split(path.sep).join('/')
- }
-
- // treat the test path as a set of pathparts.
- f = f.split(slashSplit)
- this.debug(this.pattern, 'split', f)
-
- // just ONE of the pattern sets in this.set needs to match
- // in order for it to be valid. If negating, then just one
- // match means that we have failed.
- // Either way, return on the first hit.
-
- var set = this.set
- this.debug(this.pattern, 'set', set)
-
- // Find the basename of the path by looking for the last non-empty segment
- var filename
- var i
- for (i = f.length - 1; i >= 0; i--) {
- filename = f[i]
- if (filename) break
- }
-
- for (i = 0; i < set.length; i++) {
- var pattern = set[i]
- var file = f
- if (options.matchBase && pattern.length === 1) {
- file = [filename]
- }
- var hit = this.matchOne(file, pattern, partial)
- if (hit) {
- if (options.flipNegate) return true
- return !this.negate
- }
- }
-
- // didn't get any hits. this is success if it's a negative
- // pattern, failure otherwise.
- if (options.flipNegate) return false
- return this.negate
-}
-
-// set partial to true to test if, for example,
-// "/a/b" matches the start of "/*/b/*/d"
-// Partial means, if you run out of file before you run
-// out of pattern, then that's fine, as long as all
-// the parts match.
-Minimatch.prototype.matchOne = function (file, pattern, partial) {
- var options = this.options
-
- this.debug('matchOne',
- { 'this': this, file: file, pattern: pattern })
-
- this.debug('matchOne', file.length, pattern.length)
-
- for (var fi = 0,
- pi = 0,
- fl = file.length,
- pl = pattern.length
- ; (fi < fl) && (pi < pl)
- ; fi++, pi++) {
- this.debug('matchOne loop')
- var p = pattern[pi]
- var f = file[fi]
-
- this.debug(pattern, p, f)
-
- // should be impossible.
- // some invalid regexp stuff in the set.
- if (p === false) return false
-
- if (p === GLOBSTAR) {
- this.debug('GLOBSTAR', [pattern, p, f])
-
- // "**"
- // a/**/b/**/c would match the following:
- // a/b/x/y/z/c
- // a/x/y/z/b/c
- // a/b/x/b/x/c
- // a/b/c
- // To do this, take the rest of the pattern after
- // the **, and see if it would match the file remainder.
- // If so, return success.
- // If not, the ** "swallows" a segment, and try again.
- // This is recursively awful.
- //
- // a/**/b/**/c matching a/b/x/y/z/c
- // - a matches a
- // - doublestar
- // - matchOne(b/x/y/z/c, b/**/c)
- // - b matches b
- // - doublestar
- // - matchOne(x/y/z/c, c) -> no
- // - matchOne(y/z/c, c) -> no
- // - matchOne(z/c, c) -> no
- // - matchOne(c, c) yes, hit
- var fr = fi
- var pr = pi + 1
- if (pr === pl) {
- this.debug('** at the end')
- // a ** at the end will just swallow the rest.
- // We have found a match.
- // however, it will not swallow /.x, unless
- // options.dot is set.
- // . and .. are *never* matched by **, for explosively
- // exponential reasons.
- for (; fi < fl; fi++) {
- if (file[fi] === '.' || file[fi] === '..' ||
- (!options.dot && file[fi].charAt(0) === '.')) return false
- }
- return true
- }
-
- // ok, let's see if we can swallow whatever we can.
- while (fr < fl) {
- var swallowee = file[fr]
-
- this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
-
- // XXX remove this slice. Just pass the start index.
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
- this.debug('globstar found match!', fr, fl, swallowee)
- // found a match.
- return true
- } else {
- // can't swallow "." or ".." ever.
- // can only swallow ".foo" when explicitly asked.
- if (swallowee === '.' || swallowee === '..' ||
- (!options.dot && swallowee.charAt(0) === '.')) {
- this.debug('dot detected!', file, fr, pattern, pr)
- break
- }
-
- // ** swallows a segment, and continue.
- this.debug('globstar swallow a segment, and continue')
- fr++
- }
- }
-
- // no match was found.
- // However, in partial mode, we can't say this is necessarily over.
- // If there's more *pattern* left, then
- if (partial) {
- // ran out of file
- this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
- if (fr === fl) return true
- }
- return false
- }
-
- // something other than **
- // non-magic patterns just have to match exactly
- // patterns with magic have been turned into regexps.
- var hit
- if (typeof p === 'string') {
- if (options.nocase) {
- hit = f.toLowerCase() === p.toLowerCase()
- } else {
- hit = f === p
- }
- this.debug('string match', p, f, hit)
- } else {
- hit = f.match(p)
- this.debug('pattern match', p, f, hit)
- }
-
- if (!hit) return false
- }
-
- // Note: ending in / means that we'll get a final ""
- // at the end of the pattern. This can only match a
- // corresponding "" at the end of the file.
- // If the file ends in /, then it can only match a
- // a pattern that ends in /, unless the pattern just
- // doesn't have any more for it. But, a/b/ should *not*
- // match "a/b/*", even though "" matches against the
- // [^/]*? pattern, except in partial mode, where it might
- // simply not be reached yet.
- // However, a/b/ should still satisfy a/*
-
- // now either we fell off the end of the pattern, or we're done.
- if (fi === fl && pi === pl) {
- // ran out of pattern and filename at the same time.
- // an exact hit!
- return true
- } else if (fi === fl) {
- // ran out of file, but still had pattern left.
- // this is ok if we're doing the match as part of
- // a glob fs traversal.
- return partial
- } else if (pi === pl) {
- // ran out of pattern, still have file left.
- // this is only acceptable if we're on the very last
- // empty segment of a file with a trailing slash.
- // a/* should match a/b/
- var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
- return emptyFileEnd
- }
-
- // should be unreachable.
- throw new Error('wtf?')
-}
-
-// replace stuff like \* with *
-function globUnescape (s) {
- return s.replace(/\\(.)/g, '$1')
-}
-
-function regExpEscape (s) {
- return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
-}
-
-},{"brace-expansion":2,"path":undefined}],2:[function(require,module,exports){
-var concatMap = require('concat-map');
-var balanced = require('balanced-match');
-
-module.exports = expandTop;
-
-var escSlash = '\0SLASH'+Math.random()+'\0';
-var escOpen = '\0OPEN'+Math.random()+'\0';
-var escClose = '\0CLOSE'+Math.random()+'\0';
-var escComma = '\0COMMA'+Math.random()+'\0';
-var escPeriod = '\0PERIOD'+Math.random()+'\0';
-
-function numeric(str) {
- return parseInt(str, 10) == str
- ? parseInt(str, 10)
- : str.charCodeAt(0);
-}
-
-function escapeBraces(str) {
- return str.split('\\\\').join(escSlash)
- .split('\\{').join(escOpen)
- .split('\\}').join(escClose)
- .split('\\,').join(escComma)
- .split('\\.').join(escPeriod);
-}
-
-function unescapeBraces(str) {
- return str.split(escSlash).join('\\')
- .split(escOpen).join('{')
- .split(escClose).join('}')
- .split(escComma).join(',')
- .split(escPeriod).join('.');
-}
-
-
-// Basically just str.split(","), but handling cases
-// where we have nested braced sections, which should be
-// treated as individual members, like {a,{b,c},d}
-function parseCommaParts(str) {
- if (!str)
- return [''];
-
- var parts = [];
- var m = balanced('{', '}', str);
-
- if (!m)
- return str.split(',');
-
- var pre = m.pre;
- var body = m.body;
- var post = m.post;
- var p = pre.split(',');
-
- p[p.length-1] += '{' + body + '}';
- var postParts = parseCommaParts(post);
- if (post.length) {
- p[p.length-1] += postParts.shift();
- p.push.apply(p, postParts);
- }
-
- parts.push.apply(parts, p);
-
- return parts;
-}
-
-function expandTop(str) {
- if (!str)
- return [];
-
- var expansions = expand(escapeBraces(str));
- return expansions.filter(identity).map(unescapeBraces);
-}
-
-function identity(e) {
- return e;
-}
-
-function embrace(str) {
- return '{' + str + '}';
-}
-function isPadded(el) {
- return /^-?0\d/.test(el);
-}
-
-function lte(i, y) {
- return i <= y;
-}
-function gte(i, y) {
- return i >= y;
-}
-
-function expand(str) {
- var expansions = [];
-
- var m = balanced('{', '}', str);
- if (!m || /\$$/.test(m.pre)) return [str];
-
- var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
- var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
- var isSequence = isNumericSequence || isAlphaSequence;
- var isOptions = /^(.*,)+(.+)?$/.test(m.body);
- if (!isSequence && !isOptions) {
- // {a},b}
- if (m.post.match(/,.*}/)) {
- str = m.pre + '{' + m.body + escClose + m.post;
- return expand(str);
- }
- return [str];
- }
-
- var n;
- if (isSequence) {
- n = m.body.split(/\.\./);
- } else {
- n = parseCommaParts(m.body);
- if (n.length === 1) {
- // x{{a,b}}y ==> x{a}y x{b}y
- n = expand(n[0]).map(embrace);
- if (n.length === 1) {
- var post = m.post.length
- ? expand(m.post)
- : [''];
- return post.map(function(p) {
- return m.pre + n[0] + p;
- });
- }
- }
- }
-
- // at this point, n is the parts, and we know it's not a comma set
- // with a single entry.
-
- // no need to expand pre, since it is guaranteed to be free of brace-sets
- var pre = m.pre;
- var post = m.post.length
- ? expand(m.post)
- : [''];
-
- var N;
-
- if (isSequence) {
- var x = numeric(n[0]);
- var y = numeric(n[1]);
- var width = Math.max(n[0].length, n[1].length)
- var incr = n.length == 3
- ? Math.abs(numeric(n[2]))
- : 1;
- var test = lte;
- var reverse = y < x;
- if (reverse) {
- incr *= -1;
- test = gte;
- }
- var pad = n.some(isPadded);
-
- N = [];
-
- for (var i = x; test(i, y); i += incr) {
- var c;
- if (isAlphaSequence) {
- c = String.fromCharCode(i);
- if (c === '\\')
- c = '';
- } else {
- c = String(i);
- if (pad) {
- var need = width - c.length;
- if (need > 0) {
- var z = new Array(need + 1).join('0');
- if (i < 0)
- c = '-' + z + c.slice(1);
- else
- c = z + c;
- }
- }
- }
- N.push(c);
- }
- } else {
- N = concatMap(n, function(el) { return expand(el) });
- }
-
- for (var j = 0; j < N.length; j++) {
- for (var k = 0; k < post.length; k++) {
- expansions.push([pre, N[j], post[k]].join(''))
- }
- }
-
- return expansions;
-}
-
-
-},{"balanced-match":3,"concat-map":4}],3:[function(require,module,exports){
-module.exports = balanced;
-function balanced(a, b, str) {
- var bal = 0;
- var m = {};
- var ended = false;
-
- for (var i = 0; i < str.length; i++) {
- if (a == str.substr(i, a.length)) {
- if (!('start' in m)) m.start = i;
- bal++;
- }
- else if (b == str.substr(i, b.length) && 'start' in m) {
- ended = true;
- bal--;
- if (!bal) {
- m.end = i;
- m.pre = str.substr(0, m.start);
- m.body = (m.end - m.start > 1)
- ? str.substring(m.start + a.length, m.end)
- : '';
- m.post = str.slice(m.end + b.length);
- return m;
- }
- }
- }
-
- // if we opened more than we closed, find the one we closed
- if (bal && ended) {
- var start = m.start + a.length;
- m = balanced(a, b, str.substr(start));
- if (m) {
- m.start += start;
- m.end += start;
- m.pre = str.slice(0, start) + m.pre;
- }
- return m;
- }
-}
-
-},{}],4:[function(require,module,exports){
-module.exports = function (xs, fn) {
- var res = [];
- for (var i = 0; i < xs.length; i++) {
- var x = fn(xs[i], i);
- if (Array.isArray(x)) res.push.apply(res, x);
- else res.push(x);
- }
- return res;
-};
-
-},{}]},{},[1])(1)
-}); \ No newline at end of file
diff --git a/node_modules/glob-stream/node_modules/minimatch/minimatch.js b/node_modules/glob-stream/node_modules/minimatch/minimatch.js
deleted file mode 100644
index ec4c05c57..000000000
--- a/node_modules/glob-stream/node_modules/minimatch/minimatch.js
+++ /dev/null
@@ -1,912 +0,0 @@
-module.exports = minimatch
-minimatch.Minimatch = Minimatch
-
-var path = { sep: '/' }
-try {
- path = require('path')
-} catch (er) {}
-
-var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
-var expand = require('brace-expansion')
-
-// any single thing other than /
-// don't need to escape / when using new RegExp()
-var qmark = '[^/]'
-
-// * => any number of characters
-var star = qmark + '*?'
-
-// ** when dots are allowed. Anything goes, except .. and .
-// not (^ or / followed by one or two dots followed by $ or /),
-// followed by anything, any number of times.
-var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
-
-// not a ^ or / followed by a dot,
-// followed by anything, any number of times.
-var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
-
-// characters that need to be escaped in RegExp.
-var reSpecials = charSet('().*{}+?[]^$\\!')
-
-// "abc" -> { a:true, b:true, c:true }
-function charSet (s) {
- return s.split('').reduce(function (set, c) {
- set[c] = true
- return set
- }, {})
-}
-
-// normalizes slashes.
-var slashSplit = /\/+/
-
-minimatch.filter = filter
-function filter (pattern, options) {
- options = options || {}
- return function (p, i, list) {
- return minimatch(p, pattern, options)
- }
-}
-
-function ext (a, b) {
- a = a || {}
- b = b || {}
- var t = {}
- Object.keys(b).forEach(function (k) {
- t[k] = b[k]
- })
- Object.keys(a).forEach(function (k) {
- t[k] = a[k]
- })
- return t
-}
-
-minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return minimatch
-
- var orig = minimatch
-
- var m = function minimatch (p, pattern, options) {
- return orig.minimatch(p, pattern, ext(def, options))
- }
-
- m.Minimatch = function Minimatch (pattern, options) {
- return new orig.Minimatch(pattern, ext(def, options))
- }
-
- return m
-}
-
-Minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return Minimatch
- return minimatch.defaults(def).Minimatch
-}
-
-function minimatch (p, pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
-
- // shortcut: comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- return false
- }
-
- // "" only matches ""
- if (pattern.trim() === '') return p === ''
-
- return new Minimatch(pattern, options).match(p)
-}
-
-function Minimatch (pattern, options) {
- if (!(this instanceof Minimatch)) {
- return new Minimatch(pattern, options)
- }
-
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
- pattern = pattern.trim()
-
- // windows support: need to use /, not \
- if (path.sep !== '/') {
- pattern = pattern.split(path.sep).join('/')
- }
-
- this.options = options
- this.set = []
- this.pattern = pattern
- this.regexp = null
- this.negate = false
- this.comment = false
- this.empty = false
-
- // make the set of regexps etc.
- this.make()
-}
-
-Minimatch.prototype.debug = function () {}
-
-Minimatch.prototype.make = make
-function make () {
- // don't do it more than once.
- if (this._made) return
-
- var pattern = this.pattern
- var options = this.options
-
- // empty patterns and comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- this.comment = true
- return
- }
- if (!pattern) {
- this.empty = true
- return
- }
-
- // step 1: figure out negation, etc.
- this.parseNegate()
-
- // step 2: expand braces
- var set = this.globSet = this.braceExpand()
-
- if (options.debug) this.debug = console.error
-
- this.debug(this.pattern, set)
-
- // step 3: now we have a set, so turn each one into a series of path-portion
- // matching patterns.
- // These will be regexps, except in the case of "**", which is
- // set to the GLOBSTAR object for globstar behavior,
- // and will not contain any / characters
- set = this.globParts = set.map(function (s) {
- return s.split(slashSplit)
- })
-
- this.debug(this.pattern, set)
-
- // glob --> regexps
- set = set.map(function (s, si, set) {
- return s.map(this.parse, this)
- }, this)
-
- this.debug(this.pattern, set)
-
- // filter out everything that didn't compile properly.
- set = set.filter(function (s) {
- return s.indexOf(false) === -1
- })
-
- this.debug(this.pattern, set)
-
- this.set = set
-}
-
-Minimatch.prototype.parseNegate = parseNegate
-function parseNegate () {
- var pattern = this.pattern
- var negate = false
- var options = this.options
- var negateOffset = 0
-
- if (options.nonegate) return
-
- for (var i = 0, l = pattern.length
- ; i < l && pattern.charAt(i) === '!'
- ; i++) {
- negate = !negate
- negateOffset++
- }
-
- if (negateOffset) this.pattern = pattern.substr(negateOffset)
- this.negate = negate
-}
-
-// Brace expansion:
-// a{b,c}d -> abd acd
-// a{b,}c -> abc ac
-// a{0..3}d -> a0d a1d a2d a3d
-// a{b,c{d,e}f}g -> abg acdfg acefg
-// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
-//
-// Invalid sets are not expanded.
-// a{2..}b -> a{2..}b
-// a{b}c -> a{b}c
-minimatch.braceExpand = function (pattern, options) {
- return braceExpand(pattern, options)
-}
-
-Minimatch.prototype.braceExpand = braceExpand
-
-function braceExpand (pattern, options) {
- if (!options) {
- if (this instanceof Minimatch) {
- options = this.options
- } else {
- options = {}
- }
- }
-
- pattern = typeof pattern === 'undefined'
- ? this.pattern : pattern
-
- if (typeof pattern === 'undefined') {
- throw new Error('undefined pattern')
- }
-
- if (options.nobrace ||
- !pattern.match(/\{.*\}/)) {
- // shortcut. no need to expand.
- return [pattern]
- }
-
- return expand(pattern)
-}
-
-// parse a component of the expanded set.
-// At this point, no pattern may contain "/" in it
-// so we're going to return a 2d array, where each entry is the full
-// pattern, split on '/', and then turned into a regular expression.
-// A regexp is made at the end which joins each array with an
-// escaped /, and another full one which joins each regexp with |.
-//
-// Following the lead of Bash 4.1, note that "**" only has special meaning
-// when it is the *only* thing in a path portion. Otherwise, any series
-// of * is equivalent to a single *. Globstar behavior is enabled by
-// default, and can be disabled by setting options.noglobstar.
-Minimatch.prototype.parse = parse
-var SUBPARSE = {}
-function parse (pattern, isSub) {
- var options = this.options
-
- // shortcuts
- if (!options.noglobstar && pattern === '**') return GLOBSTAR
- if (pattern === '') return ''
-
- var re = ''
- var hasMagic = !!options.nocase
- var escaping = false
- // ? => one single character
- var patternListStack = []
- var negativeLists = []
- var plType
- var stateChar
- var inClass = false
- var reClassStart = -1
- var classStart = -1
- // . and .. never match anything that doesn't start with .,
- // even when options.dot is set.
- var patternStart = pattern.charAt(0) === '.' ? '' // anything
- // not (start or / followed by . or .. followed by / or end)
- : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
- : '(?!\\.)'
- var self = this
-
- function clearStateChar () {
- if (stateChar) {
- // we had some state-tracking character
- // that wasn't consumed by this pass.
- switch (stateChar) {
- case '*':
- re += star
- hasMagic = true
- break
- case '?':
- re += qmark
- hasMagic = true
- break
- default:
- re += '\\' + stateChar
- break
- }
- self.debug('clearStateChar %j %j', stateChar, re)
- stateChar = false
- }
- }
-
- for (var i = 0, len = pattern.length, c
- ; (i < len) && (c = pattern.charAt(i))
- ; i++) {
- this.debug('%s\t%s %s %j', pattern, i, re, c)
-
- // skip over any that are escaped.
- if (escaping && reSpecials[c]) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- switch (c) {
- case '/':
- // completely not allowed, even escaped.
- // Should already be path-split by now.
- return false
-
- case '\\':
- clearStateChar()
- escaping = true
- continue
-
- // the various stateChar values
- // for the "extglob" stuff.
- case '?':
- case '*':
- case '+':
- case '@':
- case '!':
- this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
-
- // all of those are literals inside a class, except that
- // the glob [!a] means [^a] in regexp
- if (inClass) {
- this.debug(' in class')
- if (c === '!' && i === classStart + 1) c = '^'
- re += c
- continue
- }
-
- // if we already have a stateChar, then it means
- // that there was something like ** or +? in there.
- // Handle the stateChar, then proceed with this one.
- self.debug('call clearStateChar %j', stateChar)
- clearStateChar()
- stateChar = c
- // if extglob is disabled, then +(asdf|foo) isn't a thing.
- // just clear the statechar *now*, rather than even diving into
- // the patternList stuff.
- if (options.noext) clearStateChar()
- continue
-
- case '(':
- if (inClass) {
- re += '('
- continue
- }
-
- if (!stateChar) {
- re += '\\('
- continue
- }
-
- plType = stateChar
- patternListStack.push({
- type: plType,
- start: i - 1,
- reStart: re.length
- })
- // negation is (?:(?!js)[^/]*)
- re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
- this.debug('plType %j %j', stateChar, re)
- stateChar = false
- continue
-
- case ')':
- if (inClass || !patternListStack.length) {
- re += '\\)'
- continue
- }
-
- clearStateChar()
- hasMagic = true
- re += ')'
- var pl = patternListStack.pop()
- plType = pl.type
- // negation is (?:(?!js)[^/]*)
- // The others are (?:<pattern>)<type>
- switch (plType) {
- case '!':
- negativeLists.push(pl)
- re += ')[^/]*?)'
- pl.reEnd = re.length
- break
- case '?':
- case '+':
- case '*':
- re += plType
- break
- case '@': break // the default anyway
- }
- continue
-
- case '|':
- if (inClass || !patternListStack.length || escaping) {
- re += '\\|'
- escaping = false
- continue
- }
-
- clearStateChar()
- re += '|'
- continue
-
- // these are mostly the same in regexp and glob
- case '[':
- // swallow any state-tracking char before the [
- clearStateChar()
-
- if (inClass) {
- re += '\\' + c
- continue
- }
-
- inClass = true
- classStart = i
- reClassStart = re.length
- re += c
- continue
-
- case ']':
- // a right bracket shall lose its special
- // meaning and represent itself in
- // a bracket expression if it occurs
- // first in the list. -- POSIX.2 2.8.3.2
- if (i === classStart + 1 || !inClass) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- // handle the case where we left a class open.
- // "[z-a]" is valid, equivalent to "\[z-a\]"
- if (inClass) {
- // split where the last [ was, make sure we don't have
- // an invalid re. if so, re-walk the contents of the
- // would-be class to re-translate any characters that
- // were passed through as-is
- // TODO: It would probably be faster to determine this
- // without a try/catch and a new RegExp, but it's tricky
- // to do safely. For now, this is safe and works.
- var cs = pattern.substring(classStart + 1, i)
- try {
- RegExp('[' + cs + ']')
- } catch (er) {
- // not a valid class!
- var sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
- hasMagic = hasMagic || sp[1]
- inClass = false
- continue
- }
- }
-
- // finish up the class.
- hasMagic = true
- inClass = false
- re += c
- continue
-
- default:
- // swallow any state char that wasn't consumed
- clearStateChar()
-
- if (escaping) {
- // no need
- escaping = false
- } else if (reSpecials[c]
- && !(c === '^' && inClass)) {
- re += '\\'
- }
-
- re += c
-
- } // switch
- } // for
-
- // handle the case where we left a class open.
- // "[abc" is valid, equivalent to "\[abc"
- if (inClass) {
- // split where the last [ was, and escape it
- // this is a huge pita. We now have to re-walk
- // the contents of the would-be class to re-translate
- // any characters that were passed through as-is
- cs = pattern.substr(classStart + 1)
- sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0]
- hasMagic = hasMagic || sp[1]
- }
-
- // handle the case where we had a +( thing at the *end*
- // of the pattern.
- // each pattern list stack adds 3 chars, and we need to go through
- // and escape any | chars that were passed through as-is for the regexp.
- // Go through and escape them, taking care not to double-escape any
- // | chars that were already escaped.
- for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
- var tail = re.slice(pl.reStart + 3)
- // maybe some even number of \, then maybe 1 \, followed by a |
- tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) {
- if (!$2) {
- // the | isn't already escaped, so escape it.
- $2 = '\\'
- }
-
- // need to escape all those slashes *again*, without escaping the
- // one that we need for escaping the | character. As it works out,
- // escaping an even number of slashes can be done by simply repeating
- // it exactly after itself. That's why this trick works.
- //
- // I am sorry that you have to see this.
- return $1 + $1 + $2 + '|'
- })
-
- this.debug('tail=%j\n %s', tail, tail)
- var t = pl.type === '*' ? star
- : pl.type === '?' ? qmark
- : '\\' + pl.type
-
- hasMagic = true
- re = re.slice(0, pl.reStart) + t + '\\(' + tail
- }
-
- // handle trailing things that only matter at the very end.
- clearStateChar()
- if (escaping) {
- // trailing \\
- re += '\\\\'
- }
-
- // only need to apply the nodot start if the re starts with
- // something that could conceivably capture a dot
- var addPatternStart = false
- switch (re.charAt(0)) {
- case '.':
- case '[':
- case '(': addPatternStart = true
- }
-
- // Hack to work around lack of negative lookbehind in JS
- // A pattern like: *.!(x).!(y|z) needs to ensure that a name
- // like 'a.xyz.yz' doesn't match. So, the first negative
- // lookahead, has to look ALL the way ahead, to the end of
- // the pattern.
- for (var n = negativeLists.length - 1; n > -1; n--) {
- var nl = negativeLists[n]
-
- var nlBefore = re.slice(0, nl.reStart)
- var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
- var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
- var nlAfter = re.slice(nl.reEnd)
-
- nlLast += nlAfter
-
- // Handle nested stuff like *(*.js|!(*.json)), where open parens
- // mean that we should *not* include the ) in the bit that is considered
- // "after" the negated section.
- var openParensBefore = nlBefore.split('(').length - 1
- var cleanAfter = nlAfter
- for (i = 0; i < openParensBefore; i++) {
- cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
- }
- nlAfter = cleanAfter
-
- var dollar = ''
- if (nlAfter === '' && isSub !== SUBPARSE) {
- dollar = '$'
- }
- var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
- re = newRe
- }
-
- // if the re is not "" at this point, then we need to make sure
- // it doesn't match against an empty path part.
- // Otherwise a/* will match a/, which it should not.
- if (re !== '' && hasMagic) {
- re = '(?=.)' + re
- }
-
- if (addPatternStart) {
- re = patternStart + re
- }
-
- // parsing just a piece of a larger pattern.
- if (isSub === SUBPARSE) {
- return [re, hasMagic]
- }
-
- // skip the regexp for non-magical patterns
- // unescape anything in it, though, so that it'll be
- // an exact match against a file etc.
- if (!hasMagic) {
- return globUnescape(pattern)
- }
-
- var flags = options.nocase ? 'i' : ''
- var regExp = new RegExp('^' + re + '$', flags)
-
- regExp._glob = pattern
- regExp._src = re
-
- return regExp
-}
-
-minimatch.makeRe = function (pattern, options) {
- return new Minimatch(pattern, options || {}).makeRe()
-}
-
-Minimatch.prototype.makeRe = makeRe
-function makeRe () {
- if (this.regexp || this.regexp === false) return this.regexp
-
- // at this point, this.set is a 2d array of partial
- // pattern strings, or "**".
- //
- // It's better to use .match(). This function shouldn't
- // be used, really, but it's pretty convenient sometimes,
- // when you just want to work with a regex.
- var set = this.set
-
- if (!set.length) {
- this.regexp = false
- return this.regexp
- }
- var options = this.options
-
- var twoStar = options.noglobstar ? star
- : options.dot ? twoStarDot
- : twoStarNoDot
- var flags = options.nocase ? 'i' : ''
-
- var re = set.map(function (pattern) {
- return pattern.map(function (p) {
- return (p === GLOBSTAR) ? twoStar
- : (typeof p === 'string') ? regExpEscape(p)
- : p._src
- }).join('\\\/')
- }).join('|')
-
- // must match entire pattern
- // ending in a * or ** will make it less strict.
- re = '^(?:' + re + ')$'
-
- // can match anything, as long as it's not this.
- if (this.negate) re = '^(?!' + re + ').*$'
-
- try {
- this.regexp = new RegExp(re, flags)
- } catch (ex) {
- this.regexp = false
- }
- return this.regexp
-}
-
-minimatch.match = function (list, pattern, options) {
- options = options || {}
- var mm = new Minimatch(pattern, options)
- list = list.filter(function (f) {
- return mm.match(f)
- })
- if (mm.options.nonull && !list.length) {
- list.push(pattern)
- }
- return list
-}
-
-Minimatch.prototype.match = match
-function match (f, partial) {
- this.debug('match', f, this.pattern)
- // short-circuit in the case of busted things.
- // comments, etc.
- if (this.comment) return false
- if (this.empty) return f === ''
-
- if (f === '/' && partial) return true
-
- var options = this.options
-
- // windows: need to use /, not \
- if (path.sep !== '/') {
- f = f.split(path.sep).join('/')
- }
-
- // treat the test path as a set of pathparts.
- f = f.split(slashSplit)
- this.debug(this.pattern, 'split', f)
-
- // just ONE of the pattern sets in this.set needs to match
- // in order for it to be valid. If negating, then just one
- // match means that we have failed.
- // Either way, return on the first hit.
-
- var set = this.set
- this.debug(this.pattern, 'set', set)
-
- // Find the basename of the path by looking for the last non-empty segment
- var filename
- var i
- for (i = f.length - 1; i >= 0; i--) {
- filename = f[i]
- if (filename) break
- }
-
- for (i = 0; i < set.length; i++) {
- var pattern = set[i]
- var file = f
- if (options.matchBase && pattern.length === 1) {
- file = [filename]
- }
- var hit = this.matchOne(file, pattern, partial)
- if (hit) {
- if (options.flipNegate) return true
- return !this.negate
- }
- }
-
- // didn't get any hits. this is success if it's a negative
- // pattern, failure otherwise.
- if (options.flipNegate) return false
- return this.negate
-}
-
-// set partial to true to test if, for example,
-// "/a/b" matches the start of "/*/b/*/d"
-// Partial means, if you run out of file before you run
-// out of pattern, then that's fine, as long as all
-// the parts match.
-Minimatch.prototype.matchOne = function (file, pattern, partial) {
- var options = this.options
-
- this.debug('matchOne',
- { 'this': this, file: file, pattern: pattern })
-
- this.debug('matchOne', file.length, pattern.length)
-
- for (var fi = 0,
- pi = 0,
- fl = file.length,
- pl = pattern.length
- ; (fi < fl) && (pi < pl)
- ; fi++, pi++) {
- this.debug('matchOne loop')
- var p = pattern[pi]
- var f = file[fi]
-
- this.debug(pattern, p, f)
-
- // should be impossible.
- // some invalid regexp stuff in the set.
- if (p === false) return false
-
- if (p === GLOBSTAR) {
- this.debug('GLOBSTAR', [pattern, p, f])
-
- // "**"
- // a/**/b/**/c would match the following:
- // a/b/x/y/z/c
- // a/x/y/z/b/c
- // a/b/x/b/x/c
- // a/b/c
- // To do this, take the rest of the pattern after
- // the **, and see if it would match the file remainder.
- // If so, return success.
- // If not, the ** "swallows" a segment, and try again.
- // This is recursively awful.
- //
- // a/**/b/**/c matching a/b/x/y/z/c
- // - a matches a
- // - doublestar
- // - matchOne(b/x/y/z/c, b/**/c)
- // - b matches b
- // - doublestar
- // - matchOne(x/y/z/c, c) -> no
- // - matchOne(y/z/c, c) -> no
- // - matchOne(z/c, c) -> no
- // - matchOne(c, c) yes, hit
- var fr = fi
- var pr = pi + 1
- if (pr === pl) {
- this.debug('** at the end')
- // a ** at the end will just swallow the rest.
- // We have found a match.
- // however, it will not swallow /.x, unless
- // options.dot is set.
- // . and .. are *never* matched by **, for explosively
- // exponential reasons.
- for (; fi < fl; fi++) {
- if (file[fi] === '.' || file[fi] === '..' ||
- (!options.dot && file[fi].charAt(0) === '.')) return false
- }
- return true
- }
-
- // ok, let's see if we can swallow whatever we can.
- while (fr < fl) {
- var swallowee = file[fr]
-
- this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
-
- // XXX remove this slice. Just pass the start index.
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
- this.debug('globstar found match!', fr, fl, swallowee)
- // found a match.
- return true
- } else {
- // can't swallow "." or ".." ever.
- // can only swallow ".foo" when explicitly asked.
- if (swallowee === '.' || swallowee === '..' ||
- (!options.dot && swallowee.charAt(0) === '.')) {
- this.debug('dot detected!', file, fr, pattern, pr)
- break
- }
-
- // ** swallows a segment, and continue.
- this.debug('globstar swallow a segment, and continue')
- fr++
- }
- }
-
- // no match was found.
- // However, in partial mode, we can't say this is necessarily over.
- // If there's more *pattern* left, then
- if (partial) {
- // ran out of file
- this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
- if (fr === fl) return true
- }
- return false
- }
-
- // something other than **
- // non-magic patterns just have to match exactly
- // patterns with magic have been turned into regexps.
- var hit
- if (typeof p === 'string') {
- if (options.nocase) {
- hit = f.toLowerCase() === p.toLowerCase()
- } else {
- hit = f === p
- }
- this.debug('string match', p, f, hit)
- } else {
- hit = f.match(p)
- this.debug('pattern match', p, f, hit)
- }
-
- if (!hit) return false
- }
-
- // Note: ending in / means that we'll get a final ""
- // at the end of the pattern. This can only match a
- // corresponding "" at the end of the file.
- // If the file ends in /, then it can only match a
- // a pattern that ends in /, unless the pattern just
- // doesn't have any more for it. But, a/b/ should *not*
- // match "a/b/*", even though "" matches against the
- // [^/]*? pattern, except in partial mode, where it might
- // simply not be reached yet.
- // However, a/b/ should still satisfy a/*
-
- // now either we fell off the end of the pattern, or we're done.
- if (fi === fl && pi === pl) {
- // ran out of pattern and filename at the same time.
- // an exact hit!
- return true
- } else if (fi === fl) {
- // ran out of file, but still had pattern left.
- // this is ok if we're doing the match as part of
- // a glob fs traversal.
- return partial
- } else if (pi === pl) {
- // ran out of pattern, still have file left.
- // this is only acceptable if we're on the very last
- // empty segment of a file with a trailing slash.
- // a/* should match a/b/
- var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
- return emptyFileEnd
- }
-
- // should be unreachable.
- throw new Error('wtf?')
-}
-
-// replace stuff like \* with *
-function globUnescape (s) {
- return s.replace(/\\(.)/g, '$1')
-}
-
-function regExpEscape (s) {
- return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
-}
diff --git a/node_modules/glob-stream/node_modules/minimatch/package.json b/node_modules/glob-stream/node_modules/minimatch/package.json
deleted file mode 100644
index 9e01fca0a..000000000
--- a/node_modules/glob-stream/node_modules/minimatch/package.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
- "_args": [
- [
- {
- "raw": "minimatch@^2.0.1",
- "scope": null,
- "escapedName": "minimatch",
- "name": "minimatch",
- "rawSpec": "^2.0.1",
- "spec": ">=2.0.1 <3.0.0",
- "type": "range"
- },
- "/home/dold/repos/taler/wallet-webex/node_modules/glob-stream"
- ]
- ],
- "_from": "minimatch@>=2.0.1 <3.0.0",
- "_id": "minimatch@2.0.10",
- "_inCache": true,
- "_location": "/glob-stream/minimatch",
- "_nodeVersion": "2.2.1",
- "_npmUser": {
- "name": "isaacs",
- "email": "isaacs@npmjs.com"
- },
- "_npmVersion": "3.1.0",
- "_phantomChildren": {},
- "_requested": {
- "raw": "minimatch@^2.0.1",
- "scope": null,
- "escapedName": "minimatch",
- "name": "minimatch",
- "rawSpec": "^2.0.1",
- "spec": ">=2.0.1 <3.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/glob-stream",
- "/glob-stream/glob"
- ],
- "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
- "_shasum": "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7",
- "_shrinkwrap": null,
- "_spec": "minimatch@^2.0.1",
- "_where": "/home/dold/repos/taler/wallet-webex/node_modules/glob-stream",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me"
- },
- "bugs": {
- "url": "https://github.com/isaacs/minimatch/issues"
- },
- "dependencies": {
- "brace-expansion": "^1.0.0"
- },
- "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue",
- "description": "a glob matcher in javascript",
- "devDependencies": {
- "browserify": "^9.0.3",
- "standard": "^3.7.2",
- "tap": "^1.2.0"
- },
- "directories": {},
- "dist": {
- "shasum": "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7",
- "tarball": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz"
- },
- "engines": {
- "node": "*"
- },
- "files": [
- "minimatch.js",
- "browser.js"
- ],
- "gitHead": "6afb85f0c324b321f76a38df81891e562693e257",
- "homepage": "https://github.com/isaacs/minimatch#readme",
- "license": "ISC",
- "main": "minimatch.js",
- "maintainers": [
- {
- "name": "isaacs",
- "email": "i@izs.me"
- }
- ],
- "name": "minimatch",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/minimatch.git"
- },
- "scripts": {
- "posttest": "standard minimatch.js test/*.js",
- "prepublish": "browserify -o browser.js -e minimatch.js -s minimatch --bare",
- "test": "tap test/*.js"
- },
- "version": "2.0.10"
-}
diff --git a/node_modules/glob-stream/node_modules/readable-stream/package.json b/node_modules/glob-stream/node_modules/readable-stream/package.json
index e28c8250f..b550f6ce4 100644
--- a/node_modules/glob-stream/node_modules/readable-stream/package.json
+++ b/node_modules/glob-stream/node_modules/readable-stream/package.json
@@ -1,112 +1,32 @@
{
- "_args": [
- [
- {
- "raw": "readable-stream@>=1.0.33-1 <1.1.0-0",
- "scope": null,
- "escapedName": "readable-stream",
- "name": "readable-stream",
- "rawSpec": ">=1.0.33-1 <1.1.0-0",
- "spec": ">=1.0.33-1 <1.1.0-0",
- "type": "range"
- },
- "/home/dold/repos/taler/wallet-webex/node_modules/glob-stream/node_modules/through2"
- ]
- ],
- "_from": "readable-stream@>=1.0.33-1 <1.1.0-0",
- "_id": "readable-stream@1.0.34",
- "_inCache": true,
- "_location": "/glob-stream/readable-stream",
- "_nodeVersion": "5.10.1",
- "_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/readable-stream-1.0.34.tgz_1460562521506_0.019665231462568045"
- },
- "_npmUser": {
- "name": "cwmma",
- "email": "calvin.metcalf@gmail.com"
- },
- "_npmVersion": "3.8.3",
- "_phantomChildren": {},
- "_requested": {
- "raw": "readable-stream@>=1.0.33-1 <1.1.0-0",
- "scope": null,
- "escapedName": "readable-stream",
- "name": "readable-stream",
- "rawSpec": ">=1.0.33-1 <1.1.0-0",
- "spec": ">=1.0.33-1 <1.1.0-0",
- "type": "range"
- },
- "_requiredBy": [
- "/glob-stream/through2"
- ],
- "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "_shasum": "125820e34bc842d2f2aaafafe4c2916ee32c157c",
- "_shrinkwrap": null,
- "_spec": "readable-stream@>=1.0.33-1 <1.1.0-0",
- "_where": "/home/dold/repos/taler/wallet-webex/node_modules/glob-stream/node_modules/through2",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "browser": {
- "util": false
- },
- "bugs": {
- "url": "https://github.com/isaacs/readable-stream/issues"
- },
+ "name": "readable-stream",
+ "version": "1.0.34",
+ "description": "Streams2, a user-land copy of the stream library from Node.js v0.10.x",
+ "main": "readable.js",
"dependencies": {
"core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
"isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "string_decoder": "~0.10.x",
+ "inherits": "~2.0.1"
},
- "description": "Streams2, a user-land copy of the stream library from Node.js v0.10.x",
"devDependencies": {
"tap": "~0.2.6"
},
- "directories": {},
- "dist": {
- "shasum": "125820e34bc842d2f2aaafafe4c2916ee32c157c",
- "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz"
+ "scripts": {
+ "test": "tap test/simple/*.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/readable-stream"
},
- "gitHead": "1227c7b66deedb1dc5284a89425854d5f7ad9576",
- "homepage": "https://github.com/isaacs/readable-stream#readme",
"keywords": [
"readable",
"stream",
"pipe"
],
- "license": "MIT",
- "main": "readable.js",
- "maintainers": [
- {
- "name": "isaacs",
- "email": "isaacs@npmjs.com"
- },
- {
- "name": "tootallnate",
- "email": "nathan@tootallnate.net"
- },
- {
- "name": "rvagg",
- "email": "rod@vagg.org"
- },
- {
- "name": "cwmma",
- "email": "calvin.metcalf@gmail.com"
- }
- ],
- "name": "readable-stream",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/readable-stream.git"
- },
- "scripts": {
- "test": "tap test/simple/*.js"
+ "browser": {
+ "util": false
},
- "version": "1.0.34"
+ "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
+ "license": "MIT"
}
diff --git a/node_modules/glob-stream/node_modules/through2/package.json b/node_modules/glob-stream/node_modules/through2/package.json
index 56e31b7a7..8c4439a94 100644
--- a/node_modules/glob-stream/node_modules/through2/package.json
+++ b/node_modules/glob-stream/node_modules/through2/package.json
@@ -1,98 +1,31 @@
{
- "_args": [
- [
- {
- "raw": "through2@^0.6.1",
- "scope": null,
- "escapedName": "through2",
- "name": "through2",
- "rawSpec": "^0.6.1",
- "spec": ">=0.6.1 <0.7.0",
- "type": "range"
- },
- "/home/dold/repos/taler/wallet-webex/node_modules/glob-stream"
- ]
- ],
- "_from": "through2@>=0.6.1 <0.7.0",
- "_id": "through2@0.6.5",
- "_inCache": true,
- "_location": "/glob-stream/through2",
- "_npmUser": {
- "name": "bryce",
- "email": "bryce@ravenwall.com"
- },
- "_npmVersion": "1.4.28",
- "_phantomChildren": {},
- "_requested": {
- "raw": "through2@^0.6.1",
- "scope": null,
- "escapedName": "through2",
- "name": "through2",
- "rawSpec": "^0.6.1",
- "spec": ">=0.6.1 <0.7.0",
- "type": "range"
- },
- "_requiredBy": [
- "/glob-stream"
- ],
- "_resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
- "_shasum": "41ab9c67b29d57209071410e1d7a7a968cd3ad48",
- "_shrinkwrap": null,
- "_spec": "through2@^0.6.1",
- "_where": "/home/dold/repos/taler/wallet-webex/node_modules/glob-stream",
- "author": {
- "name": "Rod Vagg",
- "email": "r@va.gg",
- "url": "https://github.com/rvagg"
- },
- "bugs": {
- "url": "https://github.com/rvagg/through2/issues"
- },
- "dependencies": {
- "readable-stream": ">=1.0.33-1 <1.1.0-0",
- "xtend": ">=4.0.0 <4.1.0-0"
- },
+ "name": "through2",
+ "version": "0.6.5",
"description": "A tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise",
- "devDependencies": {
- "bl": ">=0.9.0 <0.10.0-0",
- "stream-spigot": ">=3.0.4 <3.1.0-0",
- "tape": ">=2.14.0 <2.15.0-0"
+ "main": "through2.js",
+ "scripts": {
+ "test": "node test/test.js",
+ "test-local": "brtapsauce-local test/basic-test.js"
},
- "directories": {},
- "dist": {
- "shasum": "41ab9c67b29d57209071410e1d7a7a968cd3ad48",
- "tarball": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz"
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/rvagg/through2.git"
},
- "gitHead": "ba4a87875f2c82323c10023e36f4ae4b386c1bf8",
- "homepage": "https://github.com/rvagg/through2",
"keywords": [
"stream",
"streams2",
"through",
"transform"
],
+ "author": "Rod Vagg <r@va.gg> (https://github.com/rvagg)",
"license": "MIT",
- "main": "through2.js",
- "maintainers": [
- {
- "name": "rvagg",
- "email": "rod@vagg.org"
- },
- {
- "name": "bryce",
- "email": "bryce@ravenwall.com"
- }
- ],
- "name": "through2",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/rvagg/through2.git"
- },
- "scripts": {
- "test": "node test/test.js",
- "test-local": "brtapsauce-local test/basic-test.js"
+ "dependencies": {
+ "readable-stream": ">=1.0.33-1 <1.1.0-0",
+ "xtend": ">=4.0.0 <4.1.0-0"
},
- "version": "0.6.5"
+ "devDependencies": {
+ "bl": ">=0.9.0 <0.10.0-0",
+ "stream-spigot": ">=3.0.4 <3.1.0-0",
+ "tape": ">=2.14.0 <2.15.0-0"
+ }
}
diff --git a/node_modules/glob-stream/package.json b/node_modules/glob-stream/package.json
index d801bf2a6..2517ac269 100644
--- a/node_modules/glob-stream/package.json
+++ b/node_modules/glob-stream/package.json
@@ -1,118 +1,51 @@
{
- "_args": [
- [
- {
- "raw": "glob-stream@^3.1.5",
- "scope": null,
- "escapedName": "glob-stream",
- "name": "glob-stream",
- "rawSpec": "^3.1.5",
- "spec": ">=3.1.5 <4.0.0",
- "type": "range"
- },
- "/home/dold/repos/taler/wallet-webex/node_modules/gulp/node_modules/vinyl-fs"
- ]
- ],
- "_from": "glob-stream@>=3.1.5 <4.0.0",
- "_id": "glob-stream@3.1.18",
- "_inCache": true,
- "_location": "/glob-stream",
- "_nodeVersion": "0.10.33",
- "_npmUser": {
- "name": "fractal",
- "email": "contact@wearefractal.com"
- },
- "_npmVersion": "2.1.6",
- "_phantomChildren": {
- "brace-expansion": "1.1.6",
- "core-util-is": "1.0.2",
- "inflight": "1.0.5",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "once": "1.4.0",
- "string_decoder": "0.10.31",
- "xtend": "4.0.1"
- },
- "_requested": {
- "raw": "glob-stream@^3.1.5",
- "scope": null,
- "escapedName": "glob-stream",
- "name": "glob-stream",
- "rawSpec": "^3.1.5",
- "spec": ">=3.1.5 <4.0.0",
- "type": "range"
+ "name": "glob-stream",
+ "version": "5.3.5",
+ "description": "A wrapper around node-glob to make it streamy",
+ "author": "Gulp Team <team@gulpjs.com> (http://gulpjs.com/)",
+ "contributors": [],
+ "homepage": "http://gulpjs.com",
+ "repository": "gulpjs/glob-stream",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
},
- "_requiredBy": [
- "/gulp/vinyl-fs"
+ "main": "index.js",
+ "files": [
+ "index.js"
],
- "_resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz",
- "_shasum": "9170a5f12b790306fdfe598f313f8f7954fd143b",
- "_shrinkwrap": null,
- "_spec": "glob-stream@^3.1.5",
- "_where": "/home/dold/repos/taler/wallet-webex/node_modules/gulp/node_modules/vinyl-fs",
- "author": {
- "name": "Fractal",
- "email": "contact@wearefractal.com",
- "url": "http://wearefractal.com/"
- },
- "bugs": {
- "url": "https://github.com/wearefractal/glob-stream/issues"
+ "scripts": {
+ "lint": "eslint . && jscs . test/",
+ "pretest": "npm run lint",
+ "test": "mocha",
+ "coveralls": "istanbul cover _mocha --report lcovonly && istanbul-coveralls"
},
"dependencies": {
- "glob": "^4.3.1",
- "glob2base": "^0.0.12",
- "minimatch": "^2.0.1",
- "ordered-read-streams": "^0.1.0",
- "through2": "^0.6.1",
- "unique-stream": "^1.0.0"
+ "extend": "^3.0.0",
+ "glob": "^5.0.3",
+ "glob-parent": "^3.0.0",
+ "micromatch": "^2.3.7",
+ "ordered-read-streams": "^0.3.0",
+ "through2": "^0.6.0",
+ "to-absolute-glob": "^0.1.1",
+ "unique-stream": "^2.0.2"
},
- "description": "File system globs as a stream",
"devDependencies": {
"coveralls": "^2.11.2",
+ "eslint": "^1.7.3",
+ "eslint-config-gulp": "^2.0.0",
"istanbul": "^0.3.0",
"istanbul-coveralls": "^1.0.1",
- "jshint": "^2.5.10",
+ "jscs": "^2.3.5",
+ "jscs-preset-gulp": "^1.0.0",
"mocha": "^2.0.0",
- "mocha-lcov-reporter": "0.0.1",
+ "mocha-lcov-reporter": "^0.0.2",
"rimraf": "^2.2.5",
- "should": "^4.3.0"
- },
- "directories": {},
- "dist": {
- "shasum": "9170a5f12b790306fdfe598f313f8f7954fd143b",
- "tarball": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz"
- },
- "engines": {
- "node": ">= 0.9"
- },
- "files": [
- "index.js"
- ],
- "gitHead": "472b98e7a0a747a3c72454337def65cebc4fb78e",
- "homepage": "http://github.com/wearefractal/glob-stream",
- "licenses": [
- {
- "type": "MIT",
- "url": "http://github.com/wearefractal/glob-stream/raw/master/LICENSE"
- }
- ],
- "main": "./index.js",
- "maintainers": [
- {
- "name": "fractal",
- "email": "contact@wearefractal.com"
- }
- ],
- "name": "glob-stream",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git://github.com/wearefractal/glob-stream.git"
- },
- "scripts": {
- "coveralls": "istanbul cover _mocha --report lcovonly -- -R spec && istanbul-coveralls",
- "test": "mocha --reporter spec && jshint"
+ "should": "^7.1.0",
+ "stream-sink": "^1.2.0"
},
- "version": "3.1.18"
+ "keywords": [
+ "glob",
+ "stream"
+ ]
}