Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRebecca Turner <me@re-becca.org>2016-06-17 00:16:27 +0300
committerRebecca Turner <me@re-becca.org>2016-06-17 00:16:27 +0300
commit4a18922e56f9dc902fbb4daa8f5fafa4a1b89376 (patch)
treefe88c0ce68dd9af2d681a42ece522e02b8216f92 /node_modules/glob
parent9d64fe676ebc6949c687ffb85bd93eca3137fc0d (diff)
glob@7.0.4
Fixes issues with Node 6 and "long or excessively symlink-looping paths" Credit: @isaacs
Diffstat (limited to 'node_modules/glob')
-rw-r--r--node_modules/glob/README.md365
-rw-r--r--node_modules/glob/glob.js3
-rw-r--r--node_modules/glob/node_modules/fs.realpath/LICENSE43
-rw-r--r--node_modules/glob/node_modules/fs.realpath/README.md33
-rw-r--r--node_modules/glob/node_modules/fs.realpath/index.js66
-rw-r--r--node_modules/glob/node_modules/fs.realpath/old.js303
-rw-r--r--node_modules/glob/node_modules/fs.realpath/package.json93
-rw-r--r--node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore3
-rw-r--r--node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js8
-rw-r--r--node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore7
-rw-r--r--node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml3
-rw-r--r--node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile6
-rw-r--r--node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md4
-rw-r--r--node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js5
-rw-r--r--node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js8
-rw-r--r--node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json75
-rw-r--r--node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js84
-rw-r--r--node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json57
-rw-r--r--node_modules/glob/package.json55
-rw-r--r--node_modules/glob/sync.js3
20 files changed, 665 insertions, 559 deletions
diff --git a/node_modules/glob/README.md b/node_modules/glob/README.md
deleted file mode 100644
index 9dd9384fa..000000000
--- a/node_modules/glob/README.md
+++ /dev/null
@@ -1,365 +0,0 @@
-# Glob
-
-Match files using the patterns the shell uses, like stars and stuff.
-
-[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master)
-
-This is a glob implementation in JavaScript. It uses the `minimatch`
-library to do its matching.
-
-![](oh-my-glob.gif)
-
-## Usage
-
-Install with npm
-
-```
-npm i glob
-```
-
-```javascript
-var glob = require("glob")
-
-// options is optional
-glob("**/*.js", options, function (er, files) {
- // files is an array of filenames.
- // If the `nonull` option is set, and nothing
- // was found, then files is ["**/*.js"]
- // er is an error object or null.
-})
-```
-
-## Glob Primer
-
-"Globs" are the patterns you type when you do stuff like `ls *.js` on
-the command line, or put `build/*` in a `.gitignore` file.
-
-Before parsing the path part patterns, braced sections are expanded
-into a set. Braced sections start with `{` and end with `}`, with any
-number of comma-delimited sections within. Braced sections may contain
-slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`.
-
-The following characters have special magic meaning when used in a
-path portion:
-
-* `*` Matches 0 or more characters in a single path portion
-* `?` Matches 1 character
-* `[...]` Matches a range of characters, similar to a RegExp range.
- If the first character of the range is `!` or `^` then it matches
- any character not in the range.
-* `!(pattern|pattern|pattern)` Matches anything that does not match
- any of the patterns provided.
-* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the
- patterns provided.
-* `+(pattern|pattern|pattern)` Matches one or more occurrences of the
- patterns provided.
-* `*(a|b|c)` Matches zero or more occurrences of the patterns provided
-* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns
- provided
-* `**` If a "globstar" is alone in a path portion, then it matches
- zero or more directories and subdirectories searching for matches.
- It does not crawl symlinked directories.
-
-### Dots
-
-If a file or directory path portion has a `.` as the first character,
-then it will not match any glob pattern unless that pattern's
-corresponding path part also has a `.` as its first character.
-
-For example, the pattern `a/.*/c` would match the file at `a/.b/c`.
-However the pattern `a/*/c` would not, because `*` does not start with
-a dot character.
-
-You can make glob treat dots as normal characters by setting
-`dot:true` in the options.
-
-### Basename Matching
-
-If you set `matchBase:true` in the options, and the pattern has no
-slashes in it, then it will seek for any file anywhere in the tree
-with a matching basename. For example, `*.js` would match
-`test/simple/basic.js`.
-
-### Empty Sets
-
-If no matching files are found, then an empty array is returned. This
-differs from the shell, where the pattern itself is returned. For
-example:
-
- $ echo a*s*d*f
- a*s*d*f
-
-To get the bash-style behavior, set the `nonull:true` in the options.
-
-### See Also:
-
-* `man sh`
-* `man bash` (Search for "Pattern Matching")
-* `man 3 fnmatch`
-* `man 5 gitignore`
-* [minimatch documentation](https://github.com/isaacs/minimatch)
-
-## glob.hasMagic(pattern, [options])
-
-Returns `true` if there are any special characters in the pattern, and
-`false` otherwise.
-
-Note that the options affect the results. If `noext:true` is set in
-the options object, then `+(a|b)` will not be considered a magic
-pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`
-then that is considered magical, unless `nobrace:true` is set in the
-options.
-
-## glob(pattern, [options], cb)
-
-* `pattern` `{String}` Pattern to be matched
-* `options` `{Object}`
-* `cb` `{Function}`
- * `err` `{Error | null}`
- * `matches` `{Array<String>}` filenames found matching the pattern
-
-Perform an asynchronous glob search.
-
-## glob.sync(pattern, [options])
-
-* `pattern` `{String}` Pattern to be matched
-* `options` `{Object}`
-* return: `{Array<String>}` filenames found matching the pattern
-
-Perform a synchronous glob search.
-
-## Class: glob.Glob
-
-Create a Glob object by instantiating the `glob.Glob` class.
-
-```javascript
-var Glob = require("glob").Glob
-var mg = new Glob(pattern, options, cb)
-```
-
-It's an EventEmitter, and starts walking the filesystem to find matches
-immediately.
-
-### new glob.Glob(pattern, [options], [cb])
-
-* `pattern` `{String}` pattern to search for
-* `options` `{Object}`
-* `cb` `{Function}` Called when an error occurs, or matches are found
- * `err` `{Error | null}`
- * `matches` `{Array<String>}` filenames found matching the pattern
-
-Note that if the `sync` flag is set in the options, then matches will
-be immediately available on the `g.found` member.
-
-### Properties
-
-* `minimatch` The minimatch object that the glob uses.
-* `options` The options object passed in.
-* `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.
-* `cache` Convenience object. Each field has the following possible
- values:
- * `false` - Path does not exist
- * `true` - Path exists
- * `'FILE'` - Path exists, and is not a directory
- * `'DIR'` - Path exists, and is a directory
- * `[file, entries, ...]` - Path exists, is a directory, and the
- array value is the results of `fs.readdir`
-* `statCache` Cache of `fs.stat` results, to prevent statting the same
- path multiple times.
-* `symlinks` A record of which paths are symbolic links, which is
- relevant in resolving `**` patterns.
-* `realpathCache` An optional object which is passed to `fs.realpath`
- to minimize unnecessary syscalls. It is stored on the instantiated
- Glob object, and may be re-used.
-
-### Events
-
-* `end` When the matching is finished, this is emitted with all the
- matches found. If the `nonull` option is set, and no match was found,
- then the `matches` list contains the original pattern. The matches
- are sorted, unless the `nosort` flag is set.
-* `match` Every time a match is found, this is emitted with the specific
- thing that matched. It is not deduplicated or resolved to a realpath.
-* `error` Emitted when an unexpected error is encountered, or whenever
- any fs error occurs if `options.strict` is set.
-* `abort` When `abort()` is called, this event is raised.
-
-### Methods
-
-* `pause` Temporarily stop the search
-* `resume` Resume the search
-* `abort` Stop the search forever
-
-### Options
-
-All the options that can be passed to Minimatch can also be passed to
-Glob to change pattern matching behavior. Also, some have been added,
-or have glob-specific ramifications.
-
-All options are false by default, unless otherwise noted.
-
-All options are added to the Glob object, as well.
-
-If you are running many `glob` operations, you can pass a Glob object
-as the `options` argument to a subsequent operation to shortcut some
-`stat` and `readdir` calls. At the very least, you may pass in shared
-`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that
-parallel glob operations will be sped up by sharing information about
-the filesystem.
-
-* `cwd` The current working directory in which to search. Defaults
- to `process.cwd()`.
-* `root` The place where patterns starting with `/` will be mounted
- onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
- systems, and `C:\` or some such on Windows.)
-* `dot` Include `.dot` files in normal matches and `globstar` matches.
- Note that an explicit dot in a portion of the pattern will always
- match dot files.
-* `nomount` By default, a pattern starting with a forward-slash will be
- "mounted" onto the root setting, so that a valid filesystem path is
- returned. Set this flag to disable that behavior.
-* `mark` Add a `/` character to directory matches. Note that this
- requires additional stat calls.
-* `nosort` Don't sort the results.
-* `stat` Set to true to stat *all* results. This reduces performance
- somewhat, and is completely unnecessary, unless `readdir` is presumed
- to be an untrustworthy indicator of file existence.
-* `silent` When an unusual error is encountered when attempting to
- read a directory, a warning will be printed to stderr. Set the
- `silent` option to true to suppress these warnings.
-* `strict` When an unusual error is encountered when attempting to
- read a directory, the process will just continue on in search of
- other matches. Set the `strict` option to raise an error in these
- cases.
-* `cache` See `cache` property above. Pass in a previously generated
- cache object to save some fs calls.
-* `statCache` A cache of results of filesystem information, to prevent
- unnecessary stat calls. While it should not normally be necessary
- to set this, you may pass the statCache from one glob() call to the
- options object of another, if you know that the filesystem will not
- change between calls. (See "Race Conditions" below.)
-* `symlinks` A cache of known symbolic links. You may pass in a
- previously generated `symlinks` object to save `lstat` calls when
- resolving `**` matches.
-* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead.
-* `nounique` In some cases, brace-expanded patterns can result in the
- same file showing up multiple times in the result set. By default,
- this implementation prevents duplicates in the result set. Set this
- flag to disable that behavior.
-* `nonull` Set to never return an empty set, instead returning a set
- containing the pattern itself. This is the default in glob(3).
-* `debug` Set to enable debug logging in minimatch and glob.
-* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets.
-* `noglobstar` Do not match `**` against multiple filenames. (Ie,
- treat it as a normal `*` instead.)
-* `noext` Do not match `+(a|b)` "extglob" patterns.
-* `nocase` Perform a case-insensitive match. Note: on
- case-insensitive filesystems, non-magic patterns will match by
- default, since `stat` and `readdir` will not raise errors.
-* `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.
-* `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 glob patterns to exclude matches.
- Note: `ignore` patterns are *always* in `dot:true` mode, regardless
- of any other settings.
-* `follow` Follow symlinked directories when expanding `**` patterns.
- Note that this can result in a lot of duplicate references in the
- presence of cyclic links.
-* `realpath` Set to true to call `fs.realpath` on all of the results.
- 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)
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between node-glob and other
-implementations, and are intentional.
-
-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
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-Note that symlinked directories are not crawled as part of a `**`,
-though their contents may match against subsequent portions of the
-pattern. This prevents infinite loops and duplicates and the like.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then glob returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`glob.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.
-
-### Comments and Negation
-
-Previously, this module let you mark a pattern as a "comment" if it
-started with a `#` character, or a "negated" pattern if it started
-with a `!` character.
-
-These options were deprecated in version 5, and removed in version 6.
-
-To specify things that should not match, use the `ignore` option.
-
-## Windows
-
-**Please only use forward-slashes in glob expressions.**
-
-Though windows uses either `/` or `\` as its path separator, only `/`
-characters are used by this glob implementation. You must use
-forward-slashes **only** in glob expressions. Back-slashes will always
-be interpreted as escape characters, not path separators.
-
-Results from absolute patterns such as `/foo/*` are mounted onto the
-root setting using `path.join`. On windows, this will by default result
-in `/foo/*` matching `C:\foo\bar.txt`.
-
-## Race Conditions
-
-Glob searching, by its very nature, is susceptible to race conditions,
-since it relies on directory walking and such.
-
-As a result, it is possible that a file that exists when glob looks for
-it may have been deleted or modified by the time it returns the result.
-
-As part of its internal implementation, this program caches all stat
-and readdir calls that it makes, in order to cut down on system
-overhead. However, this also makes it even more susceptible to races,
-especially if the cache or statCache objects are reused between glob
-calls.
-
-Users are thus advised not to use a glob result as a guarantee of
-filesystem state in the face of rapid changes. For the vast majority
-of operations, this is never a problem.
-
-## Contributing
-
-Any change to behavior (including bugfixes) must come with a test.
-
-Patches that fail tests or reduce performance will be rejected.
-
-```
-# to run tests
-npm test
-
-# to re-generate test fixtures
-npm run test-regen
-
-# to benchmark against bash/zsh
-npm run bench
-
-# to profile javascript
-npm run prof
-```
diff --git a/node_modules/glob/glob.js b/node_modules/glob/glob.js
index 4dba04ade..02d15b755 100644
--- a/node_modules/glob/glob.js
+++ b/node_modules/glob/glob.js
@@ -41,6 +41,7 @@
module.exports = glob
var fs = require('fs')
+var rp = require('fs.realpath')
var minimatch = require('minimatch')
var Minimatch = minimatch.Minimatch
var inherits = require('inherits')
@@ -232,7 +233,7 @@ Glob.prototype._realpathSet = function (index, cb) {
// one or more of the links in the realpath couldn't be
// resolved. just return the abs value in that case.
p = self._makeAbs(p)
- fs.realpath(p, self.realpathCache, function (er, real) {
+ rp.realpath(p, self.realpathCache, function (er, real) {
if (!er)
set[real] = true
else if (er.syscall === 'stat')
diff --git a/node_modules/glob/node_modules/fs.realpath/LICENSE b/node_modules/glob/node_modules/fs.realpath/LICENSE
new file mode 100644
index 000000000..5bd884c25
--- /dev/null
+++ b/node_modules/glob/node_modules/fs.realpath/LICENSE
@@ -0,0 +1,43 @@
+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.
+
+----
+
+This library bundles a version of the `fs.realpath` and `fs.realpathSync`
+methods from Node.js v0.10 under the terms of the Node.js MIT license.
+
+Node's license follows, also included at the header of `old.js` which contains
+the licensed code:
+
+ Copyright Joyent, Inc. and other Node contributors.
+
+ 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/node_modules/fs.realpath/README.md b/node_modules/glob/node_modules/fs.realpath/README.md
new file mode 100644
index 000000000..a42ceac62
--- /dev/null
+++ b/node_modules/glob/node_modules/fs.realpath/README.md
@@ -0,0 +1,33 @@
+# fs.realpath
+
+A backwards-compatible fs.realpath for Node v6 and above
+
+In Node v6, the JavaScript implementation of fs.realpath was replaced
+with a faster (but less resilient) native implementation. That raises
+new and platform-specific errors and cannot handle long or excessively
+symlink-looping paths.
+
+This module handles those cases by detecting the new errors and
+falling back to the JavaScript implementation. On versions of Node
+prior to v6, it has no effect.
+
+## USAGE
+
+```js
+var rp = require('fs.realpath')
+
+// async version
+rp.realpath(someLongAndLoopingPath, function (er, real) {
+ // the ELOOP was handled, but it was a bit slower
+})
+
+// sync version
+var real = rp.realpathSync(someLongAndLoopingPath)
+
+// monkeypatch at your own risk!
+// This replaces the fs.realpath/fs.realpathSync builtins
+rp.monkeypatch()
+
+// un-do the monkeypatching
+rp.unmonkeypatch()
+```
diff --git a/node_modules/glob/node_modules/fs.realpath/index.js b/node_modules/glob/node_modules/fs.realpath/index.js
new file mode 100644
index 000000000..b09c7c7e6
--- /dev/null
+++ b/node_modules/glob/node_modules/fs.realpath/index.js
@@ -0,0 +1,66 @@
+module.exports = realpath
+realpath.realpath = realpath
+realpath.sync = realpathSync
+realpath.realpathSync = realpathSync
+realpath.monkeypatch = monkeypatch
+realpath.unmonkeypatch = unmonkeypatch
+
+var fs = require('fs')
+var origRealpath = fs.realpath
+var origRealpathSync = fs.realpathSync
+
+var version = process.version
+var ok = /^v[0-5]\./.test(version)
+var old = require('./old.js')
+
+function newError (er) {
+ return er && er.syscall === 'realpath' && (
+ er.code === 'ELOOP' ||
+ er.code === 'ENOMEM' ||
+ er.code === 'ENAMETOOLONG'
+ )
+}
+
+function realpath (p, cache, cb) {
+ if (ok) {
+ return origRealpath(p, cache, cb)
+ }
+
+ if (typeof cache === 'function') {
+ cb = cache
+ cache = null
+ }
+ origRealpath(p, cache, function (er, result) {
+ if (newError(er)) {
+ old.realpath(p, cache, cb)
+ } else {
+ cb(er, result)
+ }
+ })
+}
+
+function realpathSync (p, cache) {
+ if (ok) {
+ return origRealpathSync(p, cache)
+ }
+
+ try {
+ return origRealpathSync(p, cache)
+ } catch (er) {
+ if (newError(er)) {
+ return old.realpathSync(p, cache)
+ } else {
+ throw er
+ }
+ }
+}
+
+function monkeypatch () {
+ fs.realpath = realpath
+ fs.realpathSync = realpathSync
+}
+
+function unmonkeypatch () {
+ fs.realpath = origRealpath
+ fs.realpathSync = origRealpathSync
+}
diff --git a/node_modules/glob/node_modules/fs.realpath/old.js b/node_modules/glob/node_modules/fs.realpath/old.js
new file mode 100644
index 000000000..b40305e73
--- /dev/null
+++ b/node_modules/glob/node_modules/fs.realpath/old.js
@@ -0,0 +1,303 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// 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.
+
+var pathModule = require('path');
+var isWindows = process.platform === 'win32';
+var fs = require('fs');
+
+// JavaScript implementation of realpath, ported from node pre-v6
+
+var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);
+
+function rethrow() {
+ // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and
+ // is fairly slow to generate.
+ var callback;
+ if (DEBUG) {
+ var backtrace = new Error;
+ callback = debugCallback;
+ } else
+ callback = missingCallback;
+
+ return callback;
+
+ function debugCallback(err) {
+ if (err) {
+ backtrace.message = err.message;
+ err = backtrace;
+ missingCallback(err);
+ }
+ }
+
+ function missingCallback(err) {
+ if (err) {
+ if (process.throwDeprecation)
+ throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs
+ else if (!process.noDeprecation) {
+ var msg = 'fs: missing callback ' + (err.stack || err.message);
+ if (process.traceDeprecation)
+ console.trace(msg);
+ else
+ console.error(msg);
+ }
+ }
+ }
+}
+
+function maybeCallback(cb) {
+ return typeof cb === 'function' ? cb : rethrow();
+}
+
+var normalize = pathModule.normalize;
+
+// Regexp that finds the next partion of a (partial) path
+// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']
+if (isWindows) {
+ var nextPartRe = /(.*?)(?:[\/\\]+|$)/g;
+} else {
+ var nextPartRe = /(.*?)(?:[\/]+|$)/g;
+}
+
+// Regex to find the device root, including trailing slash. E.g. 'c:\\'.
+if (isWindows) {
+ var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;
+} else {
+ var splitRootRe = /^[\/]*/;
+}
+
+exports.realpathSync = function realpathSync(p, cache) {
+ // make p is absolute
+ p = pathModule.resolve(p);
+
+ if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
+ return cache[p];
+ }
+
+ var original = p,
+ seenLinks = {},
+ knownHard = {};
+
+ // current character position in p
+ var pos;
+ // the partial path so far, including a trailing slash if any
+ var current;
+ // the partial path without a trailing slash (except when pointing at a root)
+ var base;
+ // the partial path scanned in the previous round, with slash
+ var previous;
+
+ start();
+
+ function start() {
+ // Skip over roots
+ var m = splitRootRe.exec(p);
+ pos = m[0].length;
+ current = m[0];
+ base = m[0];
+ previous = '';
+
+ // On windows, check that the root exists. On unix there is no need.
+ if (isWindows && !knownHard[base]) {
+ fs.lstatSync(base);
+ knownHard[base] = true;
+ }
+ }
+
+ // walk down the path, swapping out linked pathparts for their real
+ // values
+ // NB: p.length changes.
+ while (pos < p.length) {
+ // find the next part
+ nextPartRe.lastIndex = pos;
+ var result = nextPartRe.exec(p);
+ previous = current;
+ current += result[0];
+ base = previous + result[1];
+ pos = nextPartRe.lastIndex;
+
+ // continue if not a symlink
+ if (knownHard[base] || (cache && cache[base] === base)) {
+ continue;
+ }
+
+ var resolvedLink;
+ if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
+ // some known symbolic link. no need to stat again.
+ resolvedLink = cache[base];
+ } else {
+ var stat = fs.lstatSync(base);
+ if (!stat.isSymbolicLink()) {
+ knownHard[base] = true;
+ if (cache) cache[base] = base;
+ continue;
+ }
+
+ // read the link if it wasn't read before
+ // dev/ino always return 0 on windows, so skip the check.
+ var linkTarget = null;
+ if (!isWindows) {
+ var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
+ if (seenLinks.hasOwnProperty(id)) {
+ linkTarget = seenLinks[id];
+ }
+ }
+ if (linkTarget === null) {
+ fs.statSync(base);
+ linkTarget = fs.readlinkSync(base);
+ }
+ resolvedLink = pathModule.resolve(previous, linkTarget);
+ // track this, if given a cache.
+ if (cache) cache[base] = resolvedLink;
+ if (!isWindows) seenLinks[id] = linkTarget;
+ }
+
+ // resolve the link, then start over
+ p = pathModule.resolve(resolvedLink, p.slice(pos));
+ start();
+ }
+
+ if (cache) cache[original] = p;
+
+ return p;
+};
+
+
+exports.realpath = function realpath(p, cache, cb) {
+ if (typeof cb !== 'function') {
+ cb = maybeCallback(cache);
+ cache = null;
+ }
+
+ // make p is absolute
+ p = pathModule.resolve(p);
+
+ if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
+ return process.nextTick(cb.bind(null, null, cache[p]));
+ }
+
+ var original = p,
+ seenLinks = {},
+ knownHard = {};
+
+ // current character position in p
+ var pos;
+ // the partial path so far, including a trailing slash if any
+ var current;
+ // the partial path without a trailing slash (except when pointing at a root)
+ var base;
+ // the partial path scanned in the previous round, with slash
+ var previous;
+
+ start();
+
+ function start() {
+ // Skip over roots
+ var m = splitRootRe.exec(p);
+ pos = m[0].length;
+ current = m[0];
+ base = m[0];
+ previous = '';
+
+ // On windows, check that the root exists. On unix there is no need.
+ if (isWindows && !knownHard[base]) {
+ fs.lstat(base, function(err) {
+ if (err) return cb(err);
+ knownHard[base] = true;
+ LOOP();
+ });
+ } else {
+ process.nextTick(LOOP);
+ }
+ }
+
+ // walk down the path, swapping out linked pathparts for their real
+ // values
+ function LOOP() {
+ // stop if scanned past end of path
+ if (pos >= p.length) {
+ if (cache) cache[original] = p;
+ return cb(null, p);
+ }
+
+ // find the next part
+ nextPartRe.lastIndex = pos;
+ var result = nextPartRe.exec(p);
+ previous = current;
+ current += result[0];
+ base = previous + result[1];
+ pos = nextPartRe.lastIndex;
+
+ // continue if not a symlink
+ if (knownHard[base] || (cache && cache[base] === base)) {
+ return process.nextTick(LOOP);
+ }
+
+ if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
+ // known symbolic link. no need to stat again.
+ return gotResolvedLink(cache[base]);
+ }
+
+ return fs.lstat(base, gotStat);
+ }
+
+ function gotStat(err, stat) {
+ if (err) return cb(err);
+
+ // if not a symlink, skip to the next path part
+ if (!stat.isSymbolicLink()) {
+ knownHard[base] = true;
+ if (cache) cache[base] = base;
+ return process.nextTick(LOOP);
+ }
+
+ // stat & read the link if not read before
+ // call gotTarget as soon as the link target is known
+ // dev/ino always return 0 on windows, so skip the check.
+ if (!isWindows) {
+ var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
+ if (seenLinks.hasOwnProperty(id)) {
+ return gotTarget(null, seenLinks[id], base);
+ }
+ }
+ fs.stat(base, function(err) {
+ if (err) return cb(err);
+
+ fs.readlink(base, function(err, target) {
+ if (!isWindows) seenLinks[id] = target;
+ gotTarget(err, target);
+ });
+ });
+ }
+
+ function gotTarget(err, target, base) {
+ if (err) return cb(err);
+
+ var resolvedLink = pathModule.resolve(previous, target);
+ if (cache) cache[base] = resolvedLink;
+ gotResolvedLink(resolvedLink);
+ }
+
+ function gotResolvedLink(resolvedLink) {
+ // resolve the link, then start over
+ p = pathModule.resolve(resolvedLink, p.slice(pos));
+ start();
+ }
+};
diff --git a/node_modules/glob/node_modules/fs.realpath/package.json b/node_modules/glob/node_modules/fs.realpath/package.json
new file mode 100644
index 000000000..b235390a5
--- /dev/null
+++ b/node_modules/glob/node_modules/fs.realpath/package.json
@@ -0,0 +1,93 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "fs.realpath@^1.0.0",
+ "scope": null,
+ "name": "fs.realpath",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/glob"
+ ]
+ ],
+ "_from": "fs.realpath@>=1.0.0 <2.0.0",
+ "_id": "fs.realpath@1.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/glob/fs.realpath",
+ "_nodeVersion": "4.4.4",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/fs.realpath-1.0.0.tgz_1466015941059_0.3332864767871797"
+ },
+ "_npmUser": {
+ "name": "isaacs",
+ "email": "i@izs.me"
+ },
+ "_npmVersion": "3.9.1",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "fs.realpath@^1.0.0",
+ "scope": null,
+ "name": "fs.realpath",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/glob"
+ ],
+ "_resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "_shasum": "1504ad2523158caa40db4a2787cb01411994ea4f",
+ "_shrinkwrap": null,
+ "_spec": "fs.realpath@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/glob",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/fs.realpath/issues"
+ },
+ "dependencies": {},
+ "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "1504ad2523158caa40db4a2787cb01411994ea4f",
+ "tarball": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ },
+ "files": [
+ "old.js",
+ "index.js"
+ ],
+ "gitHead": "03e7c884431fe185dfebbc9b771aeca339c1807a",
+ "homepage": "https://github.com/isaacs/fs.realpath#readme",
+ "keywords": [
+ "realpath",
+ "fs",
+ "polyfill"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "name": "isaacs",
+ "email": "i@izs.me"
+ }
+ ],
+ "name": "fs.realpath",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/fs.realpath.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js --cov"
+ },
+ "version": "1.0.0"
+}
diff --git a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore
deleted file mode 100644
index 353546af2..000000000
--- a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-test
-.gitignore
-.travis.yml
diff --git a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js
deleted file mode 100644
index 60ecfc74d..000000000
--- a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var expand = require('./');
-
-console.log(expand('http://any.org/archive{1996..1999}/vol{1..4}/part{a,b,c}.html'));
-console.log(expand('http://www.numericals.com/file{1..100..10}.txt'));
-console.log(expand('http://www.letters.com/file{a..z..2}.txt'));
-console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}'));
-console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}'));
-
diff --git a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
index fd4f2b066..ae5d8c36a 100644
--- a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
+++ b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
@@ -1,2 +1,5 @@
-node_modules
-.DS_Store
+test
+.gitignore
+.travis.yml
+Makefile
+example.js
diff --git a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml
deleted file mode 100644
index 6e5919de3..000000000
--- a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-language: node_js
-node_js:
- - "0.10"
diff --git a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile
deleted file mode 100644
index fa5da71a6..000000000
--- a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-
-test:
- @node_modules/.bin/tape test/*.js
-
-.PHONY: test
-
diff --git a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
index 421f3aa5f..d6880b2f3 100644
--- a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
+++ b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
@@ -1,6 +1,6 @@
# balanced-match
-Match balanced string pairs, like `{` and `}` or `<b>` and `</b>`.
+Match balanced string pairs, like `{` and `}` or `<b>` and `</b>`. Supports regular expressions as well!
[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match)
[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match)
@@ -16,6 +16,7 @@ var balanced = require('balanced-match');
console.log(balanced('{', '}', 'pre{in{nested}}post'));
console.log(balanced('{', '}', 'pre{first}between{second}post'));
+console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post'));
```
The matches are:
@@ -28,6 +29,7 @@ $ node example.js
pre: 'pre',
body: 'first',
post: 'between{second}post' }
+{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' }
```
## API
diff --git a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js
deleted file mode 100644
index c02ad348e..000000000
--- a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var balanced = require('./');
-
-console.log(balanced('{', '}', 'pre{in{nested}}post'));
-console.log(balanced('{', '}', 'pre{first}between{second}post'));
-
diff --git a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
index 75f3d71cb..4670f7f79 100644
--- a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
+++ b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
@@ -1,5 +1,8 @@
module.exports = balanced;
function balanced(a, b, str) {
+ if (a instanceof RegExp) a = maybeMatch(a, str);
+ if (b instanceof RegExp) b = maybeMatch(b, str);
+
var r = range(a, b, str);
return r && {
@@ -11,6 +14,11 @@ function balanced(a, b, str) {
};
}
+function maybeMatch(reg, str) {
+ var m = str.match(reg);
+ return m ? m[0] : null;
+}
+
balanced.range = range;
function range(a, b, str) {
var begs, beg, left, right, result;
diff --git a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
index 5de119ba5..208e61972 100644
--- a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
+++ b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
@@ -1,41 +1,52 @@
{
"_args": [
[
- "balanced-match@^0.3.0",
+ {
+ "raw": "balanced-match@^0.4.1",
+ "scope": null,
+ "name": "balanced-match",
+ "rawSpec": "^0.4.1",
+ "spec": ">=0.4.1 <0.5.0",
+ "type": "range"
+ },
"/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion"
]
],
- "_from": "balanced-match@>=0.3.0 <0.4.0",
- "_id": "balanced-match@0.3.0",
+ "_from": "balanced-match@>=0.4.1 <0.5.0",
+ "_id": "balanced-match@0.4.1",
"_inCache": true,
"_installable": true,
"_location": "/glob/minimatch/brace-expansion/balanced-match",
- "_nodeVersion": "4.2.1",
+ "_nodeVersion": "6.0.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/balanced-match-0.4.1.tgz_1462129663650_0.39764496590942144"
+ },
"_npmUser": {
- "email": "julian@juliangruber.com",
- "name": "juliangruber"
+ "name": "juliangruber",
+ "email": "julian@juliangruber.com"
},
- "_npmVersion": "2.14.7",
+ "_npmVersion": "3.8.6",
"_phantomChildren": {},
"_requested": {
- "name": "balanced-match",
- "raw": "balanced-match@^0.3.0",
- "rawSpec": "^0.3.0",
+ "raw": "balanced-match@^0.4.1",
"scope": null,
- "spec": ">=0.3.0 <0.4.0",
+ "name": "balanced-match",
+ "rawSpec": "^0.4.1",
+ "spec": ">=0.4.1 <0.5.0",
"type": "range"
},
"_requiredBy": [
"/glob/minimatch/brace-expansion"
],
- "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz",
- "_shasum": "a91cdd1ebef1a86659e70ff4def01625fc2d6756",
+ "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz",
+ "_shasum": "19053e2e0748eadb379da6c09d455cf5e1039335",
"_shrinkwrap": null,
- "_spec": "balanced-match@^0.3.0",
+ "_spec": "balanced-match@^0.4.1",
"_where": "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion",
"author": {
- "email": "mail@juliangruber.com",
"name": "Julian Gruber",
+ "email": "mail@juliangruber.com",
"url": "http://juliangruber.com"
},
"bugs": {
@@ -44,21 +55,21 @@
"dependencies": {},
"description": "Match balanced character pairs, like \"{\" and \"}\"",
"devDependencies": {
- "tape": "~4.2.2"
+ "tape": "~4.5.0"
},
"directories": {},
"dist": {
- "shasum": "a91cdd1ebef1a86659e70ff4def01625fc2d6756",
- "tarball": "http://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz"
+ "shasum": "19053e2e0748eadb379da6c09d455cf5e1039335",
+ "tarball": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz"
},
- "gitHead": "a7114b0986554787e90b7ac595a043ca75ea77e5",
+ "gitHead": "7004b289baaaab6a832f4901735e29d37cc2a863",
"homepage": "https://github.com/juliangruber/balanced-match",
"keywords": [
- "balanced",
"match",
- "parse",
"regexp",
- "test"
+ "test",
+ "balanced",
+ "parse"
],
"license": "MIT",
"main": "index.js",
@@ -79,20 +90,20 @@
"test": "make test"
},
"testling": {
+ "files": "test/*.js",
"browsers": [
- "android-browser/4.2..latest",
- "chrome/25..latest",
- "chrome/canary",
+ "ie/8..latest",
"firefox/20..latest",
"firefox/nightly",
- "ie/8..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
+ "chrome/25..latest",
+ "chrome/canary",
"opera/12..latest",
"opera/next",
- "safari/5.1..latest"
- ],
- "files": "test/*.js"
+ "safari/5.1..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2..latest"
+ ]
},
- "version": "0.3.0"
+ "version": "0.4.1"
}
diff --git a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js
deleted file mode 100644
index f5e98e3f2..000000000
--- a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js
+++ /dev/null
@@ -1,84 +0,0 @@
-var test = require('tape');
-var balanced = require('..');
-
-test('balanced', function(t) {
- t.deepEqual(balanced('{', '}', 'pre{in{nest}}post'), {
- start: 3,
- end: 12,
- pre: 'pre',
- body: 'in{nest}',
- post: 'post'
- });
- t.deepEqual(balanced('{', '}', '{{{{{{{{{in}post'), {
- start: 8,
- end: 11,
- pre: '{{{{{{{{',
- body: 'in',
- post: 'post'
- });
- t.deepEqual(balanced('{', '}', 'pre{body{in}post'), {
- start: 8,
- end: 11,
- pre: 'pre{body',
- body: 'in',
- post: 'post'
- });
- t.deepEqual(balanced('{', '}', 'pre}{in{nest}}post'), {
- start: 4,
- end: 13,
- pre: 'pre}',
- body: 'in{nest}',
- post: 'post'
- });
- t.deepEqual(balanced('{', '}', 'pre{body}between{body2}post'), {
- start: 3,
- end: 8,
- pre: 'pre',
- body: 'body',
- post: 'between{body2}post'
- });
- t.notOk(balanced('{', '}', 'nope'), 'should be notOk');
- t.deepEqual(balanced('<b>', '</b>', 'pre<b>in<b>nest</b></b>post'), {
- start: 3,
- end: 19,
- pre: 'pre',
- body: 'in<b>nest</b>',
- post: 'post'
- });
- t.deepEqual(balanced('<b>', '</b>', 'pre</b><b>in<b>nest</b></b>post'), {
- start: 7,
- end: 23,
- pre: 'pre</b>',
- body: 'in<b>nest</b>',
- post: 'post'
- });
- t.deepEqual(balanced('{{', '}}', 'pre{{{in}}}post'), {
- start: 3,
- end: 9,
- pre: 'pre',
- body: '{in}',
- post: 'post'
- });
- t.deepEqual(balanced('{{{', '}}', 'pre{{{in}}}post'), {
- start: 3,
- end: 8,
- pre: 'pre',
- body: 'in',
- post: '}post'
- });
- t.deepEqual(balanced('{', '}', 'pre{{first}in{second}post'), {
- start: 4,
- end: 10,
- pre: 'pre{',
- body: 'first',
- post: 'in{second}post'
- });
- t.deepEqual(balanced('<?', '?>', 'pre<?>post'), {
- start: 3,
- end: 4,
- pre: 'pre',
- body: '',
- post: 'post'
- });
- t.end();
-});
diff --git a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
index 2917f0eac..3ffc8da5c 100644
--- a/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
+++ b/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
@@ -1,76 +1,83 @@
{
"_args": [
[
- "brace-expansion@^1.0.0",
+ {
+ "raw": "brace-expansion@^1.0.0",
+ "scope": null,
+ "name": "brace-expansion",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
"/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch"
]
],
"_from": "brace-expansion@>=1.0.0 <2.0.0",
- "_id": "brace-expansion@1.1.3",
+ "_id": "brace-expansion@1.1.5",
"_inCache": true,
"_installable": true,
"_location": "/glob/minimatch/brace-expansion",
- "_nodeVersion": "5.5.0",
+ "_nodeVersion": "4.4.5",
"_npmOperationalInternal": {
- "host": "packages-6-west.internal.npmjs.com",
- "tmp": "tmp/brace-expansion-1.1.3.tgz_1455216688668_0.948847763473168"
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/brace-expansion-1.1.5.tgz_1465989660138_0.34528115345165133"
},
"_npmUser": {
- "email": "julian@juliangruber.com",
- "name": "juliangruber"
+ "name": "juliangruber",
+ "email": "julian@juliangruber.com"
},
- "_npmVersion": "3.3.12",
+ "_npmVersion": "2.15.5",
"_phantomChildren": {},
"_requested": {
- "name": "brace-expansion",
"raw": "brace-expansion@^1.0.0",
- "rawSpec": "^1.0.0",
"scope": null,
+ "name": "brace-expansion",
+ "rawSpec": "^1.0.0",
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/glob/minimatch"
],
- "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz",
- "_shasum": "46bff50115d47fc9ab89854abb87d98078a10991",
+ "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.5.tgz",
+ "_shasum": "f5b4ad574e2cb7ccc1eb83e6fe79b8ecadf7a526",
"_shrinkwrap": null,
"_spec": "brace-expansion@^1.0.0",
"_where": "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch",
"author": {
- "email": "mail@juliangruber.com",
"name": "Julian Gruber",
+ "email": "mail@juliangruber.com",
"url": "http://juliangruber.com"
},
"bugs": {
"url": "https://github.com/juliangruber/brace-expansion/issues"
},
"dependencies": {
- "balanced-match": "^0.3.0",
+ "balanced-match": "^0.4.1",
"concat-map": "0.0.1"
},
"description": "Brace expansion as known from sh/bash",
"devDependencies": {
- "tape": "4.4.0"
+ "tape": "4.5.1"
},
"directories": {},
"dist": {
- "shasum": "46bff50115d47fc9ab89854abb87d98078a10991",
- "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz"
+ "shasum": "f5b4ad574e2cb7ccc1eb83e6fe79b8ecadf7a526",
+ "tarball": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.5.tgz"
},
- "gitHead": "f0da1bb668e655f67b6b2d660c6e1c19e2a6f231",
+ "gitHead": "ff31acab078f1bb696ac4c55ca56ea24e6495fb6",
"homepage": "https://github.com/juliangruber/brace-expansion",
"keywords": [],
"license": "MIT",
"main": "index.js",
"maintainers": [
{
- "email": "julian@juliangruber.com",
- "name": "juliangruber"
+ "name": "juliangruber",
+ "email": "julian@juliangruber.com"
},
{
- "email": "isaacs@npmjs.com",
- "name": "isaacs"
+ "name": "isaacs",
+ "email": "isaacs@npmjs.com"
}
],
"name": "brace-expansion",
@@ -85,6 +92,7 @@
"test": "tape test/*.js"
},
"testling": {
+ "files": "test/*.js",
"browsers": [
"ie/8..latest",
"firefox/20..latest",
@@ -97,8 +105,7 @@
"ipad/6.0..latest",
"iphone/6.0..latest",
"android-browser/4.2..latest"
- ],
- "files": "test/*.js"
+ ]
},
- "version": "1.1.3"
+ "version": "1.1.5"
}
diff --git a/node_modules/glob/package.json b/node_modules/glob/package.json
index cf191d217..253686f9b 100644
--- a/node_modules/glob/package.json
+++ b/node_modules/glob/package.json
@@ -1,53 +1,62 @@
{
"_args": [
[
- "glob@7.0.3",
+ {
+ "raw": "glob@~7.0.3",
+ "scope": null,
+ "name": "glob",
+ "rawSpec": "~7.0.3",
+ "spec": ">=7.0.3 <7.1.0",
+ "type": "range"
+ },
"/Users/rebecca/code/npm"
]
],
- "_from": "glob@7.0.3",
- "_id": "glob@7.0.3",
+ "_from": "glob@>=7.0.3 <7.1.0",
+ "_id": "glob@7.0.4",
"_inCache": true,
"_installable": true,
"_location": "/glob",
- "_nodeVersion": "5.6.0",
+ "_nodeVersion": "6.2.1",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/glob-7.0.3.tgz_1457166529288_0.7840580905321985"
+ "tmp": "tmp/glob-7.0.4.tgz_1466098181857_0.6043217403348535"
},
"_npmUser": {
- "email": "i@izs.me",
- "name": "isaacs"
+ "name": "isaacs",
+ "email": "i@izs.me"
},
- "_npmVersion": "3.7.3",
+ "_npmVersion": "3.9.3",
"_phantomChildren": {},
"_requested": {
- "name": "glob",
- "raw": "glob@7.0.3",
- "rawSpec": "7.0.3",
+ "raw": "glob@~7.0.3",
"scope": null,
- "spec": "7.0.3",
- "type": "version"
+ "name": "glob",
+ "rawSpec": "~7.0.3",
+ "spec": ">=7.0.3 <7.1.0",
+ "type": "range"
},
"_requiredBy": [
+ "#USER",
"/",
"/rimraf",
"/tap"
],
- "_resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz",
- "_shasum": "0aa235931a4a96ac13d60ffac2fb877bd6ed4f58",
+ "_resolved": "https://registry.npmjs.org/glob/-/glob-7.0.4.tgz",
+ "_shasum": "3b44afa0943bdc31b2037b934791e2e084bcb7f6",
"_shrinkwrap": null,
- "_spec": "glob@7.0.3",
+ "_spec": "glob@~7.0.3",
"_where": "/Users/rebecca/code/npm",
"author": {
- "email": "i@izs.me",
"name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
"url": "http://blog.izs.me/"
},
"bugs": {
"url": "https://github.com/isaacs/node-glob/issues"
},
"dependencies": {
+ "fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "2 || 3",
@@ -63,8 +72,8 @@
},
"directories": {},
"dist": {
- "shasum": "0aa235931a4a96ac13d60ffac2fb877bd6ed4f58",
- "tarball": "http://registry.npmjs.org/glob/-/glob-7.0.3.tgz"
+ "shasum": "3b44afa0943bdc31b2037b934791e2e084bcb7f6",
+ "tarball": "https://registry.npmjs.org/glob/-/glob-7.0.4.tgz"
},
"engines": {
"node": "*"
@@ -74,14 +83,14 @@
"sync.js",
"common.js"
],
- "gitHead": "2fc2278ab857c7df117213a2fb431de090be6353",
+ "gitHead": "3f883c43fec4f8046cbea9497add3b8ba4ef0a37",
"homepage": "https://github.com/isaacs/node-glob#readme",
"license": "ISC",
"main": "glob.js",
"maintainers": [
{
- "email": "i@izs.me",
- "name": "isaacs"
+ "name": "isaacs",
+ "email": "i@izs.me"
}
],
"name": "glob",
@@ -100,5 +109,5 @@
"test": "tap test/*.js --cov",
"test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js"
},
- "version": "7.0.3"
+ "version": "7.0.4"
}
diff --git a/node_modules/glob/sync.js b/node_modules/glob/sync.js
index 301577ab5..bba2dc6a0 100644
--- a/node_modules/glob/sync.js
+++ b/node_modules/glob/sync.js
@@ -2,6 +2,7 @@ module.exports = globSync
globSync.GlobSync = GlobSync
var fs = require('fs')
+var rp = require('fs.realpath')
var minimatch = require('minimatch')
var Minimatch = minimatch.Minimatch
var Glob = require('./glob.js').Glob
@@ -57,7 +58,7 @@ GlobSync.prototype._finish = function () {
for (var p in matchset) {
try {
p = self._makeAbs(p)
- var real = fs.realpathSync(p, self.realpathCache)
+ var real = rp.realpathSync(p, self.realpathCache)
set[real] = true
} catch (er) {
if (er.syscall === 'stat')