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-07 04:51:10 +0300
committerRebecca Turner <me@re-becca.org>2016-06-16 23:43:41 +0300
commit6789978ab0713f67928177a9109fed43953ccbda (patch)
treebd9dfcb9f059bef97b14e6802d98050ff953e2bf /node_modules/node-gyp
parent9b5b4dcc48ff4bff764545463a64b03dce9b0a99 (diff)
npmlog@3.1.2
Bring in the new npmlog that uses the updated gauge. PR-URL: https://github.com/npm/npm/pull/13075 Credit: @iarna
Diffstat (limited to 'node_modules/node-gyp')
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/LICENSE15
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/README.md195
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/log.js251
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/.npmignore1
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/History.md23
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/LICENSE24
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/README.md98
-rwxr-xr-xnode_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/beep/index.js16
-rwxr-xr-xnode_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/clear/index.js15
-rwxr-xr-xnode_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/cursorPosition.js32
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/progress/index.js87
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/lib/ansi.js405
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/lib/newlines.js71
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/package.json104
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore5
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md19
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE5
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/README.md194
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/index.js4
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore1
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md22
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License20
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile8
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md94
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js121
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json94
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js94
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/package.json100
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/lib/test-event.js29
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js57
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js96
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js51
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js11
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js107
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js35
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js30
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/.npmignore32
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/LICENSE13
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/README.md166
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/example.pngbin0 -> 19689 bytes
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE47
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js434
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/LICENSE22
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/index.js40
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/package.json104
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/LICENSE47
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/index.js153
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/package.json108
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE47
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js178
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json112
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json116
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE47
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js428
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/LICENSE22
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/index.js40
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/package.json115
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/LICENSE47
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/index.js153
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/package.json119
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE47
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js178
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json123
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json116
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE47
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js428
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/LICENSE22
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/index.js40
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/package.json115
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/LICENSE47
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/index.js153
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/package.json119
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE47
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md18
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js178
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json123
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json116
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/package.json96
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/progress-bar.js225
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/test/progress-bar.js176
-rw-r--r--node_modules/node-gyp/node_modules/npmlog/package.json108
92 files changed, 7844 insertions, 0 deletions
diff --git a/node_modules/node-gyp/node_modules/npmlog/LICENSE b/node_modules/node-gyp/node_modules/npmlog/LICENSE
new file mode 100644
index 000000000..19129e315
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/LICENSE
@@ -0,0 +1,15 @@
+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/node-gyp/node_modules/npmlog/README.md b/node_modules/node-gyp/node_modules/npmlog/README.md
new file mode 100644
index 000000000..a57cf429d
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/README.md
@@ -0,0 +1,195 @@
+# npmlog
+
+The logger util that npm uses.
+
+This logger is very basic. It does the logging for npm. It supports
+custom levels and colored output.
+
+By default, logs are written to stderr. If you want to send log messages
+to outputs other than streams, then you can change the `log.stream`
+member, or you can just listen to the events that it emits, and do
+whatever you want with them.
+
+# Basic Usage
+
+```
+var log = require('npmlog')
+
+// additional stuff ---------------------------+
+// message ----------+ |
+// prefix ----+ | |
+// level -+ | | |
+// v v v v
+ log.info('fyi', 'I have a kitty cat: %j', myKittyCat)
+```
+
+## log.level
+
+* {String}
+
+The level to display logs at. Any logs at or above this level will be
+displayed. The special level `silent` will prevent anything from being
+displayed ever.
+
+## log.record
+
+* {Array}
+
+An array of all the log messages that have been entered.
+
+## log.maxRecordSize
+
+* {Number}
+
+The maximum number of records to keep. If log.record gets bigger than
+10% over this value, then it is sliced down to 90% of this value.
+
+The reason for the 10% window is so that it doesn't have to resize a
+large array on every log entry.
+
+## log.prefixStyle
+
+* {Object}
+
+A style object that specifies how prefixes are styled. (See below)
+
+## log.headingStyle
+
+* {Object}
+
+A style object that specifies how the heading is styled. (See below)
+
+## log.heading
+
+* {String} Default: ""
+
+If set, a heading that is printed at the start of every line.
+
+## log.stream
+
+* {Stream} Default: `process.stderr`
+
+The stream where output is written.
+
+## log.enableColor()
+
+Force colors to be used on all messages, regardless of the output
+stream.
+
+## log.disableColor()
+
+Disable colors on all messages.
+
+## log.enableProgress()
+
+Enable the display of log activity spinner and progress bar
+
+## log.disableProgress()
+
+Disable the display of a progress bar
+
+## log.enableUnicode()
+
+Force the unicode theme to be used for the progress bar.
+
+## log.disableUnicode()
+
+Disable the use of unicode in the progress bar.
+
+## log.setGaugeTemplate(template)
+
+Overrides the default gauge template.
+
+## log.pause()
+
+Stop emitting messages to the stream, but do not drop them.
+
+## log.resume()
+
+Emit all buffered messages that were written while paused.
+
+## log.log(level, prefix, message, ...)
+
+* `level` {String} The level to emit the message at
+* `prefix` {String} A string prefix. Set to "" to skip.
+* `message...` Arguments to `util.format`
+
+Emit a log message at the specified level.
+
+## log\[level](prefix, message, ...)
+
+For example,
+
+* log.silly(prefix, message, ...)
+* log.verbose(prefix, message, ...)
+* log.info(prefix, message, ...)
+* log.http(prefix, message, ...)
+* log.warn(prefix, message, ...)
+* log.error(prefix, message, ...)
+
+Like `log.log(level, prefix, message, ...)`. In this way, each level is
+given a shorthand, so you can do `log.info(prefix, message)`.
+
+## log.addLevel(level, n, style, disp)
+
+* `level` {String} Level indicator
+* `n` {Number} The numeric level
+* `style` {Object} Object with fg, bg, inverse, etc.
+* `disp` {String} Optional replacement for `level` in the output.
+
+Sets up a new level with a shorthand function and so forth.
+
+Note that if the number is `Infinity`, then setting the level to that
+will cause all log messages to be suppressed. If the number is
+`-Infinity`, then the only way to show it is to enable all log messages.
+
+## log.newItem(name, todo, weight)
+
+* `name` {String} Optional; progress item name.
+* `todo` {Number} Optional; total amount of work to be done. Default 0.
+* `weight` {Number} Optional; the weight of this item relative to others. Default 1.
+
+This adds a new `are-we-there-yet` item tracker to the progress tracker. The
+object returned has the `log[level]` methods but is otherwise an
+`are-we-there-yet` `Tracker` object.
+
+## log.newStream(name, todo, weight)
+
+This adds a new `are-we-there-yet` stream tracker to the progress tracker. The
+object returned has the `log[level]` methods but is otherwise an
+`are-we-there-yet` `TrackerStream` object.
+
+## log.newGroup(name, weight)
+
+This adds a new `are-we-there-yet` tracker group to the progress tracker. The
+object returned has the `log[level]` methods but is otherwise an
+`are-we-there-yet` `TrackerGroup` object.
+
+# Events
+
+Events are all emitted with the message object.
+
+* `log` Emitted for all messages
+* `log.<level>` Emitted for all messages with the `<level>` level.
+* `<prefix>` Messages with prefixes also emit their prefix as an event.
+
+# Style Objects
+
+Style objects can have the following fields:
+
+* `fg` {String} Color for the foreground text
+* `bg` {String} Color for the background
+* `bold`, `inverse`, `underline` {Boolean} Set the associated property
+* `bell` {Boolean} Make a noise (This is pretty annoying, probably.)
+
+# Message Objects
+
+Every log event is emitted with a message object, and the `log.record`
+list contains all of them that have been created. They have the
+following fields:
+
+* `id` {Number}
+* `level` {String}
+* `prefix` {String}
+* `message` {String} Result of `util.format()`
+* `messageRaw` {Array} Arguments to `util.format()`
diff --git a/node_modules/node-gyp/node_modules/npmlog/log.js b/node_modules/node-gyp/node_modules/npmlog/log.js
new file mode 100644
index 000000000..8d781f173
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/log.js
@@ -0,0 +1,251 @@
+'use strict'
+var Progress = require('are-we-there-yet')
+var Gauge = require('gauge')
+var EE = require('events').EventEmitter
+var log = exports = module.exports = new EE
+var util = require('util')
+
+var ansi = require('ansi')
+log.cursor = ansi(process.stderr)
+log.stream = process.stderr
+
+// by default, let ansi decide based on tty-ness.
+var colorEnabled = undefined
+log.enableColor = function () {
+ colorEnabled = true
+ this.cursor.enabled = true
+}
+log.disableColor = function () {
+ colorEnabled = false
+ this.cursor.enabled = false
+}
+
+// default level
+log.level = 'info'
+
+log.gauge = new Gauge(log.cursor)
+log.tracker = new Progress.TrackerGroup()
+
+// no progress bars unless asked
+log.progressEnabled = false
+
+var gaugeTheme = undefined
+
+log.enableUnicode = function () {
+ gaugeTheme = Gauge.unicode
+ log.gauge.setTheme(gaugeTheme)
+}
+
+log.disableUnicode = function () {
+ gaugeTheme = Gauge.ascii
+ log.gauge.setTheme(gaugeTheme)
+}
+
+var gaugeTemplate = undefined
+log.setGaugeTemplate = function (template) {
+ gaugeTemplate = template
+ log.gauge.setTemplate(gaugeTemplate)
+}
+
+log.enableProgress = function () {
+ if (this.progressEnabled) return
+ this.progressEnabled = true
+ if (this._pause) return
+ this.tracker.on('change', this.showProgress)
+ this.gauge.enable()
+ this.showProgress()
+}
+
+log.disableProgress = function () {
+ if (!this.progressEnabled) return
+ this.clearProgress()
+ this.progressEnabled = false
+ this.tracker.removeListener('change', this.showProgress)
+ this.gauge.disable()
+}
+
+var trackerConstructors = ['newGroup', 'newItem', 'newStream']
+
+var mixinLog = function (tracker) {
+ // mixin the public methods from log into the tracker
+ // (except: conflicts and one's we handle specially)
+ Object.keys(log).forEach(function (P) {
+ if (P[0] === '_') return
+ if (trackerConstructors.filter(function (C) { return C === P }).length) return
+ if (tracker[P]) return
+ if (typeof log[P] !== 'function') return
+ var func = log[P]
+ tracker[P] = function () {
+ return func.apply(log, arguments)
+ }
+ })
+ // if the new tracker is a group, make sure any subtrackers get
+ // mixed in too
+ if (tracker instanceof Progress.TrackerGroup) {
+ trackerConstructors.forEach(function (C) {
+ var func = tracker[C]
+ tracker[C] = function () { return mixinLog(func.apply(tracker, arguments)) }
+ })
+ }
+ return tracker
+}
+
+// Add tracker constructors to the top level log object
+trackerConstructors.forEach(function (C) {
+ log[C] = function () { return mixinLog(this.tracker[C].apply(this.tracker, arguments)) }
+})
+
+log.clearProgress = function () {
+ if (!this.progressEnabled) return
+ this.gauge.hide()
+}
+
+log.showProgress = function (name, completed) {
+ if (!this.progressEnabled) return
+ if (completed == null) completed = this.tracker.completed()
+ this.gauge.show(name, completed)
+}.bind(log) // bind for use in tracker's on-change listener
+
+// temporarily stop emitting, but don't drop
+log.pause = function () {
+ this._paused = true
+}
+
+log.resume = function () {
+ if (!this._paused) return
+ this._paused = false
+
+ var b = this._buffer
+ this._buffer = []
+ b.forEach(function (m) {
+ this.emitLog(m)
+ }, this)
+ if (this.progressEnabled) this.enableProgress()
+}
+
+log._buffer = []
+
+var id = 0
+log.record = []
+log.maxRecordSize = 10000
+log.log = function (lvl, prefix, message) {
+ var l = this.levels[lvl]
+ if (l === undefined) {
+ return this.emit('error', new Error(util.format(
+ 'Undefined log level: %j', lvl)))
+ }
+
+ var a = new Array(arguments.length - 2)
+ var stack = null
+ for (var i = 2; i < arguments.length; i ++) {
+ var arg = a[i-2] = arguments[i]
+
+ // resolve stack traces to a plain string.
+ if (typeof arg === 'object' && arg &&
+ (arg instanceof Error) && arg.stack) {
+ arg.stack = stack = arg.stack + ''
+ }
+ }
+ if (stack) a.unshift(stack + '\n')
+ message = util.format.apply(util, a)
+
+ var m = { id: id++,
+ level: lvl,
+ prefix: String(prefix || ''),
+ message: message,
+ messageRaw: a }
+
+ this.emit('log', m)
+ this.emit('log.' + lvl, m)
+ if (m.prefix) this.emit(m.prefix, m)
+
+ this.record.push(m)
+ var mrs = this.maxRecordSize
+ var n = this.record.length - mrs
+ if (n > mrs / 10) {
+ var newSize = Math.floor(mrs * 0.9)
+ this.record = this.record.slice(-1 * newSize)
+ }
+
+ this.emitLog(m)
+}.bind(log)
+
+log.emitLog = function (m) {
+ if (this._paused) {
+ this._buffer.push(m)
+ return
+ }
+ if (this.progressEnabled) this.gauge.pulse(m.prefix)
+ var l = this.levels[m.level]
+ if (l === undefined) return
+ if (l < this.levels[this.level]) return
+ if (l > 0 && !isFinite(l)) return
+
+ var style = log.style[m.level]
+ var disp = log.disp[m.level] || m.level
+ this.clearProgress()
+ m.message.split(/\r?\n/).forEach(function (line) {
+ if (this.heading) {
+ this.write(this.heading, this.headingStyle)
+ this.write(' ')
+ }
+ this.write(disp, log.style[m.level])
+ var p = m.prefix || ''
+ if (p) this.write(' ')
+ this.write(p, this.prefixStyle)
+ this.write(' ' + line + '\n')
+ }, this)
+ this.showProgress()
+}
+
+log.write = function (msg, style) {
+ if (!this.cursor) return
+ if (this.stream !== this.cursor.stream) {
+ this.cursor = ansi(this.stream, { enabled: colorEnabled })
+ var options = {}
+ if (gaugeTheme != null) options.theme = gaugeTheme
+ if (gaugeTemplate != null) options.template = gaugeTemplate
+ this.gauge = new Gauge(options, this.cursor)
+ }
+
+ style = style || {}
+ if (style.fg) this.cursor.fg[style.fg]()
+ if (style.bg) this.cursor.bg[style.bg]()
+ if (style.bold) this.cursor.bold()
+ if (style.underline) this.cursor.underline()
+ if (style.inverse) this.cursor.inverse()
+ if (style.beep) this.cursor.beep()
+ this.cursor.write(msg).reset()
+}
+
+log.addLevel = function (lvl, n, style, disp) {
+ if (!disp) disp = lvl
+ this.levels[lvl] = n
+ this.style[lvl] = style
+ if (!this[lvl]) this[lvl] = function () {
+ var a = new Array(arguments.length + 1)
+ a[0] = lvl
+ for (var i = 0; i < arguments.length; i ++) {
+ a[i + 1] = arguments[i]
+ }
+ return this.log.apply(this, a)
+ }.bind(this)
+ this.disp[lvl] = disp
+}
+
+log.prefixStyle = { fg: 'magenta' }
+log.headingStyle = { fg: 'white', bg: 'black' }
+
+log.style = {}
+log.levels = {}
+log.disp = {}
+log.addLevel('silly', -Infinity, { inverse: true }, 'sill')
+log.addLevel('verbose', 1000, { fg: 'blue', bg: 'black' }, 'verb')
+log.addLevel('info', 2000, { fg: 'green' })
+log.addLevel('http', 3000, { fg: 'green', bg: 'black' })
+log.addLevel('warn', 4000, { fg: 'black', bg: 'yellow' }, 'WARN')
+log.addLevel('error', 5000, { fg: 'red', bg: 'black' }, 'ERR!')
+log.addLevel('silent', Infinity)
+
+// allow 'error' prefix
+log.on('error', function(){})
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/.npmignore b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/.npmignore
new file mode 100644
index 000000000..3c3629e64
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/.npmignore
@@ -0,0 +1 @@
+node_modules
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/History.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/History.md
new file mode 100644
index 000000000..aea8aaf09
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/History.md
@@ -0,0 +1,23 @@
+
+0.3.1 / 2016-01-14
+==================
+
+ * add MIT LICENSE file (#23, @kasicka)
+ * preserve chaining after redundant style-method calls (#19, @drewblaisdell)
+ * package: add "license" field (#16, @BenjaminTsai)
+
+0.3.0 / 2014-05-09
+==================
+
+ * package: remove "test" script and "devDependencies"
+ * package: remove "engines" section
+ * pacakge: remove "bin" section
+ * package: beautify
+ * examples: remove `starwars` example (#15)
+ * Documented goto, horizontalAbsolute, and eraseLine methods in README.md (#12, @Jammerwoch)
+ * add `.jshintrc` file
+
+< 0.3.0
+=======
+
+ * Prehistoric
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/LICENSE
new file mode 100644
index 000000000..2ea4dc5ef
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/LICENSE
@@ -0,0 +1,24 @@
+(The MIT License)
+
+Copyright (c) 2012 Nathan Rajlich <nathan@tootallnate.net>
+
+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/node-gyp/node_modules/npmlog/node_modules/ansi/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/README.md
new file mode 100644
index 000000000..6ce19403c
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/README.md
@@ -0,0 +1,98 @@
+ansi.js
+=========
+### Advanced ANSI formatting tool for Node.js
+
+`ansi.js` is a module for Node.js that provides an easy-to-use API for
+writing ANSI escape codes to `Stream` instances. ANSI escape codes are used to do
+fancy things in a terminal window, like render text in colors, delete characters,
+lines, the entire window, or hide and show the cursor, and lots more!
+
+#### Features:
+
+ * 256 color support for the terminal!
+ * Make a beep sound from your terminal!
+ * Works with *any* writable `Stream` instance.
+ * Allows you to move the cursor anywhere on the terminal window.
+ * Allows you to delete existing contents from the terminal window.
+ * Allows you to hide and show the cursor.
+ * Converts CSS color codes and RGB values into ANSI escape codes.
+ * Low-level; you are in control of when escape codes are used, it's not abstracted.
+
+
+Installation
+------------
+
+Install with `npm`:
+
+``` bash
+$ npm install ansi
+```
+
+
+Example
+-------
+
+``` js
+var ansi = require('ansi')
+ , cursor = ansi(process.stdout)
+
+// You can chain your calls forever:
+cursor
+ .red() // Set font color to red
+ .bg.grey() // Set background color to grey
+ .write('Hello World!') // Write 'Hello World!' to stdout
+ .bg.reset() // Reset the bgcolor before writing the trailing \n,
+ // to avoid Terminal glitches
+ .write('\n') // And a final \n to wrap things up
+
+// Rendering modes are persistent:
+cursor.hex('#660000').bold().underline()
+
+// You can use the regular logging functions, text will be green:
+console.log('This is blood red, bold text')
+
+// To reset just the foreground color:
+cursor.fg.reset()
+
+console.log('This will still be bold')
+
+// to go to a location (x,y) on the console
+// note: 1-indexed, not 0-indexed:
+cursor.goto(10, 5).write('Five down, ten over')
+
+// to clear the current line:
+cursor.horizontalAbsolute(0).eraseLine().write('Starting again')
+
+// to go to a different column on the current line:
+cursor.horizontalAbsolute(5).write('column five')
+
+// Clean up after yourself!
+cursor.reset()
+```
+
+
+License
+-------
+
+(The MIT License)
+
+Copyright (c) 2012 Nathan Rajlich &lt;nathan@tootallnate.net&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/node-gyp/node_modules/npmlog/node_modules/ansi/examples/beep/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/beep/index.js
new file mode 100755
index 000000000..c1ec929d0
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/beep/index.js
@@ -0,0 +1,16 @@
+#!/usr/bin/env node
+
+/**
+ * Invokes the terminal "beep" sound once per second on every exact second.
+ */
+
+process.title = 'beep'
+
+var cursor = require('../../')(process.stdout)
+
+function beep () {
+ cursor.beep()
+ setTimeout(beep, 1000 - (new Date()).getMilliseconds())
+}
+
+setTimeout(beep, 1000 - (new Date()).getMilliseconds())
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/clear/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/clear/index.js
new file mode 100755
index 000000000..6ac21ffa9
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/clear/index.js
@@ -0,0 +1,15 @@
+#!/usr/bin/env node
+
+/**
+ * Like GNU ncurses "clear" command.
+ * https://github.com/mscdex/node-ncurses/blob/master/deps/ncurses/progs/clear.c
+ */
+
+process.title = 'clear'
+
+function lf () { return '\n' }
+
+require('../../')(process.stdout)
+ .write(Array.apply(null, Array(process.stdout.getWindowSize()[1])).map(lf).join(''))
+ .eraseData(2)
+ .goto(1, 1)
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/cursorPosition.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/cursorPosition.js
new file mode 100755
index 000000000..50f964490
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/cursorPosition.js
@@ -0,0 +1,32 @@
+#!/usr/bin/env node
+
+var tty = require('tty')
+var cursor = require('../')(process.stdout)
+
+// listen for the queryPosition report on stdin
+process.stdin.resume()
+raw(true)
+
+process.stdin.once('data', function (b) {
+ var match = /\[(\d+)\;(\d+)R$/.exec(b.toString())
+ if (match) {
+ var xy = match.slice(1, 3).reverse().map(Number)
+ console.error(xy)
+ }
+
+ // cleanup and close stdin
+ raw(false)
+ process.stdin.pause()
+})
+
+
+// send the query position request code to stdout
+cursor.queryPosition()
+
+function raw (mode) {
+ if (process.stdin.setRawMode) {
+ process.stdin.setRawMode(mode)
+ } else {
+ tty.setRawMode(mode)
+ }
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/progress/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/progress/index.js
new file mode 100644
index 000000000..d28dbda27
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/examples/progress/index.js
@@ -0,0 +1,87 @@
+#!/usr/bin/env node
+
+var assert = require('assert')
+ , ansi = require('../../')
+
+function Progress (stream, width) {
+ this.cursor = ansi(stream)
+ this.delta = this.cursor.newlines
+ this.width = width | 0 || 10
+ this.open = '['
+ this.close = ']'
+ this.complete = '█'
+ this.incomplete = '_'
+
+ // initial render
+ this.progress = 0
+}
+
+Object.defineProperty(Progress.prototype, 'progress', {
+ get: get
+ , set: set
+ , configurable: true
+ , enumerable: true
+})
+
+function get () {
+ return this._progress
+}
+
+function set (v) {
+ this._progress = Math.max(0, Math.min(v, 100))
+
+ var w = this.width - this.complete.length - this.incomplete.length
+ , n = w * (this._progress / 100) | 0
+ , i = w - n
+ , com = c(this.complete, n)
+ , inc = c(this.incomplete, i)
+ , delta = this.cursor.newlines - this.delta
+
+ assert.equal(com.length + inc.length, w)
+
+ if (delta > 0) {
+ this.cursor.up(delta)
+ this.delta = this.cursor.newlines
+ }
+
+ this.cursor
+ .horizontalAbsolute(0)
+ .eraseLine(2)
+ .fg.white()
+ .write(this.open)
+ .fg.grey()
+ .bold()
+ .write(com)
+ .resetBold()
+ .write(inc)
+ .fg.white()
+ .write(this.close)
+ .fg.reset()
+ .write('\n')
+}
+
+function c (char, length) {
+ return Array.apply(null, Array(length)).map(function () {
+ return char
+ }).join('')
+}
+
+
+
+
+// Usage
+var width = parseInt(process.argv[2], 10) || process.stdout.getWindowSize()[0] / 2
+ , p = new Progress(process.stdout, width)
+
+;(function tick () {
+ p.progress += Math.random() * 5
+ p.cursor
+ .eraseLine(2)
+ .write('Progress: ')
+ .bold().write(p.progress.toFixed(2))
+ .write('%')
+ .resetBold()
+ .write('\n')
+ if (p.progress < 100)
+ setTimeout(tick, 100)
+})()
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/lib/ansi.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/lib/ansi.js
new file mode 100644
index 000000000..b1714e328
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/lib/ansi.js
@@ -0,0 +1,405 @@
+
+/**
+ * References:
+ *
+ * - http://en.wikipedia.org/wiki/ANSI_escape_code
+ * - http://www.termsys.demon.co.uk/vtansi.htm
+ *
+ */
+
+/**
+ * Module dependencies.
+ */
+
+var emitNewlineEvents = require('./newlines')
+ , prefix = '\x1b[' // For all escape codes
+ , suffix = 'm' // Only for color codes
+
+/**
+ * The ANSI escape sequences.
+ */
+
+var codes = {
+ up: 'A'
+ , down: 'B'
+ , forward: 'C'
+ , back: 'D'
+ , nextLine: 'E'
+ , previousLine: 'F'
+ , horizontalAbsolute: 'G'
+ , eraseData: 'J'
+ , eraseLine: 'K'
+ , scrollUp: 'S'
+ , scrollDown: 'T'
+ , savePosition: 's'
+ , restorePosition: 'u'
+ , queryPosition: '6n'
+ , hide: '?25l'
+ , show: '?25h'
+}
+
+/**
+ * Rendering ANSI codes.
+ */
+
+var styles = {
+ bold: 1
+ , italic: 3
+ , underline: 4
+ , inverse: 7
+}
+
+/**
+ * The negating ANSI code for the rendering modes.
+ */
+
+var reset = {
+ bold: 22
+ , italic: 23
+ , underline: 24
+ , inverse: 27
+}
+
+/**
+ * The standard, styleable ANSI colors.
+ */
+
+var colors = {
+ white: 37
+ , black: 30
+ , blue: 34
+ , cyan: 36
+ , green: 32
+ , magenta: 35
+ , red: 31
+ , yellow: 33
+ , grey: 90
+ , brightBlack: 90
+ , brightRed: 91
+ , brightGreen: 92
+ , brightYellow: 93
+ , brightBlue: 94
+ , brightMagenta: 95
+ , brightCyan: 96
+ , brightWhite: 97
+}
+
+
+/**
+ * Creates a Cursor instance based off the given `writable stream` instance.
+ */
+
+function ansi (stream, options) {
+ if (stream._ansicursor) {
+ return stream._ansicursor
+ } else {
+ return stream._ansicursor = new Cursor(stream, options)
+ }
+}
+module.exports = exports = ansi
+
+/**
+ * The `Cursor` class.
+ */
+
+function Cursor (stream, options) {
+ if (!(this instanceof Cursor)) {
+ return new Cursor(stream, options)
+ }
+ if (typeof stream != 'object' || typeof stream.write != 'function') {
+ throw new Error('a valid Stream instance must be passed in')
+ }
+
+ // the stream to use
+ this.stream = stream
+
+ // when 'enabled' is false then all the functions are no-ops except for write()
+ this.enabled = options && options.enabled
+ if (typeof this.enabled === 'undefined') {
+ this.enabled = stream.isTTY
+ }
+ this.enabled = !!this.enabled
+
+ // then `buffering` is true, then `write()` calls are buffered in
+ // memory until `flush()` is invoked
+ this.buffering = !!(options && options.buffering)
+ this._buffer = []
+
+ // controls the foreground and background colors
+ this.fg = this.foreground = new Colorer(this, 0)
+ this.bg = this.background = new Colorer(this, 10)
+
+ // defaults
+ this.Bold = false
+ this.Italic = false
+ this.Underline = false
+ this.Inverse = false
+
+ // keep track of the number of "newlines" that get encountered
+ this.newlines = 0
+ emitNewlineEvents(stream)
+ stream.on('newline', function () {
+ this.newlines++
+ }.bind(this))
+}
+exports.Cursor = Cursor
+
+/**
+ * Helper function that calls `write()` on the underlying Stream.
+ * Returns `this` instead of the write() return value to keep
+ * the chaining going.
+ */
+
+Cursor.prototype.write = function (data) {
+ if (this.buffering) {
+ this._buffer.push(arguments)
+ } else {
+ this.stream.write.apply(this.stream, arguments)
+ }
+ return this
+}
+
+/**
+ * Buffer `write()` calls into memory.
+ *
+ * @api public
+ */
+
+Cursor.prototype.buffer = function () {
+ this.buffering = true
+ return this
+}
+
+/**
+ * Write out the in-memory buffer.
+ *
+ * @api public
+ */
+
+Cursor.prototype.flush = function () {
+ this.buffering = false
+ var str = this._buffer.map(function (args) {
+ if (args.length != 1) throw new Error('unexpected args length! ' + args.length);
+ return args[0];
+ }).join('');
+ this._buffer.splice(0); // empty
+ this.write(str);
+ return this
+}
+
+
+/**
+ * The `Colorer` class manages both the background and foreground colors.
+ */
+
+function Colorer (cursor, base) {
+ this.current = null
+ this.cursor = cursor
+ this.base = base
+}
+exports.Colorer = Colorer
+
+/**
+ * Write an ANSI color code, ensuring that the same code doesn't get rewritten.
+ */
+
+Colorer.prototype._setColorCode = function setColorCode (code) {
+ var c = String(code)
+ if (this.current === c) return
+ this.cursor.enabled && this.cursor.write(prefix + c + suffix)
+ this.current = c
+ return this
+}
+
+
+/**
+ * Set up the positional ANSI codes.
+ */
+
+Object.keys(codes).forEach(function (name) {
+ var code = String(codes[name])
+ Cursor.prototype[name] = function () {
+ var c = code
+ if (arguments.length > 0) {
+ c = toArray(arguments).map(Math.round).join(';') + code
+ }
+ this.enabled && this.write(prefix + c)
+ return this
+ }
+})
+
+/**
+ * Set up the functions for the rendering ANSI codes.
+ */
+
+Object.keys(styles).forEach(function (style) {
+ var name = style[0].toUpperCase() + style.substring(1)
+ , c = styles[style]
+ , r = reset[style]
+
+ Cursor.prototype[style] = function () {
+ if (this[name]) return this
+ this.enabled && this.write(prefix + c + suffix)
+ this[name] = true
+ return this
+ }
+
+ Cursor.prototype['reset' + name] = function () {
+ if (!this[name]) return this
+ this.enabled && this.write(prefix + r + suffix)
+ this[name] = false
+ return this
+ }
+})
+
+/**
+ * Setup the functions for the standard colors.
+ */
+
+Object.keys(colors).forEach(function (color) {
+ var code = colors[color]
+
+ Colorer.prototype[color] = function () {
+ this._setColorCode(this.base + code)
+ return this.cursor
+ }
+
+ Cursor.prototype[color] = function () {
+ return this.foreground[color]()
+ }
+})
+
+/**
+ * Makes a beep sound!
+ */
+
+Cursor.prototype.beep = function () {
+ this.enabled && this.write('\x07')
+ return this
+}
+
+/**
+ * Moves cursor to specific position
+ */
+
+Cursor.prototype.goto = function (x, y) {
+ x = x | 0
+ y = y | 0
+ this.enabled && this.write(prefix + y + ';' + x + 'H')
+ return this
+}
+
+/**
+ * Resets the color.
+ */
+
+Colorer.prototype.reset = function () {
+ this._setColorCode(this.base + 39)
+ return this.cursor
+}
+
+/**
+ * Resets all ANSI formatting on the stream.
+ */
+
+Cursor.prototype.reset = function () {
+ this.enabled && this.write(prefix + '0' + suffix)
+ this.Bold = false
+ this.Italic = false
+ this.Underline = false
+ this.Inverse = false
+ this.foreground.current = null
+ this.background.current = null
+ return this
+}
+
+/**
+ * Sets the foreground color with the given RGB values.
+ * The closest match out of the 216 colors is picked.
+ */
+
+Colorer.prototype.rgb = function (r, g, b) {
+ var base = this.base + 38
+ , code = rgb(r, g, b)
+ this._setColorCode(base + ';5;' + code)
+ return this.cursor
+}
+
+/**
+ * Same as `cursor.fg.rgb(r, g, b)`.
+ */
+
+Cursor.prototype.rgb = function (r, g, b) {
+ return this.foreground.rgb(r, g, b)
+}
+
+/**
+ * Accepts CSS color codes for use with ANSI escape codes.
+ * For example: `#FF000` would be bright red.
+ */
+
+Colorer.prototype.hex = function (color) {
+ return this.rgb.apply(this, hex(color))
+}
+
+/**
+ * Same as `cursor.fg.hex(color)`.
+ */
+
+Cursor.prototype.hex = function (color) {
+ return this.foreground.hex(color)
+}
+
+
+// UTIL FUNCTIONS //
+
+/**
+ * Translates a 255 RGB value to a 0-5 ANSI RGV value,
+ * then returns the single ANSI color code to use.
+ */
+
+function rgb (r, g, b) {
+ var red = r / 255 * 5
+ , green = g / 255 * 5
+ , blue = b / 255 * 5
+ return rgb5(red, green, blue)
+}
+
+/**
+ * Turns rgb 0-5 values into a single ANSI color code to use.
+ */
+
+function rgb5 (r, g, b) {
+ var red = Math.round(r)
+ , green = Math.round(g)
+ , blue = Math.round(b)
+ return 16 + (red*36) + (green*6) + blue
+}
+
+/**
+ * Accepts a hex CSS color code string (# is optional) and
+ * translates it into an Array of 3 RGB 0-255 values, which
+ * can then be used with rgb().
+ */
+
+function hex (color) {
+ var c = color[0] === '#' ? color.substring(1) : color
+ , r = c.substring(0, 2)
+ , g = c.substring(2, 4)
+ , b = c.substring(4, 6)
+ return [parseInt(r, 16), parseInt(g, 16), parseInt(b, 16)]
+}
+
+/**
+ * Turns an array-like object into a real array.
+ */
+
+function toArray (a) {
+ var i = 0
+ , l = a.length
+ , rtn = []
+ for (; i<l; i++) {
+ rtn.push(a[i])
+ }
+ return rtn
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/lib/newlines.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/lib/newlines.js
new file mode 100644
index 000000000..4e37a0adb
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/lib/newlines.js
@@ -0,0 +1,71 @@
+
+/**
+ * Accepts any node Stream instance and hijacks its "write()" function,
+ * so that it can count any newlines that get written to the output.
+ *
+ * When a '\n' byte is encountered, then a "newline" event will be emitted
+ * on the stream, with no arguments. It is up to the listeners to determine
+ * any necessary deltas required for their use-case.
+ *
+ * Ex:
+ *
+ * var cursor = ansi(process.stdout)
+ * , ln = 0
+ * process.stdout.on('newline', function () {
+ * ln++
+ * })
+ */
+
+/**
+ * Module dependencies.
+ */
+
+var assert = require('assert')
+var NEWLINE = '\n'.charCodeAt(0)
+
+function emitNewlineEvents (stream) {
+ if (stream._emittingNewlines) {
+ // already emitting newline events
+ return
+ }
+
+ var write = stream.write
+
+ stream.write = function (data) {
+ // first write the data
+ var rtn = write.apply(stream, arguments)
+
+ if (stream.listeners('newline').length > 0) {
+ var len = data.length
+ , i = 0
+ // now try to calculate any deltas
+ if (typeof data == 'string') {
+ for (; i<len; i++) {
+ processByte(stream, data.charCodeAt(i))
+ }
+ } else {
+ // buffer
+ for (; i<len; i++) {
+ processByte(stream, data[i])
+ }
+ }
+ }
+
+ return rtn
+ }
+
+ stream._emittingNewlines = true
+}
+module.exports = emitNewlineEvents
+
+
+/**
+ * Processes an individual byte being written to a stream
+ */
+
+function processByte (stream, b) {
+ assert.equal(typeof b, 'number')
+ if (b === NEWLINE) {
+ stream.emit('newline')
+ }
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/package.json
new file mode 100644
index 000000000..ce2366e31
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/ansi/package.json
@@ -0,0 +1,104 @@
+{
+ "_args": [
+ [
+ {
+ "name": "ansi",
+ "raw": "ansi@~0.3.1",
+ "rawSpec": "~0.3.1",
+ "scope": null,
+ "spec": ">=0.3.1 <0.4.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/npmlog"
+ ],
+ [
+ {
+ "name": "ansi",
+ "raw": "ansi@~0.3.1",
+ "rawSpec": "~0.3.1",
+ "scope": null,
+ "spec": ">=0.3.1 <0.4.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog"
+ ]
+ ],
+ "_from": "ansi@~0.3.1",
+ "_id": "ansi@0.3.1",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/ansi",
+ "_nodeVersion": "5.3.0",
+ "_npmUser": {
+ "email": "nathan@tootallnate.net",
+ "name": "tootallnate"
+ },
+ "_npmVersion": "3.3.12",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "ansi",
+ "raw": "ansi@~0.3.1",
+ "rawSpec": "~0.3.1",
+ "scope": null,
+ "spec": ">=0.3.1 <0.4.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog",
+ "/node-gyp/npmlog/gauge"
+ ],
+ "_resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
+ "_shasum": "0c42d4fb17160d5a9af1e484bace1c66922c1b21",
+ "_shrinkwrap": null,
+ "_spec": "ansi@~0.3.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog",
+ "author": {
+ "email": "nathan@tootallnate.net",
+ "name": "Nathan Rajlich",
+ "url": "http://tootallnate.net"
+ },
+ "bugs": {
+ "url": "https://github.com/TooTallNate/ansi.js/issues"
+ },
+ "dependencies": {},
+ "description": "Advanced ANSI formatting tool for Node.js",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "0c42d4fb17160d5a9af1e484bace1c66922c1b21",
+ "tarball": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz"
+ },
+ "gitHead": "4d0d4af94e0bdaa648bd7262acd3bde4b98d5246",
+ "homepage": "https://github.com/TooTallNate/ansi.js#readme",
+ "keywords": [
+ "ansi",
+ "formatting",
+ "cursor",
+ "color",
+ "terminal",
+ "rgb",
+ "256",
+ "stream"
+ ],
+ "license": "MIT",
+ "main": "./lib/ansi.js",
+ "maintainers": [
+ {
+ "email": "nathan@tootallnate.net",
+ "name": "TooTallNate"
+ },
+ {
+ "email": "nathan@tootallnate.net",
+ "name": "tootallnate"
+ }
+ ],
+ "name": "ansi",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/TooTallNate/ansi.js.git"
+ },
+ "scripts": {},
+ "version": "0.3.1"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore
new file mode 100644
index 000000000..bc818974f
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore
@@ -0,0 +1,5 @@
+*~
+.#*
+node_modules
+coverage
+.nyc_output
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md
new file mode 100644
index 000000000..e990b86dd
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md
@@ -0,0 +1,19 @@
+Hi, figured we could actually use a changelog now:
+
+## 1.1.1 2016-01-29
+
+* Fix a typo in stream completion tracker
+
+## 1.1.0 2016-01-29
+
+* Rewrote completion percent computation to be low impact– no more walking a
+ tree of completion groups every time we need this info. Previously, with
+ medium sized tree of completion groups, even a relatively modest number of
+ calls to the top level `completed()` method would result in absurd numbers
+ of calls overall as it walked down the tree. We now, instead, keep track as
+ we bubble up changes, so the computation is limited to when data changes and
+ to the depth of that one branch, instead of _every_ node. (Plus, we were already
+ incurring _this_ cost, since we already bubbled out changes.)
+* Moved different tracker types out to their own files.
+* Made tests test for TOO MANY events too.
+* Standarized the source code formatting
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE
new file mode 100644
index 000000000..af4588069
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE
@@ -0,0 +1,5 @@
+Copyright (c) 2015, Rebecca Turner
+
+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/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/README.md
new file mode 100644
index 000000000..f8789800a
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/README.md
@@ -0,0 +1,194 @@
+are-we-there-yet
+----------------
+
+Track complex hiearchies of asynchronous task completion statuses. This is
+intended to give you a way of recording and reporting the progress of the big
+recursive fan-out and gather type workflows that are so common in async.
+
+What you do with this completion data is up to you, but the most common use case is to
+feed it to one of the many progress bar modules.
+
+Most progress bar modules include a rudamentary version of this, but my
+needs were more complex.
+
+Usage
+=====
+
+```javascript
+var TrackerGroup = require("are-we-there-yet").TrackerGroup
+
+var top = new TrackerGroup("program")
+
+var single = top.newItem("one thing", 100)
+single.completeWork(20)
+
+console.log(top.completed()) // 0.2
+
+fs.stat("file", function(er, stat) {
+ if (er) throw er
+ var stream = top.newStream("file", stat.size)
+ console.log(top.completed()) // now 0.1 as single is 50% of the job and is 20% complete
+ // and 50% * 20% == 10%
+ fs.createReadStream("file").pipe(stream).on("data", function (chunk) {
+ // do stuff with chunk
+ })
+ top.on("change", function (name) {
+ // called each time a chunk is read from "file"
+ // top.completed() will start at 0.1 and fill up to 0.6 as the file is read
+ })
+})
+```
+
+Shared Methods
+==============
+
+All tracker objects described below have the following methods, they, along
+with the event comprise the interface for consumers of tracker objects.
+
+* var completed = tracker.completed()
+
+Returns the ratio of completed work to work to be done. Range of 0 to 1.
+
+* tracker.finish()
+
+Marks the tracker as completed. With a TrackerGroup this marks all of its
+components as completed.
+
+Marks all of the components of this tracker as finished, which in turn means
+that `tracker.completed()` for this will now be 1.
+
+This will result in one or more `change` events being emitted.
+
+Events
+======
+
+All tracker objects emit `change` events with the following arguments:
+
+```
+function (name, completed, tracker)
+```
+
+`name` is the name of the tracker that originally emitted the event,
+or if it didn't have one, the first containing tracker group that had one.
+
+`completed` is the percent complete (as returned by `tracker.completed()` method).
+
+`tracker` is the tracker object that you are listening for events on.
+
+TrackerGroup
+============
+
+* var tracker = new TrackerGroup(**name**)
+
+ * **name** *(optional)* - The name of this tracker group, used in change
+ notifications if the component updating didn't have a name. Defaults to undefined.
+
+Creates a new empty tracker aggregation group. These are trackers whose
+completion status is determined by the completion status of other trackers.
+
+* tracker.addUnit(**otherTracker**, **weight**)
+
+ * **otherTracker** - Any of the other are-we-there-yet tracker objects
+ * **weight** *(optional)* - The weight to give the tracker, defaults to 1.
+
+Adds the **otherTracker** to this aggregation group. The weight determines
+how long you expect this tracker to take to complete in proportion to other
+units. So for instance, if you add one tracker with a weight of 1 and
+another with a weight of 2, you're saying the second will take twice as long
+to complete as the first. As such, the first will account for 33% of the
+completion of this tracker and the second will account for the other 67%.
+
+Returns **otherTracker**.
+
+* var subGroup = tracker.newGroup(**name**, **weight**)
+
+The above is exactly equivalent to:
+
+```javascript
+ var subGroup = tracker.addUnit(new TrackerGroup(name), weight)
+```
+
+* var subItem = tracker.newItem(**name**, **todo**, **weight**)
+
+The above is exactly equivalent to:
+
+```javascript
+ var subItem = tracker.addUnit(new Tracker(name, todo), weight)
+```
+
+* var subStream = tracker.newStream(**name**, **todo**, **weight**)
+
+The above is exactly equivalent to:
+
+```javascript
+ var subStream = tracker.addUnit(new TrackerStream(name, todo), weight)
+```
+
+* console.log( tracker.debug() )
+
+Returns a tree showing the completion of this tracker group and all of its
+children, including recursively entering all of the children.
+
+Tracker
+=======
+
+* var tracker = new Tracker(**name**, **todo**)
+
+ * **name** *(optional)* The name of this counter to report in change
+ events. Defaults to undefined.
+ * **todo** *(optional)* The amount of work todo (a number). Defaults to 0.
+
+Ordinarily these are constructed as a part of a tracker group (via
+`newItem`).
+
+* var completed = tracker.completed()
+
+Returns the ratio of completed work to work to be done. Range of 0 to 1. If
+total work to be done is 0 then it will return 0.
+
+* tracker.addWork(**todo**)
+
+ * **todo** A number to add to the amount of work to be done.
+
+Increases the amount of work to be done, thus decreasing the completion
+percentage. Triggers a `change` event.
+
+* tracker.completeWork(**completed**)
+
+ * **completed** A number to add to the work complete
+
+Increase the amount of work complete, thus increasing the completion percentage.
+Will never increase the work completed past the amount of work todo. That is,
+percentages > 100% are not allowed. Triggers a `change` event.
+
+* tracker.finish()
+
+Marks this tracker as finished, tracker.completed() will now be 1. Triggers
+a `change` event.
+
+TrackerStream
+=============
+
+* var tracker = new TrackerStream(**name**, **size**, **options**)
+
+ * **name** *(optional)* The name of this counter to report in change
+ events. Defaults to undefined.
+ * **size** *(optional)* The number of bytes being sent through this stream.
+ * **options** *(optional)* A hash of stream options
+
+The tracker stream object is a pass through stream that updates an internal
+tracker object each time a block passes through. It's intended to track
+downloads, file extraction and other related activities. You use it by piping
+your data source into it and then using it as your data source.
+
+If your data has a length attribute then that's used as the amount of work
+completed when the chunk is passed through. If it does not (eg, object
+streams) then each chunk counts as completing 1 unit of work, so your size
+should be the total number of objects being streamed.
+
+* tracker.addWork(**todo**)
+
+ * **todo** Increase the expected overall size by **todo** bytes.
+
+Increases the amount of work to be done, thus decreasing the completion
+percentage. Triggers a `change` event.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/index.js
new file mode 100644
index 000000000..57d8743fd
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/index.js
@@ -0,0 +1,4 @@
+'use strict'
+exports.TrackerGroup = require('./tracker-group.js')
+exports.Tracker = require('./tracker.js')
+exports.TrackerStream = require('./tracker-stream.js')
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore
new file mode 100644
index 000000000..c2658d7d1
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore
@@ -0,0 +1 @@
+node_modules/
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md
new file mode 100644
index 000000000..25959eab6
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md
@@ -0,0 +1,22 @@
+
+1.0.0 / 2015-12-14
+==================
+
+ * Merge pull request #12 from kasicka/master
+ * Add license text
+
+0.1.0 / 2014-10-17
+==================
+
+ * adds `.fluent()` to api
+
+0.0.3 / 2014-01-13
+==================
+
+ * fix receiver for .method()
+
+0.0.2 / 2014-01-13
+==================
+
+ * Object.defineProperty() sucks
+ * Initial commit
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License
new file mode 100644
index 000000000..60de60add
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License
@@ -0,0 +1,20 @@
+Copyright (c) 2015 TJ Holowaychuk <tj@vision-media.ca>
+
+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/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile
new file mode 100644
index 000000000..a9dcfd50d
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile
@@ -0,0 +1,8 @@
+
+test:
+ @./node_modules/.bin/mocha \
+ --require should \
+ --reporter spec \
+ --bail
+
+.PHONY: test \ No newline at end of file
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md
new file mode 100644
index 000000000..ab8cf4ace
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md
@@ -0,0 +1,94 @@
+
+# delegates
+
+ Node method and accessor delegation utilty.
+
+## Installation
+
+```
+$ npm install delegates
+```
+
+## Example
+
+```js
+var delegate = require('delegates');
+
+...
+
+delegate(proto, 'request')
+ .method('acceptsLanguages')
+ .method('acceptsEncodings')
+ .method('acceptsCharsets')
+ .method('accepts')
+ .method('is')
+ .access('querystring')
+ .access('idempotent')
+ .access('socket')
+ .access('length')
+ .access('query')
+ .access('search')
+ .access('status')
+ .access('method')
+ .access('path')
+ .access('body')
+ .access('host')
+ .access('url')
+ .getter('subdomains')
+ .getter('protocol')
+ .getter('header')
+ .getter('stale')
+ .getter('fresh')
+ .getter('secure')
+ .getter('ips')
+ .getter('ip')
+```
+
+# API
+
+## Delegate(proto, prop)
+
+Creates a delegator instance used to configure using the `prop` on the given
+`proto` object. (which is usually a prototype)
+
+## Delegate#method(name)
+
+Allows the given method `name` to be accessed on the host.
+
+## Delegate#getter(name)
+
+Creates a "getter" for the property with the given `name` on the delegated
+object.
+
+## Delegate#setter(name)
+
+Creates a "setter" for the property with the given `name` on the delegated
+object.
+
+## Delegate#access(name)
+
+Creates an "accessor" (ie: both getter *and* setter) for the property with the
+given `name` on the delegated object.
+
+## Delegate#fluent(name)
+
+A unique type of "accessor" that works for a "fluent" API. When called as a
+getter, the method returns the expected value. However, if the method is called
+with a value, it will return itself so it can be chained. For example:
+
+```js
+delegate(proto, 'request')
+ .fluent('query')
+
+// getter
+var q = request.query();
+
+// setter (chainable)
+request
+ .query({ a: 1 })
+ .query({ b: 2 });
+```
+
+# License
+
+ MIT
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js
new file mode 100644
index 000000000..17c222d52
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js
@@ -0,0 +1,121 @@
+
+/**
+ * Expose `Delegator`.
+ */
+
+module.exports = Delegator;
+
+/**
+ * Initialize a delegator.
+ *
+ * @param {Object} proto
+ * @param {String} target
+ * @api public
+ */
+
+function Delegator(proto, target) {
+ if (!(this instanceof Delegator)) return new Delegator(proto, target);
+ this.proto = proto;
+ this.target = target;
+ this.methods = [];
+ this.getters = [];
+ this.setters = [];
+ this.fluents = [];
+}
+
+/**
+ * Delegate method `name`.
+ *
+ * @param {String} name
+ * @return {Delegator} self
+ * @api public
+ */
+
+Delegator.prototype.method = function(name){
+ var proto = this.proto;
+ var target = this.target;
+ this.methods.push(name);
+
+ proto[name] = function(){
+ return this[target][name].apply(this[target], arguments);
+ };
+
+ return this;
+};
+
+/**
+ * Delegator accessor `name`.
+ *
+ * @param {String} name
+ * @return {Delegator} self
+ * @api public
+ */
+
+Delegator.prototype.access = function(name){
+ return this.getter(name).setter(name);
+};
+
+/**
+ * Delegator getter `name`.
+ *
+ * @param {String} name
+ * @return {Delegator} self
+ * @api public
+ */
+
+Delegator.prototype.getter = function(name){
+ var proto = this.proto;
+ var target = this.target;
+ this.getters.push(name);
+
+ proto.__defineGetter__(name, function(){
+ return this[target][name];
+ });
+
+ return this;
+};
+
+/**
+ * Delegator setter `name`.
+ *
+ * @param {String} name
+ * @return {Delegator} self
+ * @api public
+ */
+
+Delegator.prototype.setter = function(name){
+ var proto = this.proto;
+ var target = this.target;
+ this.setters.push(name);
+
+ proto.__defineSetter__(name, function(val){
+ return this[target][name] = val;
+ });
+
+ return this;
+};
+
+/**
+ * Delegator fluent accessor
+ *
+ * @param {String} name
+ * @return {Delegator} self
+ * @api public
+ */
+
+Delegator.prototype.fluent = function (name) {
+ var proto = this.proto;
+ var target = this.target;
+ this.fluents.push(name);
+
+ proto[name] = function(val){
+ if ('undefined' != typeof val) {
+ this[target][name] = val;
+ return this;
+ } else {
+ return this[target][name];
+ }
+ };
+
+ return this;
+};
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json
new file mode 100644
index 000000000..502a040ed
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json
@@ -0,0 +1,94 @@
+{
+ "_args": [
+ [
+ {
+ "name": "delegates",
+ "raw": "delegates@^1.0.0",
+ "rawSpec": "^1.0.0",
+ "scope": null,
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/are-we-there-yet"
+ ],
+ [
+ {
+ "name": "delegates",
+ "raw": "delegates@^1.0.0",
+ "rawSpec": "^1.0.0",
+ "scope": null,
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet"
+ ]
+ ],
+ "_from": "delegates@^1.0.0",
+ "_id": "delegates@1.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/are-we-there-yet/delegates",
+ "_nodeVersion": "4.2.1",
+ "_npmUser": {
+ "email": "tj@vision-media.ca",
+ "name": "tjholowaychuk"
+ },
+ "_npmVersion": "3.3.12",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "delegates",
+ "raw": "delegates@^1.0.0",
+ "rawSpec": "^1.0.0",
+ "scope": null,
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/are-we-there-yet"
+ ],
+ "_resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "_shasum": "84c6e159b81904fdca59a0ef44cd870d31250f9a",
+ "_shrinkwrap": null,
+ "_spec": "delegates@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet",
+ "bugs": {
+ "url": "https://github.com/visionmedia/node-delegates/issues"
+ },
+ "dependencies": {},
+ "description": "delegate methods and accessors to another property",
+ "devDependencies": {
+ "mocha": "*",
+ "should": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "84c6e159b81904fdca59a0ef44cd870d31250f9a",
+ "tarball": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"
+ },
+ "gitHead": "c4dc07ef1ed51c2b2a63f3585e5ef949ee577a49",
+ "homepage": "https://github.com/visionmedia/node-delegates#readme",
+ "keywords": [
+ "delegate",
+ "delegation"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "tj@vision-media.ca",
+ "name": "tjholowaychuk"
+ },
+ {
+ "email": "dominic@dbarnes.info",
+ "name": "dominicbarnes"
+ }
+ ],
+ "name": "delegates",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/visionmedia/node-delegates.git"
+ },
+ "scripts": {},
+ "version": "1.0.0"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js
new file mode 100644
index 000000000..7b6e3d4df
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js
@@ -0,0 +1,94 @@
+
+var assert = require('assert');
+var delegate = require('..');
+
+describe('.method(name)', function(){
+ it('should delegate methods', function(){
+ var obj = {};
+
+ obj.request = {
+ foo: function(bar){
+ assert(this == obj.request);
+ return bar;
+ }
+ };
+
+ delegate(obj, 'request').method('foo');
+
+ obj.foo('something').should.equal('something');
+ })
+})
+
+describe('.getter(name)', function(){
+ it('should delegate getters', function(){
+ var obj = {};
+
+ obj.request = {
+ get type() {
+ return 'text/html';
+ }
+ }
+
+ delegate(obj, 'request').getter('type');
+
+ obj.type.should.equal('text/html');
+ })
+})
+
+describe('.setter(name)', function(){
+ it('should delegate setters', function(){
+ var obj = {};
+
+ obj.request = {
+ get type() {
+ return this._type.toUpperCase();
+ },
+
+ set type(val) {
+ this._type = val;
+ }
+ }
+
+ delegate(obj, 'request').setter('type');
+
+ obj.type = 'hey';
+ obj.request.type.should.equal('HEY');
+ })
+})
+
+describe('.access(name)', function(){
+ it('should delegate getters and setters', function(){
+ var obj = {};
+
+ obj.request = {
+ get type() {
+ return this._type.toUpperCase();
+ },
+
+ set type(val) {
+ this._type = val;
+ }
+ }
+
+ delegate(obj, 'request').access('type');
+
+ obj.type = 'hey';
+ obj.type.should.equal('HEY');
+ })
+})
+
+describe('.fluent(name)', function () {
+ it('should delegate in a fluent fashion', function () {
+ var obj = {
+ settings: {
+ env: 'development'
+ }
+ };
+
+ delegate(obj, 'settings').fluent('env');
+
+ obj.env().should.equal('development');
+ obj.env('production').should.equal(obj);
+ obj.settings.env.should.equal('production');
+ })
+})
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/package.json
new file mode 100644
index 000000000..bab98d681
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/package.json
@@ -0,0 +1,100 @@
+{
+ "_args": [
+ [
+ {
+ "name": "are-we-there-yet",
+ "raw": "are-we-there-yet@~1.1.2",
+ "rawSpec": "~1.1.2",
+ "scope": null,
+ "spec": ">=1.1.2 <1.2.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/npmlog"
+ ],
+ [
+ {
+ "name": "are-we-there-yet",
+ "raw": "are-we-there-yet@~1.1.2",
+ "rawSpec": "~1.1.2",
+ "scope": null,
+ "spec": ">=1.1.2 <1.2.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog"
+ ]
+ ],
+ "_from": "are-we-there-yet@~1.1.2",
+ "_id": "are-we-there-yet@1.1.2",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/are-we-there-yet",
+ "_nodeVersion": "4.2.2",
+ "_npmOperationalInternal": {
+ "host": "packages-13-west.internal.npmjs.com",
+ "tmp": "tmp/are-we-there-yet-1.1.2.tgz_1458084397358_0.15847722673788667"
+ },
+ "_npmUser": {
+ "email": "me@re-becca.org",
+ "name": "iarna"
+ },
+ "_npmVersion": "3.8.1",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "are-we-there-yet",
+ "raw": "are-we-there-yet@~1.1.2",
+ "rawSpec": "~1.1.2",
+ "scope": null,
+ "spec": ">=1.1.2 <1.2.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog"
+ ],
+ "_resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz",
+ "_shasum": "80e470e95a084794fe1899262c5667c6e88de1b3",
+ "_shrinkwrap": null,
+ "_spec": "are-we-there-yet@~1.1.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog",
+ "author": {
+ "name": "Rebecca Turner",
+ "url": "http://re-becca.org"
+ },
+ "bugs": {
+ "url": "https://github.com/iarna/are-we-there-yet/issues"
+ },
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.0 || ^1.1.13"
+ },
+ "description": "Keep track of the overall completion of many dispirate processes",
+ "devDependencies": {
+ "standard": "^6.0.8",
+ "tap": "^5.7.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "80e470e95a084794fe1899262c5667c6e88de1b3",
+ "tarball": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz"
+ },
+ "gitHead": "dd5706e2204cb681e78031d0ffe156ed4cc75823",
+ "homepage": "https://github.com/iarna/are-we-there-yet",
+ "license": "ISC",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "email": "me@re-becca.org",
+ "name": "iarna"
+ }
+ ],
+ "name": "are-we-there-yet",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/iarna/are-we-there-yet.git"
+ },
+ "scripts": {
+ "test": "standard && tap test/*.js"
+ },
+ "version": "1.1.2"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/lib/test-event.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/lib/test-event.js
new file mode 100644
index 000000000..2aa7c05c5
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/lib/test-event.js
@@ -0,0 +1,29 @@
+'use strict'
+var util = require('util')
+
+module.exports = function (obj, event, next) {
+ var timeout = setTimeout(gotTimeout, 10)
+ obj.once(event, gotResult)
+
+ function gotTimeout () {
+ obj.removeListener(event, gotResult)
+ next(new Error('Timeout listening for ' + event))
+ }
+ var result = []
+ function gotResult () {
+ result = Array.prototype.slice.call(arguments)
+ clearTimeout(timeout)
+ timeout = setTimeout(gotNoMoreResults, 10)
+ obj.once(event, gotTooManyResults)
+ }
+ function gotNoMoreResults () {
+ obj.removeListener(event, gotTooManyResults)
+ var args = [null].concat(result)
+ next.apply(null, args)
+ }
+ function gotTooManyResults () {
+ var secondResult = Array.prototype.slice.call(arguments)
+ clearTimeout(timeout)
+ next(new Error('Got too many results, first ' + util.inspect(result) + ' and then ' + util.inspect(secondResult)))
+ }
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js
new file mode 100644
index 000000000..374c7739d
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js
@@ -0,0 +1,57 @@
+'use strict'
+var test = require('tap').test
+var Tracker = require('../index.js').Tracker
+
+var testEvent = require('./lib/test-event.js')
+
+var name = 'test'
+
+test('initialization', function (t) {
+ var simple = new Tracker(name)
+
+ t.is(simple.completed(), 0, 'Nothing todo is 0 completion')
+ t.done()
+})
+
+var track
+var todo = 100
+test('completion', function (t) {
+ track = new Tracker(name, todo)
+ t.is(track.completed(), 0, 'Nothing done is 0 completion')
+
+ testEvent(track, 'change', afterCompleteWork)
+
+ track.completeWork(todo)
+ t.is(track.completed(), 1, 'completeWork: 100% completed')
+
+ function afterCompleteWork (er, onChangeName) {
+ t.is(er, null, 'completeWork: on change event fired')
+ t.is(onChangeName, name, 'completeWork: on change emits the correct name')
+ t.done()
+ }
+})
+
+test('add more work', function (t) {
+ testEvent(track, 'change', afterAddWork)
+ track.addWork(todo)
+ t.is(track.completed(), 0.5, 'addWork: 50% completed')
+ function afterAddWork (er, onChangeName) {
+ t.is(er, null, 'addWork: on change event fired')
+ t.is(onChangeName, name, 'addWork: on change emits the correct name')
+ t.done()
+ }
+})
+
+test('complete more work', function (t) {
+ track.completeWork(200)
+ t.is(track.completed(), 1, 'completeWork: Over completion is still only 100% complete')
+ t.done()
+})
+
+test('finish is always 100%', function (t) {
+ var finishtest = new Tracker(name, todo)
+ finishtest.completeWork(50)
+ finishtest.finish()
+ t.is(finishtest.completed(), 1, 'finish: Explicitly finishing moves to 100%')
+ t.done()
+})
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js
new file mode 100644
index 000000000..799a7670b
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js
@@ -0,0 +1,96 @@
+'use strict'
+var test = require('tap').test
+var TrackerGroup = require('../index.js').TrackerGroup
+var testEvent = require('./lib/test-event.js')
+
+test('TrackerGroup', function (t) {
+ var name = 'test'
+
+ var track = new TrackerGroup(name)
+ t.is(track.completed(), 0, 'Nothing todo is 0 completion')
+ testEvent(track, 'change', afterFinishEmpty)
+ track.finish()
+ var a, b
+ function afterFinishEmpty (er, onChangeName, completion) {
+ t.is(er, null, 'finishEmpty: on change event fired')
+ t.is(onChangeName, name, 'finishEmpty: on change emits the correct name')
+ t.is(completion, 1, 'finishEmpty: passed through completion was correct')
+ t.is(track.completed(), 1, 'finishEmpty: Finishing an empty group actually finishes it')
+
+ track = new TrackerGroup(name)
+ a = track.newItem('a', 10, 1)
+ b = track.newItem('b', 10, 1)
+ t.is(track.completed(), 0, 'Initially empty')
+ testEvent(track, 'change', afterCompleteWork)
+ a.completeWork(5)
+ }
+ function afterCompleteWork (er, onChangeName, completion) {
+ t.is(er, null, 'on change event fired')
+ t.is(onChangeName, 'a', 'on change emits the correct name')
+ t.is(completion, 0.25, 'Complete half of one is a quarter overall')
+ t.is(track.completed(), 0.25, 'Complete half of one is a quarter overall')
+ testEvent(track, 'change', afterFinishAll)
+ track.finish()
+ }
+ function afterFinishAll (er, onChangeName, completion) {
+ t.is(er, null, 'finishAll: on change event fired')
+ t.is(onChangeName, name, 'finishAll: on change emits the correct name')
+ t.is(completion, 1, 'Finishing everything ')
+ t.is(track.completed(), 1, 'Finishing everything ')
+
+ track = new TrackerGroup(name)
+ a = track.newItem('a', 10, 2)
+ b = track.newItem('b', 10, 1)
+ t.is(track.completed(), 0, 'weighted: Initially empty')
+ testEvent(track, 'change', afterWeightedCompleteWork)
+ a.completeWork(5)
+ }
+ function afterWeightedCompleteWork (er, onChangeName, completion) {
+ t.is(er, null, 'weighted: on change event fired')
+ t.is(onChangeName, 'a', 'weighted: on change emits the correct name')
+ t.is(Math.floor(completion * 100), 33, 'weighted: Complete half of double weighted')
+ t.is(Math.floor(track.completed() * 100), 33, 'weighted: Complete half of double weighted')
+ testEvent(track, 'change', afterWeightedFinishAll)
+ track.finish()
+ }
+ function afterWeightedFinishAll (er, onChangeName, completion) {
+ t.is(er, null, 'weightedFinishAll: on change event fired')
+ t.is(onChangeName, name, 'weightedFinishAll: on change emits the correct name')
+ t.is(completion, 1, 'weightedFinishaAll: Finishing everything ')
+ t.is(track.completed(), 1, 'weightedFinishaAll: Finishing everything ')
+
+ track = new TrackerGroup(name)
+ a = track.newGroup('a', 10)
+ b = track.newGroup('b', 10)
+ var a1 = a.newItem('a.1', 10)
+ a1.completeWork(5)
+ t.is(track.completed(), 0.25, 'nested: Initially quarter done')
+ testEvent(track, 'change', afterNestedComplete)
+ b.finish()
+ }
+ function afterNestedComplete (er, onChangeName, completion) {
+ t.is(er, null, 'nestedComplete: on change event fired')
+ t.is(onChangeName, 'b', 'nestedComplete: on change emits the correct name')
+ t.is(completion, 0.75, 'nestedComplete: Finishing everything ')
+ t.is(track.completed(), 0.75, 'nestedComplete: Finishing everything ')
+ t.end()
+ }
+})
+
+test('cycles', function (t) {
+ var track = new TrackerGroup('top')
+ testCycle(track, track)
+ var layer1 = track.newGroup('layer1')
+ testCycle(layer1, track)
+ t.end()
+
+ function testCycle (addTo, toAdd) {
+ try {
+ addTo.addUnit(toAdd)
+ t.fail(toAdd.name)
+ } catch (ex) {
+ console.log(ex)
+ t.pass(toAdd.name)
+ }
+ }
+})
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js
new file mode 100644
index 000000000..65f04b037
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js
@@ -0,0 +1,51 @@
+'use strict'
+var test = require('tap').test
+var util = require('util')
+var stream = require('readable-stream')
+var TrackerStream = require('../index.js').TrackerStream
+var testEvent = require('./lib/test-event.js')
+
+var Sink = function () {
+ stream.Writable.apply(this, arguments)
+}
+util.inherits(Sink, stream.Writable)
+Sink.prototype._write = function (data, encoding, cb) {
+ cb()
+}
+
+test('TrackerStream', function (t) {
+ t.plan(9)
+
+ var name = 'test'
+ var track = new TrackerStream(name)
+
+ t.is(track.completed(), 0, 'Nothing todo is 0 completion')
+
+ var todo = 10
+ track = new TrackerStream(name, todo)
+ t.is(track.completed(), 0, 'Nothing done is 0 completion')
+
+ track.pipe(new Sink())
+
+ testEvent(track, 'change', afterCompleteWork)
+ track.write('0123456789')
+ function afterCompleteWork (er, onChangeName) {
+ t.is(er, null, 'write: on change event fired')
+ t.is(onChangeName, name, 'write: on change emits the correct name')
+ t.is(track.completed(), 1, 'write: 100% completed')
+
+ testEvent(track, 'change', afterAddWork)
+ track.addWork(10)
+ }
+ function afterAddWork (er, onChangeName) {
+ t.is(er, null, 'addWork: on change event fired')
+ t.is(track.completed(), 0.5, 'addWork: 50% completed')
+
+ testEvent(track, 'change', afterAllWork)
+ track.write('ABCDEFGHIJKLMNOPQRST')
+ }
+ function afterAllWork (er) {
+ t.is(er, null, 'allWork: on change event fired')
+ t.is(track.completed(), 1, 'allWork: 100% completed')
+ }
+})
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js
new file mode 100644
index 000000000..6f4368755
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js
@@ -0,0 +1,11 @@
+'use strict'
+var EventEmitter = require('events').EventEmitter
+var util = require('util')
+
+var trackerId = 0
+var TrackerBase = module.exports = function (name) {
+ EventEmitter.call(this)
+ this.id = ++trackerId
+ this.name = name
+}
+util.inherits(TrackerBase, EventEmitter)
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js
new file mode 100644
index 000000000..9759e1226
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js
@@ -0,0 +1,107 @@
+'use strict'
+var util = require('util')
+var TrackerBase = require('./tracker-base.js')
+var Tracker = require('./tracker.js')
+var TrackerStream = require('./tracker-stream.js')
+
+var TrackerGroup = module.exports = function (name) {
+ TrackerBase.call(this, name)
+ this.parentGroup = null
+ this.trackers = []
+ this.completion = {}
+ this.weight = {}
+ this.totalWeight = 0
+ this.finished = false
+ this.bubbleChange = bubbleChange(this)
+}
+util.inherits(TrackerGroup, TrackerBase)
+
+function bubbleChange (trackerGroup) {
+ return function (name, completed, tracker) {
+ trackerGroup.completion[tracker.id] = completed
+ if (trackerGroup.finished) return
+ trackerGroup.emit('change', name || trackerGroup.name, trackerGroup.completed(), trackerGroup)
+ }
+}
+
+TrackerGroup.prototype.nameInTree = function () {
+ var names = []
+ var from = this
+ while (from) {
+ names.unshift(from.name)
+ from = from.parentGroup
+ }
+ return names.join('/')
+}
+
+TrackerGroup.prototype.addUnit = function (unit, weight) {
+ if (unit.addUnit) {
+ var toTest = this
+ while (toTest) {
+ if (unit === toTest) {
+ throw new Error(
+ 'Attempted to add tracker group ' +
+ unit.name + ' to tree that already includes it ' +
+ this.nameInTree(this))
+ }
+ toTest = toTest.parentGroup
+ }
+ unit.parentGroup = this
+ }
+ this.weight[unit.id] = weight || 1
+ this.totalWeight += this.weight[unit.id]
+ this.trackers.push(unit)
+ this.completion[unit.id] = unit.completed()
+ unit.on('change', this.bubbleChange)
+ if (!this.finished) this.emit('change', unit.name, this.completion[unit.id], unit)
+ return unit
+}
+
+TrackerGroup.prototype.completed = function () {
+ if (this.trackers.length === 0) return 0
+ var valPerWeight = 1 / this.totalWeight
+ var completed = 0
+ for (var ii = 0; ii < this.trackers.length; ii++) {
+ var trackerId = this.trackers[ii].id
+ completed += valPerWeight * this.weight[trackerId] * this.completion[trackerId]
+ }
+ return completed
+}
+
+TrackerGroup.prototype.newGroup = function (name, weight) {
+ return this.addUnit(new TrackerGroup(name), weight)
+}
+
+TrackerGroup.prototype.newItem = function (name, todo, weight) {
+ return this.addUnit(new Tracker(name, todo), weight)
+}
+
+TrackerGroup.prototype.newStream = function (name, todo, weight) {
+ return this.addUnit(new TrackerStream(name, todo), weight)
+}
+
+TrackerGroup.prototype.finish = function () {
+ this.finished = true
+ if (!this.trackers.length) this.addUnit(new Tracker(), 1, true)
+ for (var ii = 0; ii < this.trackers.length; ii++) {
+ var tracker = this.trackers[ii]
+ tracker.finish()
+ tracker.removeListener('change', this.bubbleChange)
+ }
+ this.emit('change', this.name, 1, this)
+}
+
+var buffer = ' '
+TrackerGroup.prototype.debug = function (depth) {
+ depth = depth || 0
+ var indent = depth ? buffer.substr(0, depth) : ''
+ var output = indent + (this.name || 'top') + ': ' + this.completed() + '\n'
+ this.trackers.forEach(function (tracker) {
+ if (tracker instanceof TrackerGroup) {
+ output += tracker.debug(depth + 1)
+ } else {
+ output += indent + ' ' + tracker.name + ': ' + tracker.completed() + '\n'
+ }
+ })
+ return output
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js
new file mode 100644
index 000000000..fb9598ed4
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js
@@ -0,0 +1,35 @@
+'use strict'
+var util = require('util')
+var stream = require('readable-stream')
+var delegate = require('delegates')
+var Tracker = require('./tracker.js')
+
+var TrackerStream = module.exports = function (name, size, options) {
+ stream.Transform.call(this, options)
+ this.tracker = new Tracker(name, size)
+ this.name = name
+ this.id = this.tracker.id
+ this.tracker.on('change', delegateChange(this))
+}
+util.inherits(TrackerStream, stream.Transform)
+
+function delegateChange (trackerStream) {
+ return function (name, completion, tracker) {
+ trackerStream.emit('change', name, completion, trackerStream)
+ }
+}
+
+TrackerStream.prototype._transform = function (data, encoding, cb) {
+ this.tracker.completeWork(data.length ? data.length : 1)
+ this.push(data)
+ cb()
+}
+
+TrackerStream.prototype._flush = function (cb) {
+ this.tracker.finish()
+ cb()
+}
+
+delegate(TrackerStream.prototype, 'tracker')
+ .method('completed')
+ .method('addWork')
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js
new file mode 100644
index 000000000..68c2339b4
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js
@@ -0,0 +1,30 @@
+'use strict'
+var util = require('util')
+var TrackerBase = require('./tracker-base.js')
+
+var Tracker = module.exports = function (name, todo) {
+ TrackerBase.call(this, name)
+ this.workDone = 0
+ this.workTodo = todo || 0
+}
+util.inherits(Tracker, TrackerBase)
+
+Tracker.prototype.completed = function () {
+ return this.workTodo === 0 ? 0 : this.workDone / this.workTodo
+}
+
+Tracker.prototype.addWork = function (work) {
+ this.workTodo += work
+ this.emit('change', this.name, this.completed(), this)
+}
+
+Tracker.prototype.completeWork = function (work) {
+ this.workDone += work
+ if (this.workDone > this.workTodo) this.workDone = this.workTodo
+ this.emit('change', this.name, this.completed(), this)
+}
+
+Tracker.prototype.finish = function () {
+ this.workTodo = this.workDone = 1
+ this.emit('change', this.name, 1, this)
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/.npmignore b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/.npmignore
new file mode 100644
index 000000000..df22a16c6
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/.npmignore
@@ -0,0 +1,32 @@
+# Logs
+logs
+*.log
+
+# Runtime data
+pids
+*.pid
+*.seed
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+
+# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Compiled binary addons (http://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directory
+# Commenting this out is preferred by some people, see
+# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git-
+node_modules
+
+# Users Environment Variables
+.lock-wscript
+
+# Editor cruft
+*~
+.#*
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/LICENSE
new file mode 100644
index 000000000..e75605296
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/LICENSE
@@ -0,0 +1,13 @@
+Copyright (c) 2014, Rebecca Turner <me@re-becca.org>
+
+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/node-gyp/node_modules/npmlog/node_modules/gauge/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/README.md
new file mode 100644
index 000000000..337dc9d8d
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/README.md
@@ -0,0 +1,166 @@
+gauge
+=====
+
+A nearly stateless terminal based horizontal gauge / progress bar.
+
+```javascript
+var Gauge = require("gauge")
+
+var gauge = new Gauge()
+
+gauge.show("test", 0.20)
+
+gauge.pulse("this")
+
+gauge.hide()
+```
+
+![](example.png)
+
+
+### `var gauge = new Gauge([options], [ansiStream])`
+
+* **options** – *(optional)* An option object. (See [below] for details.)
+* **ansiStream** – *(optional)* A stream that's been blessed by the [ansi]
+ module to include various commands for controlling the cursor in a terminal.
+
+[ansi]: https://www.npmjs.com/package/ansi
+[below]: #theme-objects
+
+Constructs a new gauge. Gauges are drawn on a single line, and are not drawn
+if the current terminal isn't a tty.
+
+If you resize your terminal in a way that can be detected then the gauge
+will be drawn at the new size. As a general rule, growing your terminal will
+be clean, but shrinking your terminal will result in cruft as we don't have
+enough information to know where what we wrote previously is now located.
+
+The **options** object can have the following properties, all of which are
+optional:
+
+* maxUpdateFrequency: defaults to 50 msec, the gauge will not be drawn more
+ than once in this period of time. This applies to `show` and `pulse`
+ calls, but if you `hide` and then `show` the gauge it will draw it
+ regardless of time since last draw.
+* theme: defaults to Gauge.unicode` if the terminal supports
+ unicode according to [has-unicode], otherwise it defaults to `Gauge.ascii`.
+ Details on the [theme object](#theme-objects) are documented elsewhere.
+* template: see [documentation elsewhere](#template-objects) for
+ defaults and details.
+
+[has-unicode]: https://www.npmjs.com/package/has-unicode
+
+If **ansiStream** isn't passed in, then one will be constructed from stderr
+with `ansi(process.stderr)`.
+
+### `gauge.show([name, [completed]])`
+
+* **name** – *(optional)* The name of the current thing contributing to progress. Defaults to the last value used, or "".
+* **completed** – *(optional)* The portion completed as a value between 0 and 1. Defaults to the last value used, or 0.
+
+If `process.stdout.isTTY` is false then this does nothing. If completed is 0
+and `gauge.pulse` has never been called, then similarly nothing will be printed.
+
+If `maxUpdateFrequency` msec haven't passed since the last call to `show` or
+`pulse` then similarly, nothing will be printed. (Actually, the update is
+deferred until `maxUpdateFrequency` msec have passed and if nothing else has
+happened, the gauge update will happen.)
+
+### `gauge.hide()`
+
+Removes the gauge from the terminal.
+
+### `gauge.pulse([name])`
+
+* **name** – *(optional)* The specific thing that triggered this pulse
+
+Spins the spinner in the gauge to show output. If **name** is included then
+it will be combined with the last name passed to `gauge.show` using the
+subsection property of the theme (typically a right facing arrow).
+
+### `gauge.disable()`
+
+Hides the gauge and ignores further calls to `show` or `pulse`.
+
+### `gauge.enable()`
+
+Shows the gauge and resumes updating when `show` or `pulse` is called.
+
+### `gauge.setTheme(theme)`
+
+Change the active theme, will be displayed with the next show or pulse
+
+### `gauge.setTemplate(template)`
+
+Change the active template, will be displayed with the next show or pulse
+
+### Theme Objects
+
+There are two theme objects available as a part of the module, `Gauge.unicode` and `Gauge.ascii`.
+Theme objects have the follow properties:
+
+| Property | Unicode | ASCII |
+| ---------- | ------- | ----- |
+| startgroup | ╢ | \| |
+| endgroup | ╟ | \| |
+| complete | █ | # |
+| incomplete | ░ | - |
+| spinner | ▀▐▄▌ | -\\\|/ |
+| subsection | → | -> |
+
+*startgroup*, *endgroup* and *subsection* can be as many characters as you want.
+
+*complete* and *incomplete* should be a single character width each.
+
+*spinner* is a list of characters to use in turn when displaying an activity
+spinner. The Gauge will spin as many characters as you give here.
+
+### Template Objects
+
+A template is an array of objects and strings that, after being evaluated,
+will be turned into the gauge line. The default template is:
+
+```javascript
+[
+ {type: "name", separated: true, maxLength: 25, minLength: 25, align: "left"},
+ {type: "spinner", separated: true},
+ {type: "startgroup"},
+ {type: "completionbar"},
+ {type: "endgroup"}
+]
+```
+
+The various template elements can either be **plain strings**, in which case they will
+be be included verbatum in the output.
+
+If the template element is an object, it can have the following keys:
+
+* *type* can be:
+ * `name` – The most recent name passed to `show`; if this is in response to a
+ `pulse` then the name passed to `pulse` will be appended along with the
+ subsection property from the theme.
+ * `spinner` – If you've ever called `pulse` this will be one of the characters
+ from the spinner property of the theme.
+ * `startgroup` – The `startgroup` property from the theme.
+ * `completionbar` – This progress bar itself
+ * `endgroup` – The `endgroup` property from the theme.
+* *separated* – If true, the element will be separated with spaces from things on
+ either side (and margins count as space, so it won't be indented), but only
+ if its included.
+* *maxLength* – The maximum length for this element. If its value is longer it
+ will be truncated.
+* *minLength* – The minimum length for this element. If its value is shorter it
+ will be padded according to the *align* value.
+* *align* – (Default: left) Possible values "left", "right" and "center". Works
+ as you'd expect from word processors.
+* *length* – Provides a single value for both *minLength* and *maxLength*. If both
+ *length* and *minLength or *maxLength* are specifed then the latter take precedence.
+
+### Tracking Completion
+
+If you have more than one thing going on that you want to track completion
+of, you may find the related [are-we-there-yet] helpful. It's `change`
+event can be wired up to the `show` method to get a more traditional
+progress bar interface.
+
+[are-we-there-yet]: https://www.npmjs.com/package/are-we-there-yet
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/example.png b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/example.png
new file mode 100644
index 000000000..2667cac45
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/example.png
Binary files differ
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE
new file mode 100644
index 000000000..e0c69d560
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE
@@ -0,0 +1,47 @@
+Copyright jQuery Foundation and other contributors <https://jquery.org/>
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/lodash/lodash
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+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.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code displayed within the prose of the
+documentation.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+Files located in the node_modules and vendor directories are externally
+maintained libraries used by this software which have their own
+licenses; we recommend you read them, as their terms may differ from the
+terms above.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md
new file mode 100644
index 000000000..57fb58591
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md
@@ -0,0 +1,18 @@
+# lodash.pad v4.4.0
+
+The [lodash](https://lodash.com/) method `_.pad` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.pad
+```
+
+In Node.js:
+```js
+var pad = require('lodash.pad');
+```
+
+See the [documentation](https://lodash.com/docs#pad) or [package source](https://github.com/lodash/lodash/blob/4.4.0-npm-packages/lodash.pad) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js
new file mode 100644
index 000000000..876fbb967
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js
@@ -0,0 +1,434 @@
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+var baseSlice = require('lodash._baseslice'),
+ baseToString = require('lodash._basetostring'),
+ toString = require('lodash.tostring');
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0,
+ MAX_SAFE_INTEGER = 9007199254740991,
+ MAX_INTEGER = 1.7976931348623157e+308,
+ NAN = 0 / 0;
+
+/** `Object#toString` result references. */
+var funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]',
+ symbolTag = '[object Symbol]';
+
+/** Used to match leading and trailing whitespace. */
+var reTrim = /^\s+|\s+$/g;
+
+/** Used to detect bad signed hexadecimal string values. */
+var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
+
+/** Used to detect binary string values. */
+var reIsBinary = /^0b[01]+$/i;
+
+/** Used to detect octal string values. */
+var reIsOctal = /^0o[0-7]+$/i;
+
+/** Used to compose unicode character classes. */
+var rsAstralRange = '\\ud800-\\udfff',
+ rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
+ rsComboSymbolsRange = '\\u20d0-\\u20f0',
+ rsVarRange = '\\ufe0e\\ufe0f';
+
+/** Used to compose unicode capture groups. */
+var rsAstral = '[' + rsAstralRange + ']',
+ rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
+ rsNonAstral = '[^' + rsAstralRange + ']',
+ rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
+ rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
+ rsZWJ = '\\u200d';
+
+/** Used to compose unicode regexes. */
+var reOptMod = rsModifier + '?',
+ rsOptVar = '[' + rsVarRange + ']?',
+ rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
+ rsSeq = rsOptVar + reOptMod + rsOptJoin,
+ rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
+
+/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
+var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+
+/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
+var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
+
+/** Built-in method references without a dependency on `root`. */
+var freeParseInt = parseInt;
+
+/**
+ * Gets the number of symbols in `string`.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {number} Returns the string size.
+ */
+function stringSize(string) {
+ if (!(string && reHasComplexSymbol.test(string))) {
+ return string.length;
+ }
+ var result = reComplexSymbol.lastIndex = 0;
+ while (reComplexSymbol.test(string)) {
+ result++;
+ }
+ return result;
+}
+
+/**
+ * Converts `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function stringToArray(string) {
+ return string.match(reComplexSymbol);
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/* Built-in method references for those with the same name as other `lodash` methods. */
+var nativeCeil = Math.ceil,
+ nativeFloor = Math.floor;
+
+/**
+ * The base implementation of `_.repeat` which doesn't coerce arguments.
+ *
+ * @private
+ * @param {string} string The string to repeat.
+ * @param {number} n The number of times to repeat the string.
+ * @returns {string} Returns the repeated string.
+ */
+function baseRepeat(string, n) {
+ var result = '';
+ if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
+ return result;
+ }
+ // Leverage the exponentiation by squaring algorithm for a faster repeat.
+ // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
+ do {
+ if (n % 2) {
+ result += string;
+ }
+ n = nativeFloor(n / 2);
+ if (n) {
+ string += string;
+ }
+ } while (n);
+
+ return result;
+}
+
+/**
+ * Casts `array` to a slice if it's needed.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {number} start The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the cast slice.
+ */
+function castSlice(array, start, end) {
+ var length = array.length;
+ end = end === undefined ? length : end;
+ return (!start && end >= length) ? array : baseSlice(array, start, end);
+}
+
+/**
+ * Creates the padding for `string` based on `length`. The `chars` string
+ * is truncated if the number of characters exceeds `length`.
+ *
+ * @private
+ * @param {number} length The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padding for `string`.
+ */
+function createPadding(length, chars) {
+ chars = chars === undefined ? ' ' : baseToString(chars);
+
+ var charsLength = chars.length;
+ if (charsLength < 2) {
+ return charsLength ? baseRepeat(chars, length) : chars;
+ }
+ var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
+ return reHasComplexSymbol.test(chars)
+ ? castSlice(stringToArray(result), 0, length).join('')
+ : result.slice(0, length);
+}
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 8 which returns 'object' for typed array and weak map constructors,
+ // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ var tag = isObject(value) ? objectToString.call(value) : '';
+ return tag == funcTag || tag == genTag;
+}
+
+/**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+/**
+ * Converts `value` to a finite number.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.12.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {number} Returns the converted number.
+ * @example
+ *
+ * _.toFinite(3.2);
+ * // => 3.2
+ *
+ * _.toFinite(Number.MIN_VALUE);
+ * // => 5e-324
+ *
+ * _.toFinite(Infinity);
+ * // => 1.7976931348623157e+308
+ *
+ * _.toFinite('3.2');
+ * // => 3.2
+ */
+function toFinite(value) {
+ if (!value) {
+ return value === 0 ? value : 0;
+ }
+ value = toNumber(value);
+ if (value === INFINITY || value === -INFINITY) {
+ var sign = (value < 0 ? -1 : 1);
+ return sign * MAX_INTEGER;
+ }
+ return value === value ? value : 0;
+}
+
+/**
+ * Converts `value` to an integer.
+ *
+ * **Note:** This function is loosely based on
+ * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {number} Returns the converted integer.
+ * @example
+ *
+ * _.toInteger(3.2);
+ * // => 3
+ *
+ * _.toInteger(Number.MIN_VALUE);
+ * // => 0
+ *
+ * _.toInteger(Infinity);
+ * // => 1.7976931348623157e+308
+ *
+ * _.toInteger('3.2');
+ * // => 3
+ */
+function toInteger(value) {
+ var result = toFinite(value),
+ remainder = result % 1;
+
+ return result === result ? (remainder ? result - remainder : result) : 0;
+}
+
+/**
+ * Converts `value` to a number.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {number} Returns the number.
+ * @example
+ *
+ * _.toNumber(3.2);
+ * // => 3.2
+ *
+ * _.toNumber(Number.MIN_VALUE);
+ * // => 5e-324
+ *
+ * _.toNumber(Infinity);
+ * // => Infinity
+ *
+ * _.toNumber('3.2');
+ * // => 3.2
+ */
+function toNumber(value) {
+ if (typeof value == 'number') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return NAN;
+ }
+ if (isObject(value)) {
+ var other = isFunction(value.valueOf) ? value.valueOf() : value;
+ value = isObject(other) ? (other + '') : other;
+ }
+ if (typeof value != 'string') {
+ return value === 0 ? value : +value;
+ }
+ value = value.replace(reTrim, '');
+ var isBinary = reIsBinary.test(value);
+ return (isBinary || reIsOctal.test(value))
+ ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
+ : (reIsBadHex.test(value) ? NAN : +value);
+}
+
+/**
+ * Pads `string` on the left and right sides if it's shorter than `length`.
+ * Padding characters are truncated if they can't be evenly divided by `length`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category String
+ * @param {string} [string=''] The string to pad.
+ * @param {number} [length=0] The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padded string.
+ * @example
+ *
+ * _.pad('abc', 8);
+ * // => ' abc '
+ *
+ * _.pad('abc', 8, '_-');
+ * // => '_-abc_-_'
+ *
+ * _.pad('abc', 3);
+ * // => 'abc'
+ */
+function pad(string, length, chars) {
+ string = toString(string);
+ length = toInteger(length);
+
+ var strLength = length ? stringSize(string) : 0;
+ if (!length || strLength >= length) {
+ return string;
+ }
+ var mid = (length - strLength) / 2;
+ return (
+ createPadding(nativeFloor(mid), chars) +
+ string +
+ createPadding(nativeCeil(mid), chars)
+ );
+}
+
+module.exports = pad;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/LICENSE
new file mode 100644
index 000000000..b054ca5a3
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/LICENSE
@@ -0,0 +1,22 @@
+Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+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/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/README.md
new file mode 100644
index 000000000..8cd4181cc
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/README.md
@@ -0,0 +1,18 @@
+# lodash._baseslice v4.0.0
+
+The internal [lodash](https://lodash.com/) function `baseSlice` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash._baseslice
+```
+
+In Node.js:
+```js
+var baseSlice = require('lodash._baseslice');
+```
+
+See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._baseslice) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/index.js
new file mode 100644
index 000000000..59293c3d0
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/index.js
@@ -0,0 +1,40 @@
+/**
+ * lodash 4.0.0 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+
+/**
+ * The base implementation of `_.slice` without an iteratee call guard.
+ *
+ * @private
+ * @param {Array} array The array to slice.
+ * @param {number} [start=0] The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the slice of `array`.
+ */
+function baseSlice(array, start, end) {
+ var index = -1,
+ length = array.length;
+
+ if (start < 0) {
+ start = -start > length ? 0 : (length + start);
+ }
+ end = end > length ? length : end;
+ if (end < 0) {
+ end += length;
+ }
+ length = start > end ? 0 : ((end - start) >>> 0);
+ start >>>= 0;
+
+ var result = Array(length);
+ while (++index < length) {
+ result[index] = array[index + start];
+ }
+ return result;
+}
+
+module.exports = baseSlice;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/package.json
new file mode 100644
index 000000000..3be3e7b99
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/package.json
@@ -0,0 +1,104 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash._baseslice",
+ "raw": "lodash._baseslice@~4.0.0",
+ "rawSpec": "~4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <4.1.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ]
+ ],
+ "_from": "lodash._baseslice@>=4.0.0 <4.1.0",
+ "_id": "lodash._baseslice@4.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.pad/lodash._baseslice",
+ "_nodeVersion": "5.4.0",
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.14.15",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash._baseslice",
+ "raw": "lodash._baseslice@~4.0.0",
+ "rawSpec": "~4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <4.1.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge/lodash.pad"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz",
+ "_shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "_shrinkwrap": null,
+ "_spec": "lodash._baseslice@~4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine@iceddev.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The internal lodash function `baseSlice` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "tarball": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine@iceddev.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash._baseslice",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.0.0"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/LICENSE
new file mode 100644
index 000000000..e0c69d560
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/LICENSE
@@ -0,0 +1,47 @@
+Copyright jQuery Foundation and other contributors <https://jquery.org/>
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/lodash/lodash
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+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.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code displayed within the prose of the
+documentation.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+Files located in the node_modules and vendor directories are externally
+maintained libraries used by this software which have their own
+licenses; we recommend you read them, as their terms may differ from the
+terms above.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/README.md
new file mode 100644
index 000000000..ba060c94d
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/README.md
@@ -0,0 +1,18 @@
+# lodash._basetostring v4.12.0
+
+The internal [lodash](https://lodash.com/) function `baseToString` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash._basetostring
+```
+
+In Node.js:
+```js
+var baseToString = require('lodash._basetostring');
+```
+
+See the [package source](https://github.com/lodash/lodash/blob/4.12.0-npm-packages/lodash._basetostring) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/index.js
new file mode 100644
index 000000000..d58481074
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/index.js
@@ -0,0 +1,153 @@
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0;
+
+/** `Object#toString` result references. */
+var symbolTag = '[object Symbol]';
+
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var Symbol = root.Symbol;
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+/**
+ * The base implementation of `_.toString` which doesn't convert nullish
+ * values to empty strings.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ */
+function baseToString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+module.exports = baseToString;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/package.json
new file mode 100644
index 000000000..afe25bfc7
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/package.json
@@ -0,0 +1,108 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash._basetostring",
+ "raw": "lodash._basetostring@~4.12.0",
+ "rawSpec": "~4.12.0",
+ "scope": null,
+ "spec": ">=4.12.0 <4.13.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ]
+ ],
+ "_from": "lodash._basetostring@>=4.12.0 <4.13.0",
+ "_id": "lodash._basetostring@4.12.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.pad/lodash._basetostring",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash._basetostring-4.12.0.tgz_1463062033665_0.6722894972190261"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.15.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash._basetostring",
+ "raw": "lodash._basetostring@~4.12.0",
+ "rawSpec": "~4.12.0",
+ "scope": null,
+ "spec": ">=4.12.0 <4.13.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge/lodash.pad"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz",
+ "_shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "_shrinkwrap": null,
+ "_spec": "lodash._basetostring@~4.12.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The internal lodash function `baseToString` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "tarball": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine@iceddev.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash._basetostring",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.12.0"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE
new file mode 100644
index 000000000..e0c69d560
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE
@@ -0,0 +1,47 @@
+Copyright jQuery Foundation and other contributors <https://jquery.org/>
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/lodash/lodash
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+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.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code displayed within the prose of the
+documentation.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+Files located in the node_modules and vendor directories are externally
+maintained libraries used by this software which have their own
+licenses; we recommend you read them, as their terms may differ from the
+terms above.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md
new file mode 100644
index 000000000..75aa6b069
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md
@@ -0,0 +1,18 @@
+# lodash.tostring v4.1.3
+
+The [lodash](https://lodash.com/) method `_.toString` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.tostring
+```
+
+In Node.js:
+```js
+var toString = require('lodash.tostring');
+```
+
+See the [documentation](https://lodash.com/docs#toString) or [package source](https://github.com/lodash/lodash/blob/4.1.3-npm-packages/lodash.tostring) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js
new file mode 100644
index 000000000..8a2cde392
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js
@@ -0,0 +1,178 @@
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0;
+
+/** `Object#toString` result references. */
+var symbolTag = '[object Symbol]';
+
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var Symbol = root.Symbol;
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+/**
+ * The base implementation of `_.toString` which doesn't convert nullish
+ * values to empty strings.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ */
+function baseToString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+/**
+ * Converts `value` to a string. An empty string is returned for `null`
+ * and `undefined` values. The sign of `-0` is preserved.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ * @example
+ *
+ * _.toString(null);
+ * // => ''
+ *
+ * _.toString(-0);
+ * // => '-0'
+ *
+ * _.toString([1, 2, 3]);
+ * // => '1,2,3'
+ */
+function toString(value) {
+ return value == null ? '' : baseToString(value);
+}
+
+module.exports = toString;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json
new file mode 100644
index 000000000..9b829d126
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json
@@ -0,0 +1,112 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash.tostring",
+ "raw": "lodash.tostring@^4.0.0",
+ "rawSpec": "^4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ]
+ ],
+ "_from": "lodash.tostring@>=4.0.0 <5.0.0",
+ "_id": "lodash.tostring@4.1.3",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.pad/lodash.tostring",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash.tostring-4.1.3.tgz_1463062634002_0.7874096168670803"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.15.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash.tostring",
+ "raw": "lodash.tostring@^4.0.0",
+ "rawSpec": "^4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge/lodash.pad"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz",
+ "_shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "_shrinkwrap": null,
+ "_spec": "lodash.tostring@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The lodash method `_.toString` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "tarball": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "tostring"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash.tostring",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.1.3"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json
new file mode 100644
index 000000000..077525ba2
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json
@@ -0,0 +1,116 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash.pad",
+ "raw": "lodash.pad@^4.1.0",
+ "rawSpec": "^4.1.0",
+ "scope": null,
+ "spec": ">=4.1.0 <5.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge"
+ ]
+ ],
+ "_from": "lodash.pad@>=4.1.0 <5.0.0",
+ "_id": "lodash.pad@4.4.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.pad",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.pad-4.4.0.tgz_1463062450475_0.3613762252498418"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.15.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash.pad",
+ "raw": "lodash.pad@^4.1.0",
+ "rawSpec": "^4.1.0",
+ "scope": null,
+ "spec": ">=4.1.0 <5.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.4.0.tgz",
+ "_shasum": "faa38df26c0a69ec5086a82246c958e150dcb1ab",
+ "_shrinkwrap": null,
+ "_spec": "lodash.pad@^4.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {
+ "lodash._baseslice": "~4.0.0",
+ "lodash._basetostring": "~4.12.0",
+ "lodash.tostring": "^4.0.0"
+ },
+ "description": "The lodash method `_.pad` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "faa38df26c0a69ec5086a82246c958e150dcb1ab",
+ "tarball": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.4.0.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "pad"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine@iceddev.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash.pad",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.4.0"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE
new file mode 100644
index 000000000..e0c69d560
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE
@@ -0,0 +1,47 @@
+Copyright jQuery Foundation and other contributors <https://jquery.org/>
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/lodash/lodash
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+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.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code displayed within the prose of the
+documentation.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+Files located in the node_modules and vendor directories are externally
+maintained libraries used by this software which have their own
+licenses; we recommend you read them, as their terms may differ from the
+terms above.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md
new file mode 100644
index 000000000..909eef8f2
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md
@@ -0,0 +1,18 @@
+# lodash.padend v4.5.0
+
+The [lodash](https://lodash.com/) method `_.padEnd` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.padend
+```
+
+In Node.js:
+```js
+var padEnd = require('lodash.padend');
+```
+
+See the [documentation](https://lodash.com/docs#padEnd) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.padend) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js
new file mode 100644
index 000000000..5af50372e
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js
@@ -0,0 +1,428 @@
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+var baseSlice = require('lodash._baseslice'),
+ baseToString = require('lodash._basetostring'),
+ toString = require('lodash.tostring');
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0,
+ MAX_SAFE_INTEGER = 9007199254740991,
+ MAX_INTEGER = 1.7976931348623157e+308,
+ NAN = 0 / 0;
+
+/** `Object#toString` result references. */
+var funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]',
+ symbolTag = '[object Symbol]';
+
+/** Used to match leading and trailing whitespace. */
+var reTrim = /^\s+|\s+$/g;
+
+/** Used to detect bad signed hexadecimal string values. */
+var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
+
+/** Used to detect binary string values. */
+var reIsBinary = /^0b[01]+$/i;
+
+/** Used to detect octal string values. */
+var reIsOctal = /^0o[0-7]+$/i;
+
+/** Used to compose unicode character classes. */
+var rsAstralRange = '\\ud800-\\udfff',
+ rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
+ rsComboSymbolsRange = '\\u20d0-\\u20f0',
+ rsVarRange = '\\ufe0e\\ufe0f';
+
+/** Used to compose unicode capture groups. */
+var rsAstral = '[' + rsAstralRange + ']',
+ rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
+ rsNonAstral = '[^' + rsAstralRange + ']',
+ rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
+ rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
+ rsZWJ = '\\u200d';
+
+/** Used to compose unicode regexes. */
+var reOptMod = rsModifier + '?',
+ rsOptVar = '[' + rsVarRange + ']?',
+ rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
+ rsSeq = rsOptVar + reOptMod + rsOptJoin,
+ rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
+
+/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
+var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+
+/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
+var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
+
+/** Built-in method references without a dependency on `root`. */
+var freeParseInt = parseInt;
+
+/**
+ * Gets the number of symbols in `string`.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {number} Returns the string size.
+ */
+function stringSize(string) {
+ if (!(string && reHasComplexSymbol.test(string))) {
+ return string.length;
+ }
+ var result = reComplexSymbol.lastIndex = 0;
+ while (reComplexSymbol.test(string)) {
+ result++;
+ }
+ return result;
+}
+
+/**
+ * Converts `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function stringToArray(string) {
+ return string.match(reComplexSymbol);
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/* Built-in method references for those with the same name as other `lodash` methods. */
+var nativeCeil = Math.ceil,
+ nativeFloor = Math.floor;
+
+/**
+ * The base implementation of `_.repeat` which doesn't coerce arguments.
+ *
+ * @private
+ * @param {string} string The string to repeat.
+ * @param {number} n The number of times to repeat the string.
+ * @returns {string} Returns the repeated string.
+ */
+function baseRepeat(string, n) {
+ var result = '';
+ if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
+ return result;
+ }
+ // Leverage the exponentiation by squaring algorithm for a faster repeat.
+ // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
+ do {
+ if (n % 2) {
+ result += string;
+ }
+ n = nativeFloor(n / 2);
+ if (n) {
+ string += string;
+ }
+ } while (n);
+
+ return result;
+}
+
+/**
+ * Casts `array` to a slice if it's needed.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {number} start The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the cast slice.
+ */
+function castSlice(array, start, end) {
+ var length = array.length;
+ end = end === undefined ? length : end;
+ return (!start && end >= length) ? array : baseSlice(array, start, end);
+}
+
+/**
+ * Creates the padding for `string` based on `length`. The `chars` string
+ * is truncated if the number of characters exceeds `length`.
+ *
+ * @private
+ * @param {number} length The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padding for `string`.
+ */
+function createPadding(length, chars) {
+ chars = chars === undefined ? ' ' : baseToString(chars);
+
+ var charsLength = chars.length;
+ if (charsLength < 2) {
+ return charsLength ? baseRepeat(chars, length) : chars;
+ }
+ var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
+ return reHasComplexSymbol.test(chars)
+ ? castSlice(stringToArray(result), 0, length).join('')
+ : result.slice(0, length);
+}
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 8 which returns 'object' for typed array and weak map constructors,
+ // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ var tag = isObject(value) ? objectToString.call(value) : '';
+ return tag == funcTag || tag == genTag;
+}
+
+/**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+/**
+ * Converts `value` to a finite number.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.12.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {number} Returns the converted number.
+ * @example
+ *
+ * _.toFinite(3.2);
+ * // => 3.2
+ *
+ * _.toFinite(Number.MIN_VALUE);
+ * // => 5e-324
+ *
+ * _.toFinite(Infinity);
+ * // => 1.7976931348623157e+308
+ *
+ * _.toFinite('3.2');
+ * // => 3.2
+ */
+function toFinite(value) {
+ if (!value) {
+ return value === 0 ? value : 0;
+ }
+ value = toNumber(value);
+ if (value === INFINITY || value === -INFINITY) {
+ var sign = (value < 0 ? -1 : 1);
+ return sign * MAX_INTEGER;
+ }
+ return value === value ? value : 0;
+}
+
+/**
+ * Converts `value` to an integer.
+ *
+ * **Note:** This function is loosely based on
+ * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {number} Returns the converted integer.
+ * @example
+ *
+ * _.toInteger(3.2);
+ * // => 3
+ *
+ * _.toInteger(Number.MIN_VALUE);
+ * // => 0
+ *
+ * _.toInteger(Infinity);
+ * // => 1.7976931348623157e+308
+ *
+ * _.toInteger('3.2');
+ * // => 3
+ */
+function toInteger(value) {
+ var result = toFinite(value),
+ remainder = result % 1;
+
+ return result === result ? (remainder ? result - remainder : result) : 0;
+}
+
+/**
+ * Converts `value` to a number.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {number} Returns the number.
+ * @example
+ *
+ * _.toNumber(3.2);
+ * // => 3.2
+ *
+ * _.toNumber(Number.MIN_VALUE);
+ * // => 5e-324
+ *
+ * _.toNumber(Infinity);
+ * // => Infinity
+ *
+ * _.toNumber('3.2');
+ * // => 3.2
+ */
+function toNumber(value) {
+ if (typeof value == 'number') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return NAN;
+ }
+ if (isObject(value)) {
+ var other = isFunction(value.valueOf) ? value.valueOf() : value;
+ value = isObject(other) ? (other + '') : other;
+ }
+ if (typeof value != 'string') {
+ return value === 0 ? value : +value;
+ }
+ value = value.replace(reTrim, '');
+ var isBinary = reIsBinary.test(value);
+ return (isBinary || reIsOctal.test(value))
+ ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
+ : (reIsBadHex.test(value) ? NAN : +value);
+}
+
+/**
+ * Pads `string` on the right side if it's shorter than `length`. Padding
+ * characters are truncated if they exceed `length`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category String
+ * @param {string} [string=''] The string to pad.
+ * @param {number} [length=0] The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padded string.
+ * @example
+ *
+ * _.padEnd('abc', 6);
+ * // => 'abc '
+ *
+ * _.padEnd('abc', 6, '_-');
+ * // => 'abc_-_'
+ *
+ * _.padEnd('abc', 3);
+ * // => 'abc'
+ */
+function padEnd(string, length, chars) {
+ string = toString(string);
+ length = toInteger(length);
+
+ var strLength = length ? stringSize(string) : 0;
+ return (length && strLength < length)
+ ? (string + createPadding(length - strLength, chars))
+ : string;
+}
+
+module.exports = padEnd;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/LICENSE
new file mode 100644
index 000000000..b054ca5a3
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/LICENSE
@@ -0,0 +1,22 @@
+Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+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/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/README.md
new file mode 100644
index 000000000..8cd4181cc
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/README.md
@@ -0,0 +1,18 @@
+# lodash._baseslice v4.0.0
+
+The internal [lodash](https://lodash.com/) function `baseSlice` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash._baseslice
+```
+
+In Node.js:
+```js
+var baseSlice = require('lodash._baseslice');
+```
+
+See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._baseslice) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/index.js
new file mode 100644
index 000000000..59293c3d0
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/index.js
@@ -0,0 +1,40 @@
+/**
+ * lodash 4.0.0 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+
+/**
+ * The base implementation of `_.slice` without an iteratee call guard.
+ *
+ * @private
+ * @param {Array} array The array to slice.
+ * @param {number} [start=0] The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the slice of `array`.
+ */
+function baseSlice(array, start, end) {
+ var index = -1,
+ length = array.length;
+
+ if (start < 0) {
+ start = -start > length ? 0 : (length + start);
+ }
+ end = end > length ? length : end;
+ if (end < 0) {
+ end += length;
+ }
+ length = start > end ? 0 : ((end - start) >>> 0);
+ start >>>= 0;
+
+ var result = Array(length);
+ while (++index < length) {
+ result[index] = array[index + start];
+ }
+ return result;
+}
+
+module.exports = baseSlice;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/package.json
new file mode 100644
index 000000000..69dbad217
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/package.json
@@ -0,0 +1,115 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash._baseslice",
+ "raw": "lodash._baseslice@~4.0.0",
+ "rawSpec": "~4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <4.1.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ],
+ [
+ {
+ "name": "lodash._baseslice",
+ "raw": "lodash._baseslice@~4.0.0",
+ "rawSpec": "~4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <4.1.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend"
+ ]
+ ],
+ "_from": "lodash._baseslice@~4.0.0",
+ "_id": "lodash._baseslice@4.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.padend/lodash._baseslice",
+ "_nodeVersion": "5.4.0",
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.14.15",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash._baseslice",
+ "raw": "lodash._baseslice@~4.0.0",
+ "rawSpec": "~4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <4.1.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge/lodash.padend"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz",
+ "_shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "_shrinkwrap": null,
+ "_spec": "lodash._baseslice@~4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine@iceddev.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The internal lodash function `baseSlice` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "tarball": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine@iceddev.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash._baseslice",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.0.0"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/LICENSE
new file mode 100644
index 000000000..e0c69d560
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/LICENSE
@@ -0,0 +1,47 @@
+Copyright jQuery Foundation and other contributors <https://jquery.org/>
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/lodash/lodash
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+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.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code displayed within the prose of the
+documentation.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+Files located in the node_modules and vendor directories are externally
+maintained libraries used by this software which have their own
+licenses; we recommend you read them, as their terms may differ from the
+terms above.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/README.md
new file mode 100644
index 000000000..ba060c94d
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/README.md
@@ -0,0 +1,18 @@
+# lodash._basetostring v4.12.0
+
+The internal [lodash](https://lodash.com/) function `baseToString` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash._basetostring
+```
+
+In Node.js:
+```js
+var baseToString = require('lodash._basetostring');
+```
+
+See the [package source](https://github.com/lodash/lodash/blob/4.12.0-npm-packages/lodash._basetostring) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/index.js
new file mode 100644
index 000000000..d58481074
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/index.js
@@ -0,0 +1,153 @@
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0;
+
+/** `Object#toString` result references. */
+var symbolTag = '[object Symbol]';
+
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var Symbol = root.Symbol;
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+/**
+ * The base implementation of `_.toString` which doesn't convert nullish
+ * values to empty strings.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ */
+function baseToString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+module.exports = baseToString;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/package.json
new file mode 100644
index 000000000..11810e229
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/package.json
@@ -0,0 +1,119 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash._basetostring",
+ "raw": "lodash._basetostring@~4.12.0",
+ "rawSpec": "~4.12.0",
+ "scope": null,
+ "spec": ">=4.12.0 <4.13.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ],
+ [
+ {
+ "name": "lodash._basetostring",
+ "raw": "lodash._basetostring@~4.12.0",
+ "rawSpec": "~4.12.0",
+ "scope": null,
+ "spec": ">=4.12.0 <4.13.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend"
+ ]
+ ],
+ "_from": "lodash._basetostring@~4.12.0",
+ "_id": "lodash._basetostring@4.12.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.padend/lodash._basetostring",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash._basetostring-4.12.0.tgz_1463062033665_0.6722894972190261"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.15.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash._basetostring",
+ "raw": "lodash._basetostring@~4.12.0",
+ "rawSpec": "~4.12.0",
+ "scope": null,
+ "spec": ">=4.12.0 <4.13.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge/lodash.padend"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz",
+ "_shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "_shrinkwrap": null,
+ "_spec": "lodash._basetostring@~4.12.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The internal lodash function `baseToString` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "tarball": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine@iceddev.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash._basetostring",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.12.0"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE
new file mode 100644
index 000000000..e0c69d560
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE
@@ -0,0 +1,47 @@
+Copyright jQuery Foundation and other contributors <https://jquery.org/>
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/lodash/lodash
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+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.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code displayed within the prose of the
+documentation.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+Files located in the node_modules and vendor directories are externally
+maintained libraries used by this software which have their own
+licenses; we recommend you read them, as their terms may differ from the
+terms above.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md
new file mode 100644
index 000000000..75aa6b069
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md
@@ -0,0 +1,18 @@
+# lodash.tostring v4.1.3
+
+The [lodash](https://lodash.com/) method `_.toString` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.tostring
+```
+
+In Node.js:
+```js
+var toString = require('lodash.tostring');
+```
+
+See the [documentation](https://lodash.com/docs#toString) or [package source](https://github.com/lodash/lodash/blob/4.1.3-npm-packages/lodash.tostring) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js
new file mode 100644
index 000000000..8a2cde392
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js
@@ -0,0 +1,178 @@
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0;
+
+/** `Object#toString` result references. */
+var symbolTag = '[object Symbol]';
+
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var Symbol = root.Symbol;
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+/**
+ * The base implementation of `_.toString` which doesn't convert nullish
+ * values to empty strings.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ */
+function baseToString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+/**
+ * Converts `value` to a string. An empty string is returned for `null`
+ * and `undefined` values. The sign of `-0` is preserved.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ * @example
+ *
+ * _.toString(null);
+ * // => ''
+ *
+ * _.toString(-0);
+ * // => '-0'
+ *
+ * _.toString([1, 2, 3]);
+ * // => '1,2,3'
+ */
+function toString(value) {
+ return value == null ? '' : baseToString(value);
+}
+
+module.exports = toString;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json
new file mode 100644
index 000000000..176ced610
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json
@@ -0,0 +1,123 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash.tostring",
+ "raw": "lodash.tostring@^4.0.0",
+ "rawSpec": "^4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ],
+ [
+ {
+ "name": "lodash.tostring",
+ "raw": "lodash.tostring@^4.0.0",
+ "rawSpec": "^4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend"
+ ]
+ ],
+ "_from": "lodash.tostring@^4.0.0",
+ "_id": "lodash.tostring@4.1.3",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.padend/lodash.tostring",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash.tostring-4.1.3.tgz_1463062634002_0.7874096168670803"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.15.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash.tostring",
+ "raw": "lodash.tostring@^4.0.0",
+ "rawSpec": "^4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge/lodash.padend"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz",
+ "_shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "_shrinkwrap": null,
+ "_spec": "lodash.tostring@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The lodash method `_.toString` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "tarball": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "tostring"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash.tostring",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.1.3"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json
new file mode 100644
index 000000000..e00e08add
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json
@@ -0,0 +1,116 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash.padend",
+ "raw": "lodash.padend@^4.1.0",
+ "rawSpec": "^4.1.0",
+ "scope": null,
+ "spec": ">=4.1.0 <5.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge"
+ ]
+ ],
+ "_from": "lodash.padend@>=4.1.0 <5.0.0",
+ "_id": "lodash.padend@4.5.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.padend",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.padend-4.5.0.tgz_1463062451966_0.5034168094862252"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.15.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash.padend",
+ "raw": "lodash.padend@^4.1.0",
+ "rawSpec": "^4.1.0",
+ "scope": null,
+ "spec": ">=4.1.0 <5.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.5.0.tgz",
+ "_shasum": "a289e9377ee2e6de8ba7f11f3a8eb326070b7619",
+ "_shrinkwrap": null,
+ "_spec": "lodash.padend@^4.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {
+ "lodash._baseslice": "~4.0.0",
+ "lodash._basetostring": "~4.12.0",
+ "lodash.tostring": "^4.0.0"
+ },
+ "description": "The lodash method `_.padEnd` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "a289e9377ee2e6de8ba7f11f3a8eb326070b7619",
+ "tarball": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.5.0.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "padend"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash.padend",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.5.0"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE
new file mode 100644
index 000000000..e0c69d560
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE
@@ -0,0 +1,47 @@
+Copyright jQuery Foundation and other contributors <https://jquery.org/>
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/lodash/lodash
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+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.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code displayed within the prose of the
+documentation.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+Files located in the node_modules and vendor directories are externally
+maintained libraries used by this software which have their own
+licenses; we recommend you read them, as their terms may differ from the
+terms above.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md
new file mode 100644
index 000000000..bcc1c5aa6
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md
@@ -0,0 +1,18 @@
+# lodash.padstart v4.5.0
+
+The [lodash](https://lodash.com/) method `_.padStart` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.padstart
+```
+
+In Node.js:
+```js
+var padStart = require('lodash.padstart');
+```
+
+See the [documentation](https://lodash.com/docs#padStart) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.padstart) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js
new file mode 100644
index 000000000..456889536
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js
@@ -0,0 +1,428 @@
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+var baseSlice = require('lodash._baseslice'),
+ baseToString = require('lodash._basetostring'),
+ toString = require('lodash.tostring');
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0,
+ MAX_SAFE_INTEGER = 9007199254740991,
+ MAX_INTEGER = 1.7976931348623157e+308,
+ NAN = 0 / 0;
+
+/** `Object#toString` result references. */
+var funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]',
+ symbolTag = '[object Symbol]';
+
+/** Used to match leading and trailing whitespace. */
+var reTrim = /^\s+|\s+$/g;
+
+/** Used to detect bad signed hexadecimal string values. */
+var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
+
+/** Used to detect binary string values. */
+var reIsBinary = /^0b[01]+$/i;
+
+/** Used to detect octal string values. */
+var reIsOctal = /^0o[0-7]+$/i;
+
+/** Used to compose unicode character classes. */
+var rsAstralRange = '\\ud800-\\udfff',
+ rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
+ rsComboSymbolsRange = '\\u20d0-\\u20f0',
+ rsVarRange = '\\ufe0e\\ufe0f';
+
+/** Used to compose unicode capture groups. */
+var rsAstral = '[' + rsAstralRange + ']',
+ rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
+ rsNonAstral = '[^' + rsAstralRange + ']',
+ rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
+ rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
+ rsZWJ = '\\u200d';
+
+/** Used to compose unicode regexes. */
+var reOptMod = rsModifier + '?',
+ rsOptVar = '[' + rsVarRange + ']?',
+ rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
+ rsSeq = rsOptVar + reOptMod + rsOptJoin,
+ rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
+
+/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
+var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+
+/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
+var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
+
+/** Built-in method references without a dependency on `root`. */
+var freeParseInt = parseInt;
+
+/**
+ * Gets the number of symbols in `string`.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {number} Returns the string size.
+ */
+function stringSize(string) {
+ if (!(string && reHasComplexSymbol.test(string))) {
+ return string.length;
+ }
+ var result = reComplexSymbol.lastIndex = 0;
+ while (reComplexSymbol.test(string)) {
+ result++;
+ }
+ return result;
+}
+
+/**
+ * Converts `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function stringToArray(string) {
+ return string.match(reComplexSymbol);
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/* Built-in method references for those with the same name as other `lodash` methods. */
+var nativeCeil = Math.ceil,
+ nativeFloor = Math.floor;
+
+/**
+ * The base implementation of `_.repeat` which doesn't coerce arguments.
+ *
+ * @private
+ * @param {string} string The string to repeat.
+ * @param {number} n The number of times to repeat the string.
+ * @returns {string} Returns the repeated string.
+ */
+function baseRepeat(string, n) {
+ var result = '';
+ if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
+ return result;
+ }
+ // Leverage the exponentiation by squaring algorithm for a faster repeat.
+ // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
+ do {
+ if (n % 2) {
+ result += string;
+ }
+ n = nativeFloor(n / 2);
+ if (n) {
+ string += string;
+ }
+ } while (n);
+
+ return result;
+}
+
+/**
+ * Casts `array` to a slice if it's needed.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {number} start The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the cast slice.
+ */
+function castSlice(array, start, end) {
+ var length = array.length;
+ end = end === undefined ? length : end;
+ return (!start && end >= length) ? array : baseSlice(array, start, end);
+}
+
+/**
+ * Creates the padding for `string` based on `length`. The `chars` string
+ * is truncated if the number of characters exceeds `length`.
+ *
+ * @private
+ * @param {number} length The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padding for `string`.
+ */
+function createPadding(length, chars) {
+ chars = chars === undefined ? ' ' : baseToString(chars);
+
+ var charsLength = chars.length;
+ if (charsLength < 2) {
+ return charsLength ? baseRepeat(chars, length) : chars;
+ }
+ var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
+ return reHasComplexSymbol.test(chars)
+ ? castSlice(stringToArray(result), 0, length).join('')
+ : result.slice(0, length);
+}
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 8 which returns 'object' for typed array and weak map constructors,
+ // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ var tag = isObject(value) ? objectToString.call(value) : '';
+ return tag == funcTag || tag == genTag;
+}
+
+/**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+/**
+ * Converts `value` to a finite number.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.12.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {number} Returns the converted number.
+ * @example
+ *
+ * _.toFinite(3.2);
+ * // => 3.2
+ *
+ * _.toFinite(Number.MIN_VALUE);
+ * // => 5e-324
+ *
+ * _.toFinite(Infinity);
+ * // => 1.7976931348623157e+308
+ *
+ * _.toFinite('3.2');
+ * // => 3.2
+ */
+function toFinite(value) {
+ if (!value) {
+ return value === 0 ? value : 0;
+ }
+ value = toNumber(value);
+ if (value === INFINITY || value === -INFINITY) {
+ var sign = (value < 0 ? -1 : 1);
+ return sign * MAX_INTEGER;
+ }
+ return value === value ? value : 0;
+}
+
+/**
+ * Converts `value` to an integer.
+ *
+ * **Note:** This function is loosely based on
+ * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {number} Returns the converted integer.
+ * @example
+ *
+ * _.toInteger(3.2);
+ * // => 3
+ *
+ * _.toInteger(Number.MIN_VALUE);
+ * // => 0
+ *
+ * _.toInteger(Infinity);
+ * // => 1.7976931348623157e+308
+ *
+ * _.toInteger('3.2');
+ * // => 3
+ */
+function toInteger(value) {
+ var result = toFinite(value),
+ remainder = result % 1;
+
+ return result === result ? (remainder ? result - remainder : result) : 0;
+}
+
+/**
+ * Converts `value` to a number.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {number} Returns the number.
+ * @example
+ *
+ * _.toNumber(3.2);
+ * // => 3.2
+ *
+ * _.toNumber(Number.MIN_VALUE);
+ * // => 5e-324
+ *
+ * _.toNumber(Infinity);
+ * // => Infinity
+ *
+ * _.toNumber('3.2');
+ * // => 3.2
+ */
+function toNumber(value) {
+ if (typeof value == 'number') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return NAN;
+ }
+ if (isObject(value)) {
+ var other = isFunction(value.valueOf) ? value.valueOf() : value;
+ value = isObject(other) ? (other + '') : other;
+ }
+ if (typeof value != 'string') {
+ return value === 0 ? value : +value;
+ }
+ value = value.replace(reTrim, '');
+ var isBinary = reIsBinary.test(value);
+ return (isBinary || reIsOctal.test(value))
+ ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
+ : (reIsBadHex.test(value) ? NAN : +value);
+}
+
+/**
+ * Pads `string` on the left side if it's shorter than `length`. Padding
+ * characters are truncated if they exceed `length`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category String
+ * @param {string} [string=''] The string to pad.
+ * @param {number} [length=0] The padding length.
+ * @param {string} [chars=' '] The string used as padding.
+ * @returns {string} Returns the padded string.
+ * @example
+ *
+ * _.padStart('abc', 6);
+ * // => ' abc'
+ *
+ * _.padStart('abc', 6, '_-');
+ * // => '_-_abc'
+ *
+ * _.padStart('abc', 3);
+ * // => 'abc'
+ */
+function padStart(string, length, chars) {
+ string = toString(string);
+ length = toInteger(length);
+
+ var strLength = length ? stringSize(string) : 0;
+ return (length && strLength < length)
+ ? (createPadding(length - strLength, chars) + string)
+ : string;
+}
+
+module.exports = padStart;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/LICENSE
new file mode 100644
index 000000000..b054ca5a3
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/LICENSE
@@ -0,0 +1,22 @@
+Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+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/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/README.md
new file mode 100644
index 000000000..8cd4181cc
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/README.md
@@ -0,0 +1,18 @@
+# lodash._baseslice v4.0.0
+
+The internal [lodash](https://lodash.com/) function `baseSlice` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash._baseslice
+```
+
+In Node.js:
+```js
+var baseSlice = require('lodash._baseslice');
+```
+
+See the [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash._baseslice) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/index.js
new file mode 100644
index 000000000..59293c3d0
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/index.js
@@ -0,0 +1,40 @@
+/**
+ * lodash 4.0.0 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+
+/**
+ * The base implementation of `_.slice` without an iteratee call guard.
+ *
+ * @private
+ * @param {Array} array The array to slice.
+ * @param {number} [start=0] The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the slice of `array`.
+ */
+function baseSlice(array, start, end) {
+ var index = -1,
+ length = array.length;
+
+ if (start < 0) {
+ start = -start > length ? 0 : (length + start);
+ }
+ end = end > length ? length : end;
+ if (end < 0) {
+ end += length;
+ }
+ length = start > end ? 0 : ((end - start) >>> 0);
+ start >>>= 0;
+
+ var result = Array(length);
+ while (++index < length) {
+ result[index] = array[index + start];
+ }
+ return result;
+}
+
+module.exports = baseSlice;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/package.json
new file mode 100644
index 000000000..bf0bf6511
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/package.json
@@ -0,0 +1,115 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash._baseslice",
+ "raw": "lodash._baseslice@~4.0.0",
+ "rawSpec": "~4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <4.1.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ],
+ [
+ {
+ "name": "lodash._baseslice",
+ "raw": "lodash._baseslice@~4.0.0",
+ "rawSpec": "~4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <4.1.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart"
+ ]
+ ],
+ "_from": "lodash._baseslice@~4.0.0",
+ "_id": "lodash._baseslice@4.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.padstart/lodash._baseslice",
+ "_nodeVersion": "5.4.0",
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.14.15",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash._baseslice",
+ "raw": "lodash._baseslice@~4.0.0",
+ "rawSpec": "~4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <4.1.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge/lodash.padstart"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz",
+ "_shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "_shrinkwrap": null,
+ "_spec": "lodash._baseslice@~4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine@iceddev.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The internal lodash function `baseSlice` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "tarball": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine@iceddev.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash._baseslice",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.0.0"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/LICENSE
new file mode 100644
index 000000000..e0c69d560
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/LICENSE
@@ -0,0 +1,47 @@
+Copyright jQuery Foundation and other contributors <https://jquery.org/>
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/lodash/lodash
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+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.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code displayed within the prose of the
+documentation.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+Files located in the node_modules and vendor directories are externally
+maintained libraries used by this software which have their own
+licenses; we recommend you read them, as their terms may differ from the
+terms above.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/README.md
new file mode 100644
index 000000000..ba060c94d
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/README.md
@@ -0,0 +1,18 @@
+# lodash._basetostring v4.12.0
+
+The internal [lodash](https://lodash.com/) function `baseToString` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash._basetostring
+```
+
+In Node.js:
+```js
+var baseToString = require('lodash._basetostring');
+```
+
+See the [package source](https://github.com/lodash/lodash/blob/4.12.0-npm-packages/lodash._basetostring) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/index.js
new file mode 100644
index 000000000..d58481074
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/index.js
@@ -0,0 +1,153 @@
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0;
+
+/** `Object#toString` result references. */
+var symbolTag = '[object Symbol]';
+
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var Symbol = root.Symbol;
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+/**
+ * The base implementation of `_.toString` which doesn't convert nullish
+ * values to empty strings.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ */
+function baseToString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+module.exports = baseToString;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/package.json
new file mode 100644
index 000000000..1c42ea67e
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/package.json
@@ -0,0 +1,119 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash._basetostring",
+ "raw": "lodash._basetostring@~4.12.0",
+ "rawSpec": "~4.12.0",
+ "scope": null,
+ "spec": ">=4.12.0 <4.13.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ],
+ [
+ {
+ "name": "lodash._basetostring",
+ "raw": "lodash._basetostring@~4.12.0",
+ "rawSpec": "~4.12.0",
+ "scope": null,
+ "spec": ">=4.12.0 <4.13.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart"
+ ]
+ ],
+ "_from": "lodash._basetostring@~4.12.0",
+ "_id": "lodash._basetostring@4.12.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.padstart/lodash._basetostring",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash._basetostring-4.12.0.tgz_1463062033665_0.6722894972190261"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.15.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash._basetostring",
+ "raw": "lodash._basetostring@~4.12.0",
+ "rawSpec": "~4.12.0",
+ "scope": null,
+ "spec": ">=4.12.0 <4.13.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge/lodash.padstart"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz",
+ "_shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "_shrinkwrap": null,
+ "_spec": "lodash._basetostring@~4.12.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The internal lodash function `baseToString` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "tarball": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine@iceddev.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash._basetostring",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.12.0"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE
new file mode 100644
index 000000000..e0c69d560
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE
@@ -0,0 +1,47 @@
+Copyright jQuery Foundation and other contributors <https://jquery.org/>
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/lodash/lodash
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+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.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code displayed within the prose of the
+documentation.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+Files located in the node_modules and vendor directories are externally
+maintained libraries used by this software which have their own
+licenses; we recommend you read them, as their terms may differ from the
+terms above.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md
new file mode 100644
index 000000000..75aa6b069
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md
@@ -0,0 +1,18 @@
+# lodash.tostring v4.1.3
+
+The [lodash](https://lodash.com/) method `_.toString` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.tostring
+```
+
+In Node.js:
+```js
+var toString = require('lodash.tostring');
+```
+
+See the [documentation](https://lodash.com/docs#toString) or [package source](https://github.com/lodash/lodash/blob/4.1.3-npm-packages/lodash.tostring) for more details.
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js
new file mode 100644
index 000000000..8a2cde392
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js
@@ -0,0 +1,178 @@
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0;
+
+/** `Object#toString` result references. */
+var symbolTag = '[object Symbol]';
+
+/** Used to determine if values are of the language type `Object`. */
+var objectTypes = {
+ 'function': true,
+ 'object': true
+};
+
+/** Detect free variable `exports`. */
+var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
+ ? exports
+ : undefined;
+
+/** Detect free variable `module`. */
+var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
+ ? module
+ : undefined;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
+
+/** Detect free variable `self`. */
+var freeSelf = checkGlobal(objectTypes[typeof self] && self);
+
+/** Detect free variable `window`. */
+var freeWindow = checkGlobal(objectTypes[typeof window] && window);
+
+/** Detect `this` as the global object. */
+var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
+
+/**
+ * Used as a reference to the global object.
+ *
+ * The `this` value is used if it's the global object to avoid Greasemonkey's
+ * restricted `window` object, otherwise the `window` object is used.
+ */
+var root = freeGlobal ||
+ ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
+ freeSelf || thisGlobal || Function('return this')();
+
+/**
+ * Checks if `value` is a global object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {null|Object} Returns `value` if it's a global object, else `null`.
+ */
+function checkGlobal(value) {
+ return (value && value.Object === Object) ? value : null;
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var Symbol = root.Symbol;
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
+
+/**
+ * The base implementation of `_.toString` which doesn't convert nullish
+ * values to empty strings.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ */
+function baseToString(value) {
+ // Exit early for strings to avoid a performance hit in some environments.
+ if (typeof value == 'string') {
+ return value;
+ }
+ if (isSymbol(value)) {
+ return symbolToString ? symbolToString.call(value) : '';
+ }
+ var result = (value + '');
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Checks if `value` is classified as a `Symbol` primitive or object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
+ * @example
+ *
+ * _.isSymbol(Symbol.iterator);
+ * // => true
+ *
+ * _.isSymbol('abc');
+ * // => false
+ */
+function isSymbol(value) {
+ return typeof value == 'symbol' ||
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
+}
+
+/**
+ * Converts `value` to a string. An empty string is returned for `null`
+ * and `undefined` values. The sign of `-0` is preserved.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ * @example
+ *
+ * _.toString(null);
+ * // => ''
+ *
+ * _.toString(-0);
+ * // => '-0'
+ *
+ * _.toString([1, 2, 3]);
+ * // => '1,2,3'
+ */
+function toString(value) {
+ return value == null ? '' : baseToString(value);
+}
+
+module.exports = toString;
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json
new file mode 100644
index 000000000..32c5752c9
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json
@@ -0,0 +1,123 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash.tostring",
+ "raw": "lodash.tostring@^4.0.0",
+ "rawSpec": "^4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad"
+ ],
+ [
+ {
+ "name": "lodash.tostring",
+ "raw": "lodash.tostring@^4.0.0",
+ "rawSpec": "^4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart"
+ ]
+ ],
+ "_from": "lodash.tostring@^4.0.0",
+ "_id": "lodash.tostring@4.1.3",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.padstart/lodash.tostring",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash.tostring-4.1.3.tgz_1463062634002_0.7874096168670803"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.15.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash.tostring",
+ "raw": "lodash.tostring@^4.0.0",
+ "rawSpec": "^4.0.0",
+ "scope": null,
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge/lodash.padstart"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz",
+ "_shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "_shrinkwrap": null,
+ "_spec": "lodash.tostring@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {},
+ "description": "The lodash method `_.toString` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "tarball": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "tostring"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash.tostring",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.1.3"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json
new file mode 100644
index 000000000..57fc4ead9
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json
@@ -0,0 +1,116 @@
+{
+ "_args": [
+ [
+ {
+ "name": "lodash.padstart",
+ "raw": "lodash.padstart@^4.1.0",
+ "rawSpec": "^4.1.0",
+ "scope": null,
+ "spec": ">=4.1.0 <5.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge"
+ ]
+ ],
+ "_from": "lodash.padstart@>=4.1.0 <5.0.0",
+ "_id": "lodash.padstart@4.5.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge/lodash.padstart",
+ "_nodeVersion": "5.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.padstart-4.5.0.tgz_1463062453524_0.18468116875737906"
+ },
+ "_npmUser": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ "_npmVersion": "2.15.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "lodash.padstart",
+ "raw": "lodash.padstart@^4.1.0",
+ "rawSpec": "^4.1.0",
+ "scope": null,
+ "spec": ">=4.1.0 <5.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog/gauge"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.5.0.tgz",
+ "_shasum": "3ea190f6734841c3364d279d11e056726b60a79a",
+ "_shrinkwrap": null,
+ "_spec": "lodash.padstart@^4.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge",
+ "author": {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "contributors": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "Blaine Bublitz",
+ "url": "https://github.com/phated"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "dependencies": {
+ "lodash._baseslice": "~4.0.0",
+ "lodash._basetostring": "~4.12.0",
+ "lodash.tostring": "^4.0.0"
+ },
+ "description": "The lodash method `_.padStart` exported as a module.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "3ea190f6734841c3364d279d11e056726b60a79a",
+ "tarball": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.5.0.tgz"
+ },
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "padstart"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "email": "john.david.dalton@gmail.com",
+ "name": "jdalton"
+ },
+ {
+ "email": "mathias@qiwi.be",
+ "name": "mathias"
+ },
+ {
+ "email": "blaine.bublitz@gmail.com",
+ "name": "phated"
+ }
+ ],
+ "name": "lodash.padstart",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.5.0"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/package.json b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/package.json
new file mode 100644
index 000000000..6d3424f0a
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/package.json
@@ -0,0 +1,96 @@
+{
+ "_args": [
+ [
+ {
+ "name": "gauge",
+ "raw": "gauge@~1.2.5",
+ "rawSpec": "~1.2.5",
+ "scope": null,
+ "spec": ">=1.2.5 <1.3.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog"
+ ]
+ ],
+ "_from": "gauge@>=1.2.5 <1.3.0",
+ "_id": "gauge@1.2.7",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog/gauge",
+ "_nodeVersion": "4.2.2",
+ "_npmOperationalInternal": {
+ "host": "packages-9-west.internal.npmjs.com",
+ "tmp": "tmp/gauge-1.2.7.tgz_1455835409513_0.6293477965518832"
+ },
+ "_npmUser": {
+ "email": "me@re-becca.org",
+ "name": "iarna"
+ },
+ "_npmVersion": "3.7.2",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "gauge",
+ "raw": "gauge@~1.2.5",
+ "rawSpec": "~1.2.5",
+ "scope": null,
+ "spec": ">=1.2.5 <1.3.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp/npmlog"
+ ],
+ "_resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
+ "_shasum": "e9cec5483d3d4ee0ef44b60a7d99e4935e136d93",
+ "_shrinkwrap": null,
+ "_spec": "gauge@~1.2.5",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/npmlog",
+ "author": {
+ "email": "me@re-becca.org",
+ "name": "Rebecca Turner"
+ },
+ "bugs": {
+ "url": "https://github.com/iarna/gauge/issues"
+ },
+ "dependencies": {
+ "ansi": "^0.3.0",
+ "has-unicode": "^2.0.0",
+ "lodash.pad": "^4.1.0",
+ "lodash.padend": "^4.1.0",
+ "lodash.padstart": "^4.1.0"
+ },
+ "description": "A terminal based horizontal guage",
+ "devDependencies": {
+ "tap": "^5.6.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "e9cec5483d3d4ee0ef44b60a7d99e4935e136d93",
+ "tarball": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz"
+ },
+ "gitHead": "75a7d0a4ed67489ac992ed3d211bed60376ca7c1",
+ "homepage": "https://github.com/iarna/gauge",
+ "keywords": [
+ "progressbar",
+ "progress",
+ "gauge"
+ ],
+ "license": "ISC",
+ "main": "progress-bar.js",
+ "maintainers": [
+ {
+ "email": "me@re-becca.org",
+ "name": "iarna"
+ }
+ ],
+ "name": "gauge",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/iarna/gauge.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "version": "1.2.7"
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/progress-bar.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/progress-bar.js
new file mode 100644
index 000000000..ddfc4a44b
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/progress-bar.js
@@ -0,0 +1,225 @@
+"use strict"
+var hasUnicode = require("has-unicode")
+var ansi = require("ansi")
+var align = {
+ center: require("lodash.pad"),
+ left: require("lodash.padend"),
+ right: require("lodash.padstart")
+}
+var defaultStream = process.stderr
+function isTTY() {
+ return process.stderr.isTTY
+}
+function getWritableTTYColumns() {
+ // Writing to the final column wraps the line
+ // We have to use stdout here, because Node's magic SIGWINCH handler only
+ // updates process.stdout, not process.stderr
+ return process.stdout.columns - 1
+}
+
+var ProgressBar = module.exports = function (options, cursor) {
+ if (! options) options = {}
+ if (! cursor && options.write) {
+ cursor = options
+ options = {}
+ }
+ if (! cursor) {
+ cursor = ansi(defaultStream)
+ }
+ this.cursor = cursor
+ this.showing = false
+ this.theme = options.theme || (hasUnicode() ? ProgressBar.unicode : ProgressBar.ascii)
+ this.template = options.template || [
+ {type: "name", separated: true, length: 25},
+ {type: "spinner", separated: true},
+ {type: "startgroup"},
+ {type: "completionbar"},
+ {type: "endgroup"}
+ ]
+ this.updatefreq = options.maxUpdateFrequency == null ? 50 : options.maxUpdateFrequency
+ this.lastName = ""
+ this.lastCompleted = 0
+ this.spun = 0
+ this.last = new Date(0)
+
+ var self = this
+ this._handleSizeChange = function () {
+ if (!self.showing) return
+ self.hide()
+ self.show()
+ }
+}
+ProgressBar.prototype = {}
+
+ProgressBar.unicode = {
+ startgroup: "╢",
+ endgroup: "╟",
+ complete: "█",
+ incomplete: "░",
+ spinner: "▀▐▄▌",
+ subsection: "→"
+}
+
+ProgressBar.ascii = {
+ startgroup: "|",
+ endgroup: "|",
+ complete: "#",
+ incomplete: "-",
+ spinner: "-\\|/",
+ subsection: "->"
+}
+
+ProgressBar.prototype.setTheme = function(theme) {
+ this.theme = theme
+}
+
+ProgressBar.prototype.setTemplate = function(template) {
+ this.template = template
+}
+
+ProgressBar.prototype._enableResizeEvents = function() {
+ process.stdout.on('resize', this._handleSizeChange)
+}
+
+ProgressBar.prototype._disableResizeEvents = function() {
+ process.stdout.removeListener('resize', this._handleSizeChange)
+}
+
+ProgressBar.prototype.disable = function() {
+ this.hide()
+ this.disabled = true
+}
+
+ProgressBar.prototype.enable = function() {
+ this.disabled = false
+ this.show()
+}
+
+ProgressBar.prototype.hide = function() {
+ if (!isTTY()) return
+ if (this.disabled) return
+ this.cursor.show()
+ if (this.showing) this.cursor.up(1)
+ this.cursor.horizontalAbsolute(0).eraseLine()
+ this.showing = false
+}
+
+var repeat = function (str, count) {
+ var out = ""
+ for (var ii=0; ii<count; ++ii) out += str
+ return out
+}
+
+ProgressBar.prototype.pulse = function(name) {
+ ++ this.spun
+ if (! this.showing) return
+ if (this.disabled) return
+
+ var baseName = this.lastName
+ name = name
+ ? ( baseName
+ ? baseName + " " + this.theme.subsection + " " + name
+ : null )
+ : baseName
+ this.show(name)
+ this.lastName = baseName
+}
+
+ProgressBar.prototype.show = function(name, completed) {
+ name = this.lastName = name || this.lastName
+ completed = this.lastCompleted = completed || this.lastCompleted
+
+ if (!isTTY()) return
+ if (this.disabled) return
+ if (! this.spun && ! completed) return
+ if (this.tryAgain) return
+ var self = this
+
+ if (this.showing && new Date() - this.last < this.updatefreq) {
+ this.tryAgain = setTimeout(function () {
+ self.tryAgain = null
+ if (self.disabled) return
+ if (! self.spun && ! completed) return
+ drawBar()
+ }, this.updatefreq - (new Date() - this.last))
+ return
+ }
+
+ return drawBar()
+
+ function drawBar() {
+ var values = {
+ name: name,
+ spinner: self.spun,
+ completed: completed
+ }
+
+ self.last = new Date()
+
+ var statusline = self.renderTemplate(self.theme, self.template, values)
+
+ if (self.showing) self.cursor.up(1)
+ self.cursor
+ .hide()
+ .horizontalAbsolute(0)
+ .write(statusline.substr(0, getWritableTTYColumns()) + "\n")
+ .show()
+
+ self.showing = true
+ }
+}
+
+ProgressBar.prototype.renderTemplate = function (theme, template, values) {
+ values.startgroup = theme.startgroup
+ values.endgroup = theme.endgroup
+ values.spinner = values.spinner
+ ? theme.spinner.substr(values.spinner % theme.spinner.length,1)
+ : ""
+
+ var output = {prebar: "", postbar: ""}
+ var status = "prebar"
+ var self = this
+ template.forEach(function(T) {
+ if (typeof T === "string") {
+ output[status] += T
+ return
+ }
+ if (T.type === "completionbar") {
+ status = "postbar"
+ return
+ }
+ if (!values.hasOwnProperty(T.type)) throw new Error("Unknown template value '"+T.type+"'")
+ var value = self.renderValue(T, values[T.type])
+ if (value === "") return
+ var sofar = output[status].length
+ var lastChar = sofar ? output[status][sofar-1] : null
+ if (T.separated && sofar && lastChar !== " ") {
+ output[status] += " "
+ }
+ output[status] += value
+ if (T.separated) output[status] += " "
+ })
+
+ var bar = ""
+ if (status === "postbar") {
+ var nonBarLen = output.prebar.length + output.postbar.length
+
+ var barLen = getWritableTTYColumns() - nonBarLen
+ var sofar = Math.round(barLen * Math.max(0,Math.min(1,values.completed||0)))
+ var rest = barLen - sofar
+ bar = repeat(theme.complete, sofar)
+ + repeat(theme.incomplete, rest)
+ }
+
+ return output.prebar + bar + output.postbar
+}
+ProgressBar.prototype.renderValue = function (template, value) {
+ if (value == null || value === "") return ""
+ var maxLength = template.maxLength || template.length
+ var minLength = template.minLength || template.length
+ var alignWith = align[template.align] || align.left
+// if (maxLength) value = value.substr(-1 * maxLength)
+ if (maxLength) value = value.substr(0, maxLength)
+ if (minLength) value = alignWith(value, minLength)
+ return value
+}
diff --git a/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/test/progress-bar.js b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/test/progress-bar.js
new file mode 100644
index 000000000..5d3e7e78f
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/test/progress-bar.js
@@ -0,0 +1,176 @@
+"use strict"
+var test = require("tap").test
+var ProgressBar = require("../progress-bar.js")
+
+var cursor = []
+var C
+var bar = new ProgressBar({theme: ProgressBar.ascii, maxUpdateFrequency: 0}, C = {
+ show: function () {
+ cursor.push(["show"])
+ return C
+ },
+ hide: function () {
+ cursor.push(["hide"])
+ return C
+ },
+ up: function (lines) {
+ cursor.push(["up",lines])
+ return C
+ },
+ horizontalAbsolute: function (col) {
+ cursor.push(["horizontalAbsolute", col])
+ return C
+ },
+ eraseLine: function () {
+ cursor.push(["eraseLine"])
+ return C
+ },
+ write: function (line) {
+ cursor.push(["write", line])
+ return C
+ }
+})
+
+
+function isOutput(t, msg, output) {
+ var tests = []
+ for (var ii = 0; ii<output.length; ++ii) {
+ for (var jj = 0; jj<output[ii].length; ++jj) {
+ tests.push({cmd: ii, arg: jj})
+ }
+ }
+ tests.forEach(function(test) {
+ t.is(cursor[test.cmd] ? cursor[test.cmd][test.arg] : null,
+ output[test.cmd][test.arg],
+ msg + ": " + output[test.cmd] + (test.arg ? " arg #"+test.arg : ""))
+ })
+}
+
+test("hide", function (t) {
+ t.plan(11)
+ process.stderr.isTTY = false
+ bar.hide()
+ t.is(cursor.length, 0, "We don't progress bar without a tty")
+ cursor = []
+ process.stderr.isTTY = true
+ bar.hide()
+ isOutput(t, "hide while not showing",[
+ ["show"], // cursor
+ ["horizontalAbsolute",0],
+ ["eraseLine"]])
+ cursor = []
+ bar.showing = true
+ bar.hide()
+ isOutput(t, "hide while showing",[
+ ["show"], // cursor
+ ["up", 1],
+ ["horizontalAbsolute",0],
+ ["eraseLine"]])
+})
+
+test("renderTemplate", function (t) {
+ t.plan(16)
+ process.stdout.columns = 11
+ var result = bar.renderTemplate(ProgressBar.ascii,[{type: "name"}],{name: "NAME"})
+ t.is(result, "NAME", "name substitution")
+ var result = bar.renderTemplate(ProgressBar.ascii,[{type: "completionbar"}],{completed: 0})
+ t.is(result, "----------", "0% bar")
+ var result = bar.renderTemplate(ProgressBar.ascii,[{type: "completionbar"}],{completed: 0.5})
+ t.is(result, "#####-----", "50% bar")
+ var result = bar.renderTemplate(ProgressBar.ascii,[{type: "completionbar"}],{completed: 1})
+ t.is(result, "##########", "100% bar")
+ var result = bar.renderTemplate(ProgressBar.ascii,[{type: "completionbar"}],{completed: -100})
+ t.is(result, "----------", "0% underflow bar")
+ var result = bar.renderTemplate(ProgressBar.ascii,[{type: "completionbar"}],{completed: 100})
+ t.is(result, "##########", "100% overflow bar")
+ var result = bar.renderTemplate(ProgressBar.ascii,[{type: "name"},{type: "completionbar"}],{name: "NAME", completed: 0.5})
+ t.is(result, "NAME###---", "name + 50%")
+ var result = bar.renderTemplate(ProgressBar.ascii, ["static"], {})
+ t.is(result, "static", "static text")
+ var result = bar.renderTemplate(ProgressBar.ascii, ["static",{type: "name"}], {name: "NAME"})
+ t.is(result, "staticNAME", "static text + var")
+ var result = bar.renderTemplate(ProgressBar.ascii, ["static",{type: "name", separated: true}], {name: "NAME"})
+ t.is(result, "static NAME ", "pre-separated")
+ var result = bar.renderTemplate(ProgressBar.ascii, [{type: "name", separated: true}, "static"], {name: "NAME"})
+ t.is(result, "NAME static", "post-separated")
+ var result = bar.renderTemplate(ProgressBar.ascii, ["1",{type: "name", separated: true}, "2"], {name: ""})
+ t.is(result, "12", "separated no value")
+ var result = bar.renderTemplate(ProgressBar.ascii, ["1",{type: "name", separated: true}, "2"], {name: "NAME"})
+ t.is(result, "1 NAME 2", "separated value")
+ var result = bar.renderTemplate(ProgressBar.ascii, [{type: "spinner"}], {spinner: 0})
+ t.is(result, "", "No spinner")
+ var result = bar.renderTemplate(ProgressBar.ascii, [{type: "spinner"}], {spinner: 1})
+ t.is(result, "\\", "Spinner 1")
+ var result = bar.renderTemplate(ProgressBar.ascii, [{type: "spinner"}], {spinner: 10})
+ t.is(result, "|", "Spinner 10")
+})
+
+test("show & pulse", function (t) {
+ t.plan(23)
+
+ process.stdout.columns = 16
+ cursor = []
+ process.stderr.isTTY = false
+ bar.template[0].length = 6
+ bar.last = new Date(0)
+ bar.show("NAME", 0)
+ t.is(cursor.length, 0, "no tty, no progressbar")
+
+ cursor = []
+ process.stderr.isTTY = true
+ bar.last = new Date(0)
+ bar.show("NAME", 0.1)
+ isOutput(t, "tty, name, completion",
+ [ [ 'hide' ],
+ [ 'horizontalAbsolute', 0 ],
+ [ 'write', 'NAME |#-----|\n' ],
+ [ 'show' ] ])
+
+ bar.show("S")
+ cursor = []
+ bar.last = new Date(0)
+ bar.pulse()
+ isOutput(t, "pulsed spinner",
+ [ [ 'up', 1 ],
+ [ 'hide' ],
+ [ 'horizontalAbsolute', 0 ],
+ [ 'write', 'S \\ |----|\n' ],
+ [ 'show' ] ])
+ cursor = []
+ bar.last = new Date(0)
+ bar.pulse("P")
+ isOutput(t, "pulsed spinner with subsection",
+ [ [ 'up', 1 ],
+ [ 'hide' ],
+ [ 'horizontalAbsolute', 0 ],
+ [ 'write', 'S -> P | |----|\n' ],
+ [ 'show' ] ])
+})
+
+test("window resizing", function (t) {
+ t.plan(16)
+ process.stderr.isTTY = true
+ process.stdout.columns = 32
+ bar.show("NAME", 0.1)
+ cursor = []
+ bar.last = new Date(0)
+ bar.pulse()
+ isOutput(t, "32 columns",
+ [ [ 'up', 1 ],
+ [ 'hide' ],
+ [ 'horizontalAbsolute', 0 ],
+ [ 'write', 'NAME / |##------------------|\n' ],
+ [ 'show' ] ])
+
+ process.stdout.columns = 16
+ bar.show("NAME", 0.5)
+ cursor = []
+ bar.last = new Date(0)
+ bar.pulse()
+ isOutput(t, "16 columns",
+ [ [ 'up', 1 ],
+ [ 'hide' ],
+ [ 'horizontalAbsolute', 0 ],
+ [ 'write', 'NAME - |##--|\n' ],
+ [ 'show' ] ]);
+});
diff --git a/node_modules/node-gyp/node_modules/npmlog/package.json b/node_modules/node-gyp/node_modules/npmlog/package.json
new file mode 100644
index 000000000..7bfb84713
--- /dev/null
+++ b/node_modules/node-gyp/node_modules/npmlog/package.json
@@ -0,0 +1,108 @@
+{
+ "_args": [
+ [
+ {
+ "name": "npmlog",
+ "raw": "npmlog@0 || 1 || 2",
+ "rawSpec": "0 || 1 || 2",
+ "scope": null,
+ "spec": ">=0.0.0 <1.0.0||>=1.0.0 <2.0.0||>=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/rebecca/code/npm/node_modules/node-gyp"
+ ]
+ ],
+ "_from": "npmlog@>=0.0.0 <1.0.0||>=1.0.0 <2.0.0||>=2.0.0 <3.0.0",
+ "_id": "npmlog@2.0.4",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/node-gyp/npmlog",
+ "_nodeVersion": "5.10.1",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/npmlog-2.0.4.tgz_1463616637725_0.461703865788877"
+ },
+ "_npmUser": {
+ "email": "kat@sykosomatic.org",
+ "name": "zkat"
+ },
+ "_npmVersion": "3.9.1",
+ "_phantomChildren": {
+ "has-unicode": "2.0.0",
+ "readable-stream": "2.1.3"
+ },
+ "_requested": {
+ "name": "npmlog",
+ "raw": "npmlog@0 || 1 || 2",
+ "rawSpec": "0 || 1 || 2",
+ "scope": null,
+ "spec": ">=0.0.0 <1.0.0||>=1.0.0 <2.0.0||>=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/node-gyp"
+ ],
+ "_resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
+ "_shasum": "98b52530f2514ca90d09ec5b22c8846722375692",
+ "_shrinkwrap": null,
+ "_spec": "npmlog@0 || 1 || 2",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp",
+ "author": {
+ "email": "i@izs.me",
+ "name": "Isaac Z. Schlueter",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/npmlog/issues"
+ },
+ "dependencies": {
+ "ansi": "~0.3.1",
+ "are-we-there-yet": "~1.1.2",
+ "gauge": "~1.2.5"
+ },
+ "description": "logger for npm",
+ "devDependencies": {
+ "tap": "~5.7.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "98b52530f2514ca90d09ec5b22c8846722375692",
+ "tarball": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz"
+ },
+ "files": [
+ "log.js"
+ ],
+ "gitHead": "3732fd4ba1ca2d47c6102343e6c3fb7e66df7fe5",
+ "homepage": "https://github.com/npm/npmlog#readme",
+ "license": "ISC",
+ "main": "log.js",
+ "maintainers": [
+ {
+ "email": "me@re-becca.org",
+ "name": "iarna"
+ },
+ {
+ "email": "i@izs.me",
+ "name": "isaacs"
+ },
+ {
+ "email": "ogd@aoaioxxysz.net",
+ "name": "othiym23"
+ },
+ {
+ "email": "kat@sykosomatic.org",
+ "name": "zkat"
+ }
+ ],
+ "name": "npmlog",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/npm/npmlog.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "version": "2.0.4"
+}