diff --git a/.eslintrc b/.eslintrc
index 38d01df0778210..59f9f06e8baa0d 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -13,7 +13,7 @@ rules:
no-duplicate-case: 2
no-empty-character-class: 2
no-ex-assign: 2
- no-extra-boolean-cast : 2
+ no-extra-boolean-cast: 2
no-extra-parens: [2, "functions"]
no-extra-semi: 2
no-func-assign: 2
@@ -85,10 +85,11 @@ rules:
prefer-const: 2
# Custom rules in tools/eslint-rules
+ align-function-arguments: 2
+ align-multiline-assignment: 2
assert-fail-single-argument: 2
new-with-error: [2, "Error", "RangeError", "TypeError", "SyntaxError", "ReferenceError"]
-
# Global scoped method and vars
globals:
DTRACE_HTTP_CLIENT_REQUEST : false
diff --git a/.gitignore b/.gitignore
index 8f75e34da6fd5a..5eabf17883b951 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,6 +40,8 @@ _UpgradeReport_Files/
ipch/
*.sdf
*.opensdf
+*.VC.opendb
+.vs/
/config.mk
/config.gypi
diff --git a/AUTHORS b/AUTHORS
index 5ab61aebf20966..15191f7b31d975 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -623,7 +623,7 @@ Steve Sharp
Victor Widell
Evan Rutledge Borden
Johnny Ray
-Steve Mao
+Steve Mao
Stiliyan Lazarov
Wang Xinyong
Ray Donnelly
@@ -831,7 +831,7 @@ Claudio Rodriguez
Ido Ben-Yair
Kyle Smith
Marti Martz
-Stefan Budeanu
+Stefan Budeanu
Emily Aviva Kapor-Mater
Sam P Gallagher-Bishop
David Woods
@@ -868,5 +868,122 @@ Super Zheng
Rafał Pocztarski
Michael Ruddy
Andy Bettisworth
+Jörg Krause
+Alexander Martin
+Prince J Wesley
+janriemer
+Arthur Gautier
+Martin von Gagern
+Hideki Yamamura
+Lenny Markus
+Nelson Pecora
+Graham Fairweather
+Nicholas Young
+chrisjohn404
+Bo Borgerson
+Mudit Ameta
+Adri Van Houdt
+Max Barinov
+Damian Schenkelman
+iamchenxin
+Nik Nyby
+Ben Ripkens
+Ryan Sobol
+jona
+Martin Bark
+José F. Romaniello
+Richard Sun
+Sequoia McDowell
+zoubin
+Robert Jefe Lindstaedt
+Saquib
+Daniel Sellers
+Julien Waechter
+Vitor Cortez
+Michael Theriot
+Peter Geiss
+Richard Lau
+José Moreira
+Tom Atkinson
+Glen Arrowsmith
+Jeff Harris
+Alexander Makarenko
+Drew Folta
+Myles Borins
+Dmitriy Lazarev
+Adam Langley
+Kári Tristan Helgason
+Manuel Valls
+Prayag Verma
+Gibson Fahnestock
+Alan Cohen
+Christophe Naud-Dulude
+Matthias Bastian
+Phillip Kovalev
+Rainer Oviir
+HUANG Wei
+DC
+Daniel Turing
+Julie Pagano
+Ruben Bridgewater
+Felix Becker
+Igor Klopov
+Tsarevich Dmitry
+Ojas Shirekar
+Noah Rose
+Rafael Cepeda
+Chinedu Francis Nwafili
+Braydon Fuller
+Jiho Choi
+Dirceu Pereira Tiegs
+Marc Cuva
+Chris Dew
+Tristan Slominski
+Hugo Wood
+Owen Smith
+Anton Andesen
+Aayush Naik
+Netto Farah
+Craig Akimoto
+Michael Barrett
+Alexander Marchenko
+Robert C Jensen
+Vaibhav
+Stefano Vozza
+Daijiro Wachi
+Kirill Fomichev
+Mithun Patel
+Alexander Penev
+Andrea Giammarchi
+Lance Ball
+Jarrett Widman
+Florian Margaine
+Wolfgang Steiner
+Bill Automata
+Robert Chiras
+Corey Kosak
+John Eversole
+Gareth Ellis
+Eugene Obrezkov
+Kyle Simpson
+Bogdan Lobor
+Daniel Wang
+Mihai Potra
+Brendon Pierson
+Brad Hill
+Mike Kaufman
+Igor Kalashnikov
+Anna Henningsen
+Amery
+James Reggio
+Joran Dirk Greef
+Matthew Douglass
+William Kapke
+Yuta Hiroto
+Ilya Shaisultanov
+James Lal
+Josh Leder
+surya panikkal
+vsemozhetbyt
# Generated by tools/update-authors.sh
diff --git a/BUILDING.md b/BUILDING.md
index a1cbb1bd7fbf8f..a247a21a0e5f9d 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -9,7 +9,7 @@ If you consistently can reproduce a test failure, search for it in the
file a new issue.
-### Unix / Macintosh
+### Unix / OS X
Prerequisites:
@@ -17,8 +17,17 @@ Prerequisites:
* `clang` and `clang++` 3.4 or newer
* Python 2.6 or 2.7
* GNU Make 3.81 or newer
+
+On OS X, you will also need:
+* [Xcode](https://developer.apple.com/xcode/download/)
+ * You also need to install the `Command Line Tools` via Xcode. You can find
+ this under the menu `Xcode -> Preferences -> Downloads`
+ * This step will install `gcc` and the related toolchain containing `make`
+
+On FreeBSD and OpenBSD, you may also need:
* libexecinfo (FreeBSD and OpenBSD only)
+
```text
$ ./configure
$ make
@@ -133,7 +142,7 @@ This option will build with "small" (English only) support, but
the full `Intl` (ECMA-402) APIs. With `--download=all` it will
download the ICU library as needed.
-##### Unix / Macintosh:
+##### Unix / OS X:
```text
$ ./configure --with-intl=small-icu --download=all
@@ -156,7 +165,7 @@ data at runtime.
With the `--download=all`, this may download ICU if you don't have an
ICU in `deps/icu`.
-##### Unix / Macintosh:
+##### Unix / OS X:
```text
$ ./configure --with-intl=full-icu --download=all
@@ -173,7 +182,7 @@ $ ./configure --with-intl=full-icu --download=all
The `Intl` object will not be available. This is the default at
present, so this option is not normally needed.
-##### Unix / Macintosh:
+##### Unix / OS X:
```text
$ ./configure --with-intl=none
@@ -185,7 +194,7 @@ $ ./configure --with-intl=none
> vcbuild intl-none
```
-#### Use existing installed ICU (Unix / Macintosh only):
+#### Use existing installed ICU (Unix / OS X only):
```text
$ pkg-config --modversion icu-i18n && ./configure --with-intl=system-icu
@@ -201,7 +210,7 @@ You can find other ICU releases at
Download the file named something like `icu4c-**##.#**-src.tgz` (or
`.zip`).
-##### Unix / Macintosh
+##### Unix / OS X
```text
# from an already-unpacked ICU:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1a1268f6cf337d..a76ff31c02b991 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,119 @@
# Node.js ChangeLog
+## 2016-06-28, Version 4.4.7 'Argon' (LTS), @thealphanerd
+
+This LTS release comes with 89 commits. This includes 46 commits that are docs related, 11 commits that are test related, 8 commits that are build related, and 4 commits that are benchmark related.
+
+### Notable Changes
+
+- **debugger**:
+ - All properties of an array (aside from length) can now be printed in the repl (cjihrig) [#6448](https://github.com/nodejs/node/pull/6448)
+- **npm**:
+ - Upgrade npm to 2.15.8 (Rebecca Turner) [#7412](https://github.com/nodejs/node/pull/7412)
+- **stream**:
+ - Fix for a bug that became more prevalent with the stream changes that landed in v4.4.5. (Anna Henningsen) [#7160](https://github.com/nodejs/node/pull/7160)
+- **V8**:
+ - Fix for a bug in crankshaft that was causing crashes on arm64 (Myles Borins) [#7442](https://github.com/nodejs/node/pull/7442)
+ - Add missing classes to postmortem info such as JSMap and JSSet (evan.lucas) [#3792](https://github.com/nodejs/node/pull/3792)
+
+### Commits
+
+* [[`87cdb83a96`](https://github.com/nodejs/node/commit/87cdb83a96)] - **benchmark**: merge url.js with url-resolve.js (Andreas Madsen) [#5177](https://github.com/nodejs/node/pull/5177)
+* [[`921e8568d5`](https://github.com/nodejs/node/commit/921e8568d5)] - **benchmark**: move misc to categorized directories (Andreas Madsen) [#5177](https://github.com/nodejs/node/pull/5177)
+* [[`c189eec14e`](https://github.com/nodejs/node/commit/c189eec14e)] - **benchmark**: fix configuation parameters (Andreas Madsen) [#5177](https://github.com/nodejs/node/pull/5177)
+* [[`58ad451f0b`](https://github.com/nodejs/node/commit/58ad451f0b)] - **benchmark**: move string-decoder to its own category (Andreas Madsen) [#5177](https://github.com/nodejs/node/pull/5177)
+* [[`a01caa3166`](https://github.com/nodejs/node/commit/a01caa3166)] - **build**: don't compile with -B, redux (Ben Noordhuis) [#6650](https://github.com/nodejs/node/pull/6650)
+* [[`37606caeaf`](https://github.com/nodejs/node/commit/37606caeaf)] - **build**: don't compile with -B (Ben Noordhuis) [#6393](https://github.com/nodejs/node/pull/6393)
+* [[`64fb7a1929`](https://github.com/nodejs/node/commit/64fb7a1929)] - **build**: update android-configure script for npm (Robert Chiras) [#6349](https://github.com/nodejs/node/pull/6349)
+* [[`43ce6fc8d2`](https://github.com/nodejs/node/commit/43ce6fc8d2)] - **build**: fix DESTCPU detection for binary target (Richard Lau) [#6310](https://github.com/nodejs/node/pull/6310)
+* [[`6dfe7aeed5`](https://github.com/nodejs/node/commit/6dfe7aeed5)] - **cares**: Support malloc(0) scenarios for AIX (Gireesh Punathil) [#6305](https://github.com/nodejs/node/pull/6305)
+* [[`2389006720`](https://github.com/nodejs/node/commit/2389006720)] - **debugger**: display array contents in repl (cjihrig) [#6448](https://github.com/nodejs/node/pull/6448)
+* [[`1c6809ce75`](https://github.com/nodejs/node/commit/1c6809ce75)] - **debugger**: introduce exec method for debugger (Jackson Tian)
+* [[`200b3ca9ed`](https://github.com/nodejs/node/commit/200b3ca9ed)] - **deps**: upgrade npm in LTS to 2.15.8 (Rebecca Turner) [#7412](https://github.com/nodejs/node/pull/7412)
+* [[`49921e8819`](https://github.com/nodejs/node/commit/49921e8819)] - **deps**: backport 102e3e87e7 from V8 upstream (Myles Borins) [#7442](https://github.com/nodejs/node/pull/7442)
+* [[`de00f91041`](https://github.com/nodejs/node/commit/de00f91041)] - **deps**: backport bc2e393 from v8 upstream (evan.lucas) [#3792](https://github.com/nodejs/node/pull/3792)
+* [[`1549899531`](https://github.com/nodejs/node/commit/1549899531)] - **dgram,test**: add addMembership/dropMembership tests (Rich Trott) [#6753](https://github.com/nodejs/node/pull/6753)
+* [[`0ba3c2ca66`](https://github.com/nodejs/node/commit/0ba3c2ca66)] - **doc**: fix layout problem in v4 changelog (Myles Borins) [#7394](https://github.com/nodejs/node/pull/7394)
+* [[`98469ad84d`](https://github.com/nodejs/node/commit/98469ad84d)] - **doc**: correct args for cluster message event (Colin Ihrig) [#7297](https://github.com/nodejs/node/pull/7297)
+* [[`67863f110b`](https://github.com/nodejs/node/commit/67863f110b)] - **doc**: update licenses (Myles Borins) [#7127](https://github.com/nodejs/node/pull/7127)
+* [[`c31eaad42d`](https://github.com/nodejs/node/commit/c31eaad42d)] - **doc**: clarify buffer class (Steve Mao) [#6914](https://github.com/nodejs/node/pull/6914)
+* [[`e0dd476fe5`](https://github.com/nodejs/node/commit/e0dd476fe5)] - **doc**: fix typos in timers topic to aid readability (Kevin Donahue) [#6916](https://github.com/nodejs/node/pull/6916)
+* [[`a8391bc9fc`](https://github.com/nodejs/node/commit/a8391bc9fc)] - **doc**: add jhamhader to collaborators (Yuval Brik) [#6946](https://github.com/nodejs/node/pull/6946)
+* [[`22ca7b877b`](https://github.com/nodejs/node/commit/22ca7b877b)] - **doc**: add @othiym23 to list of collaborators (Forrest L Norvell) [#6945](https://github.com/nodejs/node/pull/6945)
+* [[`2c3c4e5819`](https://github.com/nodejs/node/commit/2c3c4e5819)] - **doc**: reference list of language-specific globals (Anna Henningsen) [#6900](https://github.com/nodejs/node/pull/6900)
+* [[`5a1a0b5ed1`](https://github.com/nodejs/node/commit/5a1a0b5ed1)] - **doc**: make the api doc print-friendly (Marian) [#6748](https://github.com/nodejs/node/pull/6748)
+* [[`03db88e012`](https://github.com/nodejs/node/commit/03db88e012)] - **doc**: add bengl to collaborators (Bryan English) [#6921](https://github.com/nodejs/node/pull/6921)
+* [[`fbf95dde94`](https://github.com/nodejs/node/commit/fbf95dde94)] - **doc**: Update DCO to v1.1 (William Kapke) [#6353](https://github.com/nodejs/node/pull/6353)
+* [[`f23a9c39c0`](https://github.com/nodejs/node/commit/f23a9c39c0)] - **doc**: fix typo in Error.captureStackTrace (Mohsen) [#6811](https://github.com/nodejs/node/pull/6811)
+* [[`30ab6a890c`](https://github.com/nodejs/node/commit/30ab6a890c)] - **doc**: fix name to match git log (Robert Jefe Lindstaedt) [#6880](https://github.com/nodejs/node/pull/6880)
+* [[`2b0f40ca16`](https://github.com/nodejs/node/commit/2b0f40ca16)] - **doc**: add note for fs.watch virtualized env (Robert Jefe Lindstaedt) [#6809](https://github.com/nodejs/node/pull/6809)
+* [[`3b461870be`](https://github.com/nodejs/node/commit/3b461870be)] - **doc**: Backport ee.once doc clarifications to 4.x. (Lance Ball) [#7103](https://github.com/nodejs/node/pull/7103)
+* [[`eadb7e5b20`](https://github.com/nodejs/node/commit/eadb7e5b20)] - **doc**: subdivide TOC, add auxiliary links (Jeremiah Senkpiel) [#6167](https://github.com/nodejs/node/pull/6167)
+* [[`107839c5dd`](https://github.com/nodejs/node/commit/107839c5dd)] - **doc**: no Node.js(1) (Jeremiah Senkpiel) [#6167](https://github.com/nodejs/node/pull/6167)
+* [[`401325f9e2`](https://github.com/nodejs/node/commit/401325f9e2)] - **doc**: better example & synopsis (Jeremiah Senkpiel) [#6167](https://github.com/nodejs/node/pull/6167)
+* [[`c654184f28`](https://github.com/nodejs/node/commit/c654184f28)] - **doc**: remove link to Sign in crypto.md (Kirill Fomichev) [#6812](https://github.com/nodejs/node/pull/6812)
+* [[`3e9288e466`](https://github.com/nodejs/node/commit/3e9288e466)] - **doc**: fix exec example in child_process (Evan Lucas) [#6660](https://github.com/nodejs/node/pull/6660)
+* [[`3d820e45b4`](https://github.com/nodejs/node/commit/3d820e45b4)] - **doc**: "a" -> "an" in api/documentation.md (Anchika Agarwal) [#6689](https://github.com/nodejs/node/pull/6689)
+* [[`352496daa2`](https://github.com/nodejs/node/commit/352496daa2)] - **doc**: move the readme newcomers section (Jeremiah Senkpiel) [#6681](https://github.com/nodejs/node/pull/6681)
+* [[`ac6b921ce5`](https://github.com/nodejs/node/commit/ac6b921ce5)] - **doc**: mention existence/purpose of module wrapper (Matt Harrison) [#6433](https://github.com/nodejs/node/pull/6433)
+* [[`97d1fc0fc6`](https://github.com/nodejs/node/commit/97d1fc0fc6)] - **doc**: improve onboarding-extras.md formatting (Jeremiah Senkpiel) [#6548](https://github.com/nodejs/node/pull/6548)
+* [[`c9b144ddd4`](https://github.com/nodejs/node/commit/c9b144ddd4)] - **doc**: linkify remaining references to fs.Stats object (Kevin Donahue) [#6485](https://github.com/nodejs/node/pull/6485)
+* [[`d909c25a33`](https://github.com/nodejs/node/commit/d909c25a33)] - **doc**: fix the lint of an example in cluster.md (yorkie) [#6516](https://github.com/nodejs/node/pull/6516)
+* [[`21d02f460f`](https://github.com/nodejs/node/commit/21d02f460f)] - **doc**: add missing underscore for markdown italics (Kevin Donahue) [#6529](https://github.com/nodejs/node/pull/6529)
+* [[`18ecc779bb`](https://github.com/nodejs/node/commit/18ecc779bb)] - **doc**: ensure consistent grammar in node.1 file (justshiv) [#6426](https://github.com/nodejs/node/pull/6426)
+* [[`52d9e7b61d`](https://github.com/nodejs/node/commit/52d9e7b61d)] - **doc**: fix a typo in __dirname section (William Luo) [#6473](https://github.com/nodejs/node/pull/6473)
+* [[`de20235235`](https://github.com/nodejs/node/commit/de20235235)] - **doc**: remove all scrollbar styling (Claudio Rodriguez) [#6479](https://github.com/nodejs/node/pull/6479)
+* [[`a6f45b4eda`](https://github.com/nodejs/node/commit/a6f45b4eda)] - **doc**: Remove extra space in REPL example (Juan) [#6447](https://github.com/nodejs/node/pull/6447)
+* [[`feda15b2b8`](https://github.com/nodejs/node/commit/feda15b2b8)] - **doc**: update build instructions for OS X (Rich Trott) [#6309](https://github.com/nodejs/node/pull/6309)
+* [[`3d1a3e4a30`](https://github.com/nodejs/node/commit/3d1a3e4a30)] - **doc**: change references to Stable to Current (Myles Borins) [#6318](https://github.com/nodejs/node/pull/6318)
+* [[`e28598b1ef`](https://github.com/nodejs/node/commit/e28598b1ef)] - **doc**: update authors (James M Snell) [#6373](https://github.com/nodejs/node/pull/6373)
+* [[`0f3a94acbd`](https://github.com/nodejs/node/commit/0f3a94acbd)] - **doc**: add JacksonTian to collaborators (Jackson Tian) [#6388](https://github.com/nodejs/node/pull/6388)
+* [[`d7d54c8fd2`](https://github.com/nodejs/node/commit/d7d54c8fd2)] - **doc**: add Minqi Pan to collaborators (Minqi Pan) [#6387](https://github.com/nodejs/node/pull/6387)
+* [[`83721c6fd2`](https://github.com/nodejs/node/commit/83721c6fd2)] - **doc**: add eljefedelrodeodeljefe to collaborators (Robert Jefe Lindstaedt) [#6389](https://github.com/nodejs/node/pull/6389)
+* [[`b112fd1b4e`](https://github.com/nodejs/node/commit/b112fd1b4e)] - **doc**: add ronkorving to collaborators (ronkorving) [#6385](https://github.com/nodejs/node/pull/6385)
+* [[`ac60d9cc86`](https://github.com/nodejs/node/commit/ac60d9cc86)] - **doc**: add estliberitas to collaborators (Alexander Makarenko) [#6386](https://github.com/nodejs/node/pull/6386)
+* [[`435cd56de5`](https://github.com/nodejs/node/commit/435cd56de5)] - **doc**: DCO anchor that doesn't change (William Kapke) [#6257](https://github.com/nodejs/node/pull/6257)
+* [[`7d8141dd1b`](https://github.com/nodejs/node/commit/7d8141dd1b)] - **doc**: add stefanmb to collaborators (Stefan Budeanu) [#6227](https://github.com/nodejs/node/pull/6227)
+* [[`6dfc96326d`](https://github.com/nodejs/node/commit/6dfc96326d)] - **doc**: add iWuzHere to collaborators (Imran Iqbal) [#6226](https://github.com/nodejs/node/pull/6226)
+* [[`3dbcc73159`](https://github.com/nodejs/node/commit/3dbcc73159)] - **doc**: add santigimeno to collaborators (Santiago Gimeno) [#6225](https://github.com/nodejs/node/pull/6225)
+* [[`ae3eb24a3d`](https://github.com/nodejs/node/commit/ae3eb24a3d)] - **doc**: add addaleax to collaborators (Anna Henningsen) [#6224](https://github.com/nodejs/node/pull/6224)
+* [[`46ee7bb4ba`](https://github.com/nodejs/node/commit/46ee7bb4ba)] - **doc**: fix incorrect references in buffer docs (Amery) [#6194](https://github.com/nodejs/node/pull/6194)
+* [[`e3f78eb7c1`](https://github.com/nodejs/node/commit/e3f78eb7c1)] - **doc**: improve rendering of v4.4.5 changelog entry (Myles Borins) [#6958](https://github.com/nodejs/node/pull/6958)
+* [[`bac87d01d9`](https://github.com/nodejs/node/commit/bac87d01d9)] - **gitignore**: adding .vs/ directory to .gitignore (Mike Kaufman) [#6070](https://github.com/nodejs/node/pull/6070)
+* [[`93f2314dc2`](https://github.com/nodejs/node/commit/93f2314dc2)] - **gitignore**: ignore VS 2015 *.VC.opendb files (Mike Kaufman) [#6070](https://github.com/nodejs/node/pull/6070)
+* [[`c98aaf59bf`](https://github.com/nodejs/node/commit/c98aaf59bf)] - **http**: speed up checkIsHttpToken (Jackson Tian) [#4790](https://github.com/nodejs/node/pull/4790)
+* [[`552e25cb6b`](https://github.com/nodejs/node/commit/552e25cb6b)] - **lib,test**: update in preparation for linter update (Rich Trott) [#6498](https://github.com/nodejs/node/pull/6498)
+* [[`aaeeec4765`](https://github.com/nodejs/node/commit/aaeeec4765)] - **lib,test,tools**: alignment on variable assignments (Rich Trott) [#6869](https://github.com/nodejs/node/pull/6869)
+* [[`b3acbc5648`](https://github.com/nodejs/node/commit/b3acbc5648)] - **net**: replace __defineGetter__ with defineProperty (Fedor Indutny) [#6284](https://github.com/nodejs/node/pull/6284)
+* [[`4c1eb5bf03`](https://github.com/nodejs/node/commit/4c1eb5bf03)] - **repl**: create history file with mode 0600 (Carl Lei) [#3394](https://github.com/nodejs/node/pull/3394)
+* [[`90306bb81d`](https://github.com/nodejs/node/commit/90306bb81d)] - **src**: use size_t for http parser array size fields (Ben Noordhuis) [#5969](https://github.com/nodejs/node/pull/5969)
+* [[`af41a63d0f`](https://github.com/nodejs/node/commit/af41a63d0f)] - **src**: replace ARRAY_SIZE with typesafe arraysize (Ben Noordhuis) [#5969](https://github.com/nodejs/node/pull/5969)
+* [[`037291e31f`](https://github.com/nodejs/node/commit/037291e31f)] - **src**: make sure Utf8Value always zero-terminates (Anna Henningsen) [#7101](https://github.com/nodejs/node/pull/7101)
+* [[`a08a0179e9`](https://github.com/nodejs/node/commit/a08a0179e9)] - **stream**: ensure awaitDrain is increased once (David Halls) [#7292](https://github.com/nodejs/node/pull/7292)
+* [[`b73ec46dcb`](https://github.com/nodejs/node/commit/b73ec46dcb)] - **stream**: reset awaitDrain after manual .resume() (Anna Henningsen) [#7160](https://github.com/nodejs/node/pull/7160)
+* [[`55319fe798`](https://github.com/nodejs/node/commit/55319fe798)] - **stream_base**: expose `bytesRead` getter (Fedor Indutny) [#6284](https://github.com/nodejs/node/pull/6284)
+* [[`0414d882ce`](https://github.com/nodejs/node/commit/0414d882ce)] - **test**: fix test-net-* error code check for getaddrinfo(3) (Natanael Copa) [#5099](https://github.com/nodejs/node/pull/5099)
+* [[`be0bb5f5fc`](https://github.com/nodejs/node/commit/be0bb5f5fc)] - **test**: fix unreliable known_issues test (Rich Trott) [#6555](https://github.com/nodejs/node/pull/6555)
+* [[`ab50e82f42`](https://github.com/nodejs/node/commit/ab50e82f42)] - **test**: fix test-process-exec-argv flakiness (Santiago Gimeno) [#7128](https://github.com/nodejs/node/pull/7128)
+* [[`4e38655d5f`](https://github.com/nodejs/node/commit/4e38655d5f)] - **test**: refactor test-tls-reuse-host-from-socket (Rich Trott) [#6756](https://github.com/nodejs/node/pull/6756)
+* [[`1c4549a31e`](https://github.com/nodejs/node/commit/1c4549a31e)] - **test**: fix flaky test-stdout-close-catch (Santiago Gimeno) [#6808](https://github.com/nodejs/node/pull/6808)
+* [[`3b94e31245`](https://github.com/nodejs/node/commit/3b94e31245)] - **test**: robust handling of env for npm-test-install (Myles Borins) [#6797](https://github.com/nodejs/node/pull/6797)
+* [[`4067cde7ee`](https://github.com/nodejs/node/commit/4067cde7ee)] - **test**: abstract skip functionality to common (Jeremiah Senkpiel) [#7114](https://github.com/nodejs/node/pull/7114)
+* [[`8b396e3d71`](https://github.com/nodejs/node/commit/8b396e3d71)] - **test**: fix test-debugger-repl-break-in-module (Rich Trott) [#6686](https://github.com/nodejs/node/pull/6686)
+* [[`847b29c050`](https://github.com/nodejs/node/commit/847b29c050)] - **test**: fix test-debugger-repl-term (Rich Trott) [#6682](https://github.com/nodejs/node/pull/6682)
+* [[`1d68bdbe3f`](https://github.com/nodejs/node/commit/1d68bdbe3f)] - **test**: fix error message checks in test-module-loading (James M Snell) [#5986](https://github.com/nodejs/node/pull/5986)
+* [[`7e739ae159`](https://github.com/nodejs/node/commit/7e739ae159)] - **test,tools**: adjust function argument alignment (Rich Trott) [#7100](https://github.com/nodejs/node/pull/7100)
+* [[`216486c2b6`](https://github.com/nodejs/node/commit/216486c2b6)] - **tools**: lint for function argument alignment (Rich Trott) [#7100](https://github.com/nodejs/node/pull/7100)
+* [[`6a76485ad7`](https://github.com/nodejs/node/commit/6a76485ad7)] - **tools**: update ESLint to 2.9.0 (Rich Trott) [#6498](https://github.com/nodejs/node/pull/6498)
+* [[`a31153c02c`](https://github.com/nodejs/node/commit/a31153c02c)] - **tools**: remove the minifying logic (Sakthipriyan Vairamani) [#6636](https://github.com/nodejs/node/pull/6636)
+* [[`10bd1a73fd`](https://github.com/nodejs/node/commit/10bd1a73fd)] - **tools**: fix license-builder.sh again for ICU (Steven R. Loomis) [#6068](https://github.com/nodejs/node/pull/6068)
+* [[`0f6146c6c0`](https://github.com/nodejs/node/commit/0f6146c6c0)] - **tools**: add tests for the doctool (Ian Kronquist) [#6031](https://github.com/nodejs/node/pull/6031)
+* [[`cc3645cff3`](https://github.com/nodejs/node/commit/cc3645cff3)] - **tools**: lint for alignment of variable assignments (Rich Trott) [#6869](https://github.com/nodejs/node/pull/6869)
+
## 2016-06-22, Version 4.4.6 'Argon' (LTS), @thealphanerd
+### Notable Changes
+
This is an important security release. All Node.js users should consult the security release summary at nodejs.org for details on patched vulnerabilities.
This release is specifically related to a Buffer overflow vulnerability discovered in v8, more details can be found [in the CVE](https://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1669)
@@ -14,17 +126,14 @@ This release is specifically related to a Buffer overflow vulnerability discover
### Notable Changes
-* **buffer**:
- * Buffer no longer errors if you call lastIndexOf with a search term longer than the buffer (Anna Henningsen) [#6511](https://github.com/nodejs/node/pull/6511)
-
-* **contextify**:
- * Context objects are now properly garbage collected, this solves a problem some individuals were experiencing with extreme memory growth (Ali Ijaz Sheikh) [#6871](https://github.com/nodejs/node/pull/6871)
-
-* **deps**:
- * update npm to 2.15.5 (Rebecca Turner) [#6663](https://github.com/nodejs/node/pull/6663)
-
-* **http**:
- * Invalid status codes can no longer be sent. Limited to 3 digit numbers between 100 - 999 (Brian White) [#6291](https://github.com/nodejs/node/pull/6291)
+- **buffer**:
+ - Buffer.indexOf now returns correct values for all UTF-16 input (Anna Henningsen) [#6511](https://github.com/nodejs/node/pull/6511)
+- **contextify**:
+ - Context objects are now properly garbage collected, this solves a problem some individuals were experiencing with extreme memory growth (Ali Ijaz Sheikh) [#6871](https://github.com/nodejs/node/pull/6871)
+- **deps**:
+ - update npm to 2.15.5 (Rebecca Turner) [#6663](https://github.com/nodejs/node/pull/6663)
+- **http**:
+ - Invalid status codes can no longer be sent. Limited to 3 digit numbers between 100 - 999 (Brian White) [#6291](https://github.com/nodejs/node/pull/6291)
### Commits
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 87d6d93584c22c..362846556ac52f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -174,6 +174,7 @@ to address, apply your changes in a separate commit and push that to your
feature branch. Post a comment in the pull request afterwards; GitHub does
not send out notifications when you add commits.
+
## Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
diff --git a/LICENSE b/LICENSE
index e6cd58888640bf..f6e6f5555a8e3b 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1032,7 +1032,7 @@ The externally maintained libraries used by Node.js are:
- ESLint, located at tools/eslint, is licensed as follows:
"""
ESLint
- Copyright (c) 2013 Nicholas C. Zakas. All rights reserved.
+ Copyright jQuery Foundation and other contributors, https://jquery.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
diff --git a/Makefile b/Makefile
index 0f8648cc3678ea..4d180501c6d2c3 100644
--- a/Makefile
+++ b/Makefile
@@ -88,7 +88,7 @@ cctest: all
@out/$(BUILDTYPE)/$@
test: | cctest # Depends on 'all'.
- $(PYTHON) tools/test.py --mode=release message parallel sequential -J
+ $(PYTHON) tools/test.py --mode=release doctool message parallel sequential -J
$(MAKE) jslint
$(MAKE) cpplint
@@ -145,7 +145,7 @@ test-all-valgrind: test-build
test-ci: | build-addons
$(PYTHON) tools/test.py -p tap --logfile test.tap --mode=release --flaky-tests=$(FLAKY_TESTS) \
- $(TEST_CI_ARGS) addons message parallel sequential
+ $(TEST_CI_ARGS) addons doctool message parallel sequential
test-release: test-build
$(PYTHON) tools/test.py --mode=release
@@ -264,11 +264,40 @@ RELEASE=$(shell sed -ne 's/\#define NODE_VERSION_IS_RELEASE \([01]\)/\1/p' src/n
PLATFORM=$(shell uname | tr '[:upper:]' '[:lower:]')
NPMVERSION=v$(shell cat deps/npm/package.json | grep '"version"' | sed 's/^[^:]*: "\([^"]*\)",.*/\1/')
-ifeq ($(findstring x86_64,$(shell uname -m)),x86_64)
+UNAME_M=$(shell uname -m)
+ifeq ($(findstring x86_64,$(UNAME_M)),x86_64)
DESTCPU ?= x64
else
+ifeq ($(findstring ppc64,$(UNAME_M)),ppc64)
+DESTCPU ?= ppc64
+else
+ifeq ($(findstring ppc,$(UNAME_M)),ppc)
+DESTCPU ?= ppc
+else
+ifeq ($(findstring s390x,$(UNAME_M)),s390x)
+DESTCPU ?= s390x
+else
+ifeq ($(findstring s390,$(UNAME_M)),s390)
+DESTCPU ?= s390
+else
+ifeq ($(findstring arm,$(UNAME_M)),arm)
+DESTCPU ?= arm
+else
+ifeq ($(findstring aarch64,$(UNAME_M)),aarch64)
+DESTCPU ?= aarch64
+else
+ifeq ($(findstring powerpc,$(shell uname -p)),powerpc)
+DESTCPU ?= ppc64
+else
DESTCPU ?= x86
endif
+endif
+endif
+endif
+endif
+endif
+endif
+endif
ifeq ($(DESTCPU),x64)
ARCH=x64
else
diff --git a/README.md b/README.md
index 20c24dee60beba..8d697ca91778b1 100644
--- a/README.md
+++ b/README.md
@@ -17,23 +17,30 @@ policies and releases are managed under an
If you need help using or installing Node.js, please use the
[nodejs/help](https://github.com/nodejs/help) issue tracker.
+## Resources for Newcomers
+
+* [Website](https://nodejs.org/en/)
+* [Contributing to the project](./CONTRIBUTING.md)
+* IRC (general questions): [#node.js on chat.freenode.net](https://webchat.freenode.net?channels=node.js&uio=d4)
+* IRC (node core development): [#node-dev on chat.reenode.net](https://webchat.freenode.net?channels=node-dev&uio=d4)
+
## Release Types
The Node.js project maintains multiple types of releases:
-* **Stable**: Released from active development branches of this repository,
+* **Current**: Released from active development branches of this repository,
versioned by [SemVer](http://semver.org/) and signed by a member of the
[Release Team](#release-team).
- Code for Stable releases is organized in this repository by major version
+ Code for Current releases is organized in this repository by major version
number, For example: [v4.x](https://github.com/nodejs/node/tree/v4.x).
- The major version number of Stable releases will increment every 6 months
+ The major version number of Current releases will increment every 6 months
allowing for breaking changes to be introduced. This happens in April and
- October every year. Stable release lines beginning in October each year have
- a maximum support life of 8 months. Stable release lines beginning in April
+ October every year. Current release lines beginning in October each year have
+ a maximum support life of 8 months. Current release lines beginning in April
each year will convert to LTS (see below) after 6 months and receive further
support for 30 months.
* **LTS**: Releases that receive Long-term Support, with a focus on stability
- and security. Every second Stable release line (major version) will become an
+ and security. Every second Current release line (major version) will become an
LTS line and receive 18 months of _Active LTS_ support and a further 12
months of _Maintenance_. LTS release lines are given alphabetically
ordered codenames, beginning with v4 Argon. LTS releases are less frequent
@@ -41,7 +48,7 @@ The Node.js project maintains multiple types of releases:
only incrementing patch version numbers. There are no breaking changes or
feature additions, except in some special circumstances. More information
can be found in the [LTS README](https://github.com/nodejs/LTS/).
-* **Nightly**: Versions of code in this repository on the current Stable
+* **Nightly**: Versions of code in this repository on the current Current
branch, automatically built every 24-hours where changes exist. Use with
caution.
@@ -50,10 +57,10 @@ The Node.js project maintains multiple types of releases:
Binaries, installers, and source tarballs are available at
.
-**Stable** and **LTS** releases are available at
+**Current** and **LTS** releases are available at
, listed under their version strings.
The [latest](https://nodejs.org/download/release/latest/) directory is an
-alias for the latest Stable release. The latest LTS release from an LTS
+alias for the latest Current release. The latest LTS release from an LTS
line is available in the form: latest-_codename_. For example:
@@ -68,7 +75,7 @@ documentation of the latest stable version.
### Verifying Binaries
-Stable, LTS and Nightly download directories all contain a *SHASUM256.txt*
+Current, LTS and Nightly download directories all contain a *SHASUM256.txt*
file that lists the SHA checksums for each file available for
download.
@@ -88,7 +95,7 @@ $ grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c -
_(Where "node-vx.y.z.tar.gz" is the name of the file you have
downloaded)_
-Additionally, Stable and LTS releases (not Nightlies) have GPG signed
+Additionally, Current and LTS releases (not Nightlies) have GPG signed
copies of SHASUM256.txt files available as SHASUM256.txt.asc. You can use
`gpg` to verify that the file has not been tampered with.
@@ -116,16 +123,6 @@ the binary verification command above.
See [BUILDING.md](BUILDING.md) for instructions on how to build
Node.js from source.
-
-## Resources for Newcomers
-
-* [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)
-* [CONTRIBUTING.md](./CONTRIBUTING.md)
-* [GOVERNANCE.md](./GOVERNANCE.md)
-* IRC (general questions): [#node.js on Freenode.net](https://webchat.freenode.net?channels=node.js&uio=d4)
-* IRC (node core development): [#node-dev on Freenode.net](https://webchat.freenode.net?channels=node-dev&uio=d4)
-* [nodejs/node on Gitter](https://gitter.im/nodejs/node)
-
## Security
All security bugs in Node.js are taken seriously and should be reported by
@@ -167,16 +164,23 @@ information about the governance of the Node.js project, see
### Collaborators
+* [addaleax](https://github.com/addaleax) - **Anna Henningsen** <anna@addaleax.net>
* [AndreasMadsen](https://github.com/AndreasMadsen) - **Andreas Madsen** <amwebdk@gmail.com>
+* [bengl](https://github.com/bengl) - **Bryan English** <bryan@bryanenglish.com>
* [benjamingr](https://github.com/benjamingr) - **Benjamin Gruenbaum** <benjamingr@gmail.com>
* [brendanashworth](https://github.com/brendanashworth) - **Brendan Ashworth** <brendan.ashworth@me.com>
* [calvinmetcalf](https://github.com/calvinmetcalf) - **Calvin Metcalf** <calvin.metcalf@gmail.com>
* [claudiorodriguez](https://github.com/claudiorodriguez) - **Claudio Rodriguez** <cjrodr@yahoo.com>
* [domenic](https://github.com/domenic) - **Domenic Denicola** <d@domenic.me>
+* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) - **Robert Jefe Lindstaedt** <robert.lindstaedt@gmail.com>
+* [estliberitas](https://github.com/estliberitas) - **Alexander Makarenko** <estliberitas@gmail.com>
* [geek](https://github.com/geek) - **Wyatt Preul** <wpreul@gmail.com>
* [iarna](https://github.com/iarna) - **Rebecca Turner** <me@re-becca.org>
* [isaacs](https://github.com/isaacs) - **Isaac Z. Schlueter** <i@izs.me>
+* [iWuzHere](https://github.com/iWuzHere) - **Imran Iqbal** <imran@imraniqbal.org>
+* [JacksonTian](https://github.com/JacksonTian) - **Jackson Tian** <shvyo1987@gmail.com>
* [jbergstroem](https://github.com/jbergstroem) - **Johan Bergström** <bugs@bergstroem.nu>
+* [jhamhader](https://github.com/jhamhader) - **Yuval Brik** <yuval@brik.org.il>
* [joaocgreis](https://github.com/joaocgreis) - **João Reis** <reis@janeasystems.com>
* [julianduque](https://github.com/julianduque) - **Julian Duque** <julianduquej@gmail.com>
* [JungMinu](https://github.com/JungMinu) - **Minwoo Jung** <jmwsoft@gmail.com>
@@ -187,18 +191,23 @@ information about the governance of the Node.js project, see
* [mikeal](https://github.com/mikeal) - **Mikeal Rogers** <mikeal.rogers@gmail.com>
* [monsanto](https://github.com/monsanto) - **Christopher Monsanto** <chris@monsan.to>
* [Olegas](https://github.com/Olegas) - **Oleg Elifantiev** <oleg@elifantiev.ru>
+* [othiym23](https://github.com/othiym23) - **Forrest L Norvell** <ogd@aoaioxxysz.net>
* [petkaantonov](https://github.com/petkaantonov) - **Petka Antonov** <petka_antonov@hotmail.com>
* [phillipj](https://github.com/phillipj) - **Phillip Johnsen** <johphi@gmail.com>
+* [pmq20](https://github.com/pmq20) - **Minqi Pan** <pmq2001@gmail.com>
* [qard](https://github.com/qard) - **Stephen Belanger** <admin@stephenbelanger.com>
* [rlidwka](https://github.com/rlidwka) - **Alex Kocharin** <alex@kocharin.ru>
* [rmg](https://github.com/rmg) - **Ryan Graham** <r.m.graham@gmail.com>
* [robertkowalski](https://github.com/robertkowalski) - **Robert Kowalski** <rok@kowalski.gd>
* [romankl](https://github.com/romankl) - **Roman Klauke** <romaaan.git@gmail.com>
+* [ronkorving](https://github.com/ronkorving) - **Ron Korving** <ron@ronkorving.nl>
* [saghul](https://github.com/saghul) - **Saúl Ibarra Corretgé** <saghul@gmail.com>
* [sam-github](https://github.com/sam-github) - **Sam Roberts** <vieuxtech@gmail.com>
+* [santigimeno](https://github.com/santigimeno) - **Santiago Gimeno** <santiago.gimeno@gmail.com>
* [seishun](https://github.com/seishun) - **Nikolai Vavilov** <vvnicholas@gmail.com>
* [silverwind](https://github.com/silverwind) - **Roman Reiss** <me@silverwind.io>
* [srl295](https://github.com/srl295) - **Steven R Loomis** <srloomis@us.ibm.com>
+* [stefanmb](https://github.com/stefanmb) - **Stefan Budeanu** <stefan@budeanu.com>
* [targos](https://github.com/targos) - **Michaël Zasso** <mic.besace@gmail.com>
* [tellnes](https://github.com/tellnes) - **Christian Tellnes** <christian@tellnes.no>
* [thealphanerd](https://github.com/thealphanerd) - **Myles Borins** <myles.borins@gmail.com>
diff --git a/WORKING_GROUPS.md b/WORKING_GROUPS.md
index 94e221ebdb43c5..451251320c1168 100644
--- a/WORKING_GROUPS.md
+++ b/WORKING_GROUPS.md
@@ -471,21 +471,32 @@ or else the discussion will continue. Simple majority wins.
Note that changes to WG membership require unanimous consensus. See
"WG Membership" above.
-### Developer's Certificate of Origin 1.0
+
+## Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
* (a) The contribution was created in whole or in part by me and I
- have the right to submit it under the open source license indicated
- in the file; or
+ have the right to submit it under the open source license
+ indicated in the file; or
+
* (b) The contribution is based upon previous work that, to the best
- of my knowledge, is covered under an appropriate open source license
- and I have the right under that license to submit that work with
- modifications, whether created in whole or in part by me, under the
- same open source license (unless I am permitted to submit under a
- different license), as indicated in the file; or
+ of my knowledge, is covered under an appropriate open source
+ license and I have the right under that license to submit that
+ work with modifications, whether created in whole or in part
+ by me, under the same open source license (unless I am
+ permitted to submit under a different license), as indicated
+ in the file; or
+
* (c) The contribution was provided directly to me by some other
- person who certified (a), (b) or (c) and I have not modified it.
+ person who certified (a), (b) or (c) and I have not modified
+ it.
+
+* (d) I understand and agree that this project and the contribution
+ are public and that a record of the contribution (including all
+ personal information I submit with it, including my sign-off) is
+ maintained indefinitely and may be redistributed consistent with
+ this project or the open source license(s) involved.
### Moderation Policy
diff --git a/android-configure b/android-configure
index cbf137f47174c7..1dc238ebd0c522 100755
--- a/android-configure
+++ b/android-configure
@@ -1,5 +1,14 @@
#!/bin/bash
+# In order to cross-compile node for Android using NDK, run:
+# source android-configure [arch]
+#
+# By running android-configure with source, will allow environment variables to
+# be persistent in current session. This is useful for installing native node
+# modules with npm. Also, don't forget to set the arch in npm config using
+# 'npm config set arch='
+
+
if [ -z "$2" ]; then
ARCH=arm
else
@@ -42,8 +51,16 @@ export CC=$TOOLCHAIN/bin/$SUFFIX-gcc
export CXX=$TOOLCHAIN/bin/$SUFFIX-g++
export LINK=$TOOLCHAIN/bin/$SUFFIX-g++
-./configure \
- --dest-cpu=$DEST_CPU \
- --dest-os=android \
- --without-snapshot \
- --openssl-no-asm
+GYP_DEFINES="target_arch=$ARCH"
+GYP_DEFINES+=" v8_target_arch=$ARCH"
+GYP_DEFINES+=" android_target_arch=$ARCH"
+GYP_DEFINES+=" host_os=linux OS=android"
+export GYP_DEFINES
+
+if [ -f "configure" ]; then
+ ./configure \
+ --dest-cpu=$DEST_CPU \
+ --dest-os=android \
+ --without-snapshot \
+ --openssl-no-asm
+fi
diff --git a/benchmark/assert/deepequal-prims-and-objs-big-array.js b/benchmark/assert/deepequal-prims-and-objs-big-array.js
index d8d2b57331f7ef..dc18d959bbce2b 100644
--- a/benchmark/assert/deepequal-prims-and-objs-big-array.js
+++ b/benchmark/assert/deepequal-prims-and-objs-big-array.js
@@ -1,22 +1,25 @@
'use strict';
var common = require('../common.js');
var assert = require('assert');
+
+const primValues = {
+ 'null': null,
+ 'undefined': undefined,
+ 'string': 'a',
+ 'number': 1,
+ 'boolean': true,
+ 'object': { 0: 'a' },
+ 'array': [1, 2, 3],
+ 'new-array': new Array([1, 2, 3])
+};
+
var bench = common.createBenchmark(main, {
- prim: [
- null,
- undefined,
- 'a',
- 1,
- true,
- {0: 'a'},
- [1, 2, 3],
- new Array([1, 2, 3])
- ],
+ prim: Object.keys(primValues),
n: [25]
});
function main(conf) {
- var prim = conf.prim;
+ var prim = primValues[conf.prim];
var n = +conf.n;
var primArray;
var primArrayCompare;
diff --git a/benchmark/assert/deepequal-prims-and-objs-big-loop.js b/benchmark/assert/deepequal-prims-and-objs-big-loop.js
index 5f0519bb3b45ad..3c76a586f7d5fb 100644
--- a/benchmark/assert/deepequal-prims-and-objs-big-loop.js
+++ b/benchmark/assert/deepequal-prims-and-objs-big-loop.js
@@ -1,22 +1,25 @@
'use strict';
var common = require('../common.js');
var assert = require('assert');
+
+const primValues = {
+ 'null': null,
+ 'undefined': undefined,
+ 'string': 'a',
+ 'number': 1,
+ 'boolean': true,
+ 'object': { 0: 'a' },
+ 'array': [1, 2, 3],
+ 'new-array': new Array([1, 2, 3])
+};
+
var bench = common.createBenchmark(main, {
- prim: [
- null,
- undefined,
- 'a',
- 1,
- true,
- {0: 'a'},
- [1, 2, 3],
- new Array([1, 2, 3])
- ],
+ prim: Object.keys(primValues),
n: [1e5]
});
function main(conf) {
- var prim = conf.prim;
+ var prim = primValues[conf.prim];
var n = +conf.n;
var x;
diff --git a/benchmark/buffers/buffer-read.js b/benchmark/buffers/buffer-read.js
index 2810aa1b463321..1cdc4bc4697067 100644
--- a/benchmark/buffers/buffer-read.js
+++ b/benchmark/buffers/buffer-read.js
@@ -2,7 +2,7 @@
var common = require('../common.js');
var bench = common.createBenchmark(main, {
- noAssert: [false, true],
+ noAssert: ['false', 'true'],
buffer: ['fast', 'slow'],
type: ['UInt8', 'UInt16LE', 'UInt16BE',
'UInt32LE', 'UInt32BE',
diff --git a/benchmark/buffers/buffer-tostring.js b/benchmark/buffers/buffer-tostring.js
index f71c2b9a2b5127..937a84b267ed19 100644
--- a/benchmark/buffers/buffer-tostring.js
+++ b/benchmark/buffers/buffer-tostring.js
@@ -3,13 +3,13 @@
const common = require('../common.js');
const bench = common.createBenchmark(main, {
- arg: [true, false],
+ arg: ['true', 'false'],
len: [0, 1, 64, 1024],
n: [1e7]
});
function main(conf) {
- const arg = conf.arg;
+ const arg = conf.arg === 'true';
const len = conf.len | 0;
const n = conf.n | 0;
const buf = Buffer(len).fill(42);
diff --git a/benchmark/buffers/buffer-write.js b/benchmark/buffers/buffer-write.js
index 4e07fc511be12a..51f8cd505ec6d9 100644
--- a/benchmark/buffers/buffer-write.js
+++ b/benchmark/buffers/buffer-write.js
@@ -1,7 +1,7 @@
'use strict';
var common = require('../common.js');
var bench = common.createBenchmark(main, {
- noAssert: [false, true],
+ noAssert: ['false', 'true'],
buffer: ['fast', 'slow'],
type: ['UInt8', 'UInt16LE', 'UInt16BE',
'UInt32LE', 'UInt32BE',
diff --git a/benchmark/misc/child-process-read.js b/benchmark/child_process/child-process-read.js
similarity index 100%
rename from benchmark/misc/child-process-read.js
rename to benchmark/child_process/child-process-read.js
diff --git a/benchmark/misc/spawn-echo.js b/benchmark/child_process/spawn-echo.js
similarity index 100%
rename from benchmark/misc/spawn-echo.js
rename to benchmark/child_process/spawn-echo.js
diff --git a/benchmark/common.js b/benchmark/common.js
index 69c3d00ee2e1f1..dbf8d1b13b7beb 100644
--- a/benchmark/common.js
+++ b/benchmark/common.js
@@ -152,6 +152,10 @@ Benchmark.prototype._run = function() {
var j = 0;
set.forEach(function(s) {
vals.forEach(function(val) {
+ if (typeof val !== 'number' && typeof val !== 'string') {
+ throw new TypeError(`configuration "${key}" had type ${typeof val}`);
+ }
+
newSet[j++] = s.concat(key + '=' + val);
});
});
diff --git a/benchmark/misc/domain-fn-args.js b/benchmark/domain/domain-fn-args.js
similarity index 100%
rename from benchmark/misc/domain-fn-args.js
rename to benchmark/domain/domain-fn-args.js
diff --git a/benchmark/http/check_is_http_token.js b/benchmark/http/check_is_http_token.js
new file mode 100644
index 00000000000000..9e0b8279b58ed0
--- /dev/null
+++ b/benchmark/http/check_is_http_token.js
@@ -0,0 +1,52 @@
+'use strict';
+
+const common = require('../common.js');
+const _checkIsHttpToken = require('_http_common')._checkIsHttpToken;
+
+const bench = common.createBenchmark(main, {
+ key: [
+ 'TCN',
+ 'ETag',
+ 'date',
+ 'Vary',
+ 'server',
+ 'Server',
+ 'status',
+ 'version',
+ 'Expires',
+ 'alt-svc',
+ 'location',
+ 'Connection',
+ 'Keep-Alive',
+ 'content-type',
+ 'Content-Type',
+ 'Cache-Control',
+ 'Last-Modified',
+ 'Accept-Ranges',
+ 'content-length',
+ 'x-frame-options',
+ 'x-xss-protection',
+ 'Content-Encoding',
+ 'Content-Location',
+ 'Transfer-Encoding',
+ 'alternate-protocol',
+ ':', // invalid input
+ '@@',
+ '中文呢', // unicode
+ '((((())))', // invalid
+ ':alternate-protocol', // fast bailout
+ 'alternate-protocol:' // slow bailout
+ ],
+ n: [1e6],
+});
+
+function main(conf) {
+ var n = +conf.n;
+ var key = conf.key;
+
+ bench.start();
+ for (var i = 0; i < n; i++) {
+ _checkIsHttpToken(key);
+ }
+ bench.end(n);
+}
diff --git a/benchmark/misc/module-loader.js b/benchmark/module/module-loader.js
similarity index 100%
rename from benchmark/misc/module-loader.js
rename to benchmark/module/module-loader.js
diff --git a/benchmark/misc/next-tick-breadth-args.js b/benchmark/process/next-tick-breadth-args.js
similarity index 100%
rename from benchmark/misc/next-tick-breadth-args.js
rename to benchmark/process/next-tick-breadth-args.js
diff --git a/benchmark/misc/next-tick-breadth.js b/benchmark/process/next-tick-breadth.js
similarity index 100%
rename from benchmark/misc/next-tick-breadth.js
rename to benchmark/process/next-tick-breadth.js
diff --git a/benchmark/misc/next-tick-depth-args.js b/benchmark/process/next-tick-depth-args.js
similarity index 100%
rename from benchmark/misc/next-tick-depth-args.js
rename to benchmark/process/next-tick-depth-args.js
diff --git a/benchmark/misc/next-tick-depth.js b/benchmark/process/next-tick-depth.js
similarity index 100%
rename from benchmark/misc/next-tick-depth.js
rename to benchmark/process/next-tick-depth.js
diff --git a/benchmark/misc/string-decoder.js b/benchmark/string_decoder/string-decoder.js
similarity index 100%
rename from benchmark/misc/string-decoder.js
rename to benchmark/string_decoder/string-decoder.js
diff --git a/benchmark/misc/timers.js b/benchmark/timers/timers.js
similarity index 100%
rename from benchmark/misc/timers.js
rename to benchmark/timers/timers.js
diff --git a/benchmark/url/url-resolve.js b/benchmark/url/url-resolve.js
index 18f67e82e30787..8372132e4d269e 100644
--- a/benchmark/url/url-resolve.js
+++ b/benchmark/url/url-resolve.js
@@ -3,30 +3,43 @@ var common = require('../common.js');
var url = require('url');
var v8 = require('v8');
+var hrefs = [
+ 'http://example.com/',
+ 'http://nodejs.org/docs/latest/api/url.html#url_url_format_urlobj',
+ 'http://blog.nodejs.org/',
+ 'https://encrypted.google.com/search?q=url&q=site:npmjs.org&hl=en',
+ 'javascript:alert("node is awesome");',
+ 'some.ran/dom/url.thing?oh=yes#whoo'
+];
+
+
+var paths = [
+ '../../../../../etc/passwd',
+ '../foo/bar?baz=boom',
+ 'foo/bar',
+ 'http://nodejs.org',
+ './foo/bar?baz'
+];
+
var bench = common.createBenchmark(main, {
- type: ['one'],
- n: [1e5],
+ href: Object.keys(hrefs),
+ path: Object.keys(paths),
+ n: [1e5]
});
function main(conf) {
- var type = conf.type;
var n = conf.n | 0;
-
- var inputs = {
- one: ['http://example.com/', '../../../../../etc/passwd'],
- };
- var input = inputs[type] || [];
+ var href = hrefs[conf.href];
+ var path = paths[conf.path];
// Force-optimize url.resolve() so that the benchmark doesn't get
// disrupted by the optimizer kicking in halfway through.
- for (var name in inputs)
- url.resolve(inputs[name][0], inputs[name][1]);
-
+ url.resolve(href, path);
v8.setFlagsFromString('--allow_natives_syntax');
eval('%OptimizeFunctionOnNextCall(url.resolve)');
bench.start();
for (var i = 0; i < n; i += 1)
- url.resolve(input[0], input[1]);
+ url.resolve(href, path);
bench.end(n);
}
diff --git a/benchmark/misc/url.js b/benchmark/url/url.js
similarity index 100%
rename from benchmark/misc/url.js
rename to benchmark/url/url.js
diff --git a/deps/cares/cares.gyp b/deps/cares/cares.gyp
index 8a5239b4129623..745e38e33d2d6b 100644
--- a/deps/cares/cares.gyp
+++ b/deps/cares/cares.gyp
@@ -12,6 +12,10 @@
[ 'OS=="aix"', {
'include_dirs': [ 'config/aix' ],
'sources': [ 'config/aix/ares_config.h' ],
+ 'defines': [
+ # Support for malloc(0)
+ '_LINUX_SOURCE_COMPAT=1',
+ '_ALL_SOURCE=1'],
}],
['OS=="solaris"', {
'defines': [
diff --git a/deps/npm/.npmignore b/deps/npm/.npmignore
index 6f97b5dc0dcb48..93398c04aa252f 100644
--- a/deps/npm/.npmignore
+++ b/deps/npm/.npmignore
@@ -28,3 +28,5 @@ html/*.png
*.pyc
/test/tap/builtin-config
+
+.nyc_output
diff --git a/deps/npm/.travis.yml b/deps/npm/.travis.yml
index ec83c64532d80e..38db7ad0b02403 100644
--- a/deps/npm/.travis.yml
+++ b/deps/npm/.travis.yml
@@ -1,12 +1,17 @@
language: node_js
sudo: false
node_js:
- - "6"
+ # LTS is our most important target
- "4"
+ # next LTS and master is next most important
+ - "6"
+ # still in LTS maintenance until fall 2016
+ # (also still in wide use)
+ - "0.10"
+ # will be unsupported as soon as 6 becomes LTS and 7 released
- "5"
+ # technically in LTS / distros, unbeloved
- "0.12"
- - "0.10"
- - "0.8"
env:
- DEPLOY_VERSION=testing
before_install:
diff --git a/deps/npm/AUTHORS b/deps/npm/AUTHORS
index 00c2a1d31f8541..92fa799c099b38 100644
--- a/deps/npm/AUTHORS
+++ b/deps/npm/AUTHORS
@@ -362,3 +362,9 @@ Paul Irish
Paul O'Leary McCann
Francis Gulotta
Rachel Evans
+Michael Jackson
+Myles Borins
+André Herculano
+Wyatt Preul
+Gianluca Casati
+Tapani Moilanen
diff --git a/deps/npm/CHANGELOG.md b/deps/npm/CHANGELOG.md
index 2e9d6604322895..5927c19c3b5d5d 100644
--- a/deps/npm/CHANGELOG.md
+++ b/deps/npm/CHANGELOG.md
@@ -1,3 +1,253 @@
+### v2.15.8 (2016-06-17):
+
+There's a very important bug fix and a long-awaited (and signifcant!)
+deprecation in this hotfix release. [Hold on.](http://butt.holdings/)
+
+#### *WHOA*
+
+When Node.js 6.0.0 was released, the CLI team noticed an alarming upsurge in
+bugs related to important files (like `README.md`) not being included in
+published packages. The new bugs looked much like
+[#5082](https://github.com/npm/npm/issues/5082), which had been around in one
+form or another since April, 2014. #5082 used to be a very rare (and obnoxious)
+bug that the CLI team hadn't had much luck reproducing, and we'd basically
+marked it down as a race condition that arose on machines using slow and / or
+rotating-media-based hard drives.
+
+Under 6.0.0, the behavior was reliable enough to be nearly deterministic, and
+made it very difficult for publishers using `.npmignore` files in combination
+with `"files"` stanzas in `package.json` to get their packages onto the
+registry without one or more files missing from the packed tarball. The entire
+saga is contained within [the issue](https://github.com/npm/npm/issues/5082),
+but the summary is that an improvement to the performance of
+[`fs.realpath()`](https://nodejs.org/api/fs.html#fs_fs_realpath_path_options_callback)
+made it much more likely that the packing code would lose the race.
+
+Fixing this has proven to be very difficult, in part because the code used by
+npm to produce package tarballs is more complicated than, strictly speaking, it
+needs to be. [**@evanlucas**](https://github.com/evanlucas) contributed [a
+patch](https://github.com/npm/fstream/pull/50) that passed the tests in a
+[special test suite](https://github.com/othiym23/eliminate-5082) that I
+([**@othiym23**](https://github.com/othiym23)) created (with help from
+[**@addaleax**](https://github.com/addaleax)), but only _after_ we'd released
+the fixed version of that package did we learn that it actually made the
+problem _worse_ in other situations in npm proper. Eventually,
+[**@rvagg**](https://github.com/rvagg) put together a more durable fix that
+appears to completely address the errant behavior under Node.js 6.0.0. That's
+the patch included in this release. Everybody should chip in for redback
+insurance for Rod and his family; he's done the community a huge favor.
+
+Does this mean the long (2+ year) saga of #5082 is now over? At this point, I'm
+going to quote from my latest summary on the issue:
+
+> The CLI team (mostly me, with input from the rest of the team) has decided that
+> the overall complexity of the interaction between `fstream`, `fstream-ignore`,
+> `fstream-npm`, and `node-tar` has grown more convoluted than the team is
+> comfortable (maybe even capable of) supporting.
+>
+> - While I believe that @rvagg's (very targeted) fix addresses _this_ issue, I
+> would be shocked if there aren't other race conditions in npm's packing
+> logic. I've already identified a couple other places in the code that are
+> most likely race conditions, even if they're harder to trigger than the
+> current one.
+> - The way that dependency bundling is integrated leads to a situation in
+> which a bunch of logic is duplicated between `fstream-npm` and
+> `lib/utils/tar.js` in npm itself, and the way `fstream`'s extension
+> mechanism works makes this difficult to clean up. This caused a nasty
+> regression ([#13088](https://github.com/npm/fstream/pull/50), see below) as
+> of ~`npm@3.8.7` where the dependencies of `bundledDependencies` were no
+> longer being included in the built package tarballs.
+> - The interaction between `.npmignore`, `.gitignore`, and `files` is hopelessly
+> complicated, scattered in many places throughout the code. We've been
+> discussing [making the ignores and includes logic clearer and more
+> predictable](https://github.com/npm/npm/wiki/Files-and-Ignores), and the
+> current code fights our efforts to clean that up.
+>
+> So, our intention is still to replace `fstream`, `fstream-ignore`, and
+> `fstream-npm` with something much simpler and purpose-built. There's no real
+> reason to have a stream abstraction here when a simple recursive-descent
+> filesystem visitor and a synchronous function that can answer whether a given
+> path should be included in the packed tarball would do the job adequately.
+>
+> What's not yet clear is whether we'll need to replace `node-tar` in the
+> process. `node-tar` is a very robust implementation of tar (it handles, like,
+> everything), and it also includes some very important tweaks to prevent several
+> classes of security exploits involving maliciously crafted packages. However,
+> its packing API involves passing in an `fstream` instance, so we'd either need
+> to produce something that follows enough of `fstream`'s contract for `node-tar`
+> to keep working, or swap `node-tar` out for something like `tar-stream` (and
+> then ensuring that our use of `tar-stream` is secure, which could involve
+> security patches for either npm or `tar-stream`).
+
+The testing and review of `fstream@1.0.10` that the team has done leads us to
+believe that this bug is fixed, but I'm feeling more than a little paranoid
+about fstream now, so it's important that people keep a close eye on their
+publishes for a while and let us know immediately if they notice any
+irregularities.
+
+* [`2c49265`](https://github.com/npm/npm/commit/2c49265c6746d29ae0cd5f3532d28c5950f9847e)
+ [#5082](https://github.com/npm/npm/issues/5082) `fstream@1.0.10`: Ensure that
+ entries are collected after a paused stream resumes.
+ ([@rvagg](https://github.com/rvagg))
+* [`92e4344`](https://github.com/npm/npm/commit/92e43444d9204f749f83512aeab5d5e0a2d085a7)
+ [#5082](https://github.com/npm/npm/issues/5082) Remove the warning introduced
+ in `npm@3.10.0`, because it should no longer be necessary.
+ ([@othiym23](https://github.com/othiym23))
+
+#### GOODBYE, FAITHFUL FRIEND
+
+At NodeConf Adventure 2016 (RIP in peace, Mikeal Rogers's NodeConf!), the CLI
+team had an opportunity to talk to representatives from some of the larger
+companies that we knew were still using Node.js 0.8 in production. After asking
+them whether they were still using 0.8, we got back blank stares and questions
+like, "0.8? You mean, from four years ago?" After establishing that being able
+to run npm in their legacy environments was no longer necessary, the CLI team
+made the decision to drop support for 0.8. (Faithful observers of our [team
+meetings](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+npm+cli+team+meeting+)
+will have known this was the plan for NodeConf since the beginning of 2016.)
+
+In practice, this means only what's in the commit below: we've removed 0.8 from
+our continuous integration test matrix below, and will no longer be habitually
+testing changes under Node 0.8. We may also give ourselves permission to use
+`setImmediate()` in test code. However, since the project still supports
+Node.js 0.10 and 0.12, it's unlikely that patches that rely on ES 2015
+functionality will land anytime soon.
+
+Looking forward, the team's current plan is to drop support for Node.js 0.10
+when its LTS maintenace window expires in October, 2016, and 0.12 when its
+maintenance / LTS window ends at the end of 2016. We will also drop support for
+Node.js 5.x when Node.js 6 becomes LTS and Node.js 7 is released, also in the
+October-December 2016 timeframe.
+
+(Confused about Node.js's LTS policy? [Don't
+be!](https://github.com/nodejs/LTS) If you look at [this
+diagram](https://github.com/nodejs/LTS/blob/ce364a94b0e0619eba570cd57be396573e1ef889/schedule.png),
+it should make all of the preceding clear.)
+
+If, in practice, this doesn't work with distribution packagers or other
+community stakeholders responsible for packaging and distributing Node.js and
+npm, please reach out to us. Aligning the npm CLI's LTS policy with Node's
+helps everybody minimize the amount of work they need to do, and since all of
+our teams are small and very busy, this is somewhere between a necessity and
+non-negotiable.
+
+* [`4a1ecc0`](https://github.com/npm/npm/commit/4a1ecc068fb2660bd9bc3e2e2372aa0176d2193b)
+ Remove 0.8 from the Node.js testing matrix, and reorder to match real-world
+ priority, with comments. ([@othiym23](https://github.com/othiym23))
+
+### v2.15.7 (2016-06-16):
+
+It pains me greatly that we haven't been able to fix
+[#5082](https://github.com/npm/npm/issues/5082) yet, but warning you away from
+potentially publishing incomplete packages takes priority over feeling cheesy
+about landing a warning to help keep y'all out of trouble, so here you go
+(_please read this next bit_ (_please clap_)):
+
+#### DANGER: PUBLISHING ON NODE 6.0.0
+
+Publishing and packing are buggy under Node versions greater than 6.0.0.
+Please use Node.js LTS (4.4.x) to publish packages. See
+[#5082](https://github.com/npm/npm/issues/5082) for details and current
+status.
+
+* [`dff00ce`](https://github.com/npm/npm/commit/dff00cedd56b9c04370f840299a7e657a7a835c6)
+ [#13077](https://github.com/npm/npm/pull/13077)
+ Warn when using Node 6+.
+ ([@othiym23](https://github.com/othiym23))
+
+#### PACKAGING CHANGES
+
+* [`1877171`](https://github.com/npm/npm/commit/1877171648e20595a82de34073b643f7e01a339f)
+ [#12873](https://github.com/npm/npm/issues/12873)
+ Ignore `.nyc_output`. This will help avoid an accidental publish or commit filled with
+ code coverage data.
+ ([@TheAlphaNerd](https://github.com/TheAlphaNerd))
+
+#### DOCUMENTATION CHANGES
+
+* [`470ae86`](https://github.com/npm/npm/commit/470ae86e052ae2f29ebec15b7547230b6240042e)
+ [#12983](https://github.com/npm/npm/pull/12983)
+ Describe how to run the lifecycle scripts of dependencies. How you do
+ this changed with `npm` v2.
+ ([@Tapppi](https://github.com/Tapppi))
+* [`9cedf37`](https://github.com/npm/npm/commit/9cedf37e5a3e26d0ffd6351af8cac974e3e011c2)
+ [#12776](https://github.com/npm/npm/pull/12776)
+ Remove mention of `` arg for `run-script`.
+ ([@fibo](https://github.com/fibo))
+* [`55b8424`](https://github.com/npm/npm/commit/55b8424d7229f2021cac55f0b03de72403e7c0ff)
+ [#12840](https://github.com/npm/npm/pull/12840)
+ Remove sexualized language from comment.
+ ([@geek](https://github.com/geek))
+* [`d6bf0c3`](https://github.com/npm/npm/commit/d6bf0c393788a6398bf80b41c57956f2dbcf3b39)
+ [#12802](https://github.com/npm/npm/pull/12802)
+ Small grammar fix in `doc/cli/npm.md`.
+ ([@andresilveira](https://github.com/andresilveira))
+
+#### DEPENDENCY UPDATES
+
+* [`2c2c568`](https://github.com/npm/npm/commit/2c2c56857ff801d5fe1b6d3157870cd16e65891b)
+ `readable-stream@2.1.4`: Brought up to date with Node 6.1.0's streams implementation.
+ ([@calvinmetcalf](https://github.com/calvinmetcalf))
+* [`d682e64`](https://github.com/npm/npm/commit/d682e6445845b0a2584935d5e2942409c43f6916)
+ [npm/npm-user-validate#8](https://github.com/npm/npm-user-validate/pull/8)
+ `npm-user-validate@0.1.4`: Add a maximum length limit for usernames based on
+ the (arbitrary) limit imposed by the primary npm registry.
+ ([@aredridel](https://github.com/aredridel))
+* [`448b65b`](https://github.com/npm/npm/commit/448b65b48cda3b782b714057fb4b8311cc1fa36a)
+ `which@1.2.10`: Remove unused dependency `is-absolute`, bug fixes.
+ ([@isaacs](https://github.com/isaacs))
+* [`7d15434`](https://github.com/npm/npm/commit/7d15434f0b0af8e70b119835b21968217224664f)
+ `require-inject@1.4.0`: Add `requireInject.withEmptyCache` and
+ `requireInject.installGlobally.andClearCache` to support loading modules to be
+ injected with an empty cache.
+ ([@iarna](https://github.com/iarna))
+* [`31845c0`](https://github.com/npm/npm/commit/31845c081bc6f3f8a2f3d83a3c792dccffbaa2a8)
+ `init-package-json@1.9.4`:
+ Replace use of reserved identifier `package` in, uh, the package.
+ ([@adius](https://github.com/adius))
+* [`d73ef3e`](https://github.com/npm/npm/commit/d73ef3e6b18d4905de668c5115bc6042905a02d9)
+ `glob@7.0.4`: Use userland `fs.realpath` implementation to get glob working under Node 6.
+ ([@isaacs](https://github.com/isaacs))
+* [`b47da85`](https://github.com/npm/npm/commit/b47da85cf83b946f2c8d29ab612c92028f31f6b0)
+ `inflight@1.0.5`: Correct link to package repository, add `"files"` stanza.
+ ([@iarna](https://github.com/iarna), [@jamestalmage](https://github.com/jamestalmage))
+* [`04815e4`](https://github.com/npm/npm/commit/04815e436035de785279fd000cdbc821cc1f3447)
+ [npm/npmlog#32](https://github.com/npm/npmlog/pull/32)
+ `npmlog@2.0.4`: Add `"files"` stanza to `package.json`.
+ ([@jamestalmage](https://github.com/jamestalmage))
+* [`9e29ad2`](https://github.com/npm/npm/commit/9e29ad227300bb970e7bcd21029944d4733e40db)
+ `wrappy@1.0.2`: Add `"files"` stanza to `package.json`.
+ ([@jamestalmage](https://github.com/jamestalmage))
+* [`44af4d4`](https://github.com/npm/npm/commit/44af4d475ac65bdce6d088173273ce4a4f74a49e)
+ `abbrev@1.0.9` ([@jorrit](https://github.com/jorrit))
+* [`6c977c0`](https://github.com/npm/npm/commit/6c977c0031d074479a26c7bec6ec83fd6c6526b2)
+ `npm-registry-client@7.1.2`: Add support for newer versions of `npmlog`.
+ ([@iarna](https://github.com/iarna))
+
+### v2.15.6 (2016-05-12):
+
+I have a couple of doc fixes and a shrinkwrap fix for you all this week.
+
+#### PEER DEPENDENCIES AND SHRINKWRAPS
+
+* [`55c998a`](https://github.com/npm/npm/commit/55c998a098a306b90a84beef163a8890f9a616b1)
+ [#5135](https://github.com/npm/npm/issues/5135)
+ Fix a bug where peerDependencies & shrinkwraps didn't play nice together. (Where
+ the peerDependency resolver would end up installing its dep when it wasn't needed.)
+ ([@majgis](https://github.com/majgis))
+
+#### NPM AND `node-gyp` DOCS IMPROVEMENTS
+
+* [`1826908`](https://github.com/npm/npm/commit/1826908b991510d8fbc71a0d0f2c01ff24fd83c2)
+ [#12636](https://github.com/npm/npm/pull/12636)
+ Improve `npm-scripts` documentation regarding when `node-gyp` is used.
+ ([@reconbot](https://github.com/reconbot))
+* [`f9ff7f3`](https://github.com/npm/npm/commit/f9ff7f36cc2c2c3fbb4f6eef91491b589d049d5f)
+ [#12586](https://github.com/npm/npm/pull/12586)
+ Correct `package.json` documentation as to when `node-gyp rebuild` called.
+ This now matches https://docs.npmjs.com/misc/scripts#default-values
+ ([@reconbot](https://github.com/reconbot))
+
### v2.15.5 (2016-05-05):
This is a minor LTS release, bringing dependencies up to date and updating
diff --git a/deps/npm/appveyor.yml b/deps/npm/appveyor.yml
new file mode 100644
index 00000000000000..6bec7c49389b91
--- /dev/null
+++ b/deps/npm/appveyor.yml
@@ -0,0 +1,38 @@
+environment:
+ matrix:
+ # LTS is our most important target
+ - nodejs_version: "4"
+ # next LTS and master is next most important
+ - nodejs_version: "6"
+ # still in LTS maintenance until fall 2016
+ # (also still in wide use)
+ - nodejs_version: "0.10"
+ # will be unsupported as soon as 6 becomes LTS and 7 released
+ - nodejs_version: "5"
+ # technically in LTS / distros, unbeloved
+ - nodejs_version: "0.12"
+ COVERALLS_REPO_TOKEN:
+ secure: XdC0aySefK0HLh1GNk6aKrzZPbCfPQLyA4mYtFGEp4DrTuZA/iuCUS0LDqFYO8JQ
+platform:
+ - x86
+ - x64
+install:
+ - ps: Install-Product node $env:nodejs_version $env:platform
+ - npm config set spin false
+ - npm rebuild
+ - node . install -g .
+ - set "PATH=%APPDATA%\npm;C:\Program Files\Git\mingw64\libexec;%PATH%"
+ - npm install --loglevel=http
+test_script:
+ - node --version
+ - npm --version
+ - npm test
+notifications:
+- provider: Slack
+ incoming_webhook:
+ secure: vXiG5AgpqxJsXZ0N0CTYDuVrX6RMjBybZKtOx6IbRxCyjgd+DAx6Z9/0XgYQjuof7QFJY3M/U6HxaREQVYbNVHA+C5N5dNALRbKzAC8QNbA=
+# GO_FAST
+matrix:
+ fast_finish: true
+# we don't need the builds, we just need tests
+build: off
diff --git a/deps/npm/doc/cli/npm.md b/deps/npm/doc/cli/npm.md
index e23354ac86f147..e59b9abeef0e25 100644
--- a/deps/npm/doc/cli/npm.md
+++ b/deps/npm/doc/cli/npm.md
@@ -41,7 +41,7 @@ requires compiling of C++ Code, npm will use
[node-gyp](https://github.com/TooTallNate/node-gyp) for that task.
For a Unix system, [node-gyp](https://github.com/TooTallNate/node-gyp)
needs Python, make and a buildchain like GCC. On Windows,
-Python and Microsoft Visual Studio C++ is needed. Python 3 is
+Python and Microsoft Visual Studio C++ are needed. Python 3 is
not supported by [node-gyp](https://github.com/TooTallNate/node-gyp).
For more information visit
[the node-gyp repository](https://github.com/TooTallNate/node-gyp) and
diff --git a/deps/npm/doc/files/package.json.md b/deps/npm/doc/files/package.json.md
index cb9a341d7770c0..848ad2b3367aed 100644
--- a/deps/npm/doc/files/package.json.md
+++ b/deps/npm/doc/files/package.json.md
@@ -734,10 +734,10 @@ npm will default some values based on package contents.
If there is a `server.js` file in the root of your package, then npm
will default the `start` command to `node server.js`.
-* `"scripts":{"preinstall": "node-gyp rebuild"}`
+* `"scripts":{"install": "node-gyp rebuild"}`
- If there is a `binding.gyp` file in the root of your package, npm will
- default the `preinstall` command to compile using node-gyp.
+ If there is a `binding.gyp` file in the root of your package and you have not defined an `install` or `preinstall` script, npm will
+ default the `install` command to compile using node-gyp.
* `"contributors": [...]`
diff --git a/deps/npm/doc/misc/npm-scripts.md b/deps/npm/doc/misc/npm-scripts.md
index 10d82bec076e87..0dc20f278f7afb 100644
--- a/deps/npm/doc/misc/npm-scripts.md
+++ b/deps/npm/doc/misc/npm-scripts.md
@@ -34,9 +34,10 @@ following scripts:
stop and start scripts if no `restart` script is provided.
Additionally, arbitrary scripts can be executed by running `npm
-run-script `. *Pre* and *post* commands with matching
+run-script `. *Pre* and *post* commands with matching
names will be run for those as well (e.g. `premyscript`, `myscript`,
-`postmyscript`).
+`postmyscript`). Scripts from dependencies can be run with `npm explore
+ -- npm run `.
## COMMON USES
@@ -71,7 +72,8 @@ npm will default some script values based on package contents.
* `"install": "node-gyp rebuild"`:
- If there is a `bindings.gyp` file in the root of your package, npm will
+ If there is a `binding.gyp` file in the root of your package and you
+ haven't defined your own `install` or `preinstall` scripts, npm will
default the `install` command to compile using node-gyp.
## USER
diff --git a/deps/npm/html/doc/README.html b/deps/npm/html/doc/README.html
index 3bfde0a728f07f..85b91c5a60c7c2 100644
--- a/deps/npm/html/doc/README.html
+++ b/deps/npm/html/doc/README.html
@@ -127,5 +127,5 @@
limit the results to only the paths to the packages named. Note that
nested packages will also show the paths to the specified packages.
For example, running npm ls promzard in npm's source tree will show:
npm is the package manager for the Node JavaScript platform. It puts
modules in place so that node can find them, and manages dependency
@@ -36,7 +36,7 @@
DEPENDENCIES
node-gyp for that task.
For a Unix system, node-gyp
needs Python, make and a buildchain like GCC. On Windows,
-Python and Microsoft Visual Studio C++ is needed. Python 3 is
+Python and Microsoft Visual Studio C++ are needed. Python 3 is
not supported by node-gyp.
For more information visit
the node-gyp repository and
@@ -126,7 +126,7 @@
If there is a server.js file in the root of your package, then npm
will default the start command to node server.js.
-
"scripts":{"preinstall": "node-gyp rebuild"}
-
If there is a binding.gyp file in the root of your package, npm will
-default the preinstall command to compile using node-gyp.
+
"scripts":{"install": "node-gyp rebuild"}
+
If there is a binding.gyp file in the root of your package and you have not defined an install or preinstall script, npm will
+default the install command to compile using node-gyp.
"contributors": [...]
If there is an AUTHORS file in the root of your package, npm will
@@ -582,5 +582,5 @@
If there is a server.js file in the root of your package, then npm
will default the start command to node server.js.
-
"scripts":{"preinstall": "node-gyp rebuild"}
-
If there is a binding.gyp file in the root of your package, npm will
-default the preinstall command to compile using node-gyp.
+
"scripts":{"install": "node-gyp rebuild"}
+
If there is a binding.gyp file in the root of your package and you have not defined an install or preinstall script, npm will
+default the install command to compile using node-gyp.
"contributors": [...]
If there is an AUTHORS file in the root of your package, npm will
@@ -582,5 +582,5 @@
After a few weeks, if there's no resolution, we'll sort it out.
Don't squat on package names. Publish code or move out of the way.
@@ -51,12 +51,12 @@
DESCRIPTION
owner (Bob).
Joe emails Bob, explaining the situation as respectfully as
possible, and what he would like to do with the module name. He
-adds the npm support staff support@npmjs.com to the CC list of
+adds the npm support staff support@npmjs.com to the CC list of
the email. Mention in the email that Bob can run npm owner add
joe foo to add Joe as an owner of the foo package.
After a reasonable amount of time, if Bob has not responded, or if
Bob and Joe can't come to any sort of resolution, email support
-support@npmjs.com and we'll sort it out. ("Reasonable" is
+support@npmjs.com and we'll sort it out. ("Reasonable" is
usually at least 4 weeks, but extra time is allowed around common
holidays.)
stop and start scripts if no restart script is provided.
Additionally, arbitrary scripts can be executed by running npm
-run-script <pkg> <stage>. Pre and post commands with matching
+run-script <stage>
. Pre and post commands with matching
names will be run for those as well (e.g. premyscript, myscript,
-postmyscript).
+postmyscript). Scripts from dependencies can be run with `npm explore
+
-- npm run `.
COMMON USES
If you need to perform operations on your package before it is used, in a way
that is not dependent on the operating system or architecture of the
@@ -74,7 +75,8 @@
DEFAULT VALUES
will default the start command to node server.js.
"install": "node-gyp rebuild":
-
If there is a bindings.gyp file in the root of your package, npm will
+
If there is a binding.gyp file in the root of your package and you
+haven't defined your own install or preinstall scripts, npm will
default the install command to compile using node-gyp.
diff --git a/deps/npm/lib/completion.js b/deps/npm/lib/completion.js
index c85a42de640194..d218679ba1f22c 100644
--- a/deps/npm/lib/completion.js
+++ b/deps/npm/lib/completion.js
@@ -159,7 +159,7 @@ function dumpScript (cb) {
process.stdout.write(d, function () { cb() })
process.stdout.on("error", function (er) {
- // Darwin is a real dick sometimes.
+ // Darwin is a pain sometimes.
//
// This is necessary because the "source" or "." program in
// bash on OS X closes its file argument before reading
diff --git a/deps/npm/lib/install.js b/deps/npm/lib/install.js
index 9cc6a46fc0ca06..10166718d2269c 100644
--- a/deps/npm/lib/install.js
+++ b/deps/npm/lib/install.js
@@ -1182,7 +1182,7 @@ function prepareForInstallMany (packageData, depsKey, bundled, wrap, family) {
// prefer to not install things that are satisfied by
// something in the "family" list, unless we're installing
// from a shrinkwrap.
- if (wrap) return wrap
+ if (depsKey !== "peerDependencies" && wrap) return true
if (semver.validRange(family[d], true)) {
return !semver.satisfies(family[d], packageData[depsKey][d], true)
}
diff --git a/deps/npm/man/man1/npm-README.1 b/deps/npm/man/man1/npm-README.1
index 630b82760ccaa0..e46fb969a117d1 100644
--- a/deps/npm/man/man1/npm-README.1
+++ b/deps/npm/man/man1/npm-README.1
@@ -1,4 +1,4 @@
-.TH "NPM" "1" "May 2016" "" ""
+.TH "NPM" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm\fR \- a JavaScript package manager
.P
diff --git a/deps/npm/man/man1/npm-access.1 b/deps/npm/man/man1/npm-access.1
index 7cc94f62106020..6cddb81db0b400 100644
--- a/deps/npm/man/man1/npm-access.1
+++ b/deps/npm/man/man1/npm-access.1
@@ -1,4 +1,4 @@
-.TH "NPM\-ACCESS" "1" "May 2016" "" ""
+.TH "NPM\-ACCESS" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-access\fR \- Set access level on published packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-adduser.1 b/deps/npm/man/man1/npm-adduser.1
index a2ede7903dbfee..3a22940ba695a6 100644
--- a/deps/npm/man/man1/npm-adduser.1
+++ b/deps/npm/man/man1/npm-adduser.1
@@ -1,4 +1,4 @@
-.TH "NPM\-ADDUSER" "1" "May 2016" "" ""
+.TH "NPM\-ADDUSER" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-adduser\fR \- Add a registry user account
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-bin.1 b/deps/npm/man/man1/npm-bin.1
index be4d81ebd311ab..6cccb70e5acd90 100644
--- a/deps/npm/man/man1/npm-bin.1
+++ b/deps/npm/man/man1/npm-bin.1
@@ -1,4 +1,4 @@
-.TH "NPM\-BIN" "1" "May 2016" "" ""
+.TH "NPM\-BIN" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-bin\fR \- Display npm bin folder
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1
index 77cbb3774a38d7..2ee758aa95668f 100644
--- a/deps/npm/man/man1/npm-bugs.1
+++ b/deps/npm/man/man1/npm-bugs.1
@@ -1,4 +1,4 @@
-.TH "NPM\-BUGS" "1" "May 2016" "" ""
+.TH "NPM\-BUGS" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-bugs\fR \- Bugs for a package in a web browser maybe
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-build.1 b/deps/npm/man/man1/npm-build.1
index 9cd7dfbc15bb02..d4687cd735459d 100644
--- a/deps/npm/man/man1/npm-build.1
+++ b/deps/npm/man/man1/npm-build.1
@@ -1,4 +1,4 @@
-.TH "NPM\-BUILD" "1" "May 2016" "" ""
+.TH "NPM\-BUILD" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-build\fR \- Build a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-bundle.1 b/deps/npm/man/man1/npm-bundle.1
index 561d0f2859405d..098b0d31779233 100644
--- a/deps/npm/man/man1/npm-bundle.1
+++ b/deps/npm/man/man1/npm-bundle.1
@@ -1,4 +1,4 @@
-.TH "NPM\-BUNDLE" "1" "May 2016" "" ""
+.TH "NPM\-BUNDLE" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-bundle\fR \- REMOVED
.SH DESCRIPTION
diff --git a/deps/npm/man/man1/npm-cache.1 b/deps/npm/man/man1/npm-cache.1
index d9bfd8fd6adef4..b325ea394907e3 100644
--- a/deps/npm/man/man1/npm-cache.1
+++ b/deps/npm/man/man1/npm-cache.1
@@ -1,4 +1,4 @@
-.TH "NPM\-CACHE" "1" "May 2016" "" ""
+.TH "NPM\-CACHE" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-cache\fR \- Manipulates packages cache
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1
index 98b4d14c1494cf..c808bd1a72e721 100644
--- a/deps/npm/man/man1/npm-completion.1
+++ b/deps/npm/man/man1/npm-completion.1
@@ -1,4 +1,4 @@
-.TH "NPM\-COMPLETION" "1" "May 2016" "" ""
+.TH "NPM\-COMPLETION" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-completion\fR \- Tab Completion for npm
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1
index 12776e7a884671..6e57eb23a04ce9 100644
--- a/deps/npm/man/man1/npm-config.1
+++ b/deps/npm/man/man1/npm-config.1
@@ -1,4 +1,4 @@
-.TH "NPM\-CONFIG" "1" "May 2016" "" ""
+.TH "NPM\-CONFIG" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-config\fR \- Manage the npm configuration files
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1
index c7c2be7ed087be..b5970c3b5c6086 100644
--- a/deps/npm/man/man1/npm-dedupe.1
+++ b/deps/npm/man/man1/npm-dedupe.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DEDUPE" "1" "May 2016" "" ""
+.TH "NPM\-DEDUPE" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-dedupe\fR \- Reduce duplication
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1
index babbc0c2078624..26db5fc374d3a1 100644
--- a/deps/npm/man/man1/npm-deprecate.1
+++ b/deps/npm/man/man1/npm-deprecate.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DEPRECATE" "1" "May 2016" "" ""
+.TH "NPM\-DEPRECATE" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-deprecate\fR \- Deprecate a version of a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-dist-tag.1 b/deps/npm/man/man1/npm-dist-tag.1
index b7f026cdc95aa4..7c8fe79e82abcd 100644
--- a/deps/npm/man/man1/npm-dist-tag.1
+++ b/deps/npm/man/man1/npm-dist-tag.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DIST\-TAG" "1" "May 2016" "" ""
+.TH "NPM\-DIST\-TAG" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-dist-tag\fR \- Modify package distribution tags
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1
index b1a4c9b70b2772..979df3b857b5a3 100644
--- a/deps/npm/man/man1/npm-docs.1
+++ b/deps/npm/man/man1/npm-docs.1
@@ -1,4 +1,4 @@
-.TH "NPM\-DOCS" "1" "May 2016" "" ""
+.TH "NPM\-DOCS" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-docs\fR \- Docs for a package in a web browser maybe
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1
index 95a328b1468aca..823ec61480bc2e 100644
--- a/deps/npm/man/man1/npm-edit.1
+++ b/deps/npm/man/man1/npm-edit.1
@@ -1,4 +1,4 @@
-.TH "NPM\-EDIT" "1" "May 2016" "" ""
+.TH "NPM\-EDIT" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-edit\fR \- Edit an installed package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1
index 98b5be7253e538..68682897f4500f 100644
--- a/deps/npm/man/man1/npm-explore.1
+++ b/deps/npm/man/man1/npm-explore.1
@@ -1,4 +1,4 @@
-.TH "NPM\-EXPLORE" "1" "May 2016" "" ""
+.TH "NPM\-EXPLORE" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-explore\fR \- Browse an installed package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1
index 5b4141dafdbb08..24216d771b98fe 100644
--- a/deps/npm/man/man1/npm-help-search.1
+++ b/deps/npm/man/man1/npm-help-search.1
@@ -1,4 +1,4 @@
-.TH "NPM\-HELP\-SEARCH" "1" "May 2016" "" ""
+.TH "NPM\-HELP\-SEARCH" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-help-search\fR \- Search npm help documentation
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1
index a2528aa6bb9a70..12ce7361fa771c 100644
--- a/deps/npm/man/man1/npm-help.1
+++ b/deps/npm/man/man1/npm-help.1
@@ -1,4 +1,4 @@
-.TH "NPM\-HELP" "1" "May 2016" "" ""
+.TH "NPM\-HELP" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-help\fR \- Get help on npm
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1
index 257ed419071f2d..94955f53957327 100644
--- a/deps/npm/man/man1/npm-init.1
+++ b/deps/npm/man/man1/npm-init.1
@@ -1,4 +1,4 @@
-.TH "NPM\-INIT" "1" "May 2016" "" ""
+.TH "NPM\-INIT" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-init\fR \- Interactively create a package\.json file
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1
index a6be8c5b8d709b..4d2ec5b9c8a7a4 100644
--- a/deps/npm/man/man1/npm-install.1
+++ b/deps/npm/man/man1/npm-install.1
@@ -1,4 +1,4 @@
-.TH "NPM\-INSTALL" "1" "May 2016" "" ""
+.TH "NPM\-INSTALL" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-install\fR \- Install a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1
index 45897e11199629..913c457424a6c5 100644
--- a/deps/npm/man/man1/npm-link.1
+++ b/deps/npm/man/man1/npm-link.1
@@ -1,4 +1,4 @@
-.TH "NPM\-LINK" "1" "May 2016" "" ""
+.TH "NPM\-LINK" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-link\fR \- Symlink a package folder
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1
index 36edae2f21ede0..33fc3551221185 100644
--- a/deps/npm/man/man1/npm-logout.1
+++ b/deps/npm/man/man1/npm-logout.1
@@ -1,4 +1,4 @@
-.TH "NPM\-LOGOUT" "1" "May 2016" "" ""
+.TH "NPM\-LOGOUT" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-logout\fR \- Log out of the registry
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1
index a1e11b17e62bdd..3f7fe455a7a747 100644
--- a/deps/npm/man/man1/npm-ls.1
+++ b/deps/npm/man/man1/npm-ls.1
@@ -1,4 +1,4 @@
-.TH "NPM\-LS" "1" "May 2016" "" ""
+.TH "NPM\-LS" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-ls\fR \- List installed packages
.SH SYNOPSIS
@@ -23,7 +23,7 @@ For example, running \fBnpm ls promzard\fP in npm's source tree will show:
.P
.RS 2
.nf
-npm@2.15.5 /path/to/npm
+npm@2.15.8 /path/to/npm
└─┬ init\-package\-json@0\.0\.4
└── promzard@0\.1\.5
.fi
diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1
index 0e73f444599efb..0fc75e4553770a 100644
--- a/deps/npm/man/man1/npm-outdated.1
+++ b/deps/npm/man/man1/npm-outdated.1
@@ -1,4 +1,4 @@
-.TH "NPM\-OUTDATED" "1" "May 2016" "" ""
+.TH "NPM\-OUTDATED" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-outdated\fR \- Check for outdated packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1
index f7c93748388886..fee7e8a46ecbf7 100644
--- a/deps/npm/man/man1/npm-owner.1
+++ b/deps/npm/man/man1/npm-owner.1
@@ -1,4 +1,4 @@
-.TH "NPM\-OWNER" "1" "May 2016" "" ""
+.TH "NPM\-OWNER" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-owner\fR \- Manage package owners
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1
index 60385abfa78eba..963ca5ee12e5eb 100644
--- a/deps/npm/man/man1/npm-pack.1
+++ b/deps/npm/man/man1/npm-pack.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PACK" "1" "May 2016" "" ""
+.TH "NPM\-PACK" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-pack\fR \- Create a tarball from a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-ping.1 b/deps/npm/man/man1/npm-ping.1
index cefc3f4bf5460b..2d0948ba1ddfbe 100644
--- a/deps/npm/man/man1/npm-ping.1
+++ b/deps/npm/man/man1/npm-ping.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PING" "1" "May 2016" "" ""
+.TH "NPM\-PING" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-ping\fR \- Ping npm registry
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-prefix.1 b/deps/npm/man/man1/npm-prefix.1
index 2a176a78ab9356..10b3c6ee9f913e 100644
--- a/deps/npm/man/man1/npm-prefix.1
+++ b/deps/npm/man/man1/npm-prefix.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PREFIX" "1" "May 2016" "" ""
+.TH "NPM\-PREFIX" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-prefix\fR \- Display prefix
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1
index db1143d0495d6c..7598006fd3fad4 100644
--- a/deps/npm/man/man1/npm-prune.1
+++ b/deps/npm/man/man1/npm-prune.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PRUNE" "1" "May 2016" "" ""
+.TH "NPM\-PRUNE" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-prune\fR \- Remove extraneous packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1
index 103ca216c568ce..e032222cc45ad8 100644
--- a/deps/npm/man/man1/npm-publish.1
+++ b/deps/npm/man/man1/npm-publish.1
@@ -1,4 +1,4 @@
-.TH "NPM\-PUBLISH" "1" "May 2016" "" ""
+.TH "NPM\-PUBLISH" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-publish\fR \- Publish a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1
index e3ca990c869985..cf2cecf63df986 100644
--- a/deps/npm/man/man1/npm-rebuild.1
+++ b/deps/npm/man/man1/npm-rebuild.1
@@ -1,4 +1,4 @@
-.TH "NPM\-REBUILD" "1" "May 2016" "" ""
+.TH "NPM\-REBUILD" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-rebuild\fR \- Rebuild a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1
index 065069032cf2d9..14c46dfd43d437 100644
--- a/deps/npm/man/man1/npm-repo.1
+++ b/deps/npm/man/man1/npm-repo.1
@@ -1,4 +1,4 @@
-.TH "NPM\-REPO" "1" "May 2016" "" ""
+.TH "NPM\-REPO" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-repo\fR \- Open package repository page in the browser
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-restart.1 b/deps/npm/man/man1/npm-restart.1
index 80b573e346c88f..10e662a15d337a 100644
--- a/deps/npm/man/man1/npm-restart.1
+++ b/deps/npm/man/man1/npm-restart.1
@@ -1,4 +1,4 @@
-.TH "NPM\-RESTART" "1" "May 2016" "" ""
+.TH "NPM\-RESTART" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-restart\fR \- Restart a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-rm.1 b/deps/npm/man/man1/npm-rm.1
index 3a1c6bd2d314e2..7c81b3ba6984cc 100644
--- a/deps/npm/man/man1/npm-rm.1
+++ b/deps/npm/man/man1/npm-rm.1
@@ -1,4 +1,4 @@
-.TH "NPM\-RM" "1" "May 2016" "" ""
+.TH "NPM\-RM" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-rm\fR \- Remove a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1
index c68278048ca13e..fe9b6667c16ec3 100644
--- a/deps/npm/man/man1/npm-root.1
+++ b/deps/npm/man/man1/npm-root.1
@@ -1,4 +1,4 @@
-.TH "NPM\-ROOT" "1" "May 2016" "" ""
+.TH "NPM\-ROOT" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-root\fR \- Display npm root
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1
index 3d208b53870964..a05dbd7641e2d8 100644
--- a/deps/npm/man/man1/npm-run-script.1
+++ b/deps/npm/man/man1/npm-run-script.1
@@ -1,4 +1,4 @@
-.TH "NPM\-RUN\-SCRIPT" "1" "May 2016" "" ""
+.TH "NPM\-RUN\-SCRIPT" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-run-script\fR \- Run arbitrary package scripts
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-search.1 b/deps/npm/man/man1/npm-search.1
index 3ffb15c3be46ab..62247cc3f3191c 100644
--- a/deps/npm/man/man1/npm-search.1
+++ b/deps/npm/man/man1/npm-search.1
@@ -1,4 +1,4 @@
-.TH "NPM\-SEARCH" "1" "May 2016" "" ""
+.TH "NPM\-SEARCH" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-search\fR \- Search for packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1
index 33b1883998be2a..9c0e12df34e0e7 100644
--- a/deps/npm/man/man1/npm-shrinkwrap.1
+++ b/deps/npm/man/man1/npm-shrinkwrap.1
@@ -1,4 +1,4 @@
-.TH "NPM\-SHRINKWRAP" "1" "May 2016" "" ""
+.TH "NPM\-SHRINKWRAP" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-shrinkwrap\fR \- Lock down dependency versions
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-star.1 b/deps/npm/man/man1/npm-star.1
index 3b0152fad7122a..4c9294f71ddd04 100644
--- a/deps/npm/man/man1/npm-star.1
+++ b/deps/npm/man/man1/npm-star.1
@@ -1,4 +1,4 @@
-.TH "NPM\-STAR" "1" "May 2016" "" ""
+.TH "NPM\-STAR" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-star\fR \- Mark your favorite packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-stars.1 b/deps/npm/man/man1/npm-stars.1
index 488e4745e8323f..bed2c0f95a9205 100644
--- a/deps/npm/man/man1/npm-stars.1
+++ b/deps/npm/man/man1/npm-stars.1
@@ -1,4 +1,4 @@
-.TH "NPM\-STARS" "1" "May 2016" "" ""
+.TH "NPM\-STARS" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-stars\fR \- View packages marked as favorites
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-start.1 b/deps/npm/man/man1/npm-start.1
index 33143e4168ef0a..cb09bea2c7e7fb 100644
--- a/deps/npm/man/man1/npm-start.1
+++ b/deps/npm/man/man1/npm-start.1
@@ -1,4 +1,4 @@
-.TH "NPM\-START" "1" "May 2016" "" ""
+.TH "NPM\-START" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-start\fR \- Start a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-stop.1 b/deps/npm/man/man1/npm-stop.1
index 8f1e4be700f7b2..9fa9e8f018154f 100644
--- a/deps/npm/man/man1/npm-stop.1
+++ b/deps/npm/man/man1/npm-stop.1
@@ -1,4 +1,4 @@
-.TH "NPM\-STOP" "1" "May 2016" "" ""
+.TH "NPM\-STOP" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-stop\fR \- Stop a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-tag.1 b/deps/npm/man/man1/npm-tag.1
index f4a027259928d2..63d4534140f050 100644
--- a/deps/npm/man/man1/npm-tag.1
+++ b/deps/npm/man/man1/npm-tag.1
@@ -1,4 +1,4 @@
-.TH "NPM\-TAG" "1" "May 2016" "" ""
+.TH "NPM\-TAG" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-tag\fR \- Tag a published version
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-team.1 b/deps/npm/man/man1/npm-team.1
index bbcee7a2b6b909..7242d5084546b1 100644
--- a/deps/npm/man/man1/npm-team.1
+++ b/deps/npm/man/man1/npm-team.1
@@ -1,4 +1,4 @@
-.TH "NPM\-TEAM" "1" "May 2016" "" ""
+.TH "NPM\-TEAM" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-team\fR \- Manage organization teams and team memberships
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-test.1 b/deps/npm/man/man1/npm-test.1
index 30f1b8ea96950b..18407f3fdeb354 100644
--- a/deps/npm/man/man1/npm-test.1
+++ b/deps/npm/man/man1/npm-test.1
@@ -1,4 +1,4 @@
-.TH "NPM\-TEST" "1" "May 2016" "" ""
+.TH "NPM\-TEST" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-test\fR \- Test a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1
index c34a58dacd38bc..f56053f9be24e7 100644
--- a/deps/npm/man/man1/npm-uninstall.1
+++ b/deps/npm/man/man1/npm-uninstall.1
@@ -1,4 +1,4 @@
-.TH "NPM\-UNINSTALL" "1" "May 2016" "" ""
+.TH "NPM\-UNINSTALL" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-uninstall\fR \- Remove a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-unpublish.1 b/deps/npm/man/man1/npm-unpublish.1
index 7d5518cd5f8e6b..764fcf047f83b8 100644
--- a/deps/npm/man/man1/npm-unpublish.1
+++ b/deps/npm/man/man1/npm-unpublish.1
@@ -1,4 +1,4 @@
-.TH "NPM\-UNPUBLISH" "1" "May 2016" "" ""
+.TH "NPM\-UNPUBLISH" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-unpublish\fR \- Remove a package from the registry
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1
index 77e2e50fa4c7e8..2e03b3a0f55c85 100644
--- a/deps/npm/man/man1/npm-update.1
+++ b/deps/npm/man/man1/npm-update.1
@@ -1,4 +1,4 @@
-.TH "NPM\-UPDATE" "1" "May 2016" "" ""
+.TH "NPM\-UPDATE" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-update\fR \- Update a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1
index f5325cdebb3faa..728bbf97a2e70a 100644
--- a/deps/npm/man/man1/npm-version.1
+++ b/deps/npm/man/man1/npm-version.1
@@ -1,4 +1,4 @@
-.TH "NPM\-VERSION" "1" "May 2016" "" ""
+.TH "NPM\-VERSION" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-version\fR \- Bump a package version
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1
index 2c600a17c8dd1b..4a5cee506c6a24 100644
--- a/deps/npm/man/man1/npm-view.1
+++ b/deps/npm/man/man1/npm-view.1
@@ -1,4 +1,4 @@
-.TH "NPM\-VIEW" "1" "May 2016" "" ""
+.TH "NPM\-VIEW" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-view\fR \- View registry info
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm-whoami.1 b/deps/npm/man/man1/npm-whoami.1
index 406c8b42a91720..e6ca9addb1a0c2 100644
--- a/deps/npm/man/man1/npm-whoami.1
+++ b/deps/npm/man/man1/npm-whoami.1
@@ -1,4 +1,4 @@
-.TH "NPM\-WHOAMI" "1" "May 2016" "" ""
+.TH "NPM\-WHOAMI" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-whoami\fR \- Display npm username
.SH SYNOPSIS
diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1
index a466ba281fea6d..851eaf87ed2523 100644
--- a/deps/npm/man/man1/npm.1
+++ b/deps/npm/man/man1/npm.1
@@ -1,4 +1,4 @@
-.TH "NPM" "1" "May 2016" "" ""
+.TH "NPM" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm\fR \- javascript package manager
.SH SYNOPSIS
@@ -10,7 +10,7 @@ npm [args]
.RE
.SH VERSION
.P
-2.15.5
+2.15.8
.SH DESCRIPTION
.P
npm is the package manager for the Node JavaScript platform\. It puts
@@ -41,7 +41,7 @@ requires compiling of C++ Code, npm will use
node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR for that task\.
For a Unix system, node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR
needs Python, make and a buildchain like GCC\. On Windows,
-Python and Microsoft Visual Studio C++ is needed\. Python 3 is
+Python and Microsoft Visual Studio C++ are needed\. Python 3 is
not supported by node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR\|\.
For more information visit
the node\-gyp repository \fIhttps://github\.com/TooTallNate/node\-gyp\fR and
diff --git a/deps/npm/man/man3/npm-bin.3 b/deps/npm/man/man3/npm-bin.3
index e86afe7d7426a0..3f819825b34249 100644
--- a/deps/npm/man/man3/npm-bin.3
+++ b/deps/npm/man/man3/npm-bin.3
@@ -1,4 +1,4 @@
-.TH "NPM\-BIN" "3" "May 2016" "" ""
+.TH "NPM\-BIN" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-bin\fR \- Display npm bin folder
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-bugs.3 b/deps/npm/man/man3/npm-bugs.3
index 6dde2c10f42de5..92878898f7196d 100644
--- a/deps/npm/man/man3/npm-bugs.3
+++ b/deps/npm/man/man3/npm-bugs.3
@@ -1,4 +1,4 @@
-.TH "NPM\-BUGS" "3" "May 2016" "" ""
+.TH "NPM\-BUGS" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-bugs\fR \- Bugs for a package in a web browser maybe
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-cache.3 b/deps/npm/man/man3/npm-cache.3
index 30a610071c9564..df17a56e23791a 100644
--- a/deps/npm/man/man3/npm-cache.3
+++ b/deps/npm/man/man3/npm-cache.3
@@ -1,4 +1,4 @@
-.TH "NPM\-CACHE" "3" "May 2016" "" ""
+.TH "NPM\-CACHE" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-cache\fR \- manage the npm cache programmatically
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-commands.3 b/deps/npm/man/man3/npm-commands.3
index 327379333e18c6..e781234c7ed40c 100644
--- a/deps/npm/man/man3/npm-commands.3
+++ b/deps/npm/man/man3/npm-commands.3
@@ -1,4 +1,4 @@
-.TH "NPM\-COMMANDS" "3" "May 2016" "" ""
+.TH "NPM\-COMMANDS" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-commands\fR \- npm commands
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-config.3 b/deps/npm/man/man3/npm-config.3
index abbb685a5f44b3..0ebada528d5175 100644
--- a/deps/npm/man/man3/npm-config.3
+++ b/deps/npm/man/man3/npm-config.3
@@ -1,4 +1,4 @@
-.TH "NPM\-CONFIG" "3" "May 2016" "" ""
+.TH "NPM\-CONFIG" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-config\fR \- Manage the npm configuration files
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-deprecate.3 b/deps/npm/man/man3/npm-deprecate.3
index 048c63dfb085c7..9a9cc0aa0c1edd 100644
--- a/deps/npm/man/man3/npm-deprecate.3
+++ b/deps/npm/man/man3/npm-deprecate.3
@@ -1,4 +1,4 @@
-.TH "NPM\-DEPRECATE" "3" "May 2016" "" ""
+.TH "NPM\-DEPRECATE" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-deprecate\fR \- Deprecate a version of a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-docs.3 b/deps/npm/man/man3/npm-docs.3
index 03eceac3583d6a..f8ccc15a1ef0c8 100644
--- a/deps/npm/man/man3/npm-docs.3
+++ b/deps/npm/man/man3/npm-docs.3
@@ -1,4 +1,4 @@
-.TH "NPM\-DOCS" "3" "May 2016" "" ""
+.TH "NPM\-DOCS" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-docs\fR \- Docs for a package in a web browser maybe
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-edit.3 b/deps/npm/man/man3/npm-edit.3
index 7bc2a591a0b90c..28bc989a4f6956 100644
--- a/deps/npm/man/man3/npm-edit.3
+++ b/deps/npm/man/man3/npm-edit.3
@@ -1,4 +1,4 @@
-.TH "NPM\-EDIT" "3" "May 2016" "" ""
+.TH "NPM\-EDIT" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-edit\fR \- Edit an installed package
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-explore.3 b/deps/npm/man/man3/npm-explore.3
index 805d311a29b793..a1be2956ff5d29 100644
--- a/deps/npm/man/man3/npm-explore.3
+++ b/deps/npm/man/man3/npm-explore.3
@@ -1,4 +1,4 @@
-.TH "NPM\-EXPLORE" "3" "May 2016" "" ""
+.TH "NPM\-EXPLORE" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-explore\fR \- Browse an installed package
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-help-search.3 b/deps/npm/man/man3/npm-help-search.3
index ffe4001a10982f..b399bd6ae7f6c6 100644
--- a/deps/npm/man/man3/npm-help-search.3
+++ b/deps/npm/man/man3/npm-help-search.3
@@ -1,4 +1,4 @@
-.TH "NPM\-HELP\-SEARCH" "3" "May 2016" "" ""
+.TH "NPM\-HELP\-SEARCH" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-help-search\fR \- Search the help pages
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-init.3 b/deps/npm/man/man3/npm-init.3
index 698b0a81cd3e55..abda90991396dd 100644
--- a/deps/npm/man/man3/npm-init.3
+++ b/deps/npm/man/man3/npm-init.3
@@ -1,4 +1,4 @@
-.TH "NPM" "" "May 2016" "" ""
+.TH "NPM" "" "June 2016" "" ""
.SH "NAME"
\fBnpm\fR
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-install.3 b/deps/npm/man/man3/npm-install.3
index 92de44f766aa71..75942be2a1d364 100644
--- a/deps/npm/man/man3/npm-install.3
+++ b/deps/npm/man/man3/npm-install.3
@@ -1,4 +1,4 @@
-.TH "NPM\-INSTALL" "3" "May 2016" "" ""
+.TH "NPM\-INSTALL" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-install\fR \- install a package programmatically
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-link.3 b/deps/npm/man/man3/npm-link.3
index bfaad676ef8437..b4f3d4a89c34e2 100644
--- a/deps/npm/man/man3/npm-link.3
+++ b/deps/npm/man/man3/npm-link.3
@@ -1,4 +1,4 @@
-.TH "NPM\-LINK" "3" "May 2016" "" ""
+.TH "NPM\-LINK" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-link\fR \- Symlink a package folder
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-load.3 b/deps/npm/man/man3/npm-load.3
index 858e8361257951..22dda10e42e3da 100644
--- a/deps/npm/man/man3/npm-load.3
+++ b/deps/npm/man/man3/npm-load.3
@@ -1,4 +1,4 @@
-.TH "NPM\-LOAD" "3" "May 2016" "" ""
+.TH "NPM\-LOAD" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-load\fR \- Load config settings
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-ls.3 b/deps/npm/man/man3/npm-ls.3
index f458b9ea5dc63a..b6a9a76f2ee8a3 100644
--- a/deps/npm/man/man3/npm-ls.3
+++ b/deps/npm/man/man3/npm-ls.3
@@ -1,4 +1,4 @@
-.TH "NPM\-LS" "3" "May 2016" "" ""
+.TH "NPM\-LS" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-ls\fR \- List installed packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-outdated.3 b/deps/npm/man/man3/npm-outdated.3
index 901e4e7a89f884..218c080822b3ea 100644
--- a/deps/npm/man/man3/npm-outdated.3
+++ b/deps/npm/man/man3/npm-outdated.3
@@ -1,4 +1,4 @@
-.TH "NPM\-OUTDATED" "3" "May 2016" "" ""
+.TH "NPM\-OUTDATED" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-outdated\fR \- Check for outdated packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-owner.3 b/deps/npm/man/man3/npm-owner.3
index cc20ca567e70f3..7788fb7d79fa33 100644
--- a/deps/npm/man/man3/npm-owner.3
+++ b/deps/npm/man/man3/npm-owner.3
@@ -1,4 +1,4 @@
-.TH "NPM\-OWNER" "3" "May 2016" "" ""
+.TH "NPM\-OWNER" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-owner\fR \- Manage package owners
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-pack.3 b/deps/npm/man/man3/npm-pack.3
index 31008a561d7eb8..849d25a563673c 100644
--- a/deps/npm/man/man3/npm-pack.3
+++ b/deps/npm/man/man3/npm-pack.3
@@ -1,4 +1,4 @@
-.TH "NPM\-PACK" "3" "May 2016" "" ""
+.TH "NPM\-PACK" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-pack\fR \- Create a tarball from a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-ping.3 b/deps/npm/man/man3/npm-ping.3
index 762d23ac732fff..4826af70ced1ab 100644
--- a/deps/npm/man/man3/npm-ping.3
+++ b/deps/npm/man/man3/npm-ping.3
@@ -1,4 +1,4 @@
-.TH "NPM\-PING" "3" "May 2016" "" ""
+.TH "NPM\-PING" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-ping\fR \- Ping npm registry
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-prefix.3 b/deps/npm/man/man3/npm-prefix.3
index 88d23381a07492..6ddb3541ef9b52 100644
--- a/deps/npm/man/man3/npm-prefix.3
+++ b/deps/npm/man/man3/npm-prefix.3
@@ -1,4 +1,4 @@
-.TH "NPM\-PREFIX" "3" "May 2016" "" ""
+.TH "NPM\-PREFIX" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-prefix\fR \- Display prefix
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-prune.3 b/deps/npm/man/man3/npm-prune.3
index 5b5532651eb8a2..045a91bee56b27 100644
--- a/deps/npm/man/man3/npm-prune.3
+++ b/deps/npm/man/man3/npm-prune.3
@@ -1,4 +1,4 @@
-.TH "NPM\-PRUNE" "3" "May 2016" "" ""
+.TH "NPM\-PRUNE" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-prune\fR \- Remove extraneous packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-publish.3 b/deps/npm/man/man3/npm-publish.3
index 3561b1332a4639..aa11a3a1e74a25 100644
--- a/deps/npm/man/man3/npm-publish.3
+++ b/deps/npm/man/man3/npm-publish.3
@@ -1,4 +1,4 @@
-.TH "NPM\-PUBLISH" "3" "May 2016" "" ""
+.TH "NPM\-PUBLISH" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-publish\fR \- Publish a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-rebuild.3 b/deps/npm/man/man3/npm-rebuild.3
index 80210d78407c1e..1ed8d31d3fdfcf 100644
--- a/deps/npm/man/man3/npm-rebuild.3
+++ b/deps/npm/man/man3/npm-rebuild.3
@@ -1,4 +1,4 @@
-.TH "NPM\-REBUILD" "3" "May 2016" "" ""
+.TH "NPM\-REBUILD" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-rebuild\fR \- Rebuild a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-repo.3 b/deps/npm/man/man3/npm-repo.3
index fc43f26752d664..baadbf992de4e7 100644
--- a/deps/npm/man/man3/npm-repo.3
+++ b/deps/npm/man/man3/npm-repo.3
@@ -1,4 +1,4 @@
-.TH "NPM\-REPO" "3" "May 2016" "" ""
+.TH "NPM\-REPO" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-repo\fR \- Open package repository page in the browser
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-restart.3 b/deps/npm/man/man3/npm-restart.3
index 6558f40a584087..7798d7c3a63bf4 100644
--- a/deps/npm/man/man3/npm-restart.3
+++ b/deps/npm/man/man3/npm-restart.3
@@ -1,4 +1,4 @@
-.TH "NPM\-RESTART" "3" "May 2016" "" ""
+.TH "NPM\-RESTART" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-restart\fR \- Restart a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-root.3 b/deps/npm/man/man3/npm-root.3
index 74f7e93420d81e..d573a26c9b8fd9 100644
--- a/deps/npm/man/man3/npm-root.3
+++ b/deps/npm/man/man3/npm-root.3
@@ -1,4 +1,4 @@
-.TH "NPM\-ROOT" "3" "May 2016" "" ""
+.TH "NPM\-ROOT" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-root\fR \- Display npm root
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-run-script.3 b/deps/npm/man/man3/npm-run-script.3
index 79469339dbb751..081c0959efc057 100644
--- a/deps/npm/man/man3/npm-run-script.3
+++ b/deps/npm/man/man3/npm-run-script.3
@@ -1,4 +1,4 @@
-.TH "NPM\-RUN\-SCRIPT" "3" "May 2016" "" ""
+.TH "NPM\-RUN\-SCRIPT" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-run-script\fR \- Run arbitrary package scripts
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-search.3 b/deps/npm/man/man3/npm-search.3
index 6544cbcc85119e..21ecc787ef647e 100644
--- a/deps/npm/man/man3/npm-search.3
+++ b/deps/npm/man/man3/npm-search.3
@@ -1,4 +1,4 @@
-.TH "NPM\-SEARCH" "3" "May 2016" "" ""
+.TH "NPM\-SEARCH" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-search\fR \- Search for packages
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-shrinkwrap.3 b/deps/npm/man/man3/npm-shrinkwrap.3
index deb1d79e3fffc8..52d355ce9efbcf 100644
--- a/deps/npm/man/man3/npm-shrinkwrap.3
+++ b/deps/npm/man/man3/npm-shrinkwrap.3
@@ -1,4 +1,4 @@
-.TH "NPM\-SHRINKWRAP" "3" "May 2016" "" ""
+.TH "NPM\-SHRINKWRAP" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-shrinkwrap\fR \- programmatically generate package shrinkwrap file
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-start.3 b/deps/npm/man/man3/npm-start.3
index 6217ef634b3181..8e011ff765b0ce 100644
--- a/deps/npm/man/man3/npm-start.3
+++ b/deps/npm/man/man3/npm-start.3
@@ -1,4 +1,4 @@
-.TH "NPM\-START" "3" "May 2016" "" ""
+.TH "NPM\-START" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-start\fR \- Start a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-stop.3 b/deps/npm/man/man3/npm-stop.3
index 748678020cc857..23b8a57689021c 100644
--- a/deps/npm/man/man3/npm-stop.3
+++ b/deps/npm/man/man3/npm-stop.3
@@ -1,4 +1,4 @@
-.TH "NPM\-STOP" "3" "May 2016" "" ""
+.TH "NPM\-STOP" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-stop\fR \- Stop a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-tag.3 b/deps/npm/man/man3/npm-tag.3
index f5c548b76b9d45..3ee3f2018505f8 100644
--- a/deps/npm/man/man3/npm-tag.3
+++ b/deps/npm/man/man3/npm-tag.3
@@ -1,4 +1,4 @@
-.TH "NPM\-TAG" "3" "May 2016" "" ""
+.TH "NPM\-TAG" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-tag\fR \- Tag a published version
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-test.3 b/deps/npm/man/man3/npm-test.3
index d108f4ce927f10..310c18ec865add 100644
--- a/deps/npm/man/man3/npm-test.3
+++ b/deps/npm/man/man3/npm-test.3
@@ -1,4 +1,4 @@
-.TH "NPM\-TEST" "3" "May 2016" "" ""
+.TH "NPM\-TEST" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-test\fR \- Test a package
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-uninstall.3 b/deps/npm/man/man3/npm-uninstall.3
index 56585c1433cd60..cb1d2b78e4d642 100644
--- a/deps/npm/man/man3/npm-uninstall.3
+++ b/deps/npm/man/man3/npm-uninstall.3
@@ -1,4 +1,4 @@
-.TH "NPM\-UNINSTALL" "3" "May 2016" "" ""
+.TH "NPM\-UNINSTALL" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-uninstall\fR \- uninstall a package programmatically
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-unpublish.3 b/deps/npm/man/man3/npm-unpublish.3
index 90ef3f17514152..4e31f64c21cdb6 100644
--- a/deps/npm/man/man3/npm-unpublish.3
+++ b/deps/npm/man/man3/npm-unpublish.3
@@ -1,4 +1,4 @@
-.TH "NPM\-UNPUBLISH" "3" "May 2016" "" ""
+.TH "NPM\-UNPUBLISH" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-unpublish\fR \- Remove a package from the registry
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-update.3 b/deps/npm/man/man3/npm-update.3
index 6d4fb5d3ac74e2..9adb90c0c3cc9a 100644
--- a/deps/npm/man/man3/npm-update.3
+++ b/deps/npm/man/man3/npm-update.3
@@ -1,4 +1,4 @@
-.TH "NPM\-UPDATE" "3" "May 2016" "" ""
+.TH "NPM\-UPDATE" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-update\fR \- Update a package
.SH SYNOPSIS
@@ -8,7 +8,7 @@
npm\.commands\.update(packages, callback)
.fi
.RE
-.TH "DESCRIPTION" "" "May 2016" "" ""
+.TH "DESCRIPTION" "" "June 2016" "" ""
.SH "NAME"
\fBDESCRIPTION\fR
.P
diff --git a/deps/npm/man/man3/npm-version.3 b/deps/npm/man/man3/npm-version.3
index 7ec65e9056ec74..843ae20614abd1 100644
--- a/deps/npm/man/man3/npm-version.3
+++ b/deps/npm/man/man3/npm-version.3
@@ -1,4 +1,4 @@
-.TH "NPM\-VERSION" "3" "May 2016" "" ""
+.TH "NPM\-VERSION" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-version\fR \- Bump a package version
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-view.3 b/deps/npm/man/man3/npm-view.3
index c806d3c6a7ca67..15ecf6cc1eb9bb 100644
--- a/deps/npm/man/man3/npm-view.3
+++ b/deps/npm/man/man3/npm-view.3
@@ -1,4 +1,4 @@
-.TH "NPM\-VIEW" "3" "May 2016" "" ""
+.TH "NPM\-VIEW" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-view\fR \- View registry info
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm-whoami.3 b/deps/npm/man/man3/npm-whoami.3
index 024e71ba6e3f12..5e4ad95c8041ae 100644
--- a/deps/npm/man/man3/npm-whoami.3
+++ b/deps/npm/man/man3/npm-whoami.3
@@ -1,4 +1,4 @@
-.TH "NPM\-WHOAMI" "3" "May 2016" "" ""
+.TH "NPM\-WHOAMI" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm-whoami\fR \- Display npm username
.SH SYNOPSIS
diff --git a/deps/npm/man/man3/npm.3 b/deps/npm/man/man3/npm.3
index 4c691a49f7ab10..0a741e57f4cd7c 100644
--- a/deps/npm/man/man3/npm.3
+++ b/deps/npm/man/man3/npm.3
@@ -1,4 +1,4 @@
-.TH "NPM" "3" "May 2016" "" ""
+.TH "NPM" "3" "June 2016" "" ""
.SH "NAME"
\fBnpm\fR \- javascript package manager
.SH SYNOPSIS
@@ -20,7 +20,7 @@ npm\.load([configObject, ]function (er, npm) {
.RE
.SH VERSION
.P
-2.15.5
+2.15.8
.SH DESCRIPTION
.P
This is the API documentation for npm\.
diff --git a/deps/npm/man/man5/npm-folders.5 b/deps/npm/man/man5/npm-folders.5
index 20c2d64716322c..b94aeb863ecc5f 100644
--- a/deps/npm/man/man5/npm-folders.5
+++ b/deps/npm/man/man5/npm-folders.5
@@ -1,4 +1,4 @@
-.TH "NPM\-FOLDERS" "5" "May 2016" "" ""
+.TH "NPM\-FOLDERS" "5" "June 2016" "" ""
.SH "NAME"
\fBnpm-folders\fR \- Folder Structures Used by npm
.SH DESCRIPTION
diff --git a/deps/npm/man/man5/npm-global.5 b/deps/npm/man/man5/npm-global.5
index 20c2d64716322c..b94aeb863ecc5f 100644
--- a/deps/npm/man/man5/npm-global.5
+++ b/deps/npm/man/man5/npm-global.5
@@ -1,4 +1,4 @@
-.TH "NPM\-FOLDERS" "5" "May 2016" "" ""
+.TH "NPM\-FOLDERS" "5" "June 2016" "" ""
.SH "NAME"
\fBnpm-folders\fR \- Folder Structures Used by npm
.SH DESCRIPTION
diff --git a/deps/npm/man/man5/npm-json.5 b/deps/npm/man/man5/npm-json.5
index 7cb23623c4a084..0d0f25b74103b3 100644
--- a/deps/npm/man/man5/npm-json.5
+++ b/deps/npm/man/man5/npm-json.5
@@ -1,4 +1,4 @@
-.TH "PACKAGE\.JSON" "5" "May 2016" "" ""
+.TH "PACKAGE\.JSON" "5" "June 2016" "" ""
.SH "NAME"
\fBpackage.json\fR \- Specifics of npm's package\.json handling
.SH DESCRIPTION
@@ -881,9 +881,9 @@ npm will default some values based on package contents\.
If there is a \fBserver\.js\fP file in the root of your package, then npm
will default the \fBstart\fP command to \fBnode server\.js\fP\|\.
.IP \(bu 2
-\fB"scripts":{"preinstall": "node\-gyp rebuild"}\fP
-If there is a \fBbinding\.gyp\fP file in the root of your package, npm will
-default the \fBpreinstall\fP command to compile using node\-gyp\.
+\fB"scripts":{"install": "node\-gyp rebuild"}\fP
+If there is a \fBbinding\.gyp\fP file in the root of your package and you have not defined an \fBinstall\fP or \fBpreinstall\fP script, npm will
+default the \fBinstall\fP command to compile using node\-gyp\.
.IP \(bu 2
\fB"contributors": [\.\.\.]\fP
If there is an \fBAUTHORS\fP file in the root of your package, npm will
diff --git a/deps/npm/man/man5/npmrc.5 b/deps/npm/man/man5/npmrc.5
index 8b5d2b2e34ccd3..f70ee7da749a55 100644
--- a/deps/npm/man/man5/npmrc.5
+++ b/deps/npm/man/man5/npmrc.5
@@ -1,4 +1,4 @@
-.TH "NPMRC" "5" "May 2016" "" ""
+.TH "NPMRC" "5" "June 2016" "" ""
.SH "NAME"
\fBnpmrc\fR \- The npm config files
.SH DESCRIPTION
diff --git a/deps/npm/man/man5/package.json.5 b/deps/npm/man/man5/package.json.5
index 7cb23623c4a084..0d0f25b74103b3 100644
--- a/deps/npm/man/man5/package.json.5
+++ b/deps/npm/man/man5/package.json.5
@@ -1,4 +1,4 @@
-.TH "PACKAGE\.JSON" "5" "May 2016" "" ""
+.TH "PACKAGE\.JSON" "5" "June 2016" "" ""
.SH "NAME"
\fBpackage.json\fR \- Specifics of npm's package\.json handling
.SH DESCRIPTION
@@ -881,9 +881,9 @@ npm will default some values based on package contents\.
If there is a \fBserver\.js\fP file in the root of your package, then npm
will default the \fBstart\fP command to \fBnode server\.js\fP\|\.
.IP \(bu 2
-\fB"scripts":{"preinstall": "node\-gyp rebuild"}\fP
-If there is a \fBbinding\.gyp\fP file in the root of your package, npm will
-default the \fBpreinstall\fP command to compile using node\-gyp\.
+\fB"scripts":{"install": "node\-gyp rebuild"}\fP
+If there is a \fBbinding\.gyp\fP file in the root of your package and you have not defined an \fBinstall\fP or \fBpreinstall\fP script, npm will
+default the \fBinstall\fP command to compile using node\-gyp\.
.IP \(bu 2
\fB"contributors": [\.\.\.]\fP
If there is an \fBAUTHORS\fP file in the root of your package, npm will
diff --git a/deps/npm/man/man7/npm-coding-style.7 b/deps/npm/man/man7/npm-coding-style.7
index d15b0a4bac03e6..b1a928170d33fe 100644
--- a/deps/npm/man/man7/npm-coding-style.7
+++ b/deps/npm/man/man7/npm-coding-style.7
@@ -1,4 +1,4 @@
-.TH "NPM\-CODING\-STYLE" "7" "May 2016" "" ""
+.TH "NPM\-CODING\-STYLE" "7" "June 2016" "" ""
.SH "NAME"
\fBnpm-coding-style\fR \- npm's "funny" coding style
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-config.7 b/deps/npm/man/man7/npm-config.7
index 001bd51c4bcec5..4801da7457cf8b 100644
--- a/deps/npm/man/man7/npm-config.7
+++ b/deps/npm/man/man7/npm-config.7
@@ -1,4 +1,4 @@
-.TH "NPM\-CONFIG" "7" "May 2016" "" ""
+.TH "NPM\-CONFIG" "7" "June 2016" "" ""
.SH "NAME"
\fBnpm-config\fR \- More than you probably want to know about npm configuration
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-developers.7 b/deps/npm/man/man7/npm-developers.7
index 400522cb08af30..b6236379c6a802 100644
--- a/deps/npm/man/man7/npm-developers.7
+++ b/deps/npm/man/man7/npm-developers.7
@@ -1,4 +1,4 @@
-.TH "NPM\-DEVELOPERS" "7" "May 2016" "" ""
+.TH "NPM\-DEVELOPERS" "7" "June 2016" "" ""
.SH "NAME"
\fBnpm-developers\fR \- Developer Guide
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-disputes.7 b/deps/npm/man/man7/npm-disputes.7
index db434aa6f9821b..4f6c315be015f6 100644
--- a/deps/npm/man/man7/npm-disputes.7
+++ b/deps/npm/man/man7/npm-disputes.7
@@ -1,4 +1,4 @@
-.TH "NPM\-DISPUTES" "7" "May 2016" "" ""
+.TH "NPM\-DISPUTES" "7" "June 2016" "" ""
.SH "NAME"
\fBnpm-disputes\fR \- Handling Module Name Disputes
.SH SYNOPSIS
diff --git a/deps/npm/man/man7/npm-index.7 b/deps/npm/man/man7/npm-index.7
index 25460e29f30a5f..a74f8aa6d8c6e5 100644
--- a/deps/npm/man/man7/npm-index.7
+++ b/deps/npm/man/man7/npm-index.7
@@ -1,4 +1,4 @@
-.TH "NPM\-INDEX" "7" "May 2016" "" ""
+.TH "NPM\-INDEX" "7" "June 2016" "" ""
.SH "NAME"
\fBnpm-index\fR \- Index of all npm documentation
.SS npm help README
diff --git a/deps/npm/man/man7/npm-orgs.7 b/deps/npm/man/man7/npm-orgs.7
index 0eb054f4d066e5..2961014fb88699 100644
--- a/deps/npm/man/man7/npm-orgs.7
+++ b/deps/npm/man/man7/npm-orgs.7
@@ -1,4 +1,4 @@
-.TH "NPM\-ORGS" "7" "May 2016" "" ""
+.TH "NPM\-ORGS" "7" "June 2016" "" ""
.SH "NAME"
\fBnpm-orgs\fR \- Working with Teams & Orgs
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-registry.7 b/deps/npm/man/man7/npm-registry.7
index 1d07da46ac10df..743710179f6ed4 100644
--- a/deps/npm/man/man7/npm-registry.7
+++ b/deps/npm/man/man7/npm-registry.7
@@ -1,4 +1,4 @@
-.TH "NPM\-REGISTRY" "7" "May 2016" "" ""
+.TH "NPM\-REGISTRY" "7" "June 2016" "" ""
.SH "NAME"
\fBnpm-registry\fR \- The JavaScript Package Registry
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-scope.7 b/deps/npm/man/man7/npm-scope.7
index 807e2ec4218207..c18eac6540f493 100644
--- a/deps/npm/man/man7/npm-scope.7
+++ b/deps/npm/man/man7/npm-scope.7
@@ -1,4 +1,4 @@
-.TH "NPM\-SCOPE" "7" "May 2016" "" ""
+.TH "NPM\-SCOPE" "7" "June 2016" "" ""
.SH "NAME"
\fBnpm-scope\fR \- Scoped packages
.SH DESCRIPTION
diff --git a/deps/npm/man/man7/npm-scripts.7 b/deps/npm/man/man7/npm-scripts.7
index a360985c9a5999..641422c45811eb 100644
--- a/deps/npm/man/man7/npm-scripts.7
+++ b/deps/npm/man/man7/npm-scripts.7
@@ -1,4 +1,4 @@
-.TH "NPM\-SCRIPTS" "7" "May 2016" "" ""
+.TH "NPM\-SCRIPTS" "7" "June 2016" "" ""
.SH "NAME"
\fBnpm-scripts\fR \- How npm handles the "scripts" field
.SH DESCRIPTION
@@ -48,9 +48,11 @@ stop and start scripts if no \fBrestart\fP script is provided\.
.RE
.P
Additionally, arbitrary scripts can be executed by running \fBnpm
-run\-script \fP\|\. \fIPre\fR and \fIpost\fR commands with matching
+run\-script \fP\|\. \fIPre\fR and \fIpost\fR commands with matching
names will be run for those as well (e\.g\. \fBpremyscript\fP, \fBmyscript\fP,
-\fBpostmyscript\fP)\.
+\fBpostmyscript\fP)\. Scripts from dependencies can be run with `npm explore
+.P
+ \-\- npm run `\.
.SH COMMON USES
.P
If you need to perform operations on your package before it is used, in a way
@@ -92,7 +94,8 @@ If there is a \fBserver\.js\fP file in the root of your package, then npm
will default the \fBstart\fP command to \fBnode server\.js\fP\|\.
.IP \(bu 2
\fB"install": "node\-gyp rebuild"\fP:
-If there is a \fBbindings\.gyp\fP file in the root of your package, npm will
+If there is a \fBbinding\.gyp\fP file in the root of your package and you
+haven't defined your own \fBinstall\fP or \fBpreinstall\fP scripts, npm will
default the \fBinstall\fP command to compile using node\-gyp\.
.RE
diff --git a/deps/npm/man/man7/removing-npm.7 b/deps/npm/man/man7/removing-npm.7
index cbd6ae2346d94e..0df248fbc08320 100644
--- a/deps/npm/man/man7/removing-npm.7
+++ b/deps/npm/man/man7/removing-npm.7
@@ -1,4 +1,4 @@
-.TH "NPM\-REMOVAL" "1" "May 2016" "" ""
+.TH "NPM\-REMOVAL" "1" "June 2016" "" ""
.SH "NAME"
\fBnpm-removal\fR \- Cleaning the Slate
.SH SYNOPSIS
diff --git a/deps/npm/man/man7/semver.7 b/deps/npm/man/man7/semver.7
index 84b72ecc740ab3..8705628acaa67d 100644
--- a/deps/npm/man/man7/semver.7
+++ b/deps/npm/man/man7/semver.7
@@ -1,4 +1,4 @@
-.TH "SEMVER" "7" "May 2016" "" ""
+.TH "SEMVER" "7" "June 2016" "" ""
.SH "NAME"
\fBsemver\fR \- The semantic versioner for npm
.SH Usage
diff --git a/deps/npm/node_modules/abbrev/.npmignore b/deps/npm/node_modules/abbrev/.npmignore
deleted file mode 100644
index 9d6cd2f025d4a6..00000000000000
--- a/deps/npm/node_modules/abbrev/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.nyc_output
-nyc_output
-node_modules
-coverage
diff --git a/deps/npm/node_modules/abbrev/.travis.yml b/deps/npm/node_modules/abbrev/.travis.yml
deleted file mode 100644
index 991d04b6e2272b..00000000000000
--- a/deps/npm/node_modules/abbrev/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
- - '0.10'
- - '0.12'
- - 'iojs'
diff --git a/deps/npm/node_modules/abbrev/CONTRIBUTING.md b/deps/npm/node_modules/abbrev/CONTRIBUTING.md
deleted file mode 100644
index 2f302612f81630..00000000000000
--- a/deps/npm/node_modules/abbrev/CONTRIBUTING.md
+++ /dev/null
@@ -1,3 +0,0 @@
- To get started, sign the
- Contributor License Agreement.
diff --git a/deps/npm/node_modules/abbrev/package.json b/deps/npm/node_modules/abbrev/package.json
index 9b71f630b71ae1..927d6f62d50262 100644
--- a/deps/npm/node_modules/abbrev/package.json
+++ b/deps/npm/node_modules/abbrev/package.json
@@ -1,6 +1,6 @@
{
"name": "abbrev",
- "version": "1.0.7",
+ "version": "1.0.9",
"description": "Like ruby's abbrev module, but in js",
"author": {
"name": "Isaac Z. Schlueter",
@@ -16,25 +16,28 @@
},
"license": "ISC",
"devDependencies": {
- "tap": "^1.2.0"
+ "tap": "^5.7.2"
},
- "gitHead": "821d09ce7da33627f91bbd8ed631497ed6f760c2",
+ "files": [
+ "abbrev.js"
+ ],
+ "gitHead": "c386cd9dbb1d8d7581718c54d4ba944cc9298d6f",
"bugs": {
"url": "https://github.com/isaacs/abbrev-js/issues"
},
"homepage": "https://github.com/isaacs/abbrev-js#readme",
- "_id": "abbrev@1.0.7",
- "_shasum": "5b6035b2ee9d4fb5cf859f08a9be81b208491843",
- "_from": "abbrev@>=1.0.7 <1.1.0",
- "_npmVersion": "2.10.1",
- "_nodeVersion": "2.0.1",
+ "_id": "abbrev@1.0.9",
+ "_shasum": "91b4792588a7738c25f35dd6f63752a2f8776135",
+ "_from": "abbrev@>=1.0.9 <1.1.0",
+ "_npmVersion": "3.9.1",
+ "_nodeVersion": "4.4.4",
"_npmUser": {
"name": "isaacs",
- "email": "isaacs@npmjs.com"
+ "email": "i@izs.me"
},
"dist": {
- "shasum": "5b6035b2ee9d4fb5cf859f08a9be81b208491843",
- "tarball": "http://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz"
+ "shasum": "91b4792588a7738c25f35dd6f63752a2f8776135",
+ "tarball": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz"
},
"maintainers": [
{
@@ -42,6 +45,10 @@
"email": "i@izs.me"
}
],
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/abbrev-1.0.9.tgz_1466016055839_0.7825860097073019"
+ },
"directories": {},
- "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz"
+ "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz"
}
diff --git a/deps/npm/node_modules/abbrev/test.js b/deps/npm/node_modules/abbrev/test.js
deleted file mode 100644
index eb30e421cb9836..00000000000000
--- a/deps/npm/node_modules/abbrev/test.js
+++ /dev/null
@@ -1,47 +0,0 @@
-var abbrev = require('./abbrev.js')
-var assert = require("assert")
-var util = require("util")
-
-console.log("TAP version 13")
-var count = 0
-
-function test (list, expect) {
- count++
- var actual = abbrev(list)
- assert.deepEqual(actual, expect,
- "abbrev("+util.inspect(list)+") === " + util.inspect(expect) + "\n"+
- "actual: "+util.inspect(actual))
- actual = abbrev.apply(exports, list)
- assert.deepEqual(abbrev.apply(exports, list), expect,
- "abbrev("+list.map(JSON.stringify).join(",")+") === " + util.inspect(expect) + "\n"+
- "actual: "+util.inspect(actual))
- console.log('ok - ' + list.join(' '))
-}
-
-test([ "ruby", "ruby", "rules", "rules", "rules" ],
-{ rub: 'ruby'
-, ruby: 'ruby'
-, rul: 'rules'
-, rule: 'rules'
-, rules: 'rules'
-})
-test(["fool", "foom", "pool", "pope"],
-{ fool: 'fool'
-, foom: 'foom'
-, poo: 'pool'
-, pool: 'pool'
-, pop: 'pope'
-, pope: 'pope'
-})
-test(["a", "ab", "abc", "abcd", "abcde", "acde"],
-{ a: 'a'
-, ab: 'ab'
-, abc: 'abc'
-, abcd: 'abcd'
-, abcde: 'abcde'
-, ac: 'acde'
-, acd: 'acde'
-, acde: 'acde'
-})
-
-console.log("1..%d", count)
diff --git a/deps/npm/node_modules/fstream/.travis.yml b/deps/npm/node_modules/fstream/.travis.yml
index a092c82b26fc41..9f5972ab5aa1cd 100644
--- a/deps/npm/node_modules/fstream/.travis.yml
+++ b/deps/npm/node_modules/fstream/.travis.yml
@@ -1,9 +1,9 @@
language: node_js
node_js:
- - iojs
- - 0.12
- - 0.10
- - 0.8
+ - "6"
+ - "4"
+ - "0.10"
+ - "0.12"
before_install:
- "npm config set spin false"
- "npm install -g npm/npm"
diff --git a/deps/npm/node_modules/fstream/lib/collect.js b/deps/npm/node_modules/fstream/lib/collect.js
index 6245e6ce492d20..e5d4f35833476e 100644
--- a/deps/npm/node_modules/fstream/lib/collect.js
+++ b/deps/npm/node_modules/fstream/lib/collect.js
@@ -3,6 +3,8 @@ module.exports = collect
function collect (stream) {
if (stream._collected) return
+ if (stream._paused) return stream.on('resume', collect.bind(null, stream))
+
stream._collected = true
stream.pause()
diff --git a/deps/npm/node_modules/fstream/package.json b/deps/npm/node_modules/fstream/package.json
index 8c008195442823..9f5212a198d70b 100644
--- a/deps/npm/node_modules/fstream/package.json
+++ b/deps/npm/node_modules/fstream/package.json
@@ -6,10 +6,10 @@
},
"name": "fstream",
"description": "Advanced file system stream things",
- "version": "1.0.8",
+ "version": "1.0.10",
"repository": {
"type": "git",
- "url": "git://github.com/isaacs/fstream.git"
+ "url": "git+https://github.com/npm/fstream.git"
},
"main": "fstream.js",
"engines": {
@@ -31,12 +31,12 @@
"license": "ISC",
"readme": "Like FS streams, but with stat on them, and supporting directories and\nsymbolic links, as well as normal files. Also, you can use this to set\nthe stats on a file, even if you don't change its contents, or to create\na symlink, etc.\n\nSo, for example, you can \"write\" a directory, and it'll call `mkdir`. You\ncan specify a uid and gid, and it'll call `chown`. You can specify a\n`mtime` and `atime`, and it'll call `utimes`. You can call it a symlink\nand provide a `linkpath` and it'll call `symlink`.\n\nNote that it won't automatically resolve symbolic links. So, if you\ncall `fstream.Reader('/some/symlink')` then you'll get an object\nthat stats and then ends immediately (since it has no data). To follow\nsymbolic links, do this: `fstream.Reader({path:'/some/symlink', follow:\ntrue })`.\n\nThere are various checks to make sure that the bytes emitted are the\nsame as the intended size, if the size is set.\n\n## Examples\n\n```javascript\nfstream\n .Writer({ path: \"path/to/file\"\n , mode: 0755\n , size: 6\n })\n .write(\"hello\\n\")\n .end()\n```\n\nThis will create the directories if they're missing, and then write\n`hello\\n` into the file, chmod it to 0755, and assert that 6 bytes have\nbeen written when it's done.\n\n```javascript\nfstream\n .Writer({ path: \"path/to/file\"\n , mode: 0755\n , size: 6\n , flags: \"a\"\n })\n .write(\"hello\\n\")\n .end()\n```\n\nYou can pass flags in, if you want to append to a file.\n\n```javascript\nfstream\n .Writer({ path: \"path/to/symlink\"\n , linkpath: \"./file\"\n , SymbolicLink: true\n , mode: \"0755\" // octal strings supported\n })\n .end()\n```\n\nIf isSymbolicLink is a function, it'll be called, and if it returns\ntrue, then it'll treat it as a symlink. If it's not a function, then\nany truish value will make a symlink, or you can set `type:\n'SymbolicLink'`, which does the same thing.\n\nNote that the linkpath is relative to the symbolic link location, not\nthe parent dir or cwd.\n\n```javascript\nfstream\n .Reader(\"path/to/dir\")\n .pipe(fstream.Writer(\"path/to/other/dir\"))\n```\n\nThis will do like `cp -Rp path/to/dir path/to/other/dir`. If the other\ndir exists and isn't a directory, then it'll emit an error. It'll also\nset the uid, gid, mode, etc. to be identical. In this way, it's more\nlike `rsync -a` than simply a copy.\n",
"readmeFilename": "README.md",
- "gitHead": "d9f81146c50e687f1df04c1a0e7e4c173eb3dae2",
+ "gitHead": "24fabdec32e334dd3b130d77b38c010e3119b102",
"bugs": {
- "url": "https://github.com/isaacs/fstream/issues"
+ "url": "https://github.com/npm/fstream/issues"
},
- "homepage": "https://github.com/isaacs/fstream#readme",
- "_id": "fstream@1.0.8",
- "_shasum": "7e8d7a73abb3647ef36e4b8a15ca801dba03d038",
- "_from": "fstream@1.0.8"
+ "homepage": "https://github.com/npm/fstream#readme",
+ "_id": "fstream@1.0.10",
+ "_shasum": "604e8a92fe26ffd9f6fae30399d4984e1ab22822",
+ "_from": "fstream@>=1.0.10 <1.1.0"
}
diff --git a/deps/npm/node_modules/glob/README.md b/deps/npm/node_modules/glob/README.md
deleted file mode 100644
index 9dd9384fa143c3..00000000000000
--- a/deps/npm/node_modules/glob/README.md
+++ /dev/null
@@ -1,365 +0,0 @@
-# Glob
-
-Match files using the patterns the shell uses, like stars and stuff.
-
-[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master)
-
-This is a glob implementation in JavaScript. It uses the `minimatch`
-library to do its matching.
-
-![](oh-my-glob.gif)
-
-## Usage
-
-Install with npm
-
-```
-npm i glob
-```
-
-```javascript
-var glob = require("glob")
-
-// options is optional
-glob("**/*.js", options, function (er, files) {
- // files is an array of filenames.
- // If the `nonull` option is set, and nothing
- // was found, then files is ["**/*.js"]
- // er is an error object or null.
-})
-```
-
-## Glob Primer
-
-"Globs" are the patterns you type when you do stuff like `ls *.js` on
-the command line, or put `build/*` in a `.gitignore` file.
-
-Before parsing the path part patterns, braced sections are expanded
-into a set. Braced sections start with `{` and end with `}`, with any
-number of comma-delimited sections within. Braced sections may contain
-slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`.
-
-The following characters have special magic meaning when used in a
-path portion:
-
-* `*` Matches 0 or more characters in a single path portion
-* `?` Matches 1 character
-* `[...]` Matches a range of characters, similar to a RegExp range.
- If the first character of the range is `!` or `^` then it matches
- any character not in the range.
-* `!(pattern|pattern|pattern)` Matches anything that does not match
- any of the patterns provided.
-* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the
- patterns provided.
-* `+(pattern|pattern|pattern)` Matches one or more occurrences of the
- patterns provided.
-* `*(a|b|c)` Matches zero or more occurrences of the patterns provided
-* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns
- provided
-* `**` If a "globstar" is alone in a path portion, then it matches
- zero or more directories and subdirectories searching for matches.
- It does not crawl symlinked directories.
-
-### Dots
-
-If a file or directory path portion has a `.` as the first character,
-then it will not match any glob pattern unless that pattern's
-corresponding path part also has a `.` as its first character.
-
-For example, the pattern `a/.*/c` would match the file at `a/.b/c`.
-However the pattern `a/*/c` would not, because `*` does not start with
-a dot character.
-
-You can make glob treat dots as normal characters by setting
-`dot:true` in the options.
-
-### Basename Matching
-
-If you set `matchBase:true` in the options, and the pattern has no
-slashes in it, then it will seek for any file anywhere in the tree
-with a matching basename. For example, `*.js` would match
-`test/simple/basic.js`.
-
-### Empty Sets
-
-If no matching files are found, then an empty array is returned. This
-differs from the shell, where the pattern itself is returned. For
-example:
-
- $ echo a*s*d*f
- a*s*d*f
-
-To get the bash-style behavior, set the `nonull:true` in the options.
-
-### See Also:
-
-* `man sh`
-* `man bash` (Search for "Pattern Matching")
-* `man 3 fnmatch`
-* `man 5 gitignore`
-* [minimatch documentation](https://github.com/isaacs/minimatch)
-
-## glob.hasMagic(pattern, [options])
-
-Returns `true` if there are any special characters in the pattern, and
-`false` otherwise.
-
-Note that the options affect the results. If `noext:true` is set in
-the options object, then `+(a|b)` will not be considered a magic
-pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`
-then that is considered magical, unless `nobrace:true` is set in the
-options.
-
-## glob(pattern, [options], cb)
-
-* `pattern` `{String}` Pattern to be matched
-* `options` `{Object}`
-* `cb` `{Function}`
- * `err` `{Error | null}`
- * `matches` `{Array}` filenames found matching the pattern
-
-Perform an asynchronous glob search.
-
-## glob.sync(pattern, [options])
-
-* `pattern` `{String}` Pattern to be matched
-* `options` `{Object}`
-* return: `{Array}` filenames found matching the pattern
-
-Perform a synchronous glob search.
-
-## Class: glob.Glob
-
-Create a Glob object by instantiating the `glob.Glob` class.
-
-```javascript
-var Glob = require("glob").Glob
-var mg = new Glob(pattern, options, cb)
-```
-
-It's an EventEmitter, and starts walking the filesystem to find matches
-immediately.
-
-### new glob.Glob(pattern, [options], [cb])
-
-* `pattern` `{String}` pattern to search for
-* `options` `{Object}`
-* `cb` `{Function}` Called when an error occurs, or matches are found
- * `err` `{Error | null}`
- * `matches` `{Array}` filenames found matching the pattern
-
-Note that if the `sync` flag is set in the options, then matches will
-be immediately available on the `g.found` member.
-
-### Properties
-
-* `minimatch` The minimatch object that the glob uses.
-* `options` The options object passed in.
-* `aborted` Boolean which is set to true when calling `abort()`. There
- is no way at this time to continue a glob search after aborting, but
- you can re-use the statCache to avoid having to duplicate syscalls.
-* `cache` Convenience object. Each field has the following possible
- values:
- * `false` - Path does not exist
- * `true` - Path exists
- * `'FILE'` - Path exists, and is not a directory
- * `'DIR'` - Path exists, and is a directory
- * `[file, entries, ...]` - Path exists, is a directory, and the
- array value is the results of `fs.readdir`
-* `statCache` Cache of `fs.stat` results, to prevent statting the same
- path multiple times.
-* `symlinks` A record of which paths are symbolic links, which is
- relevant in resolving `**` patterns.
-* `realpathCache` An optional object which is passed to `fs.realpath`
- to minimize unnecessary syscalls. It is stored on the instantiated
- Glob object, and may be re-used.
-
-### Events
-
-* `end` When the matching is finished, this is emitted with all the
- matches found. If the `nonull` option is set, and no match was found,
- then the `matches` list contains the original pattern. The matches
- are sorted, unless the `nosort` flag is set.
-* `match` Every time a match is found, this is emitted with the specific
- thing that matched. It is not deduplicated or resolved to a realpath.
-* `error` Emitted when an unexpected error is encountered, or whenever
- any fs error occurs if `options.strict` is set.
-* `abort` When `abort()` is called, this event is raised.
-
-### Methods
-
-* `pause` Temporarily stop the search
-* `resume` Resume the search
-* `abort` Stop the search forever
-
-### Options
-
-All the options that can be passed to Minimatch can also be passed to
-Glob to change pattern matching behavior. Also, some have been added,
-or have glob-specific ramifications.
-
-All options are false by default, unless otherwise noted.
-
-All options are added to the Glob object, as well.
-
-If you are running many `glob` operations, you can pass a Glob object
-as the `options` argument to a subsequent operation to shortcut some
-`stat` and `readdir` calls. At the very least, you may pass in shared
-`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that
-parallel glob operations will be sped up by sharing information about
-the filesystem.
-
-* `cwd` The current working directory in which to search. Defaults
- to `process.cwd()`.
-* `root` The place where patterns starting with `/` will be mounted
- onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
- systems, and `C:\` or some such on Windows.)
-* `dot` Include `.dot` files in normal matches and `globstar` matches.
- Note that an explicit dot in a portion of the pattern will always
- match dot files.
-* `nomount` By default, a pattern starting with a forward-slash will be
- "mounted" onto the root setting, so that a valid filesystem path is
- returned. Set this flag to disable that behavior.
-* `mark` Add a `/` character to directory matches. Note that this
- requires additional stat calls.
-* `nosort` Don't sort the results.
-* `stat` Set to true to stat *all* results. This reduces performance
- somewhat, and is completely unnecessary, unless `readdir` is presumed
- to be an untrustworthy indicator of file existence.
-* `silent` When an unusual error is encountered when attempting to
- read a directory, a warning will be printed to stderr. Set the
- `silent` option to true to suppress these warnings.
-* `strict` When an unusual error is encountered when attempting to
- read a directory, the process will just continue on in search of
- other matches. Set the `strict` option to raise an error in these
- cases.
-* `cache` See `cache` property above. Pass in a previously generated
- cache object to save some fs calls.
-* `statCache` A cache of results of filesystem information, to prevent
- unnecessary stat calls. While it should not normally be necessary
- to set this, you may pass the statCache from one glob() call to the
- options object of another, if you know that the filesystem will not
- change between calls. (See "Race Conditions" below.)
-* `symlinks` A cache of known symbolic links. You may pass in a
- previously generated `symlinks` object to save `lstat` calls when
- resolving `**` matches.
-* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead.
-* `nounique` In some cases, brace-expanded patterns can result in the
- same file showing up multiple times in the result set. By default,
- this implementation prevents duplicates in the result set. Set this
- flag to disable that behavior.
-* `nonull` Set to never return an empty set, instead returning a set
- containing the pattern itself. This is the default in glob(3).
-* `debug` Set to enable debug logging in minimatch and glob.
-* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets.
-* `noglobstar` Do not match `**` against multiple filenames. (Ie,
- treat it as a normal `*` instead.)
-* `noext` Do not match `+(a|b)` "extglob" patterns.
-* `nocase` Perform a case-insensitive match. Note: on
- case-insensitive filesystems, non-magic patterns will match by
- default, since `stat` and `readdir` will not raise errors.
-* `matchBase` Perform a basename-only match if the pattern does not
- contain any slash characters. That is, `*.js` would be treated as
- equivalent to `**/*.js`, matching all js files in all directories.
-* `nodir` Do not match directories, only files. (Note: to match
- *only* directories, simply put a `/` at the end of the pattern.)
-* `ignore` Add a pattern or an array of glob patterns to exclude matches.
- Note: `ignore` patterns are *always* in `dot:true` mode, regardless
- of any other settings.
-* `follow` Follow symlinked directories when expanding `**` patterns.
- Note that this can result in a lot of duplicate references in the
- presence of cyclic links.
-* `realpath` Set to true to call `fs.realpath` on all of the results.
- In the case of a symlink that cannot be resolved, the full absolute
- path to the matched entry is returned (though it will usually be a
- broken symlink)
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between node-glob and other
-implementations, and are intentional.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set. This is supported in the manner of bsdglob
-and bash 4.3, where `**` only has special significance if it is the only
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-Note that symlinked directories are not crawled as part of a `**`,
-though their contents may match against subsequent portions of the
-pattern. This prevents infinite loops and duplicates and the like.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then glob returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`. This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern. Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity. Since those two are valid, matching proceeds.
-
-### Comments and Negation
-
-Previously, this module let you mark a pattern as a "comment" if it
-started with a `#` character, or a "negated" pattern if it started
-with a `!` character.
-
-These options were deprecated in version 5, and removed in version 6.
-
-To specify things that should not match, use the `ignore` option.
-
-## Windows
-
-**Please only use forward-slashes in glob expressions.**
-
-Though windows uses either `/` or `\` as its path separator, only `/`
-characters are used by this glob implementation. You must use
-forward-slashes **only** in glob expressions. Back-slashes will always
-be interpreted as escape characters, not path separators.
-
-Results from absolute patterns such as `/foo/*` are mounted onto the
-root setting using `path.join`. On windows, this will by default result
-in `/foo/*` matching `C:\foo\bar.txt`.
-
-## Race Conditions
-
-Glob searching, by its very nature, is susceptible to race conditions,
-since it relies on directory walking and such.
-
-As a result, it is possible that a file that exists when glob looks for
-it may have been deleted or modified by the time it returns the result.
-
-As part of its internal implementation, this program caches all stat
-and readdir calls that it makes, in order to cut down on system
-overhead. However, this also makes it even more susceptible to races,
-especially if the cache or statCache objects are reused between glob
-calls.
-
-Users are thus advised not to use a glob result as a guarantee of
-filesystem state in the face of rapid changes. For the vast majority
-of operations, this is never a problem.
-
-## Contributing
-
-Any change to behavior (including bugfixes) must come with a test.
-
-Patches that fail tests or reduce performance will be rejected.
-
-```
-# to run tests
-npm test
-
-# to re-generate test fixtures
-npm run test-regen
-
-# to benchmark against bash/zsh
-npm run bench
-
-# to profile javascript
-npm run prof
-```
diff --git a/deps/npm/node_modules/glob/glob.js b/deps/npm/node_modules/glob/glob.js
index 4dba04adec43c4..02d15b755dd84e 100644
--- a/deps/npm/node_modules/glob/glob.js
+++ b/deps/npm/node_modules/glob/glob.js
@@ -41,6 +41,7 @@
module.exports = glob
var fs = require('fs')
+var rp = require('fs.realpath')
var minimatch = require('minimatch')
var Minimatch = minimatch.Minimatch
var inherits = require('inherits')
@@ -232,7 +233,7 @@ Glob.prototype._realpathSet = function (index, cb) {
// one or more of the links in the realpath couldn't be
// resolved. just return the abs value in that case.
p = self._makeAbs(p)
- fs.realpath(p, self.realpathCache, function (er, real) {
+ rp.realpath(p, self.realpathCache, function (er, real) {
if (!er)
set[real] = true
else if (er.syscall === 'stat')
diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/LICENSE b/deps/npm/node_modules/glob/node_modules/fs.realpath/LICENSE
new file mode 100644
index 00000000000000..5bd884c252ac49
--- /dev/null
+++ b/deps/npm/node_modules/glob/node_modules/fs.realpath/LICENSE
@@ -0,0 +1,43 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+----
+
+This library bundles a version of the `fs.realpath` and `fs.realpathSync`
+methods from Node.js v0.10 under the terms of the Node.js MIT license.
+
+Node's license follows, also included at the header of `old.js` which contains
+the licensed code:
+
+ Copyright Joyent, Inc. and other Node contributors.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/README.md b/deps/npm/node_modules/glob/node_modules/fs.realpath/README.md
new file mode 100644
index 00000000000000..a42ceac62663ac
--- /dev/null
+++ b/deps/npm/node_modules/glob/node_modules/fs.realpath/README.md
@@ -0,0 +1,33 @@
+# fs.realpath
+
+A backwards-compatible fs.realpath for Node v6 and above
+
+In Node v6, the JavaScript implementation of fs.realpath was replaced
+with a faster (but less resilient) native implementation. That raises
+new and platform-specific errors and cannot handle long or excessively
+symlink-looping paths.
+
+This module handles those cases by detecting the new errors and
+falling back to the JavaScript implementation. On versions of Node
+prior to v6, it has no effect.
+
+## USAGE
+
+```js
+var rp = require('fs.realpath')
+
+// async version
+rp.realpath(someLongAndLoopingPath, function (er, real) {
+ // the ELOOP was handled, but it was a bit slower
+})
+
+// sync version
+var real = rp.realpathSync(someLongAndLoopingPath)
+
+// monkeypatch at your own risk!
+// This replaces the fs.realpath/fs.realpathSync builtins
+rp.monkeypatch()
+
+// un-do the monkeypatching
+rp.unmonkeypatch()
+```
diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/index.js b/deps/npm/node_modules/glob/node_modules/fs.realpath/index.js
new file mode 100644
index 00000000000000..b09c7c7e6364da
--- /dev/null
+++ b/deps/npm/node_modules/glob/node_modules/fs.realpath/index.js
@@ -0,0 +1,66 @@
+module.exports = realpath
+realpath.realpath = realpath
+realpath.sync = realpathSync
+realpath.realpathSync = realpathSync
+realpath.monkeypatch = monkeypatch
+realpath.unmonkeypatch = unmonkeypatch
+
+var fs = require('fs')
+var origRealpath = fs.realpath
+var origRealpathSync = fs.realpathSync
+
+var version = process.version
+var ok = /^v[0-5]\./.test(version)
+var old = require('./old.js')
+
+function newError (er) {
+ return er && er.syscall === 'realpath' && (
+ er.code === 'ELOOP' ||
+ er.code === 'ENOMEM' ||
+ er.code === 'ENAMETOOLONG'
+ )
+}
+
+function realpath (p, cache, cb) {
+ if (ok) {
+ return origRealpath(p, cache, cb)
+ }
+
+ if (typeof cache === 'function') {
+ cb = cache
+ cache = null
+ }
+ origRealpath(p, cache, function (er, result) {
+ if (newError(er)) {
+ old.realpath(p, cache, cb)
+ } else {
+ cb(er, result)
+ }
+ })
+}
+
+function realpathSync (p, cache) {
+ if (ok) {
+ return origRealpathSync(p, cache)
+ }
+
+ try {
+ return origRealpathSync(p, cache)
+ } catch (er) {
+ if (newError(er)) {
+ return old.realpathSync(p, cache)
+ } else {
+ throw er
+ }
+ }
+}
+
+function monkeypatch () {
+ fs.realpath = realpath
+ fs.realpathSync = realpathSync
+}
+
+function unmonkeypatch () {
+ fs.realpath = origRealpath
+ fs.realpathSync = origRealpathSync
+}
diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/old.js b/deps/npm/node_modules/glob/node_modules/fs.realpath/old.js
new file mode 100644
index 00000000000000..b40305e73fd583
--- /dev/null
+++ b/deps/npm/node_modules/glob/node_modules/fs.realpath/old.js
@@ -0,0 +1,303 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var pathModule = require('path');
+var isWindows = process.platform === 'win32';
+var fs = require('fs');
+
+// JavaScript implementation of realpath, ported from node pre-v6
+
+var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);
+
+function rethrow() {
+ // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and
+ // is fairly slow to generate.
+ var callback;
+ if (DEBUG) {
+ var backtrace = new Error;
+ callback = debugCallback;
+ } else
+ callback = missingCallback;
+
+ return callback;
+
+ function debugCallback(err) {
+ if (err) {
+ backtrace.message = err.message;
+ err = backtrace;
+ missingCallback(err);
+ }
+ }
+
+ function missingCallback(err) {
+ if (err) {
+ if (process.throwDeprecation)
+ throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs
+ else if (!process.noDeprecation) {
+ var msg = 'fs: missing callback ' + (err.stack || err.message);
+ if (process.traceDeprecation)
+ console.trace(msg);
+ else
+ console.error(msg);
+ }
+ }
+ }
+}
+
+function maybeCallback(cb) {
+ return typeof cb === 'function' ? cb : rethrow();
+}
+
+var normalize = pathModule.normalize;
+
+// Regexp that finds the next partion of a (partial) path
+// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']
+if (isWindows) {
+ var nextPartRe = /(.*?)(?:[\/\\]+|$)/g;
+} else {
+ var nextPartRe = /(.*?)(?:[\/]+|$)/g;
+}
+
+// Regex to find the device root, including trailing slash. E.g. 'c:\\'.
+if (isWindows) {
+ var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;
+} else {
+ var splitRootRe = /^[\/]*/;
+}
+
+exports.realpathSync = function realpathSync(p, cache) {
+ // make p is absolute
+ p = pathModule.resolve(p);
+
+ if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
+ return cache[p];
+ }
+
+ var original = p,
+ seenLinks = {},
+ knownHard = {};
+
+ // current character position in p
+ var pos;
+ // the partial path so far, including a trailing slash if any
+ var current;
+ // the partial path without a trailing slash (except when pointing at a root)
+ var base;
+ // the partial path scanned in the previous round, with slash
+ var previous;
+
+ start();
+
+ function start() {
+ // Skip over roots
+ var m = splitRootRe.exec(p);
+ pos = m[0].length;
+ current = m[0];
+ base = m[0];
+ previous = '';
+
+ // On windows, check that the root exists. On unix there is no need.
+ if (isWindows && !knownHard[base]) {
+ fs.lstatSync(base);
+ knownHard[base] = true;
+ }
+ }
+
+ // walk down the path, swapping out linked pathparts for their real
+ // values
+ // NB: p.length changes.
+ while (pos < p.length) {
+ // find the next part
+ nextPartRe.lastIndex = pos;
+ var result = nextPartRe.exec(p);
+ previous = current;
+ current += result[0];
+ base = previous + result[1];
+ pos = nextPartRe.lastIndex;
+
+ // continue if not a symlink
+ if (knownHard[base] || (cache && cache[base] === base)) {
+ continue;
+ }
+
+ var resolvedLink;
+ if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
+ // some known symbolic link. no need to stat again.
+ resolvedLink = cache[base];
+ } else {
+ var stat = fs.lstatSync(base);
+ if (!stat.isSymbolicLink()) {
+ knownHard[base] = true;
+ if (cache) cache[base] = base;
+ continue;
+ }
+
+ // read the link if it wasn't read before
+ // dev/ino always return 0 on windows, so skip the check.
+ var linkTarget = null;
+ if (!isWindows) {
+ var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
+ if (seenLinks.hasOwnProperty(id)) {
+ linkTarget = seenLinks[id];
+ }
+ }
+ if (linkTarget === null) {
+ fs.statSync(base);
+ linkTarget = fs.readlinkSync(base);
+ }
+ resolvedLink = pathModule.resolve(previous, linkTarget);
+ // track this, if given a cache.
+ if (cache) cache[base] = resolvedLink;
+ if (!isWindows) seenLinks[id] = linkTarget;
+ }
+
+ // resolve the link, then start over
+ p = pathModule.resolve(resolvedLink, p.slice(pos));
+ start();
+ }
+
+ if (cache) cache[original] = p;
+
+ return p;
+};
+
+
+exports.realpath = function realpath(p, cache, cb) {
+ if (typeof cb !== 'function') {
+ cb = maybeCallback(cache);
+ cache = null;
+ }
+
+ // make p is absolute
+ p = pathModule.resolve(p);
+
+ if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
+ return process.nextTick(cb.bind(null, null, cache[p]));
+ }
+
+ var original = p,
+ seenLinks = {},
+ knownHard = {};
+
+ // current character position in p
+ var pos;
+ // the partial path so far, including a trailing slash if any
+ var current;
+ // the partial path without a trailing slash (except when pointing at a root)
+ var base;
+ // the partial path scanned in the previous round, with slash
+ var previous;
+
+ start();
+
+ function start() {
+ // Skip over roots
+ var m = splitRootRe.exec(p);
+ pos = m[0].length;
+ current = m[0];
+ base = m[0];
+ previous = '';
+
+ // On windows, check that the root exists. On unix there is no need.
+ if (isWindows && !knownHard[base]) {
+ fs.lstat(base, function(err) {
+ if (err) return cb(err);
+ knownHard[base] = true;
+ LOOP();
+ });
+ } else {
+ process.nextTick(LOOP);
+ }
+ }
+
+ // walk down the path, swapping out linked pathparts for their real
+ // values
+ function LOOP() {
+ // stop if scanned past end of path
+ if (pos >= p.length) {
+ if (cache) cache[original] = p;
+ return cb(null, p);
+ }
+
+ // find the next part
+ nextPartRe.lastIndex = pos;
+ var result = nextPartRe.exec(p);
+ previous = current;
+ current += result[0];
+ base = previous + result[1];
+ pos = nextPartRe.lastIndex;
+
+ // continue if not a symlink
+ if (knownHard[base] || (cache && cache[base] === base)) {
+ return process.nextTick(LOOP);
+ }
+
+ if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
+ // known symbolic link. no need to stat again.
+ return gotResolvedLink(cache[base]);
+ }
+
+ return fs.lstat(base, gotStat);
+ }
+
+ function gotStat(err, stat) {
+ if (err) return cb(err);
+
+ // if not a symlink, skip to the next path part
+ if (!stat.isSymbolicLink()) {
+ knownHard[base] = true;
+ if (cache) cache[base] = base;
+ return process.nextTick(LOOP);
+ }
+
+ // stat & read the link if not read before
+ // call gotTarget as soon as the link target is known
+ // dev/ino always return 0 on windows, so skip the check.
+ if (!isWindows) {
+ var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
+ if (seenLinks.hasOwnProperty(id)) {
+ return gotTarget(null, seenLinks[id], base);
+ }
+ }
+ fs.stat(base, function(err) {
+ if (err) return cb(err);
+
+ fs.readlink(base, function(err, target) {
+ if (!isWindows) seenLinks[id] = target;
+ gotTarget(err, target);
+ });
+ });
+ }
+
+ function gotTarget(err, target, base) {
+ if (err) return cb(err);
+
+ var resolvedLink = pathModule.resolve(previous, target);
+ if (cache) cache[base] = resolvedLink;
+ gotResolvedLink(resolvedLink);
+ }
+
+ function gotResolvedLink(resolvedLink) {
+ // resolve the link, then start over
+ p = pathModule.resolve(resolvedLink, p.slice(pos));
+ start();
+ }
+};
diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/package.json b/deps/npm/node_modules/glob/node_modules/fs.realpath/package.json
new file mode 100644
index 00000000000000..55b5aa84f39881
--- /dev/null
+++ b/deps/npm/node_modules/glob/node_modules/fs.realpath/package.json
@@ -0,0 +1,60 @@
+{
+ "name": "fs.realpath",
+ "version": "1.0.0",
+ "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails",
+ "main": "index.js",
+ "dependencies": {},
+ "devDependencies": {},
+ "scripts": {
+ "test": "tap test/*.js --cov"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/fs.realpath.git"
+ },
+ "keywords": [
+ "realpath",
+ "fs",
+ "polyfill"
+ ],
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "license": "ISC",
+ "files": [
+ "old.js",
+ "index.js"
+ ],
+ "gitHead": "03e7c884431fe185dfebbc9b771aeca339c1807a",
+ "bugs": {
+ "url": "https://github.com/isaacs/fs.realpath/issues"
+ },
+ "homepage": "https://github.com/isaacs/fs.realpath#readme",
+ "_id": "fs.realpath@1.0.0",
+ "_shasum": "1504ad2523158caa40db4a2787cb01411994ea4f",
+ "_from": "fs.realpath@>=1.0.0 <2.0.0",
+ "_npmVersion": "3.9.1",
+ "_nodeVersion": "4.4.4",
+ "_npmUser": {
+ "name": "isaacs",
+ "email": "i@izs.me"
+ },
+ "dist": {
+ "shasum": "1504ad2523158caa40db4a2787cb01411994ea4f",
+ "tarball": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ },
+ "maintainers": [
+ {
+ "name": "isaacs",
+ "email": "i@izs.me"
+ }
+ ],
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/fs.realpath-1.0.0.tgz_1466015941059_0.3332864767871797"
+ },
+ "directories": {},
+ "_resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+}
diff --git a/deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json b/deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json
index 39372636f3fb4f..8f41adea4c1569 100644
--- a/deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json
+++ b/deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json
@@ -62,7 +62,7 @@
],
"dist": {
"shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912",
- "tarball": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz"
+ "tarball": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz",
diff --git a/deps/npm/node_modules/glob/package.json b/deps/npm/node_modules/glob/package.json
index 4d5d7f791d6eab..d8c68bca383fc8 100644
--- a/deps/npm/node_modules/glob/package.json
+++ b/deps/npm/node_modules/glob/package.json
@@ -6,7 +6,7 @@
},
"name": "glob",
"description": "a little globber",
- "version": "7.0.3",
+ "version": "7.0.4",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/node-glob.git"
@@ -21,6 +21,7 @@
"node": "*"
},
"dependencies": {
+ "fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "2 || 3",
@@ -43,23 +44,23 @@
"benchclean": "node benchclean.js"
},
"license": "ISC",
- "gitHead": "2fc2278ab857c7df117213a2fb431de090be6353",
+ "gitHead": "3f883c43fec4f8046cbea9497add3b8ba4ef0a37",
"bugs": {
"url": "https://github.com/isaacs/node-glob/issues"
},
"homepage": "https://github.com/isaacs/node-glob#readme",
- "_id": "glob@7.0.3",
- "_shasum": "0aa235931a4a96ac13d60ffac2fb877bd6ed4f58",
- "_from": "glob@7.0.3",
- "_npmVersion": "3.7.3",
- "_nodeVersion": "5.6.0",
+ "_id": "glob@7.0.4",
+ "_shasum": "3b44afa0943bdc31b2037b934791e2e084bcb7f6",
+ "_from": "glob@>=7.0.4 <7.1.0",
+ "_npmVersion": "3.9.3",
+ "_nodeVersion": "6.2.1",
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
},
"dist": {
- "shasum": "0aa235931a4a96ac13d60ffac2fb877bd6ed4f58",
- "tarball": "http://registry.npmjs.org/glob/-/glob-7.0.3.tgz"
+ "shasum": "3b44afa0943bdc31b2037b934791e2e084bcb7f6",
+ "tarball": "https://registry.npmjs.org/glob/-/glob-7.0.4.tgz"
},
"maintainers": [
{
@@ -69,8 +70,8 @@
],
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/glob-7.0.3.tgz_1457166529288_0.7840580905321985"
+ "tmp": "tmp/glob-7.0.4.tgz_1466098181857_0.6043217403348535"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz"
+ "_resolved": "https://registry.npmjs.org/glob/-/glob-7.0.4.tgz"
}
diff --git a/deps/npm/node_modules/glob/sync.js b/deps/npm/node_modules/glob/sync.js
index 301577ab5f228f..bba2dc6a0c14e1 100644
--- a/deps/npm/node_modules/glob/sync.js
+++ b/deps/npm/node_modules/glob/sync.js
@@ -2,6 +2,7 @@ module.exports = globSync
globSync.GlobSync = GlobSync
var fs = require('fs')
+var rp = require('fs.realpath')
var minimatch = require('minimatch')
var Minimatch = minimatch.Minimatch
var Glob = require('./glob.js').Glob
@@ -57,7 +58,7 @@ GlobSync.prototype._finish = function () {
for (var p in matchset) {
try {
p = self._makeAbs(p)
- var real = fs.realpathSync(p, self.realpathCache)
+ var real = rp.realpathSync(p, self.realpathCache)
set[real] = true
} catch (er) {
if (er.syscall === 'stat')
diff --git a/deps/npm/node_modules/inflight/package.json b/deps/npm/node_modules/inflight/package.json
index e0b63729cc6dc8..f73955183253f2 100644
--- a/deps/npm/node_modules/inflight/package.json
+++ b/deps/npm/node_modules/inflight/package.json
@@ -1,21 +1,24 @@
{
"name": "inflight",
- "version": "1.0.4",
+ "version": "1.0.5",
"description": "Add callbacks to requests in flight to avoid async duplication",
"main": "inflight.js",
+ "files": [
+ "inflight.js"
+ ],
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
},
"devDependencies": {
- "tap": "^0.4.10"
+ "tap": "^1.2.0"
},
"scripts": {
"test": "tap test.js"
},
"repository": {
"type": "git",
- "url": "git://github.com/isaacs/inflight"
+ "url": "git+https://github.com/npm/inflight.git"
},
"author": {
"name": "Isaac Z. Schlueter",
@@ -27,10 +30,43 @@
},
"homepage": "https://github.com/isaacs/inflight",
"license": "ISC",
- "readme": "# inflight\n\nAdd callbacks to requests in flight to avoid async duplication\n\n## USAGE\n\n```javascript\nvar inflight = require('inflight')\n\n// some request that does some stuff\nfunction req(key, callback) {\n // key is any random string. like a url or filename or whatever.\n //\n // will return either a falsey value, indicating that the\n // request for this key is already in flight, or a new callback\n // which when called will call all callbacks passed to inflightk\n // with the same key\n callback = inflight(key, callback)\n\n // If we got a falsey value back, then there's already a req going\n if (!callback) return\n\n // this is where you'd fetch the url or whatever\n // callback is also once()-ified, so it can safely be assigned\n // to multiple events etc. First call wins.\n setTimeout(function() {\n callback(null, key)\n }, 100)\n}\n\n// only assigns a single setTimeout\n// when it dings, all cbs get called\nreq('foo', cb1)\nreq('foo', cb2)\nreq('foo', cb3)\nreq('foo', cb4)\n```\n",
- "readmeFilename": "README.md",
- "gitHead": "c7b5531d572a867064d4a1da9e013e8910b7d1ba",
- "_id": "inflight@1.0.4",
- "_shasum": "6cbb4521ebd51ce0ec0a936bfd7657ef7e9b172a",
- "_from": "inflight@>=1.0.4 <1.1.0"
+ "gitHead": "559e37b4f6327fca797fe8d7fe8ed6d9cae08821",
+ "_id": "inflight@1.0.5",
+ "_shasum": "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a",
+ "_from": "inflight@>=1.0.5 <1.1.0",
+ "_npmVersion": "3.9.1",
+ "_nodeVersion": "5.10.1",
+ "_npmUser": {
+ "name": "zkat",
+ "email": "kat@sykosomatic.org"
+ },
+ "dist": {
+ "shasum": "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a",
+ "tarball": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz"
+ },
+ "maintainers": [
+ {
+ "name": "iarna",
+ "email": "me@re-becca.org"
+ },
+ {
+ "name": "isaacs",
+ "email": "i@izs.me"
+ },
+ {
+ "name": "othiym23",
+ "email": "ogd@aoaioxxysz.net"
+ },
+ {
+ "name": "zkat",
+ "email": "kat@sykosomatic.org"
+ }
+ ],
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/inflight-1.0.5.tgz_1463529611443_0.00041943578980863094"
+ },
+ "directories": {},
+ "_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz",
+ "readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/inflight/test.js b/deps/npm/node_modules/inflight/test.js
deleted file mode 100644
index 2bb75b38814a60..00000000000000
--- a/deps/npm/node_modules/inflight/test.js
+++ /dev/null
@@ -1,97 +0,0 @@
-var test = require('tap').test
-var inf = require('./inflight.js')
-
-
-function req (key, cb) {
- cb = inf(key, cb)
- if (cb) setTimeout(function () {
- cb(key)
- cb(key)
- })
- return cb
-}
-
-test('basic', function (t) {
- var calleda = false
- var a = req('key', function (k) {
- t.notOk(calleda)
- calleda = true
- t.equal(k, 'key')
- if (calledb) t.end()
- })
- t.ok(a, 'first returned cb function')
-
- var calledb = false
- var b = req('key', function (k) {
- t.notOk(calledb)
- calledb = true
- t.equal(k, 'key')
- if (calleda) t.end()
- })
-
- t.notOk(b, 'second should get falsey inflight response')
-})
-
-test('timing', function (t) {
- var expect = [
- 'method one',
- 'start one',
- 'end one',
- 'two',
- 'tick',
- 'three'
- ]
- var i = 0
-
- function log (m) {
- t.equal(m, expect[i], m + ' === ' + expect[i])
- ++i
- if (i === expect.length)
- t.end()
- }
-
- function method (name, cb) {
- log('method ' + name)
- process.nextTick(cb)
- }
-
- var one = inf('foo', function () {
- log('start one')
- var three = inf('foo', function () {
- log('three')
- })
- if (three) method('three', three)
- log('end one')
- })
-
- method('one', one)
-
- var two = inf('foo', function () {
- log('two')
- })
- if (two) method('one', two)
-
- process.nextTick(log.bind(null, 'tick'))
-})
-
-test('parameters', function (t) {
- t.plan(8)
-
- var a = inf('key', function (first, second, third) {
- t.equal(first, 1)
- t.equal(second, 2)
- t.equal(third, 3)
- })
- t.ok(a, 'first returned cb function')
-
- var b = inf('key', function (first, second, third) {
- t.equal(first, 1)
- t.equal(second, 2)
- t.equal(third, 3)
- })
- t.notOk(b, 'second should get falsey inflight response')
-
- setTimeout(function () {
- a(1, 2, 3)
- })
-})
diff --git a/deps/npm/node_modules/init-package-json/init-package-json.js b/deps/npm/node_modules/init-package-json/init-package-json.js
index 87c72ccf948b7e..7dc4b0a392c2fd 100644
--- a/deps/npm/node_modules/init-package-json/init-package-json.js
+++ b/deps/npm/node_modules/init-package-json/init-package-json.js
@@ -40,7 +40,7 @@ function init (dir, input, config, cb) {
}
}
- var package = path.resolve(dir, 'package.json')
+ var packageFile = path.resolve(dir, 'package.json')
input = path.resolve(input)
var pkg
var ctx = { yes: yes(config) }
@@ -49,14 +49,14 @@ function init (dir, input, config, cb) {
readJson.extraSet = es.filter(function (fn) {
return fn.name !== 'authors' && fn.name !== 'mans'
})
- readJson(package, function (er, d) {
+ readJson(packageFile, function (er, d) {
readJson.extraSet = es
if (er) pkg = {}
else pkg = d
- ctx.filename = package
- ctx.dirname = path.dirname(package)
+ ctx.filename = packageFile
+ ctx.dirname = path.dirname(packageFile)
ctx.basename = path.basename(ctx.dirname)
if (!pkg.version || !semver.valid(pkg.version))
delete pkg.version
@@ -80,7 +80,7 @@ function init (dir, input, config, cb) {
readJson.extraSet = es.filter(function (fn) {
return fn.name !== 'authors' && fn.name !== 'mans'
})
- readJson.extras(package, pkg, function (er, pkg) {
+ readJson.extras(packageFile, pkg, function (er, pkg) {
readJson.extraSet = es
if (er) return cb(er, pkg)
pkg = unParsePeople(pkg)
@@ -105,9 +105,9 @@ function init (dir, input, config, cb) {
var d = JSON.stringify(pkg, null, 2) + '\n'
function write (yes) {
- fs.writeFile(package, d, 'utf8', function (er) {
+ fs.writeFile(packageFile, d, 'utf8', function (er) {
if (!er && yes && !config.get('silent')) {
- console.log('Wrote to %s:\n\n%s\n', package, d)
+ console.log('Wrote to %s:\n\n%s\n', packageFile, d)
}
return cb(er, pkg)
})
@@ -115,7 +115,7 @@ function init (dir, input, config, cb) {
if (ctx.yes) {
return write(true)
}
- console.log('About to write to %s:\n\n%s\n', package, d)
+ console.log('About to write to %s:\n\n%s\n', packageFile, d)
read({prompt:'Is this ok? ', default: 'yes'}, function (er, ok) {
if (!ok || ok.toLowerCase().charAt(0) !== 'y') {
console.log('Aborted.')
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/package.json b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/package.json
index 39372636f3fb4f..8f41adea4c1569 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/package.json
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute/package.json
@@ -62,7 +62,7 @@
],
"dist": {
"shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912",
- "tarball": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz"
+ "tarball": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz",
diff --git a/deps/npm/node_modules/init-package-json/node_modules/glob/package.json b/deps/npm/node_modules/init-package-json/node_modules/glob/package.json
index 19e926cbf1035a..d6cebb41e61088 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/glob/package.json
+++ b/deps/npm/node_modules/init-package-json/node_modules/glob/package.json
@@ -59,7 +59,7 @@
},
"dist": {
"shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22",
- "tarball": "http://registry.npmjs.org/glob/-/glob-6.0.4.tgz"
+ "tarball": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz"
},
"maintainers": [
{
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/package.json b/deps/npm/node_modules/init-package-json/node_modules/promzard/package.json
index 42900314b94c93..a90ea7fdf7b517 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/package.json
+++ b/deps/npm/node_modules/init-package-json/node_modules/promzard/package.json
@@ -43,7 +43,7 @@
],
"dist": {
"shasum": "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee",
- "tarball": "http://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz"
+ "tarball": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz"
diff --git a/deps/npm/node_modules/init-package-json/package.json b/deps/npm/node_modules/init-package-json/package.json
index 4be24267cfe9fc..06ba9600ab465d 100644
--- a/deps/npm/node_modules/init-package-json/package.json
+++ b/deps/npm/node_modules/init-package-json/package.json
@@ -1,6 +1,6 @@
{
"name": "init-package-json",
- "version": "1.9.3",
+ "version": "1.9.4",
"main": "init-package-json.js",
"scripts": {
"test": "tap test/*.js"
@@ -41,23 +41,23 @@
"prompt",
"start"
],
- "gitHead": "12eb24ff2f75f84a4a27436bc6f6cb765cbd9ee2",
+ "gitHead": "3c34250fa58507056a94f3940ee2a28540f83592",
"bugs": {
"url": "https://github.com/npm/init-package-json/issues"
},
"homepage": "https://github.com/npm/init-package-json#readme",
- "_id": "init-package-json@1.9.3",
- "_shasum": "ca2ff94709b6d9aaad66533c11a0aff645f15c7d",
- "_from": "init-package-json@1.9.3",
- "_npmVersion": "3.5.4",
- "_nodeVersion": "4.2.2",
+ "_id": "init-package-json@1.9.4",
+ "_shasum": "b4053d0b40f0cf842a41966937cb3dc0f534e856",
+ "_from": "init-package-json@>=1.9.4 <1.10.0",
+ "_npmVersion": "3.9.1",
+ "_nodeVersion": "5.10.1",
"_npmUser": {
- "name": "iarna",
- "email": "me@re-becca.org"
+ "name": "zkat",
+ "email": "kat@sykosomatic.org"
},
"dist": {
- "shasum": "ca2ff94709b6d9aaad66533c11a0aff645f15c7d",
- "tarball": "http://registry.npmjs.org/init-package-json/-/init-package-json-1.9.3.tgz"
+ "shasum": "b4053d0b40f0cf842a41966937cb3dc0f534e856",
+ "tarball": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz"
},
"maintainers": [
{
@@ -77,6 +77,10 @@
"email": "kat@sykosomatic.org"
}
],
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/init-package-json-1.9.4.tgz_1463610982259_0.011722659226506948"
+ },
"directories": {},
- "_resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.3.tgz"
+ "_resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz"
}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.travis.yml b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.travis.yml
index cfe1c9439388b6..1b82118460cfe4 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.travis.yml
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.travis.yml
@@ -6,6 +6,10 @@ before_install:
notifications:
email: false
matrix:
+ fast_finish: true
+ allow_failures:
+ - env: TASK=browser BROWSER_NAME=ipad BROWSER_VERSION="6.0..latest"
+ - env: TASK=browser BROWSER_NAME=iphone BROWSER_VERSION="6.0..latest"
include:
- node_js: '0.8'
env: TASK=test
@@ -25,24 +29,22 @@ matrix:
env: TASK=test
- node_js: 5
env: TASK=test
- - node_js: node
- env: TASK=test
- - node_js: node
- env: TASK=browser BROWSER_NAME=opera BROWSER_VERSION="11..latest"
- - node_js: node
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=android BROWSER_VERSION="4.0..latest"
+ - node_js: 5
env: TASK=browser BROWSER_NAME=ie BROWSER_VERSION="9..latest"
- - node_js: node
- env: TASK=browser BROWSER_NAME=chrome BROWSER_VERSION="41..beta"
- - node_js: node
- env: TASK=browser BROWSER_NAME=firefox BROWSER_VERSION="36..latest"
- - node_js: node
- env: TASK=browser BROWSER_NAME=ipad BROWSER_VERSION="['6.1', '7.1', '8.2']"
- - node_js: node
- env: TASK=browser BROWSER_NAME=iphone BROWSER_VERSION="['6.1', '7.1', '8.2']"
- - node_js: node
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=opera BROWSER_VERSION="11..latest"
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=chrome BROWSER_VERSION="-3..latest"
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=firefox BROWSER_VERSION="-3..latest"
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=ipad BROWSER_VERSION="6.0..latest"
+ - node_js: 5
+ env: TASK=browser BROWSER_NAME=iphone BROWSER_VERSION="6.0..latest"
+ - node_js: 5
env: TASK=browser BROWSER_NAME=safari BROWSER_VERSION="5..latest"
- - node_js: node
- env: TASK=browser BROWSER_NAME=android BROWSER_VERSION="4.0..latest"
script: "npm run $TASK"
env:
global:
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/README.md b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/README.md
index 77fafa3da15f9f..1a67c48cd031b5 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/README.md
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/README.md
@@ -1,6 +1,6 @@
# readable-stream
-***Node-core streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
+***Node-core v5.8.0 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/)
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/stream.markdown b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/stream.markdown
index 3988c0cbd0d9c9..0bc3819e63b025 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/stream.markdown
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/stream.markdown
@@ -3,27 +3,25 @@
Stability: 2 - Stable
A stream is an abstract interface implemented by various objects in
-Node.js. For example a [request to an HTTP server][] is a stream, as is
-[stdout][]. Streams are readable, writable, or both. All streams are
-instances of [EventEmitter][]
+Node.js. For example a [request to an HTTP server][http-incoming-message] is a
+stream, as is [`process.stdout`][]. Streams are readable, writable, or both. All
+streams are instances of [`EventEmitter`][].
You can load the Stream base classes by doing `require('stream')`.
There are base classes provided for [Readable][] streams, [Writable][]
streams, [Duplex][] streams, and [Transform][] streams.
-This document is split up into 3 sections. The first explains the
-parts of the API that you need to be aware of to use streams in your
-programs. If you never implement a streaming API yourself, you can
-stop there.
+This document is split up into 3 sections:
-The second section explains the parts of the API that you need to use
-if you implement your own custom streams yourself. The API is
-designed to make this easy for you to do.
-
-The third section goes into more depth about how streams work,
-including some of the internal mechanisms and functions that you
-should probably not modify unless you definitely know what you are
-doing.
+1. The first section explains the parts of the API that you need to be
+ aware of to use streams in your programs.
+2. The second section explains the parts of the API that you need to
+ use if you implement your own custom streams yourself. The API is designed to
+ make this easy for you to do.
+3. The third section goes into more depth about how streams work,
+ including some of the internal mechanisms and functions that you
+ should probably not modify unless you definitely know what you are
+ doing.
## API for Stream Consumers
@@ -37,22 +35,22 @@ and properties depending on whether they are Readable, Writable, or
Duplex.
If a stream is both Readable and Writable, then it implements all of
-the methods and events below. So, a [Duplex][] or [Transform][] stream is
+the methods and events. So, a [Duplex][] or [Transform][] stream is
fully described by this API, though their implementation may be
somewhat different.
It is not necessary to implement Stream interfaces in order to consume
-streams in your programs. If you **are** implementing streaming
+streams in your programs. If you **are** implementing streaming
interfaces in your own program, please also refer to
-[API for Stream Implementors][] below.
+[API for Stream Implementors][].
Almost all Node.js programs, no matter how simple, use Streams in some
way. Here is an example of using Streams in an Node.js program:
-```javascript
-var http = require('http');
+```js
+const http = require('http');
-var server = http.createServer(function (req, res) {
+var server = http.createServer( (req, res) => {
// req is an http.IncomingMessage, which is a Readable Stream
// res is an http.ServerResponse, which is a Writable Stream
@@ -62,18 +60,18 @@ var server = http.createServer(function (req, res) {
req.setEncoding('utf8');
// Readable streams emit 'data' events once a listener is added
- req.on('data', function (chunk) {
+ req.on('data', (chunk) => {
body += chunk;
});
// the end event tells you that you have entire body
- req.on('end', function () {
+ req.on('end', () => {
try {
var data = JSON.parse(body);
} catch (er) {
// uh oh! bad json!
res.statusCode = 400;
- return res.end('error: ' + er.message);
+ return res.end(`error: ${er.message}`);
}
// write back something interesting to the user:
@@ -95,65 +93,66 @@ server.listen(1337);
### Class: stream.Duplex
Duplex streams are streams that implement both the [Readable][] and
-[Writable][] interfaces. See above for usage.
+[Writable][] interfaces.
Examples of Duplex streams include:
-* [tcp sockets][]
-* [zlib streams][]
-* [crypto streams][]
+* [TCP sockets][]
+* [zlib streams][zlib]
+* [crypto streams][crypto]
### Class: stream.Readable
The Readable stream interface is the abstraction for a *source* of
-data that you are reading from. In other words, data comes *out* of a
+data that you are reading from. In other words, data comes *out* of a
Readable stream.
A Readable stream will not start emitting data until you indicate that
you are ready to receive it.
Readable streams have two "modes": a **flowing mode** and a **paused
-mode**. When in flowing mode, data is read from the underlying system
-and provided to your program as fast as possible. In paused mode, you
-must explicitly call `stream.read()` to get chunks of data out.
+mode**. When in flowing mode, data is read from the underlying system
+and provided to your program as fast as possible. In paused mode, you
+must explicitly call [`stream.read()`][stream-read] to get chunks of data out.
Streams start out in paused mode.
**Note**: If no data event handlers are attached, and there are no
-[`pipe()`][] destinations, and the stream is switched into flowing
+[`stream.pipe()`][] destinations, and the stream is switched into flowing
mode, then data will be lost.
You can switch to flowing mode by doing any of the following:
-* Adding a [`'data'` event][] handler to listen for data.
-* Calling the [`resume()`][] method to explicitly open the flow.
-* Calling the [`pipe()`][] method to send the data to a [Writable][].
+* Adding a [`'data'`][] event handler to listen for data.
+* Calling the [`stream.resume()`][stream-resume] method to explicitly open the
+ flow.
+* Calling the [`stream.pipe()`][] method to send the data to a [Writable][].
You can switch back to paused mode by doing either of the following:
-* If there are no pipe destinations, by calling the [`pause()`][]
- method.
-* If there are pipe destinations, by removing any [`'data'` event][]
+* If there are no pipe destinations, by calling the
+ [`stream.pause()`][stream-pause] method.
+* If there are pipe destinations, by removing any [`'data'`][] event
handlers, and removing all pipe destinations by calling the
- [`unpipe()`][] method.
+ [`stream.unpipe()`][] method.
-Note that, for backwards compatibility reasons, removing `'data'`
-event handlers will **not** automatically pause the stream. Also, if
-there are piped destinations, then calling `pause()` will not
-guarantee that the stream will *remain* paused once those
+Note that, for backwards compatibility reasons, removing [`'data'`][]
+event handlers will **not** automatically pause the stream. Also, if
+there are piped destinations, then calling [`stream.pause()`][stream-pause] will
+not guarantee that the stream will *remain* paused once those
destinations drain and ask for more data.
Examples of readable streams include:
-* [http responses, on the client][]
-* [http requests, on the server][]
+* [HTTP responses, on the client][http-incoming-message]
+* [HTTP requests, on the server][http-incoming-message]
* [fs read streams][]
-* [zlib streams][]
-* [crypto streams][]
-* [tcp sockets][]
+* [zlib streams][zlib]
+* [crypto streams][crypto]
+* [TCP sockets][]
* [child process stdout and stderr][]
-* [process.stdin][]
+* [`process.stdin`][]
#### Event: 'close'
@@ -161,22 +160,22 @@ Emitted when the stream and any of its underlying resources (a file
descriptor, for example) have been closed. The event indicates that
no more events will be emitted, and no further computation will occur.
-Not all streams will emit the 'close' event.
+Not all streams will emit the `'close'` event.
#### Event: 'data'
-* `chunk` {Buffer | String} The chunk of data.
+* `chunk` {Buffer|String} The chunk of data.
-Attaching a `data` event listener to a stream that has not been
+Attaching a `'data'` event listener to a stream that has not been
explicitly paused will switch the stream into flowing mode. Data will
then be passed as soon as it is available.
If you just want to get all the data out of the stream as fast as
possible, this is the best way to do so.
-```javascript
+```js
var readable = getReadableStreamSomehow();
-readable.on('data', function(chunk) {
+readable.on('data', (chunk) => {
console.log('got %d bytes of data', chunk.length);
});
```
@@ -185,16 +184,17 @@ readable.on('data', function(chunk) {
This event fires when there will be no more data to read.
-Note that the `end` event **will not fire** unless the data is
-completely consumed. This can be done by switching into flowing mode,
-or by calling `read()` repeatedly until you get to the end.
+Note that the `'end'` event **will not fire** unless the data is
+completely consumed. This can be done by switching into flowing mode,
+or by calling [`stream.read()`][stream-read] repeatedly until you get to the
+end.
-```javascript
+```js
var readable = getReadableStreamSomehow();
-readable.on('data', function(chunk) {
+readable.on('data', (chunk) => {
console.log('got %d bytes of data', chunk.length);
});
-readable.on('end', function() {
+readable.on('end', () => {
console.log('there will be no more data.');
});
```
@@ -216,30 +216,30 @@ hadn't already.
```javascript
var readable = getReadableStreamSomehow();
-readable.on('readable', function() {
+readable.on('readable', () => {
// there is some data to read now
});
```
-Once the internal buffer is drained, a `readable` event will fire
+Once the internal buffer is drained, a `'readable'` event will fire
again when more data is available.
-The `readable` event is not emitted in the "flowing" mode with the
+The `'readable'` event is not emitted in the "flowing" mode with the
sole exception of the last one, on end-of-stream.
-The 'readable' event indicates that the stream has new information:
+The `'readable'` event indicates that the stream has new information:
either new data is available or the end of the stream has been reached.
-In the former case, `.read()` will return that data. In the latter case,
-`.read()` will return null. For instance, in the following example, `foo.txt`
-is an empty file:
+In the former case, [`stream.read()`][stream-read] will return that data. In the
+latter case, [`stream.read()`][stream-read] will return null. For instance, in
+the following example, `foo.txt` is an empty file:
-```javascript
-var fs = require('fs');
+```js
+const fs = require('fs');
var rr = fs.createReadStream('foo.txt');
-rr.on('readable', function() {
+rr.on('readable', () => {
console.log('readable:', rr.read());
});
-rr.on('end', function() {
+rr.on('end', () => {
console.log('end');
});
```
@@ -247,20 +247,20 @@ rr.on('end', function() {
The output of running this script is:
```
-bash-3.2$ node test.js
+$ node test.js
readable: null
end
```
#### readable.isPaused()
-* Return: `Boolean`
+* Return: {Boolean}
This method returns whether or not the `readable` has been **explicitly**
-paused by client code (using `readable.pause()` without a corresponding
-`readable.resume()`).
+paused by client code (using [`stream.pause()`][stream-pause] without a
+corresponding [`stream.resume()`][stream-resume]).
-```javascript
+```js
var readable = new stream.Readable
readable.isPaused() // === false
@@ -275,16 +275,16 @@ readable.isPaused() // === false
* Return: `this`
This method will cause a stream in flowing mode to stop emitting
-`data` events, switching out of flowing mode. Any data that becomes
+[`'data'`][] events, switching out of flowing mode. Any data that becomes
available will remain in the internal buffer.
-```javascript
+```js
var readable = getReadableStreamSomehow();
-readable.on('data', function(chunk) {
+readable.on('data', (chunk) => {
console.log('got %d bytes of data', chunk.length);
readable.pause();
console.log('there will be no more data for 1 second');
- setTimeout(function() {
+ setTimeout(() => {
console.log('now data will start flowing again');
readable.resume();
}, 1000);
@@ -293,7 +293,7 @@ readable.on('data', function(chunk) {
#### readable.pipe(destination[, options])
-* `destination` {[Writable][] Stream} The destination for writing data
+* `destination` {stream.Writable} The destination for writing data
* `options` {Object} Pipe options
* `end` {Boolean} End the writer when the reader ends. Default = `true`
@@ -303,7 +303,7 @@ the destination is not overwhelmed by a fast readable stream.
Multiple destinations can be piped to safely.
-```javascript
+```js
var readable = getReadableStreamSomehow();
var writable = fs.createWriteStream('file.txt');
// All the data from readable goes into 'file.txt'
@@ -313,7 +313,7 @@ readable.pipe(writable);
This function returns the destination stream, so you can set up pipe
chains like so:
-```javascript
+```js
var r = fs.createReadStream('file.txt');
var z = zlib.createGzip();
var w = fs.createWriteStream('file.txt.gz');
@@ -322,51 +322,51 @@ r.pipe(z).pipe(w);
For example, emulating the Unix `cat` command:
-```javascript
+```js
process.stdin.pipe(process.stdout);
```
-By default [`end()`][] is called on the destination when the source stream
-emits `end`, so that `destination` is no longer writable. Pass `{ end:
-false }` as `options` to keep the destination stream open.
+By default [`stream.end()`][stream-end] is called on the destination when the
+source stream emits [`'end'`][], so that `destination` is no longer writable.
+Pass `{ end: false }` as `options` to keep the destination stream open.
This keeps `writer` open so that "Goodbye" can be written at the
end.
-```javascript
+```js
reader.pipe(writer, { end: false });
-reader.on('end', function() {
+reader.on('end', () => {
writer.end('Goodbye\n');
});
```
-Note that `process.stderr` and `process.stdout` are never closed until
+Note that [`process.stderr`][] and [`process.stdout`][] are never closed until
the process exits, regardless of the specified options.
#### readable.read([size])
* `size` {Number} Optional argument to specify how much data to read.
-* Return {String | Buffer | null}
+* Return {String|Buffer|Null}
The `read()` method pulls some data out of the internal buffer and
-returns it. If there is no data available, then it will return
+returns it. If there is no data available, then it will return
`null`.
If you pass in a `size` argument, then it will return that many
-bytes. If `size` bytes are not available, then it will return `null`,
+bytes. If `size` bytes are not available, then it will return `null`,
unless we've ended, in which case it will return the data remaining
in the buffer.
If you do not specify a `size` argument, then it will return all the
data in the internal buffer.
-This method should only be called in paused mode. In flowing mode,
+This method should only be called in paused mode. In flowing mode,
this method is called automatically until the internal buffer is
drained.
-```javascript
+```js
var readable = getReadableStreamSomehow();
-readable.on('readable', function() {
+readable.on('readable', () => {
var chunk;
while (null !== (chunk = readable.read())) {
console.log('got %d bytes of data', chunk.length);
@@ -375,27 +375,27 @@ readable.on('readable', function() {
```
If this method returns a data chunk, then it will also trigger the
-emission of a [`'data'` event][].
+emission of a [`'data'`][] event.
-Note that calling `readable.read([size])` after the `end` event has been
-triggered will return `null`. No runtime error will be raised.
+Note that calling [`stream.read([size])`][stream-read] after the [`'end'`][]
+event has been triggered will return `null`. No runtime error will be raised.
#### readable.resume()
* Return: `this`
-This method will cause the readable stream to resume emitting `data`
+This method will cause the readable stream to resume emitting [`'data'`][]
events.
-This method will switch the stream into flowing mode. If you do *not*
+This method will switch the stream into flowing mode. If you do *not*
want to consume the data from a stream, but you *do* want to get to
-its `end` event, you can call [`readable.resume()`][] to open the flow of
-data.
+its [`'end'`][] event, you can call [`stream.resume()`][stream-resume] to open
+the flow of data.
-```javascript
+```js
var readable = getReadableStreamSomehow();
readable.resume();
-readable.on('end', function() {
+readable.on('end', () => {
console.log('got to the end, but did not read anything');
});
```
@@ -405,22 +405,25 @@ readable.on('end', function() {
* `encoding` {String} The encoding to use.
* Return: `this`
-Call this function to cause the stream to return strings of the
-specified encoding instead of Buffer objects. For example, if you do
-`readable.setEncoding('utf8')`, then the output data will be
-interpreted as UTF-8 data, and returned as strings. If you do
-`readable.setEncoding('hex')`, then the data will be encoded in
-hexadecimal string format.
+Call this function to cause the stream to return strings of the specified
+encoding instead of Buffer objects. For example, if you do
+`readable.setEncoding('utf8')`, then the output data will be interpreted as
+UTF-8 data, and returned as strings. If you do `readable.setEncoding('hex')`,
+then the data will be encoded in hexadecimal string format.
This properly handles multi-byte characters that would otherwise be
potentially mangled if you simply pulled the Buffers directly and
-called `buf.toString(encoding)` on them. If you want to read the data
+called [`buf.toString(encoding)`][] on them. If you want to read the data
as strings, always use this method.
-```javascript
+Also you can disable any encoding at all with `readable.setEncoding(null)`.
+This approach is very useful if you deal with binary data or with large
+multi-byte strings spread out over multiple chunks.
+
+```js
var readable = getReadableStreamSomehow();
readable.setEncoding('utf8');
-readable.on('data', function(chunk) {
+readable.on('data', (chunk) => {
assert.equal(typeof chunk, 'string');
console.log('got %d characters of string data', chunk.length);
});
@@ -428,22 +431,23 @@ readable.on('data', function(chunk) {
#### readable.unpipe([destination])
-* `destination` {[Writable][] Stream} Optional specific stream to unpipe
+* `destination` {stream.Writable} Optional specific stream to unpipe
-This method will remove the hooks set up for a previous `pipe()` call.
+This method will remove the hooks set up for a previous [`stream.pipe()`][]
+call.
If the destination is not specified, then all pipes are removed.
If the destination is specified, but no pipe is set up for it, then
this is a no-op.
-```javascript
+```js
var readable = getReadableStreamSomehow();
var writable = fs.createWriteStream('file.txt');
// All the data from readable goes into 'file.txt',
// but only for the first second
readable.pipe(writable);
-setTimeout(function() {
+setTimeout(() => {
console.log('stop writing to file.txt');
readable.unpipe(writable);
console.log('manually close the file stream');
@@ -453,25 +457,25 @@ setTimeout(function() {
#### readable.unshift(chunk)
-* `chunk` {Buffer | String} Chunk of data to unshift onto the read queue
+* `chunk` {Buffer|String} Chunk of data to unshift onto the read queue
This is useful in certain cases where a stream is being consumed by a
parser, which needs to "un-consume" some data that it has
optimistically pulled out of the source, so that the stream can be
passed on to some other party.
-Note that `stream.unshift(chunk)` cannot be called after the `end` event
+Note that `stream.unshift(chunk)` cannot be called after the [`'end'`][] event
has been triggered; a runtime error will be raised.
If you find that you must often call `stream.unshift(chunk)` in your
-programs, consider implementing a [Transform][] stream instead. (See API
-for Stream Implementors, below.)
+programs, consider implementing a [Transform][] stream instead. (See [API
+for Stream Implementors][].)
-```javascript
+```js
// Pull off a header delimited by \n\n
// use unshift() if we get too much
// Call the callback with (error, header, stream)
-var StringDecoder = require('string_decoder').StringDecoder;
+const StringDecoder = require('string_decoder').StringDecoder;
function parseHeader(stream, callback) {
stream.on('error', callback);
stream.on('readable', onReadable);
@@ -501,39 +505,41 @@ function parseHeader(stream, callback) {
}
}
```
-Note that, unlike `stream.push(chunk)`, `stream.unshift(chunk)` will not
-end the reading process by resetting the internal reading state of the
-stream. This can cause unexpected results if `unshift` is called during a
-read (i.e. from within a `_read` implementation on a custom stream). Following
-the call to `unshift` with an immediate `stream.push('')` will reset the
-reading state appropriately, however it is best to simply avoid calling
-`unshift` while in the process of performing a read.
+
+Note that, unlike [`stream.push(chunk)`][stream-push], `stream.unshift(chunk)`
+will not end the reading process by resetting the internal reading state of the
+stream. This can cause unexpected results if `unshift()` is called during a
+read (i.e. from within a [`stream._read()`][stream-_read] implementation on a
+custom stream). Following the call to `unshift()` with an immediate
+[`stream.push('')`][stream-push] will reset the reading state appropriately,
+however it is best to simply avoid calling `unshift()` while in the process of
+performing a read.
#### readable.wrap(stream)
* `stream` {Stream} An "old style" readable stream
Versions of Node.js prior to v0.10 had streams that did not implement the
-entire Streams API as it is today. (See "Compatibility" below for
+entire Streams API as it is today. (See [Compatibility][] for
more information.)
-If you are using an older Node.js library that emits `'data'` events and
-has a [`pause()`][] method that is advisory only, then you can use the
-`wrap()` method to create a [Readable][] stream that uses the old stream
-as its data source.
+If you are using an older Node.js library that emits [`'data'`][] events and
+has a [`stream.pause()`][stream-pause] method that is advisory only, then you
+can use the `wrap()` method to create a [Readable][] stream that uses the old
+stream as its data source.
You will very rarely ever need to call this function, but it exists
as a convenience for interacting with old Node.js programs and libraries.
For example:
-```javascript
-var OldReader = require('./old-api-module.js').OldReader;
-var oreader = new OldReader;
-var Readable = require('stream').Readable;
-var myReader = new Readable().wrap(oreader);
+```js
+const OldReader = require('./old-api-module.js').OldReader;
+const Readable = require('stream').Readable;
+const oreader = new OldReader;
+const myReader = new Readable().wrap(oreader);
-myReader.on('readable', function() {
+myReader.on('readable', () => {
myReader.read(); // etc.
});
```
@@ -541,13 +547,13 @@ myReader.on('readable', function() {
### Class: stream.Transform
Transform streams are [Duplex][] streams where the output is in some way
-computed from the input. They implement both the [Readable][] and
-[Writable][] interfaces. See above for usage.
+computed from the input. They implement both the [Readable][] and
+[Writable][] interfaces.
Examples of Transform streams include:
-* [zlib streams][]
-* [crypto streams][]
+* [zlib streams][zlib]
+* [crypto streams][crypto]
### Class: stream.Writable
@@ -558,22 +564,22 @@ that you are writing data *to*.
Examples of writable streams include:
-* [http requests, on the client][]
-* [http responses, on the server][]
+* [HTTP requests, on the client][]
+* [HTTP responses, on the server][]
* [fs write streams][]
-* [zlib streams][]
-* [crypto streams][]
-* [tcp sockets][]
+* [zlib streams][zlib]
+* [crypto streams][crypto]
+* [TCP sockets][]
* [child process stdin][]
-* [process.stdout][], [process.stderr][]
+* [`process.stdout`][], [`process.stderr`][]
#### Event: 'drain'
-If a [`writable.write(chunk)`][] call returns false, then the `drain`
-event will indicate when it is appropriate to begin writing more data
+If a [`stream.write(chunk)`][stream-write] call returns `false`, then the
+`'drain'` event will indicate when it is appropriate to begin writing more data
to the stream.
-```javascript
+```js
// Write the data to the supplied writable stream one million times.
// Be attentive to back-pressure.
function writeOneMillionTimes(writer, data, encoding, callback) {
@@ -603,37 +609,37 @@ function writeOneMillionTimes(writer, data, encoding, callback) {
#### Event: 'error'
-* {Error object}
+* {Error}
Emitted if there was an error when writing or piping data.
#### Event: 'finish'
-When the [`end()`][] method has been called, and all data has been flushed
-to the underlying system, this event is emitted.
+When the [`stream.end()`][stream-end] method has been called, and all data has
+been flushed to the underlying system, this event is emitted.
```javascript
var writer = getWritableStreamSomehow();
for (var i = 0; i < 100; i ++) {
- writer.write('hello, #' + i + '!\n');
+ writer.write('hello, #${i}!\n');
}
writer.end('this is the end\n');
-writer.on('finish', function() {
+writer.on('finish', () => {
console.error('all writes are now complete.');
});
```
#### Event: 'pipe'
-* `src` {[Readable][] Stream} source stream that is piping to this writable
+* `src` {stream.Readable} source stream that is piping to this writable
-This is emitted whenever the `pipe()` method is called on a readable
+This is emitted whenever the [`stream.pipe()`][] method is called on a readable
stream, adding this writable to its set of destinations.
-```javascript
+```js
var writer = getWritableStreamSomehow();
var reader = getReadableStreamSomehow();
-writer.on('pipe', function(src) {
+writer.on('pipe', (src) => {
console.error('something is piping into the writer');
assert.equal(src, reader);
});
@@ -642,15 +648,16 @@ reader.pipe(writer);
#### Event: 'unpipe'
-* `src` {[Readable][] Stream} The source stream that [unpiped][] this writable
+* `src` {[Readable][] Stream} The source stream that
+ [unpiped][`stream.unpipe()`] this writable
-This is emitted whenever the [`unpipe()`][] method is called on a
+This is emitted whenever the [`stream.unpipe()`][] method is called on a
readable stream, removing this writable from its set of destinations.
-```javascript
+```js
var writer = getWritableStreamSomehow();
var reader = getReadableStreamSomehow();
-writer.on('unpipe', function(src) {
+writer.on('unpipe', (src) => {
console.error('something has stopped piping into the writer');
assert.equal(src, reader);
});
@@ -662,20 +669,22 @@ reader.unpipe(writer);
Forces buffering of all writes.
-Buffered data will be flushed either at `.uncork()` or at `.end()` call.
+Buffered data will be flushed either at [`stream.uncork()`][] or at
+[`stream.end()`][stream-end] call.
#### writable.end([chunk][, encoding][, callback])
-* `chunk` {String | Buffer} Optional data to write
+* `chunk` {String|Buffer} Optional data to write
* `encoding` {String} The encoding, if `chunk` is a String
* `callback` {Function} Optional callback for when the stream is finished
-Call this method when no more data will be written to the stream. If
-supplied, the callback is attached as a listener on the `finish` event.
+Call this method when no more data will be written to the stream. If supplied,
+the callback is attached as a listener on the [`'finish'`][] event.
-Calling [`write()`][] after calling [`end()`][] will raise an error.
+Calling [`stream.write()`][stream-write] after calling
+[`stream.end()`][stream-end] will raise an error.
-```javascript
+```js
// write 'hello, ' and then end with 'world!'
var file = fs.createWriteStream('example.txt');
file.write('hello, ');
@@ -691,26 +700,26 @@ Sets the default encoding for a writable stream.
#### writable.uncork()
-Flush all data, buffered since `.cork()` call.
+Flush all data, buffered since [`stream.cork()`][] call.
#### writable.write(chunk[, encoding][, callback])
-* `chunk` {String | Buffer} The data to write
+* `chunk` {String|Buffer} The data to write
* `encoding` {String} The encoding, if `chunk` is a String
* `callback` {Function} Callback for when this chunk of data is flushed
-* Returns: {Boolean} True if the data was handled completely.
+* Returns: {Boolean} `true` if the data was handled completely.
This method writes some data to the underlying system, and calls the
supplied callback once the data has been fully handled.
The return value indicates if you should continue writing right now.
If the data had to be buffered internally, then it will return
-`false`. Otherwise, it will return `true`.
+`false`. Otherwise, it will return `true`.
-This return value is strictly advisory. You MAY continue to write,
-even if it returns `false`. However, writes will be buffered in
-memory, so it is best not to do this excessively. Instead, wait for
-the `drain` event before writing more data.
+This return value is strictly advisory. You MAY continue to write,
+even if it returns `false`. However, writes will be buffered in
+memory, so it is best not to do this excessively. Instead, wait for
+the [`'drain'`][] event before writing more data.
## API for Stream Implementors
@@ -719,11 +728,11 @@ the `drain` event before writing more data.
To implement any sort of stream, the pattern is the same:
-1. Extend the appropriate parent class in your own subclass. (The
- [`util.inherits`][] method is particularly helpful for this.)
+1. Extend the appropriate parent class in your own subclass. (The
+ [`util.inherits()`][] method is particularly helpful for this.)
2. Call the appropriate parent class constructor in your constructor,
to be sure that the internal mechanisms are set up properly.
-2. Implement one or more specific methods, as detailed below.
+3. Implement one or more specific methods, as detailed below.
The class to extend and the method(s) to implement depend on the sort
of stream class you are writing:
@@ -750,7 +759,7 @@ of stream class you are writing:
[Readable](#stream_class_stream_readable_1)
-
[_read][]
+
[_read][stream-_read]
@@ -761,7 +770,7 @@ of stream class you are writing:
-In your implementation code, it is very important to never call the
-methods described in [API for Stream Consumers][] above. Otherwise, you
-can potentially cause adverse side effects in programs that consume
-your streaming interfaces.
+In your implementation code, it is very important to never call the methods
+described in [API for Stream Consumers][]. Otherwise, you can potentially cause
+adverse side effects in programs that consume your streaming interfaces.
### Class: stream.Duplex
-A "duplex" stream is one that is both Readable and Writable, such as a
-TCP socket connection.
+A "duplex" stream is one that is both Readable and Writable, such as a TCP
+socket connection.
Note that `stream.Duplex` is an abstract class designed to be extended
-with an underlying implementation of the `_read(size)` and
-[`_write(chunk, encoding, callback)`][] methods as you would with a
-Readable or Writable stream class.
+with an underlying implementation of the [`stream._read(size)`][stream-_read]
+and [`stream._write(chunk, encoding, callback)`][stream-_write] methods as you
+would with a Readable or Writable stream class.
-Since JavaScript doesn't have multiple prototypal inheritance, this
-class prototypally inherits from Readable, and then parasitically from
-Writable. It is thus up to the user to implement both the lowlevel
-`_read(n)` method as well as the lowlevel
-[`_write(chunk, encoding, callback)`][] method on extension duplex classes.
+Since JavaScript doesn't have multiple prototypal inheritance, this class
+prototypally inherits from Readable, and then parasitically from Writable. It is
+thus up to the user to implement both the low-level
+[`stream._read(n)`][stream-_read] method as well as the low-level
+[`stream._write(chunk, encoding, callback)`][stream-_write] method on extension
+duplex classes.
#### new stream.Duplex(options)
* `options` {Object} Passed to both Writable and Readable
constructors. Also has the following fields:
- * `allowHalfOpen` {Boolean} Default=true. If set to `false`, then
+ * `allowHalfOpen` {Boolean} Default = `true`. If set to `false`, then
the stream will automatically end the readable side when the
writable side ends and vice versa.
- * `readableObjectMode` {Boolean} Default=false. Sets `objectMode`
+ * `readableObjectMode` {Boolean} Default = `false`. Sets `objectMode`
for readable side of the stream. Has no effect if `objectMode`
is `true`.
- * `writableObjectMode` {Boolean} Default=false. Sets `objectMode`
+ * `writableObjectMode` {Boolean} Default = `false`. Sets `objectMode`
for writable side of the stream. Has no effect if `objectMode`
is `true`.
@@ -832,7 +841,7 @@ initialized.
### Class: stream.PassThrough
This is a trivial implementation of a [Transform][] stream that simply
-passes the input bytes across to the output. Its purpose is mainly
+passes the input bytes across to the output. Its purpose is mainly
for examples and testing, but there are occasionally use cases where
it can come in handy as a building block for novel sorts of streams.
@@ -841,10 +850,10 @@ it can come in handy as a building block for novel sorts of streams.
`stream.Readable` is an abstract class designed to be extended with an
-underlying implementation of the [`_read(size)`][] method.
+underlying implementation of the [`stream._read(size)`][stream-_read] method.
-Please see above under [API for Stream Consumers][] for how to consume
-streams in your programs. What follows is an explanation of how to
+Please see [API for Stream Consumers][] for how to consume
+streams in your programs. What follows is an explanation of how to
implement Readable streams in your programs.
#### new stream.Readable([options])
@@ -852,12 +861,14 @@ implement Readable streams in your programs.
* `options` {Object}
* `highWaterMark` {Number} The maximum number of bytes to store in
the internal buffer before ceasing to read from the underlying
- resource. Default=16kb, or 16 for `objectMode` streams
+ resource. Default = `16384` (16kb), or `16` for `objectMode` streams
* `encoding` {String} If specified, then buffers will be decoded to
- strings using the specified encoding. Default=null
+ strings using the specified encoding. Default = `null`
* `objectMode` {Boolean} Whether this stream should behave
- as a stream of objects. Meaning that stream.read(n) returns
- a single value instead of a Buffer of size n. Default=false
+ as a stream of objects. Meaning that [`stream.read(n)`][stream-read] returns
+ a single value instead of a Buffer of size n. Default = `false`
+ * `read` {Function} Implementation for the [`stream._read()`][stream-_read]
+ method.
In classes that extend the Readable class, make sure to call the
Readable constructor so that the buffering settings can be properly
@@ -871,29 +882,31 @@ Note: **Implement this method, but do NOT call it directly.**
This method is prefixed with an underscore because it is internal to the
class that defines it and should only be called by the internal Readable
-class methods. All Readable stream implementations must provide a _read
+class methods. All Readable stream implementations must provide a \_read
method to fetch data from the underlying resource.
-When _read is called, if data is available from the resource, `_read` should
-start pushing that data into the read queue by calling `this.push(dataChunk)`.
-`_read` should continue reading from the resource and pushing data until push
-returns false, at which point it should stop reading from the resource. Only
-when _read is called again after it has stopped should it start reading
-more data from the resource and pushing that data onto the queue.
+When `_read()` is called, if data is available from the resource, the `_read()`
+implementation should start pushing that data into the read queue by calling
+[`this.push(dataChunk)`][stream-push]. `_read()` should continue reading from
+the resource and pushing data until push returns `false`, at which point it
+should stop reading from the resource. Only when `_read()` is called again after
+it has stopped should it start reading more data from the resource and pushing
+that data onto the queue.
Note: once the `_read()` method is called, it will not be called again until
-the `push` method is called.
+the [`stream.push()`][stream-push] method is called.
-The `size` argument is advisory. Implementations where a "read" is a
+The `size` argument is advisory. Implementations where a "read" is a
single call that returns data can use this to know how much data to
-fetch. Implementations where that is not relevant, such as TCP or
+fetch. Implementations where that is not relevant, such as TCP or
TLS, may ignore this argument, and simply provide data whenever it
-becomes available. There is no need, for example to "wait" until
-`size` bytes are available before calling [`stream.push(chunk)`][].
+becomes available. There is no need, for example to "wait" until
+`size` bytes are available before calling [`stream.push(chunk)`][stream-push].
#### readable.push(chunk[, encoding])
-* `chunk` {Buffer | null | String} Chunk of data to push into the read queue
+
+* `chunk` {Buffer|Null|String} Chunk of data to push into the read queue
* `encoding` {String} Encoding of String chunks. Must be a valid
Buffer encoding, such as `'utf8'` or `'ascii'`
* return {Boolean} Whether or not more pushes should be performed
@@ -906,15 +919,15 @@ into the queue for subsequent stream processors to consume. If `null` is
passed, it signals the end of the stream (EOF), after which no more data
can be written.
-The data added with `push` can be pulled out by calling the `read()` method
-when the `'readable'`event fires.
+The data added with `push()` can be pulled out by calling the
+[`stream.read()`][stream-read] method when the [`'readable'`][] event fires.
-This API is designed to be as flexible as possible. For example,
+This API is designed to be as flexible as possible. For example,
you may be wrapping a lower-level source which has some sort of
-pause/resume mechanism, and a data callback. In those cases, you
+pause/resume mechanism, and a data callback. In those cases, you
could wrap the low-level source object by doing something like this:
-```javascript
+```js
// source is an object with readStop() and readStart() methods,
// and an `ondata` member that gets called when it has data, and
// an `onend` member that gets called when the data is over.
@@ -925,18 +938,17 @@ function SourceWrapper(options) {
Readable.call(this, options);
this._source = getLowlevelSourceObject();
- var self = this;
// Every time there's data, we push it into the internal buffer.
- this._source.ondata = function(chunk) {
+ this._source.ondata = (chunk) => {
// if push() returns false, then we need to stop reading from source
- if (!self.push(chunk))
- self._source.readStop();
+ if (!this.push(chunk))
+ this._source.readStop();
};
// When the source ends, we push the EOF-signaling `null` chunk
- this._source.onend = function() {
- self.push(null);
+ this._source.onend = () => {
+ this.push(null);
};
}
@@ -951,12 +963,12 @@ SourceWrapper.prototype._read = function(size) {
-This is a basic example of a Readable stream. It emits the numerals
+This is a basic example of a Readable stream. It emits the numerals
from 1 to 1,000,000 in ascending order, and then ends.
-```javascript
-var Readable = require('stream').Readable;
-var util = require('util');
+```js
+const Readable = require('stream').Readable;
+const util = require('util');
util.inherits(Counter, Readable);
function Counter(opt) {
@@ -979,24 +991,25 @@ Counter.prototype._read = function() {
#### Example: SimpleProtocol v1 (Sub-optimal)
-This is similar to the `parseHeader` function described above, but
-implemented as a custom stream. Also, note that this implementation
-does not convert the incoming data to a string.
+This is similar to the `parseHeader` function described
+[here](#stream_readable_unshift_chunk), but implemented as a custom stream.
+Also, note that this implementation does not convert the incoming data to a
+string.
-However, this would be better implemented as a [Transform][] stream. See
-below for a better implementation.
+However, this would be better implemented as a [Transform][] stream. See
+[SimpleProtocol v2][] for a better implementation.
-```javascript
+```js
// A parser for a simple data protocol.
// The "header" is a JSON object, followed by 2 \n characters, and
// then a message body.
//
// NOTE: This can be done more simply as a Transform stream!
-// Using Readable directly for this is sub-optimal. See the
+// Using Readable directly for this is sub-optimal. See the
// alternative example below under the Transform section.
-var Readable = require('stream').Readable;
-var util = require('util');
+const Readable = require('stream').Readable;
+const util = require('util');
util.inherits(SimpleProtocol, Readable);
@@ -1012,13 +1025,13 @@ function SimpleProtocol(source, options) {
this._source = source;
var self = this;
- source.on('end', function() {
+ source.on('end', () => {
self.push(null);
});
// give it a kick whenever the source is readable
// read(0) will not consume any bytes
- source.on('readable', function() {
+ source.on('readable', () => {
self.read(0);
});
@@ -1098,19 +1111,24 @@ connected in some way to the input, such as a [zlib][] stream or a
[crypto][] stream.
There is no requirement that the output be the same size as the input,
-the same number of chunks, or arrive at the same time. For example, a
+the same number of chunks, or arrive at the same time. For example, a
Hash stream will only ever have a single chunk of output which is
-provided when the input is ended. A zlib stream will produce output
+provided when the input is ended. A zlib stream will produce output
that is either much smaller or much larger than its input.
-Rather than implement the [`_read()`][] and [`_write()`][] methods, Transform
-classes must implement the `_transform()` method, and may optionally
-also implement the `_flush()` method. (See below.)
+Rather than implement the [`stream._read()`][stream-_read] and
+[`stream._write()`][stream-_write] methods, Transform classes must implement the
+[`stream._transform()`][stream-_transform] method, and may optionally
+also implement the [`stream._flush()`][stream-_flush] method. (See below.)
#### new stream.Transform([options])
* `options` {Object} Passed to both Writable and Readable
- constructors.
+ constructors. Also has the following fields:
+ * `transform` {Function} Implementation for the
+ [`stream._transform()`][stream-_transform] method.
+ * `flush` {Function} Implementation for the [`stream._flush()`][stream-_flush]
+ method.
In classes that extend the Transform class, make sure to call the
constructor so that the buffering settings can be properly
@@ -1118,11 +1136,12 @@ initialized.
#### Events: 'finish' and 'end'
-The [`finish`][] and [`end`][] events are from the parent Writable
-and Readable classes respectively. The `finish` event is fired after
-`.end()` is called and all chunks have been processed by `_transform`,
-`end` is fired after all data has been output which is after the callback
-in `_flush` has been called.
+The [`'finish'`][] and [`'end'`][] events are from the parent Writable
+and Readable classes respectively. The `'finish'` event is fired after
+[`stream.end()`][stream-end] is called and all chunks have been processed by
+[`stream._transform()`][stream-_transform], `'end'` is fired after all data has
+been output which is after the callback in [`stream._flush()`][stream-_flush]
+has been called.
#### transform.\_flush(callback)
@@ -1134,26 +1153,26 @@ by child classes, and if so, will be called by the internal Transform
class methods only.
In some cases, your transform operation may need to emit a bit more
-data at the end of the stream. For example, a `Zlib` compression
+data at the end of the stream. For example, a `Zlib` compression
stream will store up some internal state so that it can optimally
-compress the output. At the end, however, it needs to do the best it
+compress the output. At the end, however, it needs to do the best it
can with what is left, so that the data will be complete.
-In those cases, you can implement a `_flush` method, which will be
+In those cases, you can implement a `_flush()` method, which will be
called at the very end, after all the written data is consumed, but
-before emitting `end` to signal the end of the readable side. Just
-like with `_transform`, call `transform.push(chunk)` zero or more
-times, as appropriate, and call `callback` when the flush operation is
-complete.
+before emitting [`'end'`][] to signal the end of the readable side. Just
+like with [`stream._transform()`][stream-_transform], call
+`transform.push(chunk)` zero or more times, as appropriate, and call `callback`
+when the flush operation is complete.
This method is prefixed with an underscore because it is internal to
the class that defines it, and should not be called directly by user
-programs. However, you **are** expected to override this method in
+programs. However, you **are** expected to override this method in
your own extension classes.
#### transform.\_transform(chunk, encoding, callback)
-* `chunk` {Buffer | String} The chunk to be transformed. Will **always**
+* `chunk` {Buffer|String} The chunk to be transformed. Will **always**
be a buffer unless the `decodeStrings` option was set to `false`.
* `encoding` {String} If the chunk is a string, then this is the
encoding type. If chunk is a buffer, then this is the special
@@ -1165,12 +1184,12 @@ Note: **This function MUST NOT be called directly.** It should be
implemented by child classes, and called by the internal Transform
class methods only.
-All Transform stream implementations must provide a `_transform`
+All Transform stream implementations must provide a `_transform()`
method to accept input and produce output.
-`_transform` should do whatever has to be done in this specific
+`_transform()` should do whatever has to be done in this specific
Transform class, to handle the bytes being written, and pass them off
-to the readable portion of the interface. Do asynchronous I/O,
+to the readable portion of the interface. Do asynchronous I/O,
process things, and so on.
Call `transform.push(outputChunk)` 0 or more times to generate output
@@ -1178,12 +1197,12 @@ from this input chunk, depending on how much data you want to output
as a result of this chunk.
Call the callback function only when the current chunk is completely
-consumed. Note that there may or may not be output as a result of any
+consumed. Note that there may or may not be output as a result of any
particular input chunk. If you supply a second argument to the callback
it will be passed to the push method. In other words the following are
equivalent:
-```javascript
+```js
transform.prototype._transform = function (data, encoding, callback) {
this.push(data);
callback();
@@ -1196,22 +1215,23 @@ transform.prototype._transform = function (data, encoding, callback) {
This method is prefixed with an underscore because it is internal to
the class that defines it, and should not be called directly by user
-programs. However, you **are** expected to override this method in
+programs. However, you **are** expected to override this method in
your own extension classes.
#### Example: `SimpleProtocol` parser v2
-The example above of a simple protocol parser can be implemented
-simply by using the higher level [Transform][] stream class, similar to
-the `parseHeader` and `SimpleProtocol v1` examples above.
+The example [here](#stream_example_simpleprotocol_v1_sub_optimal) of a simple
+protocol parser can be implemented simply by using the higher level
+[Transform][] stream class, similar to the `parseHeader` and `SimpleProtocol
+v1` examples.
In this example, rather than providing the input as an argument, it
would be piped into the parser, which is a more idiomatic Node.js stream
approach.
```javascript
-var util = require('util');
-var Transform = require('stream').Transform;
+const util = require('util');
+const Transform = require('stream').Transform;
util.inherits(SimpleProtocol, Transform);
function SimpleProtocol(options) {
@@ -1282,22 +1302,30 @@ SimpleProtocol.prototype._transform = function(chunk, encoding, done) {
`stream.Writable` is an abstract class designed to be extended with an
-underlying implementation of the [`_write(chunk, encoding, callback)`][] method.
+underlying implementation of the
+[`stream._write(chunk, encoding, callback)`][stream-_write] method.
-Please see above under [API for Stream Consumers][] for how to consume
-writable streams in your programs. What follows is an explanation of
+Please see [API for Stream Consumers][] for how to consume
+writable streams in your programs. What follows is an explanation of
how to implement Writable streams in your programs.
#### new stream.Writable([options])
* `options` {Object}
- * `highWaterMark` {Number} Buffer level when [`write()`][] starts
- returning false. Default=16kb, or 16 for `objectMode` streams
+ * `highWaterMark` {Number} Buffer level when
+ [`stream.write()`][stream-write] starts returning `false`. Default = `16384`
+ (16kb), or `16` for `objectMode` streams.
* `decodeStrings` {Boolean} Whether or not to decode strings into
- Buffers before passing them to [`_write()`][]. Default=true
- * `objectMode` {Boolean} Whether or not the `write(anyObj)` is
- a valid operation. If set you can write arbitrary data instead
- of only `Buffer` / `String` data. Default=false
+ Buffers before passing them to [`stream._write()`][stream-_write].
+ Default = `true`
+ * `objectMode` {Boolean} Whether or not the
+ [`stream.write(anyObj)`][stream-write] is a valid operation. If set you can
+ write arbitrary data instead of only `Buffer` / `String` data.
+ Default = `false`
+ * `write` {Function} Implementation for the
+ [`stream._write()`][stream-_write] method.
+ * `writev` {Function} Implementation for the
+ [`stream._writev()`][stream-_writev] method.
In classes that extend the Writable class, make sure to call the
constructor so that the buffering settings can be properly
@@ -1305,7 +1333,7 @@ initialized.
#### writable.\_write(chunk, encoding, callback)
-* `chunk` {Buffer | String} The chunk to be written. Will **always**
+* `chunk` {Buffer|String} The chunk to be written. Will **always**
be a buffer unless the `decodeStrings` option was set to `false`.
* `encoding` {String} If the chunk is a string, then this is the
encoding type. If chunk is a buffer, then this is the special
@@ -1313,8 +1341,9 @@ initialized.
* `callback` {Function} Call this function (optionally with an error
argument) when you are done processing the supplied chunk.
-All Writable stream implementations must provide a [`_write()`][]
-method to send data to the underlying resource.
+All Writable stream implementations must provide a
+[`stream._write()`][stream-_write] method to send data to the underlying
+resource.
Note: **This function MUST NOT be called directly.** It should be
implemented by child classes, and called by the internal Writable
@@ -1325,20 +1354,20 @@ signal that the write completed successfully or with an error.
If the `decodeStrings` flag is set in the constructor options, then
`chunk` may be a string rather than a Buffer, and `encoding` will
-indicate the sort of string that it is. This is to support
+indicate the sort of string that it is. This is to support
implementations that have an optimized handling for certain string
-data encodings. If you do not explicitly set the `decodeStrings`
+data encodings. If you do not explicitly set the `decodeStrings`
option to `false`, then you can safely ignore the `encoding` argument,
and assume that `chunk` will always be a Buffer.
This method is prefixed with an underscore because it is internal to
the class that defines it, and should not be called directly by user
-programs. However, you **are** expected to override this method in
+programs. However, you **are** expected to override this method in
your own extension classes.
#### writable.\_writev(chunks, callback)
-* `chunks` {Array} The chunks to be written. Each chunk has following
+* `chunks` {Array} The chunks to be written. Each chunk has following
format: `{ chunk: ..., encoding: ... }`.
* `callback` {Function} Call this function (optionally with an error
argument) when you are done processing the supplied chunks.
@@ -1348,7 +1377,7 @@ implemented by child classes, and called by the internal Writable
class methods only.
This function is completely optional to implement. In most cases it is
-unnecessary. If implemented, it will be called with all the chunks
+unnecessary. If implemented, it will be called with all the chunks
that are buffered in the write queue.
@@ -1356,14 +1385,16 @@ that are buffered in the write queue.
-In simple cases there is now the added benefit of being able to construct a stream without inheritance.
+In simple cases there is now the added benefit of being able to construct a
+stream without inheritance.
This can be done by passing the appropriate methods as constructor options:
Examples:
### Duplex
-```javascript
+
+```js
var duplex = new stream.Duplex({
read: function(n) {
// sets this._read under the hood
@@ -1400,7 +1431,8 @@ var duplex = new stream.Duplex({
```
### Readable
-```javascript
+
+```js
var readable = new stream.Readable({
read: function(n) {
// sets this._read under the hood
@@ -1413,7 +1445,8 @@ var readable = new stream.Readable({
```
### Transform
-```javascript
+
+```js
var transform = new stream.Transform({
transform: function(chunk, encoding, next) {
// sets this._transform under the hood
@@ -1436,7 +1469,8 @@ var transform = new stream.Transform({
```
### Writable
-```javascript
+
+```js
var writable = new stream.Writable({
write: function(chunk, encoding, next) {
// sets this._write under the hood
@@ -1474,14 +1508,14 @@ The amount of data that will potentially be buffered depends on the
`highWaterMark` option which is passed into the constructor.
Buffering in Readable streams happens when the implementation calls
-[`stream.push(chunk)`][]. If the consumer of the Stream does not call
-`stream.read()`, then the data will sit in the internal queue until it
-is consumed.
+[`stream.push(chunk)`][stream-push]. If the consumer of the Stream does not
+call [`stream.read()`][stream-read], then the data will sit in the internal
+queue until it is consumed.
Buffering in Writable streams happens when the user calls
-[`stream.write(chunk)`][] repeatedly, even when `write()` returns `false`.
+[`stream.write(chunk)`][stream-write] repeatedly, even when it returns `false`.
-The purpose of streams, especially with the `pipe()` method, is to
+The purpose of streams, especially with the [`stream.pipe()`][] method, is to
limit the buffering of data to acceptable levels, so that sources and
destinations of varying speed will not overwhelm the available memory.
@@ -1492,36 +1526,37 @@ destinations of varying speed will not overwhelm the available memory.
In versions of Node.js prior to v0.10, the Readable stream interface was
simpler, but also less powerful and less useful.
-* Rather than waiting for you to call the `read()` method, `'data'`
- events would start emitting immediately. If you needed to do some
- I/O to decide how to handle data, then you had to store the chunks
+* Rather than waiting for you to call the [`stream.read()`][stream-read] method,
+ [`'data'`][] events would start emitting immediately. If you needed to do
+ some I/O to decide how to handle data, then you had to store the chunks
in some kind of buffer so that they would not be lost.
-* The [`pause()`][] method was advisory, rather than guaranteed. This
- meant that you still had to be prepared to receive `'data'` events
- even when the stream was in a paused state.
+* The [`stream.pause()`][stream-pause] method was advisory, rather than
+ guaranteed. This meant that you still had to be prepared to receive
+ [`'data'`][] events even when the stream was in a paused state.
-In Node.js v0.10, the Readable class described below was added.
+In Node.js v0.10, the [Readable][] class was added.
For backwards compatibility with older Node.js programs, Readable streams
-switch into "flowing mode" when a `'data'` event handler is added, or
-when the [`resume()`][] method is called. The effect is that, even if
-you are not using the new `read()` method and `'readable'` event, you
-no longer have to worry about losing `'data'` chunks.
+switch into "flowing mode" when a [`'data'`][] event handler is added, or
+when the [`stream.resume()`][stream-resume] method is called. The effect is
+that, even if you are not using the new [`stream.read()`][stream-read] method
+and [`'readable'`][] event, you no longer have to worry about losing
+[`'data'`][] chunks.
-Most programs will continue to function normally. However, this
+Most programs will continue to function normally. However, this
introduces an edge case in the following conditions:
-* No [`'data'` event][] handler is added.
-* The [`resume()`][] method is never called.
+* No [`'data'`][] event handler is added.
+* The [`stream.resume()`][stream-resume] method is never called.
* The stream is not piped to any writable destination.
For example, consider the following code:
-```javascript
+```js
// WARNING! BROKEN!
-net.createServer(function(socket) {
+net.createServer((socket) => {
// we add an 'end' method, but never consume the data
- socket.on('end', function() {
+ socket.on('end', () => {
// It will never get here.
socket.end('I got your message (but didnt read it)\n');
});
@@ -1530,17 +1565,17 @@ net.createServer(function(socket) {
```
In versions of Node.js prior to v0.10, the incoming message data would be
-simply discarded. However, in Node.js v0.10 and beyond,
+simply discarded. However, in Node.js v0.10 and beyond,
the socket will remain paused forever.
-The workaround in this situation is to call the `resume()` method to
-start the flow of data:
+The workaround in this situation is to call the
+[`stream.resume()`][stream-resume] method to start the flow of data:
-```javascript
+```js
// Workaround
-net.createServer(function(socket) {
+net.createServer((socket) => {
- socket.on('end', function() {
+ socket.on('end', () => {
socket.end('I got your message (but didnt read it)\n');
});
@@ -1552,7 +1587,7 @@ net.createServer(function(socket) {
In addition to new Readable streams switching into flowing mode,
pre-v0.10 style streams can be wrapped in a Readable class using the
-`wrap()` method.
+[`stream.wrap()`][] method.
### Object Mode
@@ -1565,33 +1600,33 @@ Streams that are in **object mode** can emit generic JavaScript values
other than Buffers and Strings.
A Readable stream in object mode will always return a single item from
-a call to `stream.read(size)`, regardless of what the size argument
-is.
+a call to [`stream.read(size)`][stream-read], regardless of what the size
+argument is.
A Writable stream in object mode will always ignore the `encoding`
-argument to `stream.write(data, encoding)`.
+argument to [`stream.write(data, encoding)`][stream-write].
The special value `null` still retains its special value for object
-mode streams. That is, for object mode readable streams, `null` as a
-return value from `stream.read()` indicates that there is no more
-data, and [`stream.push(null)`][] will signal the end of stream data
+mode streams. That is, for object mode readable streams, `null` as a
+return value from [`stream.read()`][stream-read] indicates that there is no more
+data, and [`stream.push(null)`][stream-push] will signal the end of stream data
(`EOF`).
-No streams in Node.js core are object mode streams. This pattern is only
+No streams in Node.js core are object mode streams. This pattern is only
used by userland streaming libraries.
You should set `objectMode` in your stream child class constructor on
-the options object. Setting `objectMode` mid-stream is not safe.
+the options object. Setting `objectMode` mid-stream is not safe.
For Duplex streams `objectMode` can be set exclusively for readable or
writable side with `readableObjectMode` and `writableObjectMode`
respectively. These options can be used to implement parsers and
serializers with Transform streams.
-```javascript
-var util = require('util');
-var StringDecoder = require('string_decoder').StringDecoder;
-var Transform = require('stream').Transform;
+```js
+const util = require('util');
+const StringDecoder = require('string_decoder').StringDecoder;
+const Transform = require('stream').Transform;
util.inherits(JSONParseStream, Transform);
// Gets \n-delimited JSON string data, and emits the parsed objects
@@ -1646,12 +1681,12 @@ JSONParseStream.prototype._flush = function(cb) {
There are some cases where you want to trigger a refresh of the
underlying readable stream mechanisms, without actually consuming any
-data. In that case, you can call `stream.read(0)`, which will always
+data. In that case, you can call `stream.read(0)`, which will always
return null.
If the internal read buffer is below the `highWaterMark`, and the
-stream is not currently reading, then calling `read(0)` will trigger
-a low-level `_read` call.
+stream is not currently reading, then calling `stream.read(0)` will trigger
+a low-level [`stream._read()`][stream-_read] call.
There is almost never a need to do this. However, you will see some
cases in Node.js's internals where this is done, particularly in the
@@ -1660,71 +1695,66 @@ Readable stream class internals.
### `stream.push('')`
Pushing a zero-byte string or Buffer (when not in [Object mode][]) has an
-interesting side effect. Because it *is* a call to
-[`stream.push()`][], it will end the `reading` process. However, it
+interesting side effect. Because it *is* a call to
+[`stream.push()`][stream-push], it will end the `reading` process. However, it
does *not* add any data to the readable buffer, so there's nothing for
a user to consume.
Very rarely, there are cases where you have no data to provide now,
but the consumer of your stream (or, perhaps, another bit of your own
-code) will know when to check again, by calling `stream.read(0)`. In
-those cases, you *may* call `stream.push('')`.
+code) will know when to check again, by calling [`stream.read(0)`][stream-read].
+In those cases, you *may* call `stream.push('')`.
So far, the only use case for this functionality is in the
-[tls.CryptoStream][] class, which is deprecated in Node.js/io.js v1.0. If you
+[`tls.CryptoStream`][] class, which is deprecated in Node.js/io.js v1.0. If you
find that you have to use `stream.push('')`, please consider another
approach, because it almost certainly indicates that something is
horribly wrong.
-[request to an HTTP server]: https://nodejs.org/docs/v5.1.0/api/http.html#http_http_incomingmessage
-[EventEmitter]: https://nodejs.org/docs/v5.1.0/api/events.html#events_class_events_eventemitter
-[Object mode]: #stream_object_mode
-[`stream.push(chunk)`]: #stream_readable_push_chunk_encoding
-[`stream.push(null)`]: #stream_readable_push_chunk_encoding
-[`stream.push()`]: #stream_readable_push_chunk_encoding
-[`unpipe()`]: #stream_readable_unpipe_destination
-[unpiped]: #stream_readable_unpipe_destination
-[tcp sockets]: https://nodejs.org/docs/v5.1.0/api/net.html#net_class_net_socket
-[http responses, on the client]: https://nodejs.org/docs/v5.1.0/api/http.html#http_http_incomingmessage
-[http requests, on the server]: https://nodejs.org/docs/v5.1.0/api/http.html#http_http_incomingmessage
-[http requests, on the client]: https://nodejs.org/docs/v5.1.0/api/http.html#http_class_http_clientrequest
-[http responses, on the server]: https://nodejs.org/docs/v5.1.0/api/http.html#http_class_http_serverresponse
-[fs read streams]: https://nodejs.org/docs/v5.1.0/api/fs.html#fs_class_fs_readstream
-[fs write streams]: https://nodejs.org/docs/v5.1.0/api/fs.html#fs_class_fs_writestream
-[zlib streams]: zlib.html
-[zlib]: zlib.html
-[crypto streams]: crypto.html
-[crypto]: crypto.html
-[tls.CryptoStream]: https://nodejs.org/docs/v5.1.0/api/tls.html#tls_class_cryptostream
-[process.stdin]: https://nodejs.org/docs/v5.1.0/api/process.html#process_process_stdin
-[stdout]: https://nodejs.org/docs/v5.1.0/api/process.html#process_process_stdout
-[process.stdout]: https://nodejs.org/docs/v5.1.0/api/process.html#process_process_stdout
-[process.stderr]: https://nodejs.org/docs/v5.1.0/api/process.html#process_process_stderr
-[child process stdout and stderr]: https://nodejs.org/docs/v5.1.0/api/child_process.html#child_process_child_stdout
-[child process stdin]: https://nodejs.org/docs/v5.1.0/api/child_process.html#child_process_child_stdin
+[`'data'`]: #stream_event_data
+[`'drain'`]: #stream_event_drain
+[`'end'`]: #stream_event_end
+[`'finish'`]: #stream_event_finish
+[`'readable'`]: #stream_event_readable
+[`buf.toString(encoding)`]: https://nodejs.org/docs/v5.8.0/api/buffer.html#buffer_buf_tostring_encoding_start_end
+[`EventEmitter`]: https://nodejs.org/docs/v5.8.0/api/events.html#events_class_eventemitter
+[`process.stderr`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stderr
+[`process.stdin`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stdin
+[`process.stdout`]: https://nodejs.org/docs/v5.8.0/api/process.html#process_process_stdout
+[`stream.cork()`]: #stream_writable_cork
+[`stream.pipe()`]: #stream_readable_pipe_destination_options
+[`stream.uncork()`]: #stream_writable_uncork
+[`stream.unpipe()`]: #stream_readable_unpipe_destination
+[`stream.wrap()`]: #stream_readable_wrap_stream
+[`tls.CryptoStream`]: https://nodejs.org/docs/v5.8.0/api/tls.html#tls_class_cryptostream
+[`util.inherits()`]: https://nodejs.org/docs/v5.8.0/api/util.html#util_util_inherits_constructor_superconstructor
[API for Stream Consumers]: #stream_api_for_stream_consumers
[API for Stream Implementors]: #stream_api_for_stream_implementors
-[Readable]: #stream_class_stream_readable
-[Writable]: #stream_class_stream_writable
+[child process stdin]: https://nodejs.org/docs/v5.8.0/api/child_process.html#child_process_child_stdin
+[child process stdout and stderr]: https://nodejs.org/docs/v5.8.0/api/child_process.html#child_process_child_stdout
+[Compatibility]: #stream_compatibility_with_older_node_js_versions
+[crypto]: crypto.html
[Duplex]: #stream_class_stream_duplex
+[fs read streams]: https://nodejs.org/docs/v5.8.0/api/fs.html#fs_class_fs_readstream
+[fs write streams]: https://nodejs.org/docs/v5.8.0/api/fs.html#fs_class_fs_writestream
+[HTTP requests, on the client]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_clientrequest
+[HTTP responses, on the server]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_serverresponse
+[http-incoming-message]: https://nodejs.org/docs/v5.8.0/api/http.html#http_class_http_incomingmessage
+[Object mode]: #stream_object_mode
+[Readable]: #stream_class_stream_readable
+[SimpleProtocol v2]: #stream_example_simpleprotocol_parser_v2
+[stream-_flush]: #stream_transform_flush_callback
+[stream-_read]: #stream_readable_read_size_1
+[stream-_transform]: #stream_transform_transform_chunk_encoding_callback
+[stream-_write]: #stream_writable_write_chunk_encoding_callback_1
+[stream-_writev]: #stream_writable_writev_chunks_callback
+[stream-end]: #stream_writable_end_chunk_encoding_callback
+[stream-pause]: #stream_readable_pause
+[stream-push]: #stream_readable_push_chunk_encoding
+[stream-read]: #stream_readable_read_size
+[stream-resume]: #stream_readable_resume
+[stream-write]: #stream_writable_write_chunk_encoding_callback
+[TCP sockets]: https://nodejs.org/docs/v5.8.0/api/net.html#net_class_net_socket
[Transform]: #stream_class_stream_transform
-[`end`]: #stream_event_end
-[`finish`]: #stream_event_finish
-[`_read(size)`]: #stream_readable_read_size_1
-[`_read()`]: #stream_readable_read_size_1
-[_read]: #stream_readable_read_size_1
-[`writable.write(chunk)`]: #stream_writable_write_chunk_encoding_callback
-[`write(chunk, encoding, callback)`]: #stream_writable_write_chunk_encoding_callback
-[`write()`]: #stream_writable_write_chunk_encoding_callback
-[`stream.write(chunk)`]: #stream_writable_write_chunk_encoding_callback
-[`_write(chunk, encoding, callback)`]: #stream_writable_write_chunk_encoding_callback_1
-[`_write()`]: #stream_writable_write_chunk_encoding_callback_1
-[_write]: #stream_writable_write_chunk_encoding_callback_1
-[`util.inherits`]: https://nodejs.org/docs/v5.1.0/api/util.html#util_util_inherits_constructor_superconstructor
-[`end()`]: #stream_writable_end_chunk_encoding_callback
-[`'data'` event]: #stream_event_data
-[`resume()`]: #stream_readable_resume
-[`readable.resume()`]: #stream_readable_resume
-[`pause()`]: #stream_readable_pause
-[`unpipe()`]: #stream_readable_unpipe_destination
-[`pipe()`]: #stream_readable_pipe_destination_options
+[Writable]: #stream_class_stream_writable
+[zlib]: zlib.html
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js
index 69558af037cd66..736693b8400fed 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js
@@ -6,22 +6,21 @@
'use strict';
/**/
+
var objectKeys = Object.keys || function (obj) {
var keys = [];
- for (var key in obj) keys.push(key);
- return keys;
-}
+ for (var key in obj) {
+ keys.push(key);
+ }return keys;
+};
/**/
-
module.exports = Duplex;
/**/
var processNextTick = require('process-nextick-args');
/**/
-
-
/**/
var util = require('core-util-is');
util.inherits = require('inherits');
@@ -35,26 +34,21 @@ util.inherits(Duplex, Readable);
var keys = objectKeys(Writable.prototype);
for (var v = 0; v < keys.length; v++) {
var method = keys[v];
- if (!Duplex.prototype[method])
- Duplex.prototype[method] = Writable.prototype[method];
+ if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
}
function Duplex(options) {
- if (!(this instanceof Duplex))
- return new Duplex(options);
+ if (!(this instanceof Duplex)) return new Duplex(options);
Readable.call(this, options);
Writable.call(this, options);
- if (options && options.readable === false)
- this.readable = false;
+ if (options && options.readable === false) this.readable = false;
- if (options && options.writable === false)
- this.writable = false;
+ if (options && options.writable === false) this.writable = false;
this.allowHalfOpen = true;
- if (options && options.allowHalfOpen === false)
- this.allowHalfOpen = false;
+ if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
this.once('end', onend);
}
@@ -63,8 +57,7 @@ function Duplex(options) {
function onend() {
// if we allow half-open state, or if the writable side ended,
// then we're ok.
- if (this.allowHalfOpen || this._writableState.ended)
- return;
+ if (this.allowHalfOpen || this._writableState.ended) return;
// no more data can be written.
// But allow more writes to happen in this tick.
@@ -75,8 +68,8 @@ function onEndNT(self) {
self.end();
}
-function forEach (xs, f) {
+function forEach(xs, f) {
for (var i = 0, l = xs.length; i < l; i++) {
f(xs[i], i);
}
-}
+}
\ No newline at end of file
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js
index bddfdd01537a40..d06f71f1868d77 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js
@@ -16,12 +16,11 @@ util.inherits = require('inherits');
util.inherits(PassThrough, Transform);
function PassThrough(options) {
- if (!(this instanceof PassThrough))
- return new PassThrough(options);
+ if (!(this instanceof PassThrough)) return new PassThrough(options);
Transform.call(this, options);
}
-PassThrough.prototype._transform = function(chunk, encoding, cb) {
+PassThrough.prototype._transform = function (chunk, encoding, cb) {
cb(null, chunk);
-};
+};
\ No newline at end of file
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js
index 50852aee7e6e02..54a9d5c553d69e 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js
@@ -6,12 +6,10 @@ module.exports = Readable;
var processNextTick = require('process-nextick-args');
/**/
-
/**/
var isArray = require('isarray');
/**/
-
/**/
var Buffer = require('buffer').Buffer;
/**/
@@ -21,21 +19,20 @@ Readable.ReadableState = ReadableState;
var EE = require('events');
/**/
-var EElistenerCount = function(emitter, type) {
+var EElistenerCount = function (emitter, type) {
return emitter.listeners(type).length;
};
/**/
-
-
/**/
var Stream;
-(function (){try{
- Stream = require('st' + 'ream');
-}catch(_){}finally{
- if (!Stream)
- Stream = require('events').EventEmitter;
-}}())
+(function () {
+ try {
+ Stream = require('st' + 'ream');
+ } catch (_) {} finally {
+ if (!Stream) Stream = require('events').EventEmitter;
+ }
+})();
/**/
var Buffer = require('buffer').Buffer;
@@ -45,11 +42,9 @@ var util = require('core-util-is');
util.inherits = require('inherits');
/**/
-
-
/**/
var debugUtil = require('util');
-var debug;
+var debug = undefined;
if (debugUtil && debugUtil.debuglog) {
debug = debugUtil.debuglog('stream');
} else {
@@ -71,17 +66,16 @@ function ReadableState(options, stream) {
// make all the buffer merging and length checks go away
this.objectMode = !!options.objectMode;
- if (stream instanceof Duplex)
- this.objectMode = this.objectMode || !!options.readableObjectMode;
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
// the point at which it stops calling _read() to fill the buffer
// Note: 0 is a valid value, means "don't call _read preemptively ever"
var hwm = options.highWaterMark;
var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
// cast to ints.
- this.highWaterMark = ~~this.highWaterMark;
+ this.highWaterMark = ~ ~this.highWaterMark;
this.buffer = [];
this.length = 0;
@@ -103,6 +97,7 @@ function ReadableState(options, stream) {
this.needReadable = false;
this.emittedReadable = false;
this.readableListening = false;
+ this.resumeScheduled = false;
// Crypto is kind of old and crusty. Historically, its default string
// encoding is 'binary' so we have to make this configurable.
@@ -122,8 +117,7 @@ function ReadableState(options, stream) {
this.decoder = null;
this.encoding = null;
if (options.encoding) {
- if (!StringDecoder)
- StringDecoder = require('string_decoder/').StringDecoder;
+ if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
this.decoder = new StringDecoder(options.encoding);
this.encoding = options.encoding;
}
@@ -133,16 +127,14 @@ var Duplex;
function Readable(options) {
Duplex = Duplex || require('./_stream_duplex');
- if (!(this instanceof Readable))
- return new Readable(options);
+ if (!(this instanceof Readable)) return new Readable(options);
this._readableState = new ReadableState(options, this);
// legacy
this.readable = true;
- if (options && typeof options.read === 'function')
- this._read = options.read;
+ if (options && typeof options.read === 'function') this._read = options.read;
Stream.call(this);
}
@@ -151,7 +143,7 @@ function Readable(options) {
// This returns true if the highWaterMark has not been hit yet,
// similar to how Writable.write() returns true if you should
// write() some more.
-Readable.prototype.push = function(chunk, encoding) {
+Readable.prototype.push = function (chunk, encoding) {
var state = this._readableState;
if (!state.objectMode && typeof chunk === 'string') {
@@ -166,12 +158,12 @@ Readable.prototype.push = function(chunk, encoding) {
};
// Unshift should *always* be something directly out of read()
-Readable.prototype.unshift = function(chunk) {
+Readable.prototype.unshift = function (chunk) {
var state = this._readableState;
return readableAddChunk(this, state, chunk, '', true);
};
-Readable.prototype.isPaused = function() {
+Readable.prototype.isPaused = function () {
return this._readableState.flowing === false;
};
@@ -190,26 +182,28 @@ function readableAddChunk(stream, state, chunk, encoding, addToFront) {
var e = new Error('stream.unshift() after end event');
stream.emit('error', e);
} else {
- if (state.decoder && !addToFront && !encoding)
+ var skipAdd;
+ if (state.decoder && !addToFront && !encoding) {
chunk = state.decoder.write(chunk);
+ skipAdd = !state.objectMode && chunk.length === 0;
+ }
- if (!addToFront)
- state.reading = false;
-
- // if we want the data now, just emit it.
- if (state.flowing && state.length === 0 && !state.sync) {
- stream.emit('data', chunk);
- stream.read(0);
- } else {
- // update the buffer info.
- state.length += state.objectMode ? 1 : chunk.length;
- if (addToFront)
- state.buffer.unshift(chunk);
- else
- state.buffer.push(chunk);
-
- if (state.needReadable)
- emitReadable(stream);
+ if (!addToFront) state.reading = false;
+
+ // Don't add to the buffer if we've decoded to an empty string chunk and
+ // we're not in object mode
+ if (!skipAdd) {
+ // if we want the data now, just emit it.
+ if (state.flowing && state.length === 0 && !state.sync) {
+ stream.emit('data', chunk);
+ stream.read(0);
+ } else {
+ // update the buffer info.
+ state.length += state.objectMode ? 1 : chunk.length;
+ if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
+
+ if (state.needReadable) emitReadable(stream);
+ }
}
maybeReadMore(stream, state);
@@ -221,7 +215,6 @@ function readableAddChunk(stream, state, chunk, encoding, addToFront) {
return needMoreData(state);
}
-
// if it's past the high water mark, we can push in some more.
// Also, if we have no data yet, we can stand some
// more bytes. This is to work around cases where hwm=0,
@@ -230,16 +223,12 @@ function readableAddChunk(stream, state, chunk, encoding, addToFront) {
// needReadable was set, then we ought to push more, so that another
// 'readable' event will be triggered.
function needMoreData(state) {
- return !state.ended &&
- (state.needReadable ||
- state.length < state.highWaterMark ||
- state.length === 0);
+ return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
}
// backwards compatibility.
-Readable.prototype.setEncoding = function(enc) {
- if (!StringDecoder)
- StringDecoder = require('string_decoder/').StringDecoder;
+Readable.prototype.setEncoding = function (enc) {
+ if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
this._readableState.decoder = new StringDecoder(enc);
this._readableState.encoding = enc;
return this;
@@ -264,29 +253,22 @@ function computeNewHighWaterMark(n) {
}
function howMuchToRead(n, state) {
- if (state.length === 0 && state.ended)
- return 0;
+ if (state.length === 0 && state.ended) return 0;
- if (state.objectMode)
- return n === 0 ? 0 : 1;
+ if (state.objectMode) return n === 0 ? 0 : 1;
if (n === null || isNaN(n)) {
// only flow one buffer at a time
- if (state.flowing && state.buffer.length)
- return state.buffer[0].length;
- else
- return state.length;
+ if (state.flowing && state.buffer.length) return state.buffer[0].length;else return state.length;
}
- if (n <= 0)
- return 0;
+ if (n <= 0) return 0;
// If we're asking for more than the target buffer level,
// then raise the water mark. Bump up to the next highest
// power of 2, to prevent increasing it excessively in tiny
// amounts.
- if (n > state.highWaterMark)
- state.highWaterMark = computeNewHighWaterMark(n);
+ if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
// don't have that much. return null, unless we've ended.
if (n > state.length) {
@@ -302,25 +284,19 @@ function howMuchToRead(n, state) {
}
// you can override either this method, or the async _read(n) below.
-Readable.prototype.read = function(n) {
+Readable.prototype.read = function (n) {
debug('read', n);
var state = this._readableState;
var nOrig = n;
- if (typeof n !== 'number' || n > 0)
- state.emittedReadable = false;
+ if (typeof n !== 'number' || n > 0) state.emittedReadable = false;
// if we're doing read(0) to trigger a readable event, but we
// already have a bunch of data in the buffer, then just trigger
// the 'readable' event and move on.
- if (n === 0 &&
- state.needReadable &&
- (state.length >= state.highWaterMark || state.ended)) {
+ if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
debug('read: emitReadable', state.length, state.ended);
- if (state.length === 0 && state.ended)
- endReadable(this);
- else
- emitReadable(this);
+ if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
return null;
}
@@ -328,8 +304,7 @@ Readable.prototype.read = function(n) {
// if we've ended, and we're now clear, then finish it up.
if (n === 0 && state.ended) {
- if (state.length === 0)
- endReadable(this);
+ if (state.length === 0) endReadable(this);
return null;
}
@@ -377,8 +352,7 @@ Readable.prototype.read = function(n) {
state.reading = true;
state.sync = true;
// if the length is currently zero, then we *need* a readable event.
- if (state.length === 0)
- state.needReadable = true;
+ if (state.length === 0) state.needReadable = true;
// call internal read method
this._read(state.highWaterMark);
state.sync = false;
@@ -386,14 +360,10 @@ Readable.prototype.read = function(n) {
// If _read pushed data synchronously, then `reading` will be false,
// and we need to re-evaluate how much data we can return to the user.
- if (doRead && !state.reading)
- n = howMuchToRead(nOrig, state);
+ if (doRead && !state.reading) n = howMuchToRead(nOrig, state);
var ret;
- if (n > 0)
- ret = fromList(n, state);
- else
- ret = null;
+ if (n > 0) ret = fromList(n, state);else ret = null;
if (ret === null) {
state.needReadable = true;
@@ -404,32 +374,24 @@ Readable.prototype.read = function(n) {
// If we have nothing in the buffer, then we want to know
// as soon as we *do* get something into the buffer.
- if (state.length === 0 && !state.ended)
- state.needReadable = true;
+ if (state.length === 0 && !state.ended) state.needReadable = true;
// If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended && state.length === 0)
- endReadable(this);
+ if (nOrig !== n && state.ended && state.length === 0) endReadable(this);
- if (ret !== null)
- this.emit('data', ret);
+ if (ret !== null) this.emit('data', ret);
return ret;
};
function chunkInvalid(state, chunk) {
var er = null;
- if (!(Buffer.isBuffer(chunk)) &&
- typeof chunk !== 'string' &&
- chunk !== null &&
- chunk !== undefined &&
- !state.objectMode) {
+ if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
er = new TypeError('Invalid non-string/buffer chunk');
}
return er;
}
-
function onEofChunk(stream, state) {
if (state.ended) return;
if (state.decoder) {
@@ -454,10 +416,7 @@ function emitReadable(stream) {
if (!state.emittedReadable) {
debug('emitReadable', state.flowing);
state.emittedReadable = true;
- if (state.sync)
- processNextTick(emitReadable_, stream);
- else
- emitReadable_(stream);
+ if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
}
}
@@ -467,7 +426,6 @@ function emitReadable_(stream) {
flow(stream);
}
-
// at this point, the user has presumably seen the 'readable' event,
// and called read() to consume some data. that may have triggered
// in turn another _read(n) call, in which case reading = true if
@@ -483,15 +441,12 @@ function maybeReadMore(stream, state) {
function maybeReadMore_(stream, state) {
var len = state.length;
- while (!state.reading && !state.flowing && !state.ended &&
- state.length < state.highWaterMark) {
+ while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
debug('maybeReadMore read 0');
stream.read(0);
if (len === state.length)
// didn't get any data, stop spinning.
- break;
- else
- len = state.length;
+ break;else len = state.length;
}
state.readingMore = false;
}
@@ -500,11 +455,11 @@ function maybeReadMore_(stream, state) {
// call cb(er, data) where data is <= n in length.
// for virtual (non-string, non-buffer) streams, "length" is somewhat
// arbitrary, and perhaps not very meaningful.
-Readable.prototype._read = function(n) {
+Readable.prototype._read = function (n) {
this.emit('error', new Error('not implemented'));
};
-Readable.prototype.pipe = function(dest, pipeOpts) {
+Readable.prototype.pipe = function (dest, pipeOpts) {
var src = this;
var state = this._readableState;
@@ -522,15 +477,10 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
state.pipesCount += 1;
debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
- var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
- dest !== process.stdout &&
- dest !== process.stderr;
+ var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
var endFn = doEnd ? onend : cleanup;
- if (state.endEmitted)
- processNextTick(endFn);
- else
- src.once('end', endFn);
+ if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
dest.on('unpipe', onunpipe);
function onunpipe(readable) {
@@ -572,9 +522,7 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
// flowing again.
// So, if this is awaiting a drain, then we just call it now.
// If we don't know, then assume that we are waiting for one.
- if (state.awaitDrain &&
- (!dest._writableState || dest._writableState.needDrain))
- ondrain();
+ if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
}
src.on('data', ondata);
@@ -585,10 +533,7 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
// If the user unpiped during `dest.write()`, it is possible
// to get stuck in a permanently paused state if that write
// also returned false.
- if (state.pipesCount === 1 &&
- state.pipes[0] === dest &&
- src.listenerCount('data') === 1 &&
- !cleanedUp) {
+ if (state.pipesCount === 1 && state.pipes[0] === dest && src.listenerCount('data') === 1 && !cleanedUp) {
debug('false write response, pause', src._readableState.awaitDrain);
src._readableState.awaitDrain++;
}
@@ -602,18 +547,11 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
debug('onerror', er);
unpipe();
dest.removeListener('error', onerror);
- if (EElistenerCount(dest, 'error') === 0)
- dest.emit('error', er);
+ if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
}
// This is a brutally ugly hack to make sure that our error handler
// is attached before any userland ones. NEVER DO THIS.
- if (!dest._events || !dest._events.error)
- dest.on('error', onerror);
- else if (isArray(dest._events.error))
- dest._events.error.unshift(onerror);
- else
- dest._events.error = [onerror, dest._events.error];
-
+ if (!dest._events || !dest._events.error) dest.on('error', onerror);else if (isArray(dest._events.error)) dest._events.error.unshift(onerror);else dest._events.error = [onerror, dest._events.error];
// Both close and finish should trigger unpipe, but only once.
function onclose() {
@@ -646,11 +584,10 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
};
function pipeOnDrain(src) {
- return function() {
+ return function () {
var state = src._readableState;
debug('pipeOnDrain', state.awaitDrain);
- if (state.awaitDrain)
- state.awaitDrain--;
+ if (state.awaitDrain) state.awaitDrain--;
if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
state.flowing = true;
flow(src);
@@ -658,29 +595,24 @@ function pipeOnDrain(src) {
};
}
-
-Readable.prototype.unpipe = function(dest) {
+Readable.prototype.unpipe = function (dest) {
var state = this._readableState;
// if we're not piping anywhere, then do nothing.
- if (state.pipesCount === 0)
- return this;
+ if (state.pipesCount === 0) return this;
// just one destination. most common case.
if (state.pipesCount === 1) {
// passed in one, but it's not the right one.
- if (dest && dest !== state.pipes)
- return this;
+ if (dest && dest !== state.pipes) return this;
- if (!dest)
- dest = state.pipes;
+ if (!dest) dest = state.pipes;
// got a match.
state.pipes = null;
state.pipesCount = 0;
state.flowing = false;
- if (dest)
- dest.emit('unpipe', this);
+ if (dest) dest.emit('unpipe', this);
return this;
}
@@ -694,20 +626,18 @@ Readable.prototype.unpipe = function(dest) {
state.pipesCount = 0;
state.flowing = false;
- for (var i = 0; i < len; i++)
- dests[i].emit('unpipe', this);
- return this;
+ for (var _i = 0; _i < len; _i++) {
+ dests[_i].emit('unpipe', this);
+ }return this;
}
// try to find the right one.
var i = indexOf(state.pipes, dest);
- if (i === -1)
- return this;
+ if (i === -1) return this;
state.pipes.splice(i, 1);
state.pipesCount -= 1;
- if (state.pipesCount === 1)
- state.pipes = state.pipes[0];
+ if (state.pipesCount === 1) state.pipes = state.pipes[0];
dest.emit('unpipe', this);
@@ -716,7 +646,7 @@ Readable.prototype.unpipe = function(dest) {
// set up data events if they are asked for
// Ensure readable listeners eventually get something
-Readable.prototype.on = function(ev, fn) {
+Readable.prototype.on = function (ev, fn) {
var res = Stream.prototype.on.call(this, ev, fn);
// If listening to data, and it has not explicitly been paused,
@@ -725,7 +655,7 @@ Readable.prototype.on = function(ev, fn) {
this.resume();
}
- if (ev === 'readable' && this.readable) {
+ if (ev === 'readable' && !this._readableState.endEmitted) {
var state = this._readableState;
if (!state.readableListening) {
state.readableListening = true;
@@ -750,7 +680,7 @@ function nReadingNextTick(self) {
// pause() and resume() are remnants of the legacy readable stream API
// If the user uses them, then switch into old mode.
-Readable.prototype.resume = function() {
+Readable.prototype.resume = function () {
var state = this._readableState;
if (!state.flowing) {
debug('resume');
@@ -776,11 +706,10 @@ function resume_(stream, state) {
state.resumeScheduled = false;
stream.emit('resume');
flow(stream);
- if (state.flowing && !state.reading)
- stream.read(0);
+ if (state.flowing && !state.reading) stream.read(0);
}
-Readable.prototype.pause = function() {
+Readable.prototype.pause = function () {
debug('call pause flowing=%j', this._readableState.flowing);
if (false !== this._readableState.flowing) {
debug('pause');
@@ -803,32 +732,27 @@ function flow(stream) {
// wrap an old-style stream as the async data source.
// This is *not* part of the readable stream interface.
// It is an ugly unfortunate mess of history.
-Readable.prototype.wrap = function(stream) {
+Readable.prototype.wrap = function (stream) {
var state = this._readableState;
var paused = false;
var self = this;
- stream.on('end', function() {
+ stream.on('end', function () {
debug('wrapped end');
if (state.decoder && !state.ended) {
var chunk = state.decoder.end();
- if (chunk && chunk.length)
- self.push(chunk);
+ if (chunk && chunk.length) self.push(chunk);
}
self.push(null);
});
- stream.on('data', function(chunk) {
+ stream.on('data', function (chunk) {
debug('wrapped data');
- if (state.decoder)
- chunk = state.decoder.write(chunk);
+ if (state.decoder) chunk = state.decoder.write(chunk);
// don't skip over falsy values in objectMode
- if (state.objectMode && (chunk === null || chunk === undefined))
- return;
- else if (!state.objectMode && (!chunk || !chunk.length))
- return;
+ if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
var ret = self.push(chunk);
if (!ret) {
@@ -841,21 +765,23 @@ Readable.prototype.wrap = function(stream) {
// important when wrapping filters and duplexes.
for (var i in stream) {
if (this[i] === undefined && typeof stream[i] === 'function') {
- this[i] = function(method) { return function() {
- return stream[method].apply(stream, arguments);
- }; }(i);
+ this[i] = function (method) {
+ return function () {
+ return stream[method].apply(stream, arguments);
+ };
+ }(i);
}
}
// proxy certain important events.
var events = ['error', 'close', 'destroy', 'pause', 'resume'];
- forEach(events, function(ev) {
+ forEach(events, function (ev) {
stream.on(ev, self.emit.bind(self, ev));
});
// when we try to consume some more bytes, simply unpause the
// underlying stream.
- self._read = function(n) {
+ self._read = function (n) {
debug('wrapped _read', n);
if (paused) {
paused = false;
@@ -866,7 +792,6 @@ Readable.prototype.wrap = function(stream) {
return self;
};
-
// exposed for testing purposes only.
Readable._fromList = fromList;
@@ -880,21 +805,11 @@ function fromList(n, state) {
var ret;
// nothing in the list, definitely empty.
- if (list.length === 0)
- return null;
+ if (list.length === 0) return null;
- if (length === 0)
- ret = null;
- else if (objectMode)
- ret = list.shift();
- else if (!n || n >= length) {
+ if (length === 0) ret = null;else if (objectMode) ret = list.shift();else if (!n || n >= length) {
// read it all, truncate the array.
- if (stringMode)
- ret = list.join('');
- else if (list.length === 1)
- ret = list[0];
- else
- ret = Buffer.concat(list, length);
+ if (stringMode) ret = list.join('');else if (list.length === 1) ret = list[0];else ret = Buffer.concat(list, length);
list.length = 0;
} else {
// read just some of it.
@@ -910,25 +825,16 @@ function fromList(n, state) {
} else {
// complex case.
// we have enough to cover it, but it spans past the first buffer.
- if (stringMode)
- ret = '';
- else
- ret = new Buffer(n);
+ if (stringMode) ret = '';else ret = new Buffer(n);
var c = 0;
for (var i = 0, l = list.length; i < l && c < n; i++) {
var buf = list[0];
var cpy = Math.min(n - c, buf.length);
- if (stringMode)
- ret += buf.slice(0, cpy);
- else
- buf.copy(ret, c, 0, cpy);
+ if (stringMode) ret += buf.slice(0, cpy);else buf.copy(ret, c, 0, cpy);
- if (cpy < buf.length)
- list[0] = buf.slice(cpy);
- else
- list.shift();
+ if (cpy < buf.length) list[0] = buf.slice(cpy);else list.shift();
c += cpy;
}
@@ -943,8 +849,7 @@ function endReadable(stream) {
// If we get here before consuming all the bytes, then that is a
// bug in node. Should never happen.
- if (state.length > 0)
- throw new Error('endReadable called on non-empty stream');
+ if (state.length > 0) throw new Error('endReadable called on non-empty stream');
if (!state.endEmitted) {
state.ended = true;
@@ -961,15 +866,15 @@ function endReadableNT(state, stream) {
}
}
-function forEach (xs, f) {
+function forEach(xs, f) {
for (var i = 0, l = xs.length; i < l; i++) {
f(xs[i], i);
}
}
-function indexOf (xs, x) {
+function indexOf(xs, x) {
for (var i = 0, l = xs.length; i < l; i++) {
if (xs[i] === x) return i;
}
return -1;
-}
+}
\ No newline at end of file
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js
index 3675d18d915610..625cdc17698059 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js
@@ -53,9 +53,8 @@ util.inherits = require('inherits');
util.inherits(Transform, Duplex);
-
function TransformState(stream) {
- this.afterTransform = function(er, data) {
+ this.afterTransform = function (er, data) {
return afterTransform(stream, er, data);
};
@@ -63,6 +62,7 @@ function TransformState(stream) {
this.transforming = false;
this.writecb = null;
this.writechunk = null;
+ this.writeencoding = null;
}
function afterTransform(stream, er, data) {
@@ -71,17 +71,14 @@ function afterTransform(stream, er, data) {
var cb = ts.writecb;
- if (!cb)
- return stream.emit('error', new Error('no writecb in Transform class'));
+ if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
ts.writechunk = null;
ts.writecb = null;
- if (data !== null && data !== undefined)
- stream.push(data);
+ if (data !== null && data !== undefined) stream.push(data);
- if (cb)
- cb(er);
+ cb(er);
var rs = stream._readableState;
rs.reading = false;
@@ -90,10 +87,8 @@ function afterTransform(stream, er, data) {
}
}
-
function Transform(options) {
- if (!(this instanceof Transform))
- return new Transform(options);
+ if (!(this instanceof Transform)) return new Transform(options);
Duplex.call(this, options);
@@ -111,24 +106,19 @@ function Transform(options) {
this._readableState.sync = false;
if (options) {
- if (typeof options.transform === 'function')
- this._transform = options.transform;
+ if (typeof options.transform === 'function') this._transform = options.transform;
- if (typeof options.flush === 'function')
- this._flush = options.flush;
+ if (typeof options.flush === 'function') this._flush = options.flush;
}
- this.once('prefinish', function() {
- if (typeof this._flush === 'function')
- this._flush(function(er) {
- done(stream, er);
- });
- else
- done(stream);
+ this.once('prefinish', function () {
+ if (typeof this._flush === 'function') this._flush(function (er) {
+ done(stream, er);
+ });else done(stream);
});
}
-Transform.prototype.push = function(chunk, encoding) {
+Transform.prototype.push = function (chunk, encoding) {
this._transformState.needTransform = false;
return Duplex.prototype.push.call(this, chunk, encoding);
};
@@ -143,28 +133,25 @@ Transform.prototype.push = function(chunk, encoding) {
// Call `cb(err)` when you are done with this chunk. If you pass
// an error, then that'll put the hurt on the whole operation. If you
// never call cb(), then you'll never get another chunk.
-Transform.prototype._transform = function(chunk, encoding, cb) {
+Transform.prototype._transform = function (chunk, encoding, cb) {
throw new Error('not implemented');
};
-Transform.prototype._write = function(chunk, encoding, cb) {
+Transform.prototype._write = function (chunk, encoding, cb) {
var ts = this._transformState;
ts.writecb = cb;
ts.writechunk = chunk;
ts.writeencoding = encoding;
if (!ts.transforming) {
var rs = this._readableState;
- if (ts.needTransform ||
- rs.needReadable ||
- rs.length < rs.highWaterMark)
- this._read(rs.highWaterMark);
+ if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
}
};
// Doesn't matter what the args are here.
// _transform does all the work.
// That we got here means that the readable side wants more data.
-Transform.prototype._read = function(n) {
+Transform.prototype._read = function (n) {
var ts = this._transformState;
if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
@@ -177,21 +164,17 @@ Transform.prototype._read = function(n) {
}
};
-
function done(stream, er) {
- if (er)
- return stream.emit('error', er);
+ if (er) return stream.emit('error', er);
// if there's nothing in the write buffer, then that means
// that nothing more will ever be provided
var ws = stream._writableState;
var ts = stream._transformState;
- if (ws.length)
- throw new Error('calling transform done when ws.length != 0');
+ if (ws.length) throw new Error('calling transform done when ws.length != 0');
- if (ts.transforming)
- throw new Error('calling transform done when still transforming');
+ if (ts.transforming) throw new Error('calling transform done when still transforming');
return stream.push(null);
-}
+}
\ No newline at end of file
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js
index 1fa5eb695adde6..95916c992a9507 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js
@@ -10,6 +10,9 @@ module.exports = Writable;
var processNextTick = require('process-nextick-args');
/**/
+/**/
+var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
+/**/
/**/
var Buffer = require('buffer').Buffer;
@@ -17,29 +20,26 @@ var Buffer = require('buffer').Buffer;
Writable.WritableState = WritableState;
-
/**/
var util = require('core-util-is');
util.inherits = require('inherits');
/**/
-
/**/
var internalUtil = {
deprecate: require('util-deprecate')
};
/**/
-
-
/**/
var Stream;
-(function (){try{
- Stream = require('st' + 'ream');
-}catch(_){}finally{
- if (!Stream)
- Stream = require('events').EventEmitter;
-}}())
+(function () {
+ try {
+ Stream = require('st' + 'ream');
+ } catch (_) {} finally {
+ if (!Stream) Stream = require('events').EventEmitter;
+ }
+})();
/**/
var Buffer = require('buffer').Buffer;
@@ -65,18 +65,17 @@ function WritableState(options, stream) {
// contains buffers or objects.
this.objectMode = !!options.objectMode;
- if (stream instanceof Duplex)
- this.objectMode = this.objectMode || !!options.writableObjectMode;
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
// the point at which write() starts returning false
// Note: 0 is a valid value, means that we always return false if
// the entire buffer is not flushed immediately on write()
var hwm = options.highWaterMark;
var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
// cast to ints.
- this.highWaterMark = ~~this.highWaterMark;
+ this.highWaterMark = ~ ~this.highWaterMark;
this.needDrain = false;
// at the start of calling end()
@@ -120,7 +119,7 @@ function WritableState(options, stream) {
this.bufferProcessing = false;
// the callback that's passed to _write(chunk,cb)
- this.onwrite = function(er) {
+ this.onwrite = function (er) {
onwrite(stream, er);
};
@@ -143,6 +142,14 @@ function WritableState(options, stream) {
// True if the error was already emitted and should not be thrown again
this.errorEmitted = false;
+
+ // count buffered requests
+ this.bufferedRequestCount = 0;
+
+ // create the two objects needed to store the corked requests
+ // they are not a linked list, as no new elements are inserted in there
+ this.corkedRequestsFree = new CorkedRequest(this);
+ this.corkedRequestsFree.next = new CorkedRequest(this);
}
WritableState.prototype.getBuffer = function writableStateGetBuffer() {
@@ -155,15 +162,15 @@ WritableState.prototype.getBuffer = function writableStateGetBuffer() {
return out;
};
-(function (){try {
-Object.defineProperty(WritableState.prototype, 'buffer', {
- get: internalUtil.deprecate(function() {
- return this.getBuffer();
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' +
- 'instead.')
-});
-}catch(_){}}());
-
+(function () {
+ try {
+ Object.defineProperty(WritableState.prototype, 'buffer', {
+ get: internalUtil.deprecate(function () {
+ return this.getBuffer();
+ }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
+ });
+ } catch (_) {}
+})();
var Duplex;
function Writable(options) {
@@ -171,8 +178,7 @@ function Writable(options) {
// Writable ctor is applied to Duplexes, though they're not
// instanceof Writable, they're instanceof Readable.
- if (!(this instanceof Writable) && !(this instanceof Duplex))
- return new Writable(options);
+ if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
this._writableState = new WritableState(options, this);
@@ -180,22 +186,19 @@ function Writable(options) {
this.writable = true;
if (options) {
- if (typeof options.write === 'function')
- this._write = options.write;
+ if (typeof options.write === 'function') this._write = options.write;
- if (typeof options.writev === 'function')
- this._writev = options.writev;
+ if (typeof options.writev === 'function') this._writev = options.writev;
}
Stream.call(this);
}
// Otherwise people can pipe Writable streams, which is just wrong.
-Writable.prototype.pipe = function() {
+Writable.prototype.pipe = function () {
this.emit('error', new Error('Cannot pipe. Not readable.'));
};
-
function writeAfterEnd(stream, cb) {
var er = new Error('write after end');
// TODO: defer error events consistently everywhere, not just the cb
@@ -211,11 +214,7 @@ function writeAfterEnd(stream, cb) {
function validChunk(stream, state, chunk, cb) {
var valid = true;
- if (!(Buffer.isBuffer(chunk)) &&
- typeof chunk !== 'string' &&
- chunk !== null &&
- chunk !== undefined &&
- !state.objectMode) {
+ if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
var er = new TypeError('Invalid non-string/buffer chunk');
stream.emit('error', er);
processNextTick(cb, er);
@@ -224,7 +223,7 @@ function validChunk(stream, state, chunk, cb) {
return valid;
}
-Writable.prototype.write = function(chunk, encoding, cb) {
+Writable.prototype.write = function (chunk, encoding, cb) {
var state = this._writableState;
var ret = false;
@@ -233,17 +232,11 @@ Writable.prototype.write = function(chunk, encoding, cb) {
encoding = null;
}
- if (Buffer.isBuffer(chunk))
- encoding = 'buffer';
- else if (!encoding)
- encoding = state.defaultEncoding;
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
- if (typeof cb !== 'function')
- cb = nop;
+ if (typeof cb !== 'function') cb = nop;
- if (state.ended)
- writeAfterEnd(this, cb);
- else if (validChunk(this, state, chunk, cb)) {
+ if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
state.pendingcb++;
ret = writeOrBuffer(this, state, chunk, encoding, cb);
}
@@ -251,42 +244,31 @@ Writable.prototype.write = function(chunk, encoding, cb) {
return ret;
};
-Writable.prototype.cork = function() {
+Writable.prototype.cork = function () {
var state = this._writableState;
state.corked++;
};
-Writable.prototype.uncork = function() {
+Writable.prototype.uncork = function () {
var state = this._writableState;
if (state.corked) {
state.corked--;
- if (!state.writing &&
- !state.corked &&
- !state.finished &&
- !state.bufferProcessing &&
- state.bufferedRequest)
- clearBuffer(this, state);
+ if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
}
};
Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
// node::ParseEncoding() requires lower case.
- if (typeof encoding === 'string')
- encoding = encoding.toLowerCase();
- if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64',
-'ucs2', 'ucs-2','utf16le', 'utf-16le', 'raw']
-.indexOf((encoding + '').toLowerCase()) > -1))
- throw new TypeError('Unknown encoding: ' + encoding);
+ if (typeof encoding === 'string') encoding = encoding.toLowerCase();
+ if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
this._writableState.defaultEncoding = encoding;
};
function decodeChunk(state, chunk, encoding) {
- if (!state.objectMode &&
- state.decodeStrings !== false &&
- typeof chunk === 'string') {
+ if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
chunk = new Buffer(chunk, encoding);
}
return chunk;
@@ -298,16 +280,14 @@ function decodeChunk(state, chunk, encoding) {
function writeOrBuffer(stream, state, chunk, encoding, cb) {
chunk = decodeChunk(state, chunk, encoding);
- if (Buffer.isBuffer(chunk))
- encoding = 'buffer';
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';
var len = state.objectMode ? 1 : chunk.length;
state.length += len;
var ret = state.length < state.highWaterMark;
// we must ensure that previous needDrain will not be reset to false.
- if (!ret)
- state.needDrain = true;
+ if (!ret) state.needDrain = true;
if (state.writing || state.corked) {
var last = state.lastBufferedRequest;
@@ -317,6 +297,7 @@ function writeOrBuffer(stream, state, chunk, encoding, cb) {
} else {
state.bufferedRequest = state.lastBufferedRequest;
}
+ state.bufferedRequestCount += 1;
} else {
doWrite(stream, state, false, len, chunk, encoding, cb);
}
@@ -329,19 +310,13 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) {
state.writecb = cb;
state.writing = true;
state.sync = true;
- if (writev)
- stream._writev(chunk, state.onwrite);
- else
- stream._write(chunk, encoding, state.onwrite);
+ if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
state.sync = false;
}
function onwriteError(stream, state, sync, er, cb) {
--state.pendingcb;
- if (sync)
- processNextTick(cb, er);
- else
- cb(er);
+ if (sync) processNextTick(cb, er);else cb(er);
stream._writableState.errorEmitted = true;
stream.emit('error', er);
@@ -361,30 +336,26 @@ function onwrite(stream, er) {
onwriteStateUpdate(state);
- if (er)
- onwriteError(stream, state, sync, er, cb);
- else {
+ if (er) onwriteError(stream, state, sync, er, cb);else {
// Check if we're actually ready to finish, but don't emit yet
var finished = needFinish(state);
- if (!finished &&
- !state.corked &&
- !state.bufferProcessing &&
- state.bufferedRequest) {
+ if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
clearBuffer(stream, state);
}
if (sync) {
- processNextTick(afterWrite, stream, state, finished, cb);
+ /**/
+ asyncWrite(afterWrite, stream, state, finished, cb);
+ /**/
} else {
- afterWrite(stream, state, finished, cb);
- }
+ afterWrite(stream, state, finished, cb);
+ }
}
}
function afterWrite(stream, state, finished, cb) {
- if (!finished)
- onwriteDrain(stream, state);
+ if (!finished) onwriteDrain(stream, state);
state.pendingcb--;
cb();
finishMaybe(stream, state);
@@ -400,7 +371,6 @@ function onwriteDrain(stream, state) {
}
}
-
// if there's something in the buffer waiting, then process it
function clearBuffer(stream, state) {
state.bufferProcessing = true;
@@ -408,26 +378,26 @@ function clearBuffer(stream, state) {
if (stream._writev && entry && entry.next) {
// Fast case, write everything using _writev()
- var buffer = [];
- var cbs = [];
+ var l = state.bufferedRequestCount;
+ var buffer = new Array(l);
+ var holder = state.corkedRequestsFree;
+ holder.entry = entry;
+
+ var count = 0;
while (entry) {
- cbs.push(entry.callback);
- buffer.push(entry);
+ buffer[count] = entry;
entry = entry.next;
+ count += 1;
}
- // count the one we are adding, as well.
- // TODO(isaacs) clean this up
+ doWrite(stream, state, true, state.length, buffer, '', holder.finish);
+
+ // doWrite is always async, defer these to save a bit of time
+ // as the hot path ends with doWrite
state.pendingcb++;
state.lastBufferedRequest = null;
- doWrite(stream, state, true, state.length, buffer, '', function(err) {
- for (var i = 0; i < cbs.length; i++) {
- state.pendingcb--;
- cbs[i](err);
- }
- });
-
- // Clear buffer
+ state.corkedRequestsFree = holder.next;
+ holder.next = null;
} else {
// Slow case, write chunks one-by-one
while (entry) {
@@ -447,20 +417,21 @@ function clearBuffer(stream, state) {
}
}
- if (entry === null)
- state.lastBufferedRequest = null;
+ if (entry === null) state.lastBufferedRequest = null;
}
+
+ state.bufferedRequestCount = 0;
state.bufferedRequest = entry;
state.bufferProcessing = false;
}
-Writable.prototype._write = function(chunk, encoding, cb) {
+Writable.prototype._write = function (chunk, encoding, cb) {
cb(new Error('not implemented'));
};
Writable.prototype._writev = null;
-Writable.prototype.end = function(chunk, encoding, cb) {
+Writable.prototype.end = function (chunk, encoding, cb) {
var state = this._writableState;
if (typeof chunk === 'function') {
@@ -472,8 +443,7 @@ Writable.prototype.end = function(chunk, encoding, cb) {
encoding = null;
}
- if (chunk !== null && chunk !== undefined)
- this.write(chunk, encoding);
+ if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
// .end() fully uncorks
if (state.corked) {
@@ -482,17 +452,11 @@ Writable.prototype.end = function(chunk, encoding, cb) {
}
// ignore unnecessary end() calls.
- if (!state.ending && !state.finished)
- endWritable(this, state, cb);
+ if (!state.ending && !state.finished) endWritable(this, state, cb);
};
-
function needFinish(state) {
- return (state.ending &&
- state.length === 0 &&
- state.bufferedRequest === null &&
- !state.finished &&
- !state.writing);
+ return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
}
function prefinish(stream, state) {
@@ -520,10 +484,33 @@ function endWritable(stream, state, cb) {
state.ending = true;
finishMaybe(stream, state);
if (cb) {
- if (state.finished)
- processNextTick(cb);
- else
- stream.once('finish', cb);
+ if (state.finished) processNextTick(cb);else stream.once('finish', cb);
}
state.ended = true;
+ stream.writable = false;
}
+
+// It seems a linked list but it is not
+// there will be only 2 of these for each stream
+function CorkedRequest(state) {
+ var _this = this;
+
+ this.next = null;
+ this.entry = null;
+
+ this.finish = function (err) {
+ var entry = _this.entry;
+ _this.entry = null;
+ while (entry) {
+ var cb = entry.callback;
+ state.pendingcb--;
+ cb(err);
+ entry = entry.next;
+ }
+ if (state.corkedRequestsFree) {
+ state.corkedRequestsFree.next = _this;
+ } else {
+ state.corkedRequestsFree = _this;
+ }
+ };
+}
\ No newline at end of file
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
index ddd227e64f99f4..19fb85922bc035 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
@@ -46,7 +46,7 @@
},
"dist": {
"shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7",
- "tarball": "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+ "tarball": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
},
"maintainers": [
{
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.npmignore b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.npmignore
new file mode 100644
index 00000000000000..3c3629e647f5dd
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.npmignore
@@ -0,0 +1 @@
+node_modules
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.travis.yml b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.travis.yml
new file mode 100644
index 00000000000000..cc4dba29d959a2
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/.travis.yml
@@ -0,0 +1,4 @@
+language: node_js
+node_js:
+ - "0.8"
+ - "0.10"
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/Makefile b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/Makefile
new file mode 100644
index 00000000000000..0ecc29c402c243
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/Makefile
@@ -0,0 +1,5 @@
+
+test:
+ @node_modules/.bin/tape test.js
+
+.PHONY: test
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/README.md b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/README.md
index 052a62b8d7b7ae..16d2c59c6195f9 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/README.md
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/README.md
@@ -3,6 +3,12 @@
`Array#isArray` for older browsers.
+[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray)
+[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray)
+
+[![browser support](https://ci.testling.com/juliangruber/isarray.png)
+](https://ci.testling.com/juliangruber/isarray)
+
## Usage
```js
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/build/build.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/build/build.js
deleted file mode 100644
index e1856ef0943728..00000000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/build/build.js
+++ /dev/null
@@ -1,208 +0,0 @@
-
-/**
- * Require the given path.
- *
- * @param {String} path
- * @return {Object} exports
- * @api public
- */
-
-function require(path, parent, orig) {
- var resolved = require.resolve(path);
-
- // lookup failed
- if (null == resolved) {
- orig = orig || path;
- parent = parent || 'root';
- var err = new Error('Failed to require "' + orig + '" from "' + parent + '"');
- err.path = orig;
- err.parent = parent;
- err.require = true;
- throw err;
- }
-
- var module = require.modules[resolved];
-
- // perform real require()
- // by invoking the module's
- // registered function
- if (!module.exports) {
- module.exports = {};
- module.client = module.component = true;
- module.call(this, module.exports, require.relative(resolved), module);
- }
-
- return module.exports;
-}
-
-/**
- * Registered modules.
- */
-
-require.modules = {};
-
-/**
- * Registered aliases.
- */
-
-require.aliases = {};
-
-/**
- * Resolve `path`.
- *
- * Lookup:
- *
- * - PATH/index.js
- * - PATH.js
- * - PATH
- *
- * @param {String} path
- * @return {String} path or null
- * @api private
- */
-
-require.resolve = function(path) {
- if (path.charAt(0) === '/') path = path.slice(1);
- var index = path + '/index.js';
-
- var paths = [
- path,
- path + '.js',
- path + '.json',
- path + '/index.js',
- path + '/index.json'
- ];
-
- for (var i = 0; i < paths.length; i++) {
- var path = paths[i];
- if (require.modules.hasOwnProperty(path)) return path;
- }
-
- if (require.aliases.hasOwnProperty(index)) {
- return require.aliases[index];
- }
-};
-
-/**
- * Normalize `path` relative to the current path.
- *
- * @param {String} curr
- * @param {String} path
- * @return {String}
- * @api private
- */
-
-require.normalize = function(curr, path) {
- var segs = [];
-
- if ('.' != path.charAt(0)) return path;
-
- curr = curr.split('/');
- path = path.split('/');
-
- for (var i = 0; i < path.length; ++i) {
- if ('..' == path[i]) {
- curr.pop();
- } else if ('.' != path[i] && '' != path[i]) {
- segs.push(path[i]);
- }
- }
-
- return curr.concat(segs).join('/');
-};
-
-/**
- * Register module at `path` with callback `definition`.
- *
- * @param {String} path
- * @param {Function} definition
- * @api private
- */
-
-require.register = function(path, definition) {
- require.modules[path] = definition;
-};
-
-/**
- * Alias a module definition.
- *
- * @param {String} from
- * @param {String} to
- * @api private
- */
-
-require.alias = function(from, to) {
- if (!require.modules.hasOwnProperty(from)) {
- throw new Error('Failed to alias "' + from + '", it does not exist');
- }
- require.aliases[to] = from;
-};
-
-/**
- * Return a require function relative to the `parent` path.
- *
- * @param {String} parent
- * @return {Function}
- * @api private
- */
-
-require.relative = function(parent) {
- var p = require.normalize(parent, '..');
-
- /**
- * lastIndexOf helper.
- */
-
- function lastIndexOf(arr, obj) {
- var i = arr.length;
- while (i--) {
- if (arr[i] === obj) return i;
- }
- return -1;
- }
-
- /**
- * The relative require() itself.
- */
-
- function localRequire(path) {
- var resolved = localRequire.resolve(path);
- return require(resolved, parent, path);
- }
-
- /**
- * Resolve relative to the parent.
- */
-
- localRequire.resolve = function(path) {
- var c = path.charAt(0);
- if ('/' == c) return path.slice(1);
- if ('.' == c) return require.normalize(p, path);
-
- // resolve deps by returning
- // the dep in the nearest "deps"
- // directory
- var segs = parent.split('/');
- var i = lastIndexOf(segs, 'deps') + 1;
- if (!i) i = 0;
- path = segs.slice(0, i + 1).join('/') + '/deps/' + path;
- return path;
- };
-
- /**
- * Check if module is defined at `path`.
- */
-
- localRequire.exists = function(path) {
- return require.modules.hasOwnProperty(localRequire.resolve(path));
- };
-
- return localRequire;
-};
-require.register("isarray/index.js", function(exports, require, module){
-module.exports = Array.isArray || function (arr) {
- return Object.prototype.toString.call(arr) == '[object Array]';
-};
-
-});
-require.alias("isarray/index.js", "isarray/index.js");
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/index.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/index.js
index 5f5ad45d46dda9..a57f63495943a0 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/index.js
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/index.js
@@ -1,3 +1,5 @@
+var toString = {}.toString;
+
module.exports = Array.isArray || function (arr) {
- return Object.prototype.toString.call(arr) == '[object Array]';
+ return toString.call(arr) == '[object Array]';
};
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/package.json
index 19228ab6fdcaaf..e86d232e6090f3 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/package.json
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/package.json
@@ -1,19 +1,16 @@
{
"name": "isarray",
"description": "Array#isArray for older browsers",
- "version": "0.0.1",
+ "version": "1.0.0",
"repository": {
"type": "git",
"url": "git://github.com/juliangruber/isarray.git"
},
"homepage": "https://github.com/juliangruber/isarray",
"main": "index.js",
- "scripts": {
- "test": "tap test/*.js"
- },
"dependencies": {},
"devDependencies": {
- "tap": "*"
+ "tape": "~2.13.4"
},
"keywords": [
"browser",
@@ -26,17 +23,42 @@
"url": "http://juliangruber.com"
},
"license": "MIT",
- "_id": "isarray@0.0.1",
- "dist": {
- "shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf",
- "tarball": "http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ "testling": {
+ "files": "test.js",
+ "browsers": [
+ "ie/8..latest",
+ "firefox/17..latest",
+ "firefox/nightly",
+ "chrome/22..latest",
+ "chrome/canary",
+ "opera/12..latest",
+ "opera/next",
+ "safari/5.1..latest",
+ "ipad/6.0..latest",
+ "iphone/6.0..latest",
+ "android-browser/4.2..latest"
+ ]
},
- "_from": "isarray@0.0.1",
- "_npmVersion": "1.2.18",
+ "scripts": {
+ "test": "tape test.js"
+ },
+ "gitHead": "2a23a281f369e9ae06394c0fb4d2381355a6ba33",
+ "bugs": {
+ "url": "https://github.com/juliangruber/isarray/issues"
+ },
+ "_id": "isarray@1.0.0",
+ "_shasum": "bb935d48582cba168c06834957a54a3e07124f11",
+ "_from": "isarray@>=1.0.0 <1.1.0",
+ "_npmVersion": "3.3.12",
+ "_nodeVersion": "5.1.0",
"_npmUser": {
"name": "juliangruber",
"email": "julian@juliangruber.com"
},
+ "dist": {
+ "shasum": "bb935d48582cba168c06834957a54a3e07124f11",
+ "tarball": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ },
"maintainers": [
{
"name": "juliangruber",
@@ -44,10 +66,6 @@
}
],
"directories": {},
- "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf",
- "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "bugs": {
- "url": "https://github.com/juliangruber/isarray/issues"
- },
+ "_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/test.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/test.js
new file mode 100644
index 00000000000000..f7f7bcd19fec56
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/test.js
@@ -0,0 +1,19 @@
+var isArray = require('./');
+var test = require('tape');
+
+test('is array', function(t){
+ t.ok(isArray([]));
+ t.notOk(isArray({}));
+ t.notOk(isArray(null));
+ t.notOk(isArray(false));
+
+ var obj = {};
+ obj[0] = true;
+ t.notOk(isArray(obj));
+
+ var arr = [];
+ arr.foo = 'bar';
+ t.ok(isArray(arr));
+
+ t.end();
+});
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/index.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/index.js
index 571c276783c779..a4f40f845faa65 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/index.js
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/index.js
@@ -8,13 +8,36 @@ if (!process.version ||
module.exports = process.nextTick;
}
-function nextTick(fn) {
- var args = new Array(arguments.length - 1);
- var i = 0;
- while (i < args.length) {
- args[i++] = arguments[i];
+function nextTick(fn, arg1, arg2, arg3) {
+ if (typeof fn !== 'function') {
+ throw new TypeError('"callback" argument must be a function');
+ }
+ var len = arguments.length;
+ var args, i;
+ switch (len) {
+ case 0:
+ case 1:
+ return process.nextTick(fn);
+ case 2:
+ return process.nextTick(function afterTickOne() {
+ fn.call(null, arg1);
+ });
+ case 3:
+ return process.nextTick(function afterTickTwo() {
+ fn.call(null, arg1, arg2);
+ });
+ case 4:
+ return process.nextTick(function afterTickThree() {
+ fn.call(null, arg1, arg2, arg3);
+ });
+ default:
+ args = new Array(len - 1);
+ i = 0;
+ while (i < args.length) {
+ args[i++] = arguments[i];
+ }
+ return process.nextTick(function afterTick() {
+ fn.apply(null, args);
+ });
}
- process.nextTick(function afterTick() {
- fn.apply(null, args);
- });
}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/package.json
index 0ccf22578d2caa..211b098d4cbb95 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/package.json
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/package.json
@@ -1,6 +1,6 @@
{
"name": "process-nextick-args",
- "version": "1.0.6",
+ "version": "1.0.7",
"description": "process.nextTick but always with args",
"main": "index.js",
"scripts": {
@@ -19,19 +19,19 @@
"devDependencies": {
"tap": "~0.2.6"
},
- "gitHead": "e85787b05a8c3c1adb714f332d822e9162699c78",
- "_id": "process-nextick-args@1.0.6",
- "_shasum": "0f96b001cea90b12592ce566edb97ec11e69bd05",
+ "gitHead": "5c00899ab01dd32f93ad4b5743da33da91404f39",
+ "_id": "process-nextick-args@1.0.7",
+ "_shasum": "150e20b756590ad3f91093f25a4f2ad8bff30ba3",
"_from": "process-nextick-args@>=1.0.6 <1.1.0",
- "_npmVersion": "2.14.4",
- "_nodeVersion": "4.1.1",
+ "_npmVersion": "3.8.6",
+ "_nodeVersion": "5.11.0",
"_npmUser": {
"name": "cwmma",
"email": "calvin.metcalf@gmail.com"
},
"dist": {
- "shasum": "0f96b001cea90b12592ce566edb97ec11e69bd05",
- "tarball": "http://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz"
+ "shasum": "150e20b756590ad3f91093f25a4f2ad8bff30ba3",
+ "tarball": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
},
"maintainers": [
{
@@ -39,7 +39,11 @@
"email": "calvin.metcalf@gmail.com"
}
],
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/process-nextick-args-1.0.7.tgz_1462394251778_0.36989671061746776"
+ },
"directories": {},
- "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz",
+ "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
"readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
index 0364d54ba46af6..8e8b77db7b42cd 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
@@ -46,7 +46,7 @@
],
"dist": {
"shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94",
- "tarball": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+ "tarball": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/package.json
index ae0c70f6c633f1..a018135492d81f 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/package.json
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/package.json
@@ -46,7 +46,7 @@
],
"dist": {
"shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf",
- "tarball": "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ "tarball": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/package.json
index 7590ac88879acf..db3b47ae4072d0 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/package.json
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/package.json
@@ -1,23 +1,23 @@
{
"name": "readable-stream",
- "version": "2.0.5",
- "description": "Streams3, a user-land copy of the stream library from iojs v2.x",
+ "version": "2.0.6",
+ "description": "Streams3, a user-land copy of the stream library from Node.js",
"main": "readable.js",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.1",
- "isarray": "0.0.1",
+ "isarray": "~1.0.0",
"process-nextick-args": "~1.0.6",
"string_decoder": "~0.10.x",
"util-deprecate": "~1.0.1"
},
"devDependencies": {
"tap": "~0.2.6",
- "tape": "~4.0.0",
- "zuul": "~3.0.0"
+ "tape": "~4.5.1",
+ "zuul": "~3.9.0"
},
"scripts": {
- "test": "tap test/parallel/*.js",
+ "test": "tap test/parallel/*.js test/ours/*.js",
"browser": "npm run write-zuul && zuul -- test/browser.js",
"write-zuul": "printf \"ui: tape\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml"
},
@@ -34,23 +34,23 @@
"util": false
},
"license": "MIT",
- "gitHead": "a4f23d8e451267684a8160679ce16e16149fe72b",
+ "gitHead": "01fb5608a970b42c900b96746cadc13d27dd9d7e",
"bugs": {
"url": "https://github.com/nodejs/readable-stream/issues"
},
"homepage": "https://github.com/nodejs/readable-stream#readme",
- "_id": "readable-stream@2.0.5",
- "_shasum": "a2426f8dcd4551c77a33f96edf2886a23c829669",
+ "_id": "readable-stream@2.0.6",
+ "_shasum": "8f90341e68a53ccc928788dacfcd11b36eb9b78e",
"_from": "readable-stream@>=2.0.0 <2.1.0",
- "_npmVersion": "3.3.12",
- "_nodeVersion": "5.1.1",
+ "_npmVersion": "3.6.0",
+ "_nodeVersion": "5.7.0",
"_npmUser": {
"name": "cwmma",
"email": "calvin.metcalf@gmail.com"
},
"dist": {
- "shasum": "a2426f8dcd4551c77a33f96edf2886a23c829669",
- "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz"
+ "shasum": "8f90341e68a53ccc928788dacfcd11b36eb9b78e",
+ "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz"
},
"maintainers": [
{
@@ -70,7 +70,11 @@
"email": "calvin.metcalf@gmail.com"
}
],
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/readable-stream-2.0.6.tgz_1457893507709_0.369257491780445"
+ },
"directories": {},
- "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz",
+ "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
"readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json
index b8b59f5c303991..d9df64d83952bb 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json
@@ -58,7 +58,7 @@
"_id": "typedarray@0.0.6",
"dist": {
"shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777",
- "tarball": "http://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
+ "tarball": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
},
"_from": "typedarray@>=0.0.5 <0.1.0",
"_npmVersion": "1.4.3",
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json
index 5a3f8b401e4449..fd2590dddc5cbd 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json
@@ -67,7 +67,7 @@
},
"dist": {
"shasum": "f3b80acf9e1f48e3875c0688b41b6c31602eea1c",
- "tarball": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz"
+ "tarball": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz"
},
"maintainers": [
{
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/retry/package.json
index dea2f3b175605c..058aefb3320608 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/retry/package.json
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/package.json
@@ -47,7 +47,7 @@
],
"dist": {
"shasum": "2367628dc0edb247b1eab649dc53ac8628ac2d5f",
- "tarball": "http://registry.npmjs.org/retry/-/retry-0.8.0.tgz"
+ "tarball": "https://registry.npmjs.org/retry/-/retry-0.8.0.tgz"
},
"_resolved": "https://registry.npmjs.org/retry/-/retry-0.8.0.tgz",
"readme": "ERROR: No README data found!"
diff --git a/deps/npm/node_modules/npm-registry-client/package.json b/deps/npm/node_modules/npm-registry-client/package.json
index 362862cfc5f886..1eb87d056b2d5f 100644
--- a/deps/npm/node_modules/npm-registry-client/package.json
+++ b/deps/npm/node_modules/npm-registry-client/package.json
@@ -6,7 +6,7 @@
},
"name": "npm-registry-client",
"description": "Client for the npm registry",
- "version": "7.1.0",
+ "version": "7.1.2",
"repository": {
"url": "git+https://github.com/npm/npm-registry-client.git"
},
@@ -27,7 +27,7 @@
"rimraf": "2",
"semver": "2 >=2.2.1 || 3.x || 4 || 5",
"slide": "^1.1.3",
- "npmlog": "~2.0.0"
+ "npmlog": "~2.0.0 || ~3.1.0"
},
"devDependencies": {
"negotiator": "^0.4.9",
@@ -37,26 +37,26 @@
"tap": "^1.2.0"
},
"optionalDependencies": {
- "npmlog": "~2.0.0"
+ "npmlog": "~2.0.0 || ~3.1.0"
},
"license": "ISC",
- "gitHead": "d077cb652152a8c265369d9d169cba8a52239fb4",
+ "gitHead": "0b595c4769f314a12661d537a328cf4e5658a00f",
"bugs": {
"url": "https://github.com/npm/npm-registry-client/issues"
},
"homepage": "https://github.com/npm/npm-registry-client#readme",
- "_id": "npm-registry-client@7.1.0",
- "_shasum": "e3be14ab279fe5123e15ab5c8a650445415664a5",
- "_from": "npm-registry-client@7.1.0",
- "_npmVersion": "3.7.5",
- "_nodeVersion": "5.4.0",
+ "_id": "npm-registry-client@7.1.2",
+ "_shasum": "ddf243a2bd149d35172fe680aff40dfa20054bc3",
+ "_from": "npm-registry-client@>=7.1.2 <7.2.0",
+ "_npmVersion": "3.9.2",
+ "_nodeVersion": "4.4.0",
"_npmUser": {
"name": "iarna",
"email": "me@re-becca.org"
},
"dist": {
- "shasum": "e3be14ab279fe5123e15ab5c8a650445415664a5",
- "tarball": "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.1.0.tgz"
+ "shasum": "ddf243a2bd149d35172fe680aff40dfa20054bc3",
+ "tarball": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.1.2.tgz"
},
"maintainers": [
{
@@ -77,9 +77,9 @@
}
],
"_npmOperationalInternal": {
- "host": "packages-5-east.internal.npmjs.com",
- "tmp": "tmp/npm-registry-client-7.1.0.tgz_1456435497334_0.35472381697036326"
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/npm-registry-client-7.1.2.tgz_1466040796551_0.645394338760525"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.1.0.tgz"
+ "_resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.1.2.tgz"
}
diff --git a/deps/npm/node_modules/npm-user-validate/.travis.yml b/deps/npm/node_modules/npm-user-validate/.travis.yml
index a12e3f0fdebc13..6ff074b74880dd 100644
--- a/deps/npm/node_modules/npm-user-validate/.travis.yml
+++ b/deps/npm/node_modules/npm-user-validate/.travis.yml
@@ -1,4 +1,7 @@
language: node_js
+before_install:
+- npm install -g npm@latest
+sudo: false
node_js:
- "0.8"
- - "0.10"
\ No newline at end of file
+ - "0.10"
diff --git a/deps/npm/node_modules/npm-user-validate/npm-user-validate.js b/deps/npm/node_modules/npm-user-validate/npm-user-validate.js
index f18e13ccf7271f..c9da9cd1c90f0e 100644
--- a/deps/npm/node_modules/npm-user-validate/npm-user-validate.js
+++ b/deps/npm/node_modules/npm-user-validate/npm-user-validate.js
@@ -4,9 +4,10 @@ exports.username = username
var requirements = exports.requirements = {
username: {
- lowerCase: 'Username must be lowercase',
- urlSafe: 'Username may not contain non-url-safe chars',
- dot: 'Username may not start with "."'
+ length: 'Name length must be less than or equal to 576 characters long',
+ lowerCase: 'Name must be lowercase',
+ urlSafe: 'Name may not contain non-url-safe chars',
+ dot: 'Name may not start with "."'
},
password: {},
email: {
@@ -27,6 +28,10 @@ function username (un) {
return new Error(requirements.username.dot)
}
+ if (un.length > 576) {
+ return new Error(requirements.username.length)
+ }
+
return null
}
diff --git a/deps/npm/node_modules/npm-user-validate/package.json b/deps/npm/node_modules/npm-user-validate/package.json
index 8a27d7cfe1ad49..8109a38fa9549e 100644
--- a/deps/npm/node_modules/npm-user-validate/package.json
+++ b/deps/npm/node_modules/npm-user-validate/package.json
@@ -1,10 +1,10 @@
{
"name": "npm-user-validate",
- "version": "0.1.2",
+ "version": "0.1.4",
"description": "User validations for npm",
"main": "npm-user-validate.js",
"devDependencies": {
- "tap": "0.4.3"
+ "tap": "^1.2.0"
},
"scripts": {
"test": "tap test/*.js"
@@ -23,34 +23,42 @@
"email": "rok@kowalski.gd"
},
"license": "BSD-2-Clause",
- "gitHead": "e5b280babff5b73fe74b496461bcf424a51881e1",
+ "gitHead": "ab804940b6846f8cc63f87692cea85b1906c967a",
"bugs": {
"url": "https://github.com/npm/npm-user-validate/issues"
},
"homepage": "https://github.com/npm/npm-user-validate#readme",
- "_id": "npm-user-validate@0.1.2",
- "_shasum": "d585da0b47c9f41a9e6ca684b6fd84ba41ebe87d",
- "_from": "npm-user-validate@>=0.1.1 <0.2.0",
- "_npmVersion": "2.10.0",
- "_nodeVersion": "2.0.1",
+ "_id": "npm-user-validate@0.1.4",
+ "_shasum": "18fcbe53cf921eb8e6339314665b187955b1a837",
+ "_from": "npm-user-validate@>=0.1.4 <0.2.0",
+ "_npmVersion": "3.9.6",
+ "_nodeVersion": "5.11.0",
"_npmUser": {
- "name": "isaacs",
- "email": "isaacs@npmjs.com"
+ "name": "aredridel",
+ "email": "aria@npmjs.com"
},
"dist": {
- "shasum": "d585da0b47c9f41a9e6ca684b6fd84ba41ebe87d",
- "tarball": "http://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.2.tgz"
+ "shasum": "18fcbe53cf921eb8e6339314665b187955b1a837",
+ "tarball": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.4.tgz"
},
"maintainers": [
{
- "name": "robertkowalski",
- "email": "rok@kowalski.gd"
+ "name": "aredridel",
+ "email": "aria@npmjs.com"
},
{
"name": "isaacs",
"email": "i@izs.me"
+ },
+ {
+ "name": "robertkowalski",
+ "email": "rok@kowalski.gd"
}
],
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/npm-user-validate-0.1.4.tgz_1466105686124_0.06683815410360694"
+ },
"directories": {},
- "_resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.2.tgz"
+ "_resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.4.tgz"
}
diff --git a/deps/npm/node_modules/npm-user-validate/test/username.test.js b/deps/npm/node_modules/npm-user-validate/test/username.test.js
index d30ec8afe71491..83528eec82a76d 100644
--- a/deps/npm/node_modules/npm-user-validate/test/username.test.js
+++ b/deps/npm/node_modules/npm-user-validate/test/username.test.js
@@ -2,25 +2,41 @@ var test = require('tap').test
var v = require('../npm-user-validate.js').username
test('username must be lowercase', function (t) {
- err = v('ERRR')
+ var err = v('ERRR')
t.type(err, 'object')
+ t.match(err.message, /lowercase/)
t.end()
})
test('username may not contain non-url-safe chars', function (t) {
- err = v('f ')
+ var err = v('f ')
t.type(err, 'object')
+ t.match(err.message, /url-safe/)
t.end()
})
test('username may not start with "."', function (t) {
- err = v('.username')
+ var err = v('.username')
t.type(err, 'object')
+ t.match(err.message, /start with.*\./)
t.end()
})
+test('username may not be longer than 576 characters', function (t) {
+ var err = v('bacon-ipsum-dolor-amet-tongue-short-loin-landjaeger-tenderloin-ball-tip-pork-loin-porchetta-pig-pork-chop-beef-ribs-pork-belly--shankle-t-bone-turducken-tongue-landjaeger-pork-loin-beef-chicken-short-loin-venison-capicola--brisket-leberkas-pork-beef-ribs-kevin-short-ribs-tail-bresaola-ham--rump-fatback-short-ribs-frankfurter-boudin--turkey-cupim-tri-tip-pork-chop-landjaeger-frankfurter-ham-hock---kielbasa-sausage-sirloin-short-loin-bacon-tenderloin-biltong-spare-ribs-cow-beef-ribs-tongue-cupim-filet-mignon-drumstick--pork-chop-tenderloin-brisket-pork-belly-leberkas-and-a-pickle')
+ t.type(err, 'object')
+ t.match(err.message, /less than or equal to 576/)
+ t.end()
+});
+
+test('username may be as long as 576 characters', function (t) {
+ var err = v('bacon-ipsum-dolor-amet-tongue-short-loin-landjaeger-tenderloin-ball-tip-pork-loin-porchetta-pig-pork-chop-beef-ribs-pork-belly--shankle-t-bone-turducken-tongue-landjaeger-pork-loin-beef-chicken-short-loin-venison-capicola--brisket-leberkas-pork-beef-ribs-kevin-short-ribs-tail-bresaola-ham--rump-fatback-short-ribs-frankfurter-boudin--turkey-cupim-tri-tip-pork-chop-landjaeger-frankfurter-ham-hock---kielbasa-sausage-sirloin-short-loin-bacon-tenderloin-biltong-spare-ribs-cow-beef-ribs-tongue-cupim-filet-mignon-drumstick--pork-chop-tenderloin-brisket-pork-belly-leberkas-beef')
+ t.type(err, 'null')
+ t.end()
+});
+
test('username is ok', function (t) {
- err = v('ente')
+ var err = v('ente')
t.type(err, 'null')
t.end()
})
diff --git a/deps/npm/node_modules/npmlog/.nyc_output/64996.json b/deps/npm/node_modules/npmlog/.nyc_output/64996.json
deleted file mode 100644
index 9e26dfeeb6e641..00000000000000
--- a/deps/npm/node_modules/npmlog/.nyc_output/64996.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
\ No newline at end of file
diff --git a/deps/npm/node_modules/npmlog/.nyc_output/64998.json b/deps/npm/node_modules/npmlog/.nyc_output/64998.json
deleted file mode 100644
index ba21481f41cce3..00000000000000
--- a/deps/npm/node_modules/npmlog/.nyc_output/64998.json
+++ /dev/null
@@ -1 +0,0 @@
-{"./log.js":{"path":"./log.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":0,"12":0,"13":1,"14":0,"15":0,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":0,"23":0,"24":1,"25":0,"26":0,"27":1,"28":1,"29":0,"30":0,"31":1,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":1,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":1,"48":1,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":1,"69":3,"70":0,"71":1,"72":13,"73":13,"74":0,"75":1,"76":13,"77":13,"78":0,"79":0,"80":0,"81":1,"82":0,"83":1,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":1,"94":1,"95":1,"96":1,"97":1,"98":24,"99":24,"100":0,"101":24,"102":24,"103":24,"104":45,"105":45,"106":0,"107":24,"108":0,"109":24,"110":24,"111":24,"112":24,"113":24,"114":23,"115":24,"116":24,"117":24,"118":24,"119":0,"120":0,"121":24,"122":1,"123":24,"124":0,"125":0,"126":24,"127":0,"128":24,"129":24,"130":0,"131":24,"132":8,"133":16,"134":3,"135":13,"136":13,"137":13,"138":13,"139":16,"140":16,"141":16,"142":16,"143":16,"144":16,"145":15,"146":16,"147":16,"148":13,"149":1,"150":95,"151":0,"152":95,"153":1,"154":1,"155":1,"156":0,"157":1,"158":0,"159":1,"160":95,"161":95,"162":45,"163":95,"164":27,"165":95,"166":0,"167":95,"168":0,"169":95,"170":1,"171":95,"172":2,"173":95,"174":1,"175":8,"176":4,"177":8,"178":8,"179":8,"180":8,"181":24,"182":24,"183":24,"184":69,"185":24,"186":8,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[13,0],"10":[13,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,24],"15":[0,45],"16":[45,21,21,0],"17":[0,24],"18":[24,1],"19":[23,1],"20":[0,24],"21":[0,24],"22":[0,24],"23":[0,24],"24":[8,16],"25":[3,13],"26":[16,15],"27":[13,0],"28":[16,0],"29":[16,1],"30":[15,1],"31":[0,95],"32":[1,94],"33":[0,1],"34":[0,1],"35":[95,47],"36":[45,50],"37":[27,68],"38":[0,95],"39":[0,95],"40":[1,94],"41":[2,93],"42":[4,4],"43":[8,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":3,"15":0,"16":13,"17":13,"18":0,"19":0,"20":0,"21":24,"22":24,"23":16,"24":95,"25":8,"26":24,"27":1},"fnMap":{"1":{"name":"(anonymous_1)","line":14,"loc":{"start":{"line":14,"column":18},"end":{"line":14,"column":30}}},"2":{"name":"(anonymous_2)","line":18,"loc":{"start":{"line":18,"column":19},"end":{"line":18,"column":31}}},"3":{"name":"(anonymous_3)","line":34,"loc":{"start":{"line":34,"column":20},"end":{"line":34,"column":32}}},"4":{"name":"(anonymous_4)","line":39,"loc":{"start":{"line":39,"column":21},"end":{"line":39,"column":33}}},"5":{"name":"(anonymous_5)","line":45,"loc":{"start":{"line":45,"column":23},"end":{"line":45,"column":43}}},"6":{"name":"(anonymous_6)","line":50,"loc":{"start":{"line":50,"column":21},"end":{"line":50,"column":33}}},"7":{"name":"(anonymous_7)","line":59,"loc":{"start":{"line":59,"column":22},"end":{"line":59,"column":34}}},"8":{"name":"(anonymous_8)","line":69,"loc":{"start":{"line":69,"column":15},"end":{"line":69,"column":34}}},"9":{"name":"(anonymous_9)","line":72,"loc":{"start":{"line":72,"column":27},"end":{"line":72,"column":40}}},"10":{"name":"(anonymous_10)","line":74,"loc":{"start":{"line":74,"column":35},"end":{"line":74,"column":48}}},"11":{"name":"(anonymous_11)","line":78,"loc":{"start":{"line":78,"column":17},"end":{"line":78,"column":29}}},"12":{"name":"(anonymous_12)","line":85,"loc":{"start":{"line":85,"column":32},"end":{"line":85,"column":45}}},"13":{"name":"(anonymous_13)","line":87,"loc":{"start":{"line":87,"column":19},"end":{"line":87,"column":31}}},"14":{"name":"(anonymous_14)","line":94,"loc":{"start":{"line":94,"column":28},"end":{"line":94,"column":41}}},"15":{"name":"(anonymous_15)","line":95,"loc":{"start":{"line":95,"column":11},"end":{"line":95,"column":23}}},"16":{"name":"(anonymous_16)","line":98,"loc":{"start":{"line":98,"column":20},"end":{"line":98,"column":32}}},"17":{"name":"(anonymous_17)","line":103,"loc":{"start":{"line":103,"column":19},"end":{"line":103,"column":46}}},"18":{"name":"(anonymous_18)","line":110,"loc":{"start":{"line":110,"column":12},"end":{"line":110,"column":24}}},"19":{"name":"(anonymous_19)","line":114,"loc":{"start":{"line":114,"column":13},"end":{"line":114,"column":25}}},"20":{"name":"(anonymous_20)","line":120,"loc":{"start":{"line":120,"column":12},"end":{"line":120,"column":25}}},"21":{"name":"(anonymous_21)","line":131,"loc":{"start":{"line":131,"column":10},"end":{"line":131,"column":42}}},"22":{"name":"(anonymous_22)","line":173,"loc":{"start":{"line":173,"column":14},"end":{"line":173,"column":27}}},"23":{"name":"(anonymous_23)","line":187,"loc":{"start":{"line":187,"column":35},"end":{"line":187,"column":51}}},"24":{"name":"(anonymous_24)","line":201,"loc":{"start":{"line":201,"column":12},"end":{"line":201,"column":34}}},"25":{"name":"(anonymous_25)","line":221,"loc":{"start":{"line":221,"column":15},"end":{"line":221,"column":46}}},"26":{"name":"(anonymous_26)","line":225,"loc":{"start":{"line":225,"column":30},"end":{"line":225,"column":42}}},"27":{"name":"(anonymous_27)","line":251,"loc":{"start":{"line":251,"column":16},"end":{"line":251,"column":26}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":42}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":39}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":43}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":26}},"6":{"start":{"line":8,"column":0},"end":{"line":8,"column":26}},"7":{"start":{"line":9,"column":0},"end":{"line":9,"column":33}},"8":{"start":{"line":10,"column":0},"end":{"line":10,"column":27}},"9":{"start":{"line":13,"column":0},"end":{"line":13,"column":28}},"10":{"start":{"line":14,"column":0},"end":{"line":17,"column":1}},"11":{"start":{"line":15,"column":2},"end":{"line":15,"column":21}},"12":{"start":{"line":16,"column":2},"end":{"line":16,"column":28}},"13":{"start":{"line":18,"column":0},"end":{"line":21,"column":1}},"14":{"start":{"line":19,"column":2},"end":{"line":19,"column":22}},"15":{"start":{"line":20,"column":2},"end":{"line":20,"column":29}},"16":{"start":{"line":24,"column":0},"end":{"line":24,"column":18}},"17":{"start":{"line":26,"column":0},"end":{"line":26,"column":33}},"18":{"start":{"line":27,"column":0},"end":{"line":27,"column":41}},"19":{"start":{"line":30,"column":0},"end":{"line":30,"column":27}},"20":{"start":{"line":32,"column":0},"end":{"line":32,"column":26}},"21":{"start":{"line":34,"column":0},"end":{"line":37,"column":1}},"22":{"start":{"line":35,"column":2},"end":{"line":35,"column":28}},"23":{"start":{"line":36,"column":2},"end":{"line":36,"column":32}},"24":{"start":{"line":39,"column":0},"end":{"line":42,"column":1}},"25":{"start":{"line":40,"column":2},"end":{"line":40,"column":26}},"26":{"start":{"line":41,"column":2},"end":{"line":41,"column":32}},"27":{"start":{"line":44,"column":0},"end":{"line":44,"column":29}},"28":{"start":{"line":45,"column":0},"end":{"line":48,"column":1}},"29":{"start":{"line":46,"column":2},"end":{"line":46,"column":26}},"30":{"start":{"line":47,"column":2},"end":{"line":47,"column":38}},"31":{"start":{"line":50,"column":0},"end":{"line":57,"column":1}},"32":{"start":{"line":51,"column":2},"end":{"line":51,"column":34}},"33":{"start":{"line":51,"column":28},"end":{"line":51,"column":34}},"34":{"start":{"line":52,"column":2},"end":{"line":52,"column":29}},"35":{"start":{"line":53,"column":2},"end":{"line":53,"column":25}},"36":{"start":{"line":53,"column":19},"end":{"line":53,"column":25}},"37":{"start":{"line":54,"column":2},"end":{"line":54,"column":46}},"38":{"start":{"line":55,"column":2},"end":{"line":55,"column":21}},"39":{"start":{"line":56,"column":2},"end":{"line":56,"column":21}},"40":{"start":{"line":59,"column":0},"end":{"line":65,"column":1}},"41":{"start":{"line":60,"column":2},"end":{"line":60,"column":35}},"42":{"start":{"line":60,"column":29},"end":{"line":60,"column":35}},"43":{"start":{"line":61,"column":2},"end":{"line":61,"column":22}},"44":{"start":{"line":62,"column":2},"end":{"line":62,"column":30}},"45":{"start":{"line":63,"column":2},"end":{"line":63,"column":58}},"46":{"start":{"line":64,"column":2},"end":{"line":64,"column":22}},"47":{"start":{"line":67,"column":0},"end":{"line":67,"column":62}},"48":{"start":{"line":69,"column":0},"end":{"line":91,"column":1}},"49":{"start":{"line":72,"column":2},"end":{"line":81,"column":4}},"50":{"start":{"line":73,"column":4},"end":{"line":73,"column":28}},"51":{"start":{"line":73,"column":22},"end":{"line":73,"column":28}},"52":{"start":{"line":74,"column":4},"end":{"line":74,"column":82}},"53":{"start":{"line":74,"column":50},"end":{"line":74,"column":65}},"54":{"start":{"line":74,"column":76},"end":{"line":74,"column":82}},"55":{"start":{"line":75,"column":4},"end":{"line":75,"column":26}},"56":{"start":{"line":75,"column":20},"end":{"line":75,"column":26}},"57":{"start":{"line":76,"column":4},"end":{"line":76,"column":44}},"58":{"start":{"line":76,"column":38},"end":{"line":76,"column":44}},"59":{"start":{"line":77,"column":4},"end":{"line":77,"column":21}},"60":{"start":{"line":78,"column":4},"end":{"line":80,"column":5}},"61":{"start":{"line":79,"column":6},"end":{"line":79,"column":39}},"62":{"start":{"line":84,"column":2},"end":{"line":89,"column":3}},"63":{"start":{"line":85,"column":4},"end":{"line":88,"column":6}},"64":{"start":{"line":86,"column":6},"end":{"line":86,"column":27}},"65":{"start":{"line":87,"column":6},"end":{"line":87,"column":82}},"66":{"start":{"line":87,"column":33},"end":{"line":87,"column":81}},"67":{"start":{"line":90,"column":2},"end":{"line":90,"column":16}},"68":{"start":{"line":94,"column":0},"end":{"line":96,"column":2}},"69":{"start":{"line":95,"column":2},"end":{"line":95,"column":90}},"70":{"start":{"line":95,"column":25},"end":{"line":95,"column":89}},"71":{"start":{"line":98,"column":0},"end":{"line":101,"column":1}},"72":{"start":{"line":99,"column":2},"end":{"line":99,"column":35}},"73":{"start":{"line":99,"column":29},"end":{"line":99,"column":35}},"74":{"start":{"line":100,"column":2},"end":{"line":100,"column":19}},"75":{"start":{"line":103,"column":0},"end":{"line":107,"column":11}},"76":{"start":{"line":104,"column":2},"end":{"line":104,"column":35}},"77":{"start":{"line":104,"column":29},"end":{"line":104,"column":35}},"78":{"start":{"line":105,"column":2},"end":{"line":105,"column":61}},"79":{"start":{"line":105,"column":25},"end":{"line":105,"column":61}},"80":{"start":{"line":106,"column":2},"end":{"line":106,"column":34}},"81":{"start":{"line":110,"column":0},"end":{"line":112,"column":1}},"82":{"start":{"line":111,"column":2},"end":{"line":111,"column":21}},"83":{"start":{"line":114,"column":0},"end":{"line":124,"column":1}},"84":{"start":{"line":115,"column":2},"end":{"line":115,"column":27}},"85":{"start":{"line":115,"column":21},"end":{"line":115,"column":27}},"86":{"start":{"line":116,"column":2},"end":{"line":116,"column":22}},"87":{"start":{"line":118,"column":2},"end":{"line":118,"column":22}},"88":{"start":{"line":119,"column":2},"end":{"line":119,"column":19}},"89":{"start":{"line":120,"column":2},"end":{"line":122,"column":10}},"90":{"start":{"line":121,"column":4},"end":{"line":121,"column":19}},"91":{"start":{"line":123,"column":2},"end":{"line":123,"column":49}},"92":{"start":{"line":123,"column":28},"end":{"line":123,"column":49}},"93":{"start":{"line":126,"column":0},"end":{"line":126,"column":16}},"94":{"start":{"line":128,"column":0},"end":{"line":128,"column":10}},"95":{"start":{"line":129,"column":0},"end":{"line":129,"column":15}},"96":{"start":{"line":130,"column":0},"end":{"line":130,"column":25}},"97":{"start":{"line":131,"column":0},"end":{"line":171,"column":11}},"98":{"start":{"line":132,"column":2},"end":{"line":132,"column":26}},"99":{"start":{"line":133,"column":2},"end":{"line":136,"column":3}},"100":{"start":{"line":134,"column":4},"end":{"line":135,"column":39}},"101":{"start":{"line":138,"column":2},"end":{"line":138,"column":41}},"102":{"start":{"line":139,"column":2},"end":{"line":139,"column":18}},"103":{"start":{"line":140,"column":2},"end":{"line":148,"column":3}},"104":{"start":{"line":141,"column":4},"end":{"line":141,"column":35}},"105":{"start":{"line":144,"column":4},"end":{"line":147,"column":5}},"106":{"start":{"line":146,"column":6},"end":{"line":146,"column":40}},"107":{"start":{"line":149,"column":2},"end":{"line":149,"column":36}},"108":{"start":{"line":149,"column":13},"end":{"line":149,"column":36}},"109":{"start":{"line":150,"column":2},"end":{"line":150,"column":38}},"110":{"start":{"line":152,"column":2},"end":{"line":156,"column":27}},"111":{"start":{"line":158,"column":2},"end":{"line":158,"column":21}},"112":{"start":{"line":159,"column":2},"end":{"line":159,"column":28}},"113":{"start":{"line":160,"column":2},"end":{"line":160,"column":38}},"114":{"start":{"line":160,"column":16},"end":{"line":160,"column":38}},"115":{"start":{"line":162,"column":2},"end":{"line":162,"column":21}},"116":{"start":{"line":163,"column":2},"end":{"line":163,"column":30}},"117":{"start":{"line":164,"column":2},"end":{"line":164,"column":34}},"118":{"start":{"line":165,"column":2},"end":{"line":168,"column":3}},"119":{"start":{"line":166,"column":4},"end":{"line":166,"column":39}},"120":{"start":{"line":167,"column":4},"end":{"line":167,"column":49}},"121":{"start":{"line":170,"column":2},"end":{"line":170,"column":17}},"122":{"start":{"line":173,"column":0},"end":{"line":199,"column":1}},"123":{"start":{"line":174,"column":2},"end":{"line":177,"column":3}},"124":{"start":{"line":175,"column":4},"end":{"line":175,"column":24}},"125":{"start":{"line":176,"column":4},"end":{"line":176,"column":10}},"126":{"start":{"line":178,"column":2},"end":{"line":178,"column":54}},"127":{"start":{"line":178,"column":28},"end":{"line":178,"column":54}},"128":{"start":{"line":179,"column":2},"end":{"line":179,"column":30}},"129":{"start":{"line":180,"column":2},"end":{"line":180,"column":29}},"130":{"start":{"line":180,"column":23},"end":{"line":180,"column":29}},"131":{"start":{"line":181,"column":2},"end":{"line":181,"column":41}},"132":{"start":{"line":181,"column":35},"end":{"line":181,"column":41}},"133":{"start":{"line":182,"column":2},"end":{"line":182,"column":35}},"134":{"start":{"line":182,"column":29},"end":{"line":182,"column":35}},"135":{"start":{"line":184,"column":2},"end":{"line":184,"column":32}},"136":{"start":{"line":185,"column":2},"end":{"line":185,"column":41}},"137":{"start":{"line":186,"column":2},"end":{"line":186,"column":22}},"138":{"start":{"line":187,"column":2},"end":{"line":197,"column":10}},"139":{"start":{"line":188,"column":4},"end":{"line":191,"column":5}},"140":{"start":{"line":189,"column":6},"end":{"line":189,"column":49}},"141":{"start":{"line":190,"column":6},"end":{"line":190,"column":21}},"142":{"start":{"line":192,"column":4},"end":{"line":192,"column":40}},"143":{"start":{"line":193,"column":4},"end":{"line":193,"column":26}},"144":{"start":{"line":194,"column":4},"end":{"line":194,"column":26}},"145":{"start":{"line":194,"column":11},"end":{"line":194,"column":26}},"146":{"start":{"line":195,"column":4},"end":{"line":195,"column":35}},"147":{"start":{"line":196,"column":4},"end":{"line":196,"column":33}},"148":{"start":{"line":198,"column":2},"end":{"line":198,"column":21}},"149":{"start":{"line":201,"column":0},"end":{"line":219,"column":1}},"150":{"start":{"line":202,"column":2},"end":{"line":202,"column":26}},"151":{"start":{"line":202,"column":20},"end":{"line":202,"column":26}},"152":{"start":{"line":203,"column":2},"end":{"line":209,"column":3}},"153":{"start":{"line":204,"column":4},"end":{"line":204,"column":62}},"154":{"start":{"line":205,"column":4},"end":{"line":205,"column":20}},"155":{"start":{"line":206,"column":4},"end":{"line":206,"column":54}},"156":{"start":{"line":206,"column":28},"end":{"line":206,"column":54}},"157":{"start":{"line":207,"column":4},"end":{"line":207,"column":63}},"158":{"start":{"line":207,"column":31},"end":{"line":207,"column":63}},"159":{"start":{"line":208,"column":4},"end":{"line":208,"column":48}},"160":{"start":{"line":211,"column":2},"end":{"line":211,"column":21}},"161":{"start":{"line":212,"column":2},"end":{"line":212,"column":42}},"162":{"start":{"line":212,"column":16},"end":{"line":212,"column":42}},"163":{"start":{"line":213,"column":2},"end":{"line":213,"column":42}},"164":{"start":{"line":213,"column":16},"end":{"line":213,"column":42}},"165":{"start":{"line":214,"column":2},"end":{"line":214,"column":36}},"166":{"start":{"line":214,"column":18},"end":{"line":214,"column":36}},"167":{"start":{"line":215,"column":2},"end":{"line":215,"column":46}},"168":{"start":{"line":215,"column":23},"end":{"line":215,"column":46}},"169":{"start":{"line":216,"column":2},"end":{"line":216,"column":42}},"170":{"start":{"line":216,"column":21},"end":{"line":216,"column":42}},"171":{"start":{"line":217,"column":2},"end":{"line":217,"column":36}},"172":{"start":{"line":217,"column":18},"end":{"line":217,"column":36}},"173":{"start":{"line":218,"column":2},"end":{"line":218,"column":32}},"174":{"start":{"line":221,"column":0},"end":{"line":234,"column":1}},"175":{"start":{"line":222,"column":2},"end":{"line":222,"column":23}},"176":{"start":{"line":222,"column":13},"end":{"line":222,"column":23}},"177":{"start":{"line":223,"column":2},"end":{"line":223,"column":22}},"178":{"start":{"line":224,"column":2},"end":{"line":224,"column":25}},"179":{"start":{"line":225,"column":2},"end":{"line":232,"column":14}},"180":{"start":{"line":225,"column":18},"end":{"line":232,"column":14}},"181":{"start":{"line":226,"column":4},"end":{"line":226,"column":43}},"182":{"start":{"line":227,"column":4},"end":{"line":227,"column":14}},"183":{"start":{"line":228,"column":4},"end":{"line":230,"column":5}},"184":{"start":{"line":229,"column":6},"end":{"line":229,"column":29}},"185":{"start":{"line":231,"column":4},"end":{"line":231,"column":34}},"186":{"start":{"line":233,"column":2},"end":{"line":233,"column":23}},"187":{"start":{"line":236,"column":0},"end":{"line":236,"column":35}},"188":{"start":{"line":237,"column":0},"end":{"line":237,"column":47}},"189":{"start":{"line":239,"column":0},"end":{"line":239,"column":14}},"190":{"start":{"line":240,"column":0},"end":{"line":240,"column":15}},"191":{"start":{"line":241,"column":0},"end":{"line":241,"column":13}},"192":{"start":{"line":242,"column":0},"end":{"line":242,"column":59}},"193":{"start":{"line":243,"column":0},"end":{"line":243,"column":66}},"194":{"start":{"line":244,"column":0},"end":{"line":244,"column":43}},"195":{"start":{"line":245,"column":0},"end":{"line":245,"column":56}},"196":{"start":{"line":246,"column":0},"end":{"line":246,"column":65}},"197":{"start":{"line":247,"column":0},"end":{"line":247,"column":63}},"198":{"start":{"line":248,"column":0},"end":{"line":248,"column":32}},"199":{"start":{"line":251,"column":0},"end":{"line":251,"column":29}}},"branchMap":{"1":{"line":51,"type":"if","locations":[{"start":{"line":51,"column":2},"end":{"line":51,"column":2}},{"start":{"line":51,"column":2},"end":{"line":51,"column":2}}]},"2":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":2},"end":{"line":53,"column":2}},{"start":{"line":53,"column":2},"end":{"line":53,"column":2}}]},"3":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":2},"end":{"line":60,"column":2}},{"start":{"line":60,"column":2},"end":{"line":60,"column":2}}]},"4":{"line":73,"type":"if","locations":[{"start":{"line":73,"column":4},"end":{"line":73,"column":4}},{"start":{"line":73,"column":4},"end":{"line":73,"column":4}}]},"5":{"line":74,"type":"if","locations":[{"start":{"line":74,"column":4},"end":{"line":74,"column":4}},{"start":{"line":74,"column":4},"end":{"line":74,"column":4}}]},"6":{"line":75,"type":"if","locations":[{"start":{"line":75,"column":4},"end":{"line":75,"column":4}},{"start":{"line":75,"column":4},"end":{"line":75,"column":4}}]},"7":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":4},"end":{"line":76,"column":4}},{"start":{"line":76,"column":4},"end":{"line":76,"column":4}}]},"8":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":2},"end":{"line":84,"column":2}},{"start":{"line":84,"column":2},"end":{"line":84,"column":2}}]},"9":{"line":99,"type":"if","locations":[{"start":{"line":99,"column":2},"end":{"line":99,"column":2}},{"start":{"line":99,"column":2},"end":{"line":99,"column":2}}]},"10":{"line":104,"type":"if","locations":[{"start":{"line":104,"column":2},"end":{"line":104,"column":2}},{"start":{"line":104,"column":2},"end":{"line":104,"column":2}}]},"11":{"line":105,"type":"if","locations":[{"start":{"line":105,"column":2},"end":{"line":105,"column":2}},{"start":{"line":105,"column":2},"end":{"line":105,"column":2}}]},"12":{"line":115,"type":"if","locations":[{"start":{"line":115,"column":2},"end":{"line":115,"column":2}},{"start":{"line":115,"column":2},"end":{"line":115,"column":2}}]},"13":{"line":123,"type":"if","locations":[{"start":{"line":123,"column":2},"end":{"line":123,"column":2}},{"start":{"line":123,"column":2},"end":{"line":123,"column":2}}]},"14":{"line":133,"type":"if","locations":[{"start":{"line":133,"column":2},"end":{"line":133,"column":2}},{"start":{"line":133,"column":2},"end":{"line":133,"column":2}}]},"15":{"line":144,"type":"if","locations":[{"start":{"line":144,"column":4},"end":{"line":144,"column":4}},{"start":{"line":144,"column":4},"end":{"line":144,"column":4}}]},"16":{"line":144,"type":"binary-expr","locations":[{"start":{"line":144,"column":8},"end":{"line":144,"column":31}},{"start":{"line":144,"column":35},"end":{"line":144,"column":38}},{"start":{"line":145,"column":9},"end":{"line":145,"column":29}},{"start":{"line":145,"column":34},"end":{"line":145,"column":43}}]},"17":{"line":149,"type":"if","locations":[{"start":{"line":149,"column":2},"end":{"line":149,"column":2}},{"start":{"line":149,"column":2},"end":{"line":149,"column":2}}]},"18":{"line":154,"type":"binary-expr","locations":[{"start":{"line":154,"column":27},"end":{"line":154,"column":33}},{"start":{"line":154,"column":37},"end":{"line":154,"column":39}}]},"19":{"line":160,"type":"if","locations":[{"start":{"line":160,"column":2},"end":{"line":160,"column":2}},{"start":{"line":160,"column":2},"end":{"line":160,"column":2}}]},"20":{"line":165,"type":"if","locations":[{"start":{"line":165,"column":2},"end":{"line":165,"column":2}},{"start":{"line":165,"column":2},"end":{"line":165,"column":2}}]},"21":{"line":174,"type":"if","locations":[{"start":{"line":174,"column":2},"end":{"line":174,"column":2}},{"start":{"line":174,"column":2},"end":{"line":174,"column":2}}]},"22":{"line":178,"type":"if","locations":[{"start":{"line":178,"column":2},"end":{"line":178,"column":2}},{"start":{"line":178,"column":2},"end":{"line":178,"column":2}}]},"23":{"line":180,"type":"if","locations":[{"start":{"line":180,"column":2},"end":{"line":180,"column":2}},{"start":{"line":180,"column":2},"end":{"line":180,"column":2}}]},"24":{"line":181,"type":"if","locations":[{"start":{"line":181,"column":2},"end":{"line":181,"column":2}},{"start":{"line":181,"column":2},"end":{"line":181,"column":2}}]},"25":{"line":182,"type":"if","locations":[{"start":{"line":182,"column":2},"end":{"line":182,"column":2}},{"start":{"line":182,"column":2},"end":{"line":182,"column":2}}]},"26":{"line":182,"type":"binary-expr","locations":[{"start":{"line":182,"column":6},"end":{"line":182,"column":11}},{"start":{"line":182,"column":15},"end":{"line":182,"column":27}}]},"27":{"line":185,"type":"binary-expr","locations":[{"start":{"line":185,"column":13},"end":{"line":185,"column":30}},{"start":{"line":185,"column":34},"end":{"line":185,"column":41}}]},"28":{"line":188,"type":"if","locations":[{"start":{"line":188,"column":4},"end":{"line":188,"column":4}},{"start":{"line":188,"column":4},"end":{"line":188,"column":4}}]},"29":{"line":193,"type":"binary-expr","locations":[{"start":{"line":193,"column":12},"end":{"line":193,"column":20}},{"start":{"line":193,"column":24},"end":{"line":193,"column":26}}]},"30":{"line":194,"type":"if","locations":[{"start":{"line":194,"column":4},"end":{"line":194,"column":4}},{"start":{"line":194,"column":4},"end":{"line":194,"column":4}}]},"31":{"line":202,"type":"if","locations":[{"start":{"line":202,"column":2},"end":{"line":202,"column":2}},{"start":{"line":202,"column":2},"end":{"line":202,"column":2}}]},"32":{"line":203,"type":"if","locations":[{"start":{"line":203,"column":2},"end":{"line":203,"column":2}},{"start":{"line":203,"column":2},"end":{"line":203,"column":2}}]},"33":{"line":206,"type":"if","locations":[{"start":{"line":206,"column":4},"end":{"line":206,"column":4}},{"start":{"line":206,"column":4},"end":{"line":206,"column":4}}]},"34":{"line":207,"type":"if","locations":[{"start":{"line":207,"column":4},"end":{"line":207,"column":4}},{"start":{"line":207,"column":4},"end":{"line":207,"column":4}}]},"35":{"line":211,"type":"binary-expr","locations":[{"start":{"line":211,"column":10},"end":{"line":211,"column":15}},{"start":{"line":211,"column":19},"end":{"line":211,"column":21}}]},"36":{"line":212,"type":"if","locations":[{"start":{"line":212,"column":2},"end":{"line":212,"column":2}},{"start":{"line":212,"column":2},"end":{"line":212,"column":2}}]},"37":{"line":213,"type":"if","locations":[{"start":{"line":213,"column":2},"end":{"line":213,"column":2}},{"start":{"line":213,"column":2},"end":{"line":213,"column":2}}]},"38":{"line":214,"type":"if","locations":[{"start":{"line":214,"column":2},"end":{"line":214,"column":2}},{"start":{"line":214,"column":2},"end":{"line":214,"column":2}}]},"39":{"line":215,"type":"if","locations":[{"start":{"line":215,"column":2},"end":{"line":215,"column":2}},{"start":{"line":215,"column":2},"end":{"line":215,"column":2}}]},"40":{"line":216,"type":"if","locations":[{"start":{"line":216,"column":2},"end":{"line":216,"column":2}},{"start":{"line":216,"column":2},"end":{"line":216,"column":2}}]},"41":{"line":217,"type":"if","locations":[{"start":{"line":217,"column":2},"end":{"line":217,"column":2}},{"start":{"line":217,"column":2},"end":{"line":217,"column":2}}]},"42":{"line":222,"type":"if","locations":[{"start":{"line":222,"column":2},"end":{"line":222,"column":2}},{"start":{"line":222,"column":2},"end":{"line":222,"column":2}}]},"43":{"line":225,"type":"if","locations":[{"start":{"line":225,"column":2},"end":{"line":225,"column":2}},{"start":{"line":225,"column":2},"end":{"line":225,"column":2}}]}}}}
\ No newline at end of file
diff --git a/deps/npm/node_modules/npmlog/.nyc_output/65000.json b/deps/npm/node_modules/npmlog/.nyc_output/65000.json
deleted file mode 100644
index 77f20aa72f5034..00000000000000
--- a/deps/npm/node_modules/npmlog/.nyc_output/65000.json
+++ /dev/null
@@ -1 +0,0 @@
-{"./log.js":{"path":"./log.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":0,"12":0,"13":1,"14":0,"15":0,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":0,"23":0,"24":1,"25":0,"26":0,"27":1,"28":1,"29":0,"30":0,"31":1,"32":10,"33":1,"34":9,"35":9,"36":0,"37":9,"38":9,"39":9,"40":1,"41":12,"42":4,"43":8,"44":8,"45":8,"46":8,"47":1,"48":1,"49":4,"50":172,"51":16,"52":156,"53":468,"54":12,"55":144,"56":4,"57":140,"58":55,"59":85,"60":85,"61":1,"62":4,"63":1,"64":3,"65":3,"66":1,"67":4,"68":1,"69":3,"70":3,"71":1,"72":11,"73":1,"74":10,"75":1,"76":22,"77":1,"78":21,"79":11,"80":21,"81":1,"82":0,"83":1,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":0,"101":1,"102":1,"103":1,"104":1,"105":1,"106":0,"107":1,"108":0,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":0,"120":0,"121":1,"122":1,"123":1,"124":0,"125":0,"126":1,"127":1,"128":1,"129":1,"130":0,"131":1,"132":0,"133":1,"134":0,"135":1,"136":1,"137":1,"138":1,"139":1,"140":0,"141":0,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":4,"151":0,"152":4,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":4,"161":4,"162":2,"163":4,"164":1,"165":4,"166":0,"167":4,"168":0,"169":4,"170":0,"171":4,"172":0,"173":4,"174":1,"175":7,"176":3,"177":7,"178":7,"179":7,"180":7,"181":1,"182":1,"183":1,"184":2,"185":1,"186":7,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1,"199":1},"b":{"1":[1,9],"2":[0,9],"3":[4,8],"4":[16,156],"5":[12,144],"6":[4,140],"7":[55,85],"8":[1,3],"9":[1,10],"10":[1,21],"11":[11,10],"12":[0,0],"13":[0,0],"14":[0,1],"15":[0,1],"16":[1,0,0,0],"17":[0,1],"18":[1,0],"19":[1,0],"20":[0,1],"21":[0,1],"22":[1,0],"23":[0,1],"24":[0,1],"25":[0,1],"26":[1,1],"27":[1,0],"28":[0,1],"29":[1,0],"30":[1,0],"31":[0,4],"32":[0,4],"33":[0,0],"34":[0,0],"35":[4,2],"36":[2,2],"37":[1,3],"38":[0,4],"39":[0,4],"40":[0,4],"41":[0,4],"42":[3,4],"43":[7,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":10,"7":12,"8":4,"9":172,"10":468,"11":1,"12":3,"13":1,"14":3,"15":3,"16":11,"17":22,"18":0,"19":0,"20":0,"21":1,"22":1,"23":1,"24":4,"25":7,"26":1,"27":0},"fnMap":{"1":{"name":"(anonymous_1)","line":14,"loc":{"start":{"line":14,"column":18},"end":{"line":14,"column":30}}},"2":{"name":"(anonymous_2)","line":18,"loc":{"start":{"line":18,"column":19},"end":{"line":18,"column":31}}},"3":{"name":"(anonymous_3)","line":34,"loc":{"start":{"line":34,"column":20},"end":{"line":34,"column":32}}},"4":{"name":"(anonymous_4)","line":39,"loc":{"start":{"line":39,"column":21},"end":{"line":39,"column":33}}},"5":{"name":"(anonymous_5)","line":45,"loc":{"start":{"line":45,"column":23},"end":{"line":45,"column":43}}},"6":{"name":"(anonymous_6)","line":50,"loc":{"start":{"line":50,"column":21},"end":{"line":50,"column":33}}},"7":{"name":"(anonymous_7)","line":59,"loc":{"start":{"line":59,"column":22},"end":{"line":59,"column":34}}},"8":{"name":"(anonymous_8)","line":69,"loc":{"start":{"line":69,"column":15},"end":{"line":69,"column":34}}},"9":{"name":"(anonymous_9)","line":72,"loc":{"start":{"line":72,"column":27},"end":{"line":72,"column":40}}},"10":{"name":"(anonymous_10)","line":74,"loc":{"start":{"line":74,"column":35},"end":{"line":74,"column":48}}},"11":{"name":"(anonymous_11)","line":78,"loc":{"start":{"line":78,"column":17},"end":{"line":78,"column":29}}},"12":{"name":"(anonymous_12)","line":85,"loc":{"start":{"line":85,"column":32},"end":{"line":85,"column":45}}},"13":{"name":"(anonymous_13)","line":87,"loc":{"start":{"line":87,"column":19},"end":{"line":87,"column":31}}},"14":{"name":"(anonymous_14)","line":94,"loc":{"start":{"line":94,"column":28},"end":{"line":94,"column":41}}},"15":{"name":"(anonymous_15)","line":95,"loc":{"start":{"line":95,"column":11},"end":{"line":95,"column":23}}},"16":{"name":"(anonymous_16)","line":98,"loc":{"start":{"line":98,"column":20},"end":{"line":98,"column":32}}},"17":{"name":"(anonymous_17)","line":103,"loc":{"start":{"line":103,"column":19},"end":{"line":103,"column":46}}},"18":{"name":"(anonymous_18)","line":110,"loc":{"start":{"line":110,"column":12},"end":{"line":110,"column":24}}},"19":{"name":"(anonymous_19)","line":114,"loc":{"start":{"line":114,"column":13},"end":{"line":114,"column":25}}},"20":{"name":"(anonymous_20)","line":120,"loc":{"start":{"line":120,"column":12},"end":{"line":120,"column":25}}},"21":{"name":"(anonymous_21)","line":131,"loc":{"start":{"line":131,"column":10},"end":{"line":131,"column":42}}},"22":{"name":"(anonymous_22)","line":173,"loc":{"start":{"line":173,"column":14},"end":{"line":173,"column":27}}},"23":{"name":"(anonymous_23)","line":187,"loc":{"start":{"line":187,"column":35},"end":{"line":187,"column":51}}},"24":{"name":"(anonymous_24)","line":201,"loc":{"start":{"line":201,"column":12},"end":{"line":201,"column":34}}},"25":{"name":"(anonymous_25)","line":221,"loc":{"start":{"line":221,"column":15},"end":{"line":221,"column":46}}},"26":{"name":"(anonymous_26)","line":225,"loc":{"start":{"line":225,"column":30},"end":{"line":225,"column":42}}},"27":{"name":"(anonymous_27)","line":251,"loc":{"start":{"line":251,"column":16},"end":{"line":251,"column":26}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":42}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":39}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":43}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":26}},"6":{"start":{"line":8,"column":0},"end":{"line":8,"column":26}},"7":{"start":{"line":9,"column":0},"end":{"line":9,"column":33}},"8":{"start":{"line":10,"column":0},"end":{"line":10,"column":27}},"9":{"start":{"line":13,"column":0},"end":{"line":13,"column":28}},"10":{"start":{"line":14,"column":0},"end":{"line":17,"column":1}},"11":{"start":{"line":15,"column":2},"end":{"line":15,"column":21}},"12":{"start":{"line":16,"column":2},"end":{"line":16,"column":28}},"13":{"start":{"line":18,"column":0},"end":{"line":21,"column":1}},"14":{"start":{"line":19,"column":2},"end":{"line":19,"column":22}},"15":{"start":{"line":20,"column":2},"end":{"line":20,"column":29}},"16":{"start":{"line":24,"column":0},"end":{"line":24,"column":18}},"17":{"start":{"line":26,"column":0},"end":{"line":26,"column":33}},"18":{"start":{"line":27,"column":0},"end":{"line":27,"column":41}},"19":{"start":{"line":30,"column":0},"end":{"line":30,"column":27}},"20":{"start":{"line":32,"column":0},"end":{"line":32,"column":26}},"21":{"start":{"line":34,"column":0},"end":{"line":37,"column":1}},"22":{"start":{"line":35,"column":2},"end":{"line":35,"column":28}},"23":{"start":{"line":36,"column":2},"end":{"line":36,"column":32}},"24":{"start":{"line":39,"column":0},"end":{"line":42,"column":1}},"25":{"start":{"line":40,"column":2},"end":{"line":40,"column":26}},"26":{"start":{"line":41,"column":2},"end":{"line":41,"column":32}},"27":{"start":{"line":44,"column":0},"end":{"line":44,"column":29}},"28":{"start":{"line":45,"column":0},"end":{"line":48,"column":1}},"29":{"start":{"line":46,"column":2},"end":{"line":46,"column":26}},"30":{"start":{"line":47,"column":2},"end":{"line":47,"column":38}},"31":{"start":{"line":50,"column":0},"end":{"line":57,"column":1}},"32":{"start":{"line":51,"column":2},"end":{"line":51,"column":34}},"33":{"start":{"line":51,"column":28},"end":{"line":51,"column":34}},"34":{"start":{"line":52,"column":2},"end":{"line":52,"column":29}},"35":{"start":{"line":53,"column":2},"end":{"line":53,"column":25}},"36":{"start":{"line":53,"column":19},"end":{"line":53,"column":25}},"37":{"start":{"line":54,"column":2},"end":{"line":54,"column":46}},"38":{"start":{"line":55,"column":2},"end":{"line":55,"column":21}},"39":{"start":{"line":56,"column":2},"end":{"line":56,"column":21}},"40":{"start":{"line":59,"column":0},"end":{"line":65,"column":1}},"41":{"start":{"line":60,"column":2},"end":{"line":60,"column":35}},"42":{"start":{"line":60,"column":29},"end":{"line":60,"column":35}},"43":{"start":{"line":61,"column":2},"end":{"line":61,"column":22}},"44":{"start":{"line":62,"column":2},"end":{"line":62,"column":30}},"45":{"start":{"line":63,"column":2},"end":{"line":63,"column":58}},"46":{"start":{"line":64,"column":2},"end":{"line":64,"column":22}},"47":{"start":{"line":67,"column":0},"end":{"line":67,"column":62}},"48":{"start":{"line":69,"column":0},"end":{"line":91,"column":1}},"49":{"start":{"line":72,"column":2},"end":{"line":81,"column":4}},"50":{"start":{"line":73,"column":4},"end":{"line":73,"column":28}},"51":{"start":{"line":73,"column":22},"end":{"line":73,"column":28}},"52":{"start":{"line":74,"column":4},"end":{"line":74,"column":82}},"53":{"start":{"line":74,"column":50},"end":{"line":74,"column":65}},"54":{"start":{"line":74,"column":76},"end":{"line":74,"column":82}},"55":{"start":{"line":75,"column":4},"end":{"line":75,"column":26}},"56":{"start":{"line":75,"column":20},"end":{"line":75,"column":26}},"57":{"start":{"line":76,"column":4},"end":{"line":76,"column":44}},"58":{"start":{"line":76,"column":38},"end":{"line":76,"column":44}},"59":{"start":{"line":77,"column":4},"end":{"line":77,"column":21}},"60":{"start":{"line":78,"column":4},"end":{"line":80,"column":5}},"61":{"start":{"line":79,"column":6},"end":{"line":79,"column":39}},"62":{"start":{"line":84,"column":2},"end":{"line":89,"column":3}},"63":{"start":{"line":85,"column":4},"end":{"line":88,"column":6}},"64":{"start":{"line":86,"column":6},"end":{"line":86,"column":27}},"65":{"start":{"line":87,"column":6},"end":{"line":87,"column":82}},"66":{"start":{"line":87,"column":33},"end":{"line":87,"column":81}},"67":{"start":{"line":90,"column":2},"end":{"line":90,"column":16}},"68":{"start":{"line":94,"column":0},"end":{"line":96,"column":2}},"69":{"start":{"line":95,"column":2},"end":{"line":95,"column":90}},"70":{"start":{"line":95,"column":25},"end":{"line":95,"column":89}},"71":{"start":{"line":98,"column":0},"end":{"line":101,"column":1}},"72":{"start":{"line":99,"column":2},"end":{"line":99,"column":35}},"73":{"start":{"line":99,"column":29},"end":{"line":99,"column":35}},"74":{"start":{"line":100,"column":2},"end":{"line":100,"column":19}},"75":{"start":{"line":103,"column":0},"end":{"line":107,"column":11}},"76":{"start":{"line":104,"column":2},"end":{"line":104,"column":35}},"77":{"start":{"line":104,"column":29},"end":{"line":104,"column":35}},"78":{"start":{"line":105,"column":2},"end":{"line":105,"column":61}},"79":{"start":{"line":105,"column":25},"end":{"line":105,"column":61}},"80":{"start":{"line":106,"column":2},"end":{"line":106,"column":34}},"81":{"start":{"line":110,"column":0},"end":{"line":112,"column":1}},"82":{"start":{"line":111,"column":2},"end":{"line":111,"column":21}},"83":{"start":{"line":114,"column":0},"end":{"line":124,"column":1}},"84":{"start":{"line":115,"column":2},"end":{"line":115,"column":27}},"85":{"start":{"line":115,"column":21},"end":{"line":115,"column":27}},"86":{"start":{"line":116,"column":2},"end":{"line":116,"column":22}},"87":{"start":{"line":118,"column":2},"end":{"line":118,"column":22}},"88":{"start":{"line":119,"column":2},"end":{"line":119,"column":19}},"89":{"start":{"line":120,"column":2},"end":{"line":122,"column":10}},"90":{"start":{"line":121,"column":4},"end":{"line":121,"column":19}},"91":{"start":{"line":123,"column":2},"end":{"line":123,"column":49}},"92":{"start":{"line":123,"column":28},"end":{"line":123,"column":49}},"93":{"start":{"line":126,"column":0},"end":{"line":126,"column":16}},"94":{"start":{"line":128,"column":0},"end":{"line":128,"column":10}},"95":{"start":{"line":129,"column":0},"end":{"line":129,"column":15}},"96":{"start":{"line":130,"column":0},"end":{"line":130,"column":25}},"97":{"start":{"line":131,"column":0},"end":{"line":171,"column":11}},"98":{"start":{"line":132,"column":2},"end":{"line":132,"column":26}},"99":{"start":{"line":133,"column":2},"end":{"line":136,"column":3}},"100":{"start":{"line":134,"column":4},"end":{"line":135,"column":39}},"101":{"start":{"line":138,"column":2},"end":{"line":138,"column":41}},"102":{"start":{"line":139,"column":2},"end":{"line":139,"column":18}},"103":{"start":{"line":140,"column":2},"end":{"line":148,"column":3}},"104":{"start":{"line":141,"column":4},"end":{"line":141,"column":35}},"105":{"start":{"line":144,"column":4},"end":{"line":147,"column":5}},"106":{"start":{"line":146,"column":6},"end":{"line":146,"column":40}},"107":{"start":{"line":149,"column":2},"end":{"line":149,"column":36}},"108":{"start":{"line":149,"column":13},"end":{"line":149,"column":36}},"109":{"start":{"line":150,"column":2},"end":{"line":150,"column":38}},"110":{"start":{"line":152,"column":2},"end":{"line":156,"column":27}},"111":{"start":{"line":158,"column":2},"end":{"line":158,"column":21}},"112":{"start":{"line":159,"column":2},"end":{"line":159,"column":28}},"113":{"start":{"line":160,"column":2},"end":{"line":160,"column":38}},"114":{"start":{"line":160,"column":16},"end":{"line":160,"column":38}},"115":{"start":{"line":162,"column":2},"end":{"line":162,"column":21}},"116":{"start":{"line":163,"column":2},"end":{"line":163,"column":30}},"117":{"start":{"line":164,"column":2},"end":{"line":164,"column":34}},"118":{"start":{"line":165,"column":2},"end":{"line":168,"column":3}},"119":{"start":{"line":166,"column":4},"end":{"line":166,"column":39}},"120":{"start":{"line":167,"column":4},"end":{"line":167,"column":49}},"121":{"start":{"line":170,"column":2},"end":{"line":170,"column":17}},"122":{"start":{"line":173,"column":0},"end":{"line":199,"column":1}},"123":{"start":{"line":174,"column":2},"end":{"line":177,"column":3}},"124":{"start":{"line":175,"column":4},"end":{"line":175,"column":24}},"125":{"start":{"line":176,"column":4},"end":{"line":176,"column":10}},"126":{"start":{"line":178,"column":2},"end":{"line":178,"column":54}},"127":{"start":{"line":178,"column":28},"end":{"line":178,"column":54}},"128":{"start":{"line":179,"column":2},"end":{"line":179,"column":30}},"129":{"start":{"line":180,"column":2},"end":{"line":180,"column":29}},"130":{"start":{"line":180,"column":23},"end":{"line":180,"column":29}},"131":{"start":{"line":181,"column":2},"end":{"line":181,"column":41}},"132":{"start":{"line":181,"column":35},"end":{"line":181,"column":41}},"133":{"start":{"line":182,"column":2},"end":{"line":182,"column":35}},"134":{"start":{"line":182,"column":29},"end":{"line":182,"column":35}},"135":{"start":{"line":184,"column":2},"end":{"line":184,"column":32}},"136":{"start":{"line":185,"column":2},"end":{"line":185,"column":41}},"137":{"start":{"line":186,"column":2},"end":{"line":186,"column":22}},"138":{"start":{"line":187,"column":2},"end":{"line":197,"column":10}},"139":{"start":{"line":188,"column":4},"end":{"line":191,"column":5}},"140":{"start":{"line":189,"column":6},"end":{"line":189,"column":49}},"141":{"start":{"line":190,"column":6},"end":{"line":190,"column":21}},"142":{"start":{"line":192,"column":4},"end":{"line":192,"column":40}},"143":{"start":{"line":193,"column":4},"end":{"line":193,"column":26}},"144":{"start":{"line":194,"column":4},"end":{"line":194,"column":26}},"145":{"start":{"line":194,"column":11},"end":{"line":194,"column":26}},"146":{"start":{"line":195,"column":4},"end":{"line":195,"column":35}},"147":{"start":{"line":196,"column":4},"end":{"line":196,"column":33}},"148":{"start":{"line":198,"column":2},"end":{"line":198,"column":21}},"149":{"start":{"line":201,"column":0},"end":{"line":219,"column":1}},"150":{"start":{"line":202,"column":2},"end":{"line":202,"column":26}},"151":{"start":{"line":202,"column":20},"end":{"line":202,"column":26}},"152":{"start":{"line":203,"column":2},"end":{"line":209,"column":3}},"153":{"start":{"line":204,"column":4},"end":{"line":204,"column":62}},"154":{"start":{"line":205,"column":4},"end":{"line":205,"column":20}},"155":{"start":{"line":206,"column":4},"end":{"line":206,"column":54}},"156":{"start":{"line":206,"column":28},"end":{"line":206,"column":54}},"157":{"start":{"line":207,"column":4},"end":{"line":207,"column":63}},"158":{"start":{"line":207,"column":31},"end":{"line":207,"column":63}},"159":{"start":{"line":208,"column":4},"end":{"line":208,"column":48}},"160":{"start":{"line":211,"column":2},"end":{"line":211,"column":21}},"161":{"start":{"line":212,"column":2},"end":{"line":212,"column":42}},"162":{"start":{"line":212,"column":16},"end":{"line":212,"column":42}},"163":{"start":{"line":213,"column":2},"end":{"line":213,"column":42}},"164":{"start":{"line":213,"column":16},"end":{"line":213,"column":42}},"165":{"start":{"line":214,"column":2},"end":{"line":214,"column":36}},"166":{"start":{"line":214,"column":18},"end":{"line":214,"column":36}},"167":{"start":{"line":215,"column":2},"end":{"line":215,"column":46}},"168":{"start":{"line":215,"column":23},"end":{"line":215,"column":46}},"169":{"start":{"line":216,"column":2},"end":{"line":216,"column":42}},"170":{"start":{"line":216,"column":21},"end":{"line":216,"column":42}},"171":{"start":{"line":217,"column":2},"end":{"line":217,"column":36}},"172":{"start":{"line":217,"column":18},"end":{"line":217,"column":36}},"173":{"start":{"line":218,"column":2},"end":{"line":218,"column":32}},"174":{"start":{"line":221,"column":0},"end":{"line":234,"column":1}},"175":{"start":{"line":222,"column":2},"end":{"line":222,"column":23}},"176":{"start":{"line":222,"column":13},"end":{"line":222,"column":23}},"177":{"start":{"line":223,"column":2},"end":{"line":223,"column":22}},"178":{"start":{"line":224,"column":2},"end":{"line":224,"column":25}},"179":{"start":{"line":225,"column":2},"end":{"line":232,"column":14}},"180":{"start":{"line":225,"column":18},"end":{"line":232,"column":14}},"181":{"start":{"line":226,"column":4},"end":{"line":226,"column":43}},"182":{"start":{"line":227,"column":4},"end":{"line":227,"column":14}},"183":{"start":{"line":228,"column":4},"end":{"line":230,"column":5}},"184":{"start":{"line":229,"column":6},"end":{"line":229,"column":29}},"185":{"start":{"line":231,"column":4},"end":{"line":231,"column":34}},"186":{"start":{"line":233,"column":2},"end":{"line":233,"column":23}},"187":{"start":{"line":236,"column":0},"end":{"line":236,"column":35}},"188":{"start":{"line":237,"column":0},"end":{"line":237,"column":47}},"189":{"start":{"line":239,"column":0},"end":{"line":239,"column":14}},"190":{"start":{"line":240,"column":0},"end":{"line":240,"column":15}},"191":{"start":{"line":241,"column":0},"end":{"line":241,"column":13}},"192":{"start":{"line":242,"column":0},"end":{"line":242,"column":59}},"193":{"start":{"line":243,"column":0},"end":{"line":243,"column":66}},"194":{"start":{"line":244,"column":0},"end":{"line":244,"column":43}},"195":{"start":{"line":245,"column":0},"end":{"line":245,"column":56}},"196":{"start":{"line":246,"column":0},"end":{"line":246,"column":65}},"197":{"start":{"line":247,"column":0},"end":{"line":247,"column":63}},"198":{"start":{"line":248,"column":0},"end":{"line":248,"column":32}},"199":{"start":{"line":251,"column":0},"end":{"line":251,"column":29}}},"branchMap":{"1":{"line":51,"type":"if","locations":[{"start":{"line":51,"column":2},"end":{"line":51,"column":2}},{"start":{"line":51,"column":2},"end":{"line":51,"column":2}}]},"2":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":2},"end":{"line":53,"column":2}},{"start":{"line":53,"column":2},"end":{"line":53,"column":2}}]},"3":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":2},"end":{"line":60,"column":2}},{"start":{"line":60,"column":2},"end":{"line":60,"column":2}}]},"4":{"line":73,"type":"if","locations":[{"start":{"line":73,"column":4},"end":{"line":73,"column":4}},{"start":{"line":73,"column":4},"end":{"line":73,"column":4}}]},"5":{"line":74,"type":"if","locations":[{"start":{"line":74,"column":4},"end":{"line":74,"column":4}},{"start":{"line":74,"column":4},"end":{"line":74,"column":4}}]},"6":{"line":75,"type":"if","locations":[{"start":{"line":75,"column":4},"end":{"line":75,"column":4}},{"start":{"line":75,"column":4},"end":{"line":75,"column":4}}]},"7":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":4},"end":{"line":76,"column":4}},{"start":{"line":76,"column":4},"end":{"line":76,"column":4}}]},"8":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":2},"end":{"line":84,"column":2}},{"start":{"line":84,"column":2},"end":{"line":84,"column":2}}]},"9":{"line":99,"type":"if","locations":[{"start":{"line":99,"column":2},"end":{"line":99,"column":2}},{"start":{"line":99,"column":2},"end":{"line":99,"column":2}}]},"10":{"line":104,"type":"if","locations":[{"start":{"line":104,"column":2},"end":{"line":104,"column":2}},{"start":{"line":104,"column":2},"end":{"line":104,"column":2}}]},"11":{"line":105,"type":"if","locations":[{"start":{"line":105,"column":2},"end":{"line":105,"column":2}},{"start":{"line":105,"column":2},"end":{"line":105,"column":2}}]},"12":{"line":115,"type":"if","locations":[{"start":{"line":115,"column":2},"end":{"line":115,"column":2}},{"start":{"line":115,"column":2},"end":{"line":115,"column":2}}]},"13":{"line":123,"type":"if","locations":[{"start":{"line":123,"column":2},"end":{"line":123,"column":2}},{"start":{"line":123,"column":2},"end":{"line":123,"column":2}}]},"14":{"line":133,"type":"if","locations":[{"start":{"line":133,"column":2},"end":{"line":133,"column":2}},{"start":{"line":133,"column":2},"end":{"line":133,"column":2}}]},"15":{"line":144,"type":"if","locations":[{"start":{"line":144,"column":4},"end":{"line":144,"column":4}},{"start":{"line":144,"column":4},"end":{"line":144,"column":4}}]},"16":{"line":144,"type":"binary-expr","locations":[{"start":{"line":144,"column":8},"end":{"line":144,"column":31}},{"start":{"line":144,"column":35},"end":{"line":144,"column":38}},{"start":{"line":145,"column":9},"end":{"line":145,"column":29}},{"start":{"line":145,"column":34},"end":{"line":145,"column":43}}]},"17":{"line":149,"type":"if","locations":[{"start":{"line":149,"column":2},"end":{"line":149,"column":2}},{"start":{"line":149,"column":2},"end":{"line":149,"column":2}}]},"18":{"line":154,"type":"binary-expr","locations":[{"start":{"line":154,"column":27},"end":{"line":154,"column":33}},{"start":{"line":154,"column":37},"end":{"line":154,"column":39}}]},"19":{"line":160,"type":"if","locations":[{"start":{"line":160,"column":2},"end":{"line":160,"column":2}},{"start":{"line":160,"column":2},"end":{"line":160,"column":2}}]},"20":{"line":165,"type":"if","locations":[{"start":{"line":165,"column":2},"end":{"line":165,"column":2}},{"start":{"line":165,"column":2},"end":{"line":165,"column":2}}]},"21":{"line":174,"type":"if","locations":[{"start":{"line":174,"column":2},"end":{"line":174,"column":2}},{"start":{"line":174,"column":2},"end":{"line":174,"column":2}}]},"22":{"line":178,"type":"if","locations":[{"start":{"line":178,"column":2},"end":{"line":178,"column":2}},{"start":{"line":178,"column":2},"end":{"line":178,"column":2}}]},"23":{"line":180,"type":"if","locations":[{"start":{"line":180,"column":2},"end":{"line":180,"column":2}},{"start":{"line":180,"column":2},"end":{"line":180,"column":2}}]},"24":{"line":181,"type":"if","locations":[{"start":{"line":181,"column":2},"end":{"line":181,"column":2}},{"start":{"line":181,"column":2},"end":{"line":181,"column":2}}]},"25":{"line":182,"type":"if","locations":[{"start":{"line":182,"column":2},"end":{"line":182,"column":2}},{"start":{"line":182,"column":2},"end":{"line":182,"column":2}}]},"26":{"line":182,"type":"binary-expr","locations":[{"start":{"line":182,"column":6},"end":{"line":182,"column":11}},{"start":{"line":182,"column":15},"end":{"line":182,"column":27}}]},"27":{"line":185,"type":"binary-expr","locations":[{"start":{"line":185,"column":13},"end":{"line":185,"column":30}},{"start":{"line":185,"column":34},"end":{"line":185,"column":41}}]},"28":{"line":188,"type":"if","locations":[{"start":{"line":188,"column":4},"end":{"line":188,"column":4}},{"start":{"line":188,"column":4},"end":{"line":188,"column":4}}]},"29":{"line":193,"type":"binary-expr","locations":[{"start":{"line":193,"column":12},"end":{"line":193,"column":20}},{"start":{"line":193,"column":24},"end":{"line":193,"column":26}}]},"30":{"line":194,"type":"if","locations":[{"start":{"line":194,"column":4},"end":{"line":194,"column":4}},{"start":{"line":194,"column":4},"end":{"line":194,"column":4}}]},"31":{"line":202,"type":"if","locations":[{"start":{"line":202,"column":2},"end":{"line":202,"column":2}},{"start":{"line":202,"column":2},"end":{"line":202,"column":2}}]},"32":{"line":203,"type":"if","locations":[{"start":{"line":203,"column":2},"end":{"line":203,"column":2}},{"start":{"line":203,"column":2},"end":{"line":203,"column":2}}]},"33":{"line":206,"type":"if","locations":[{"start":{"line":206,"column":4},"end":{"line":206,"column":4}},{"start":{"line":206,"column":4},"end":{"line":206,"column":4}}]},"34":{"line":207,"type":"if","locations":[{"start":{"line":207,"column":4},"end":{"line":207,"column":4}},{"start":{"line":207,"column":4},"end":{"line":207,"column":4}}]},"35":{"line":211,"type":"binary-expr","locations":[{"start":{"line":211,"column":10},"end":{"line":211,"column":15}},{"start":{"line":211,"column":19},"end":{"line":211,"column":21}}]},"36":{"line":212,"type":"if","locations":[{"start":{"line":212,"column":2},"end":{"line":212,"column":2}},{"start":{"line":212,"column":2},"end":{"line":212,"column":2}}]},"37":{"line":213,"type":"if","locations":[{"start":{"line":213,"column":2},"end":{"line":213,"column":2}},{"start":{"line":213,"column":2},"end":{"line":213,"column":2}}]},"38":{"line":214,"type":"if","locations":[{"start":{"line":214,"column":2},"end":{"line":214,"column":2}},{"start":{"line":214,"column":2},"end":{"line":214,"column":2}}]},"39":{"line":215,"type":"if","locations":[{"start":{"line":215,"column":2},"end":{"line":215,"column":2}},{"start":{"line":215,"column":2},"end":{"line":215,"column":2}}]},"40":{"line":216,"type":"if","locations":[{"start":{"line":216,"column":2},"end":{"line":216,"column":2}},{"start":{"line":216,"column":2},"end":{"line":216,"column":2}}]},"41":{"line":217,"type":"if","locations":[{"start":{"line":217,"column":2},"end":{"line":217,"column":2}},{"start":{"line":217,"column":2},"end":{"line":217,"column":2}}]},"42":{"line":222,"type":"if","locations":[{"start":{"line":222,"column":2},"end":{"line":222,"column":2}},{"start":{"line":222,"column":2},"end":{"line":222,"column":2}}]},"43":{"line":225,"type":"if","locations":[{"start":{"line":225,"column":2},"end":{"line":225,"column":2}},{"start":{"line":225,"column":2},"end":{"line":225,"column":2}}]}}}}
\ No newline at end of file
diff --git a/deps/npm/node_modules/npmlog/.travis.yml b/deps/npm/node_modules/npmlog/.travis.yml
deleted file mode 100644
index e76e1ac81ff366..00000000000000
--- a/deps/npm/node_modules/npmlog/.travis.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-language: node_js
-sudo: false
-node_js:
- - "5"
- - "4"
- - iojs
- - "0.12"
- - "0.10"
- - "0.8"
-before_install:
- - "npm install -g npm"
-script: "npm test"
-notifications:
- slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8
diff --git a/deps/npm/node_modules/npmlog/example.js b/deps/npm/node_modules/npmlog/example.js
deleted file mode 100644
index c009fb15777fbe..00000000000000
--- a/deps/npm/node_modules/npmlog/example.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var log = require('./log.js')
-
-log.heading = 'npm'
-
-console.error('log.level=silly')
-log.level = 'silly'
-log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
-log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
-log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
-log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
-log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
-log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
-log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
-
-console.error('log.level=silent')
-log.level = 'silent'
-log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
-log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
-log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
-log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
-log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
-log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
-log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
-
-console.error('log.level=info')
-log.level = 'info'
-log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
-log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
-log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
-log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
-log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
-log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
-log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
-log.error('404', 'This is a longer\n'+
- 'message, with some details\n'+
- 'and maybe a stack.\n'+
- new Error('a 404 error').stack)
-log.addLevel('noise', 10000, {beep: true})
-log.noise(false, 'LOUD NOISES')
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json
index 56526bcd3ee117..353a46db79b362 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json
@@ -43,7 +43,7 @@
],
"dist": {
"shasum": "84c6e159b81904fdca59a0ef44cd870d31250f9a",
- "tarball": "http://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"
+ "tarball": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json
index c4339a033c572b..af6ea5e3f4230b 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json
@@ -52,5 +52,6 @@
"tmp": "tmp/are-we-there-yet-1.1.2.tgz_1458084397358_0.15847722673788667"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz"
+ "_resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz",
+ "readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/package.json
index 66ce401975ef9b..39d090bb2b9d36 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/package.json
@@ -39,7 +39,7 @@
},
"dist": {
"shasum": "a3cd96c307ba41d559c5a2ee408c12a11c4c2ec3",
- "tarball": "http://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz"
+ "tarball": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz"
},
"maintainers": [
{
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE
index bcbe13d67a9621..e0c69d56032d15 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE
@@ -1,23 +1,47 @@
-The MIT License (MIT)
+Copyright jQuery Foundation and other contributors
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-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.
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md
index f43453bf2e04eb..57fb585913f433 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md
@@ -1,4 +1,4 @@
-# lodash.pad v4.1.0
+# lodash.pad v4.4.0
The [lodash](https://lodash.com/) method `_.pad` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var pad = require('lodash.pad');
```
-See the [documentation](https://lodash.com/docs#pad) or [package source](https://github.com/lodash/lodash/blob/4.1.0-npm-packages/lodash.pad) for more details.
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js
index 6220e0f831a714..876fbb967490ae 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js
@@ -1,22 +1,25 @@
/**
- * lodash 4.1.0 (Custom Build)
+ * lodash (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
* Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/
-var repeat = require('lodash.repeat'),
+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]';
+ genTag = '[object GeneratorFunction]',
+ symbolTag = '[object Symbol]';
/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;
@@ -95,7 +98,8 @@ function stringToArray(string) {
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
@@ -104,30 +108,69 @@ var objectToString = objectProto.toString;
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 {string} string The string to create padding for.
- * @param {number} [length=0] The padding length.
+ * @param {number} length The padding length.
* @param {string} [chars=' '] The string used as padding.
* @returns {string} Returns the padding for `string`.
*/
-function createPadding(string, length, chars) {
- length = toInteger(length);
+function createPadding(length, chars) {
+ chars = chars === undefined ? ' ' : baseToString(chars);
- var strLength = stringSize(string);
- if (!length || strLength >= length) {
- return '';
+ var charsLength = chars.length;
+ if (charsLength < 2) {
+ return charsLength ? baseRepeat(chars, length) : chars;
}
- var padLength = length - strLength;
- chars = chars === undefined ? ' ' : (chars + '');
-
- var result = repeat(chars, nativeCeil(padLength / stringSize(chars)));
+ var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
return reHasComplexSymbol.test(chars)
- ? stringToArray(result).slice(0, padLength).join('')
- : result.slice(0, padLength);
+ ? castSlice(stringToArray(result), 0, length).join('')
+ : result.slice(0, length);
}
/**
@@ -135,9 +178,11 @@ function createPadding(string, length, chars) {
*
* @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`.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
* @example
*
* _.isFunction(_);
@@ -148,18 +193,20 @@ function createPadding(string, length, chars) {
*/
function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ // 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](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ * 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`.
@@ -183,30 +230,80 @@ function isObject(value) {
}
/**
- * Converts `value` to an integer.
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
*
- * **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 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 integer.
+ * @returns {number} Returns the converted number.
* @example
*
- * _.toInteger(3);
- * // => 3
+ * _.toFinite(3.2);
+ * // => 3.2
*
- * _.toInteger(Number.MIN_VALUE);
- * // => 0
+ * _.toFinite(Number.MIN_VALUE);
+ * // => 5e-324
*
- * _.toInteger(Infinity);
+ * _.toFinite(Infinity);
* // => 1.7976931348623157e+308
*
- * _.toInteger('3');
- * // => 3
+ * _.toFinite('3.2');
+ * // => 3.2
*/
-function toInteger(value) {
+function toFinite(value) {
if (!value) {
return value === 0 ? value : 0;
}
@@ -215,8 +312,40 @@ function toInteger(value) {
var sign = (value < 0 ? -1 : 1);
return sign * MAX_INTEGER;
}
- var remainder = value % 1;
- return value === value ? (remainder ? value - remainder : value) : 0;
+ 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;
}
/**
@@ -224,13 +353,14 @@ function toInteger(value) {
*
* @static
* @memberOf _
+ * @since 4.0.0
* @category Lang
* @param {*} value The value to process.
* @returns {number} Returns the number.
* @example
*
- * _.toNumber(3);
- * // => 3
+ * _.toNumber(3.2);
+ * // => 3.2
*
* _.toNumber(Number.MIN_VALUE);
* // => 5e-324
@@ -238,10 +368,16 @@ function toInteger(value) {
* _.toNumber(Infinity);
* // => Infinity
*
- * _.toNumber('3');
- * // => 3
+ * _.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;
@@ -262,6 +398,7 @@ function toNumber(value) {
*
* @static
* @memberOf _
+ * @since 3.0.0
* @category String
* @param {string} [string=''] The string to pad.
* @param {number} [length=0] The padding length.
@@ -282,15 +419,16 @@ function pad(string, length, chars) {
string = toString(string);
length = toInteger(length);
- var strLength = stringSize(string);
+ var strLength = length ? stringSize(string) : 0;
if (!length || strLength >= length) {
return string;
}
- var mid = (length - strLength) / 2,
- leftLength = nativeFloor(mid),
- rightLength = nativeCeil(mid);
-
- return createPadding('', leftLength, chars) + string + createPadding('', rightLength, chars);
+ var mid = (length - strLength) / 2;
+ return (
+ createPadding(nativeFloor(mid), chars) +
+ string +
+ createPadding(nativeCeil(mid), chars)
+ );
}
module.exports = pad;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/LICENSE
new file mode 100644
index 00000000000000..b054ca5a3ac7d6
--- /dev/null
+++ b/deps/npm/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
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/README.md
new file mode 100644
index 00000000000000..8cd4181ccdc00d
--- /dev/null
+++ b/deps/npm/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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/index.js
new file mode 100644
index 00000000000000..59293c3d0037a8
--- /dev/null
+++ b/deps/npm/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)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation
+ * Based on Underscore.js 1.8.3
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT 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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/package.json
new file mode 100644
index 00000000000000..a8e4a8520c7ad0
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._baseslice/package.json
@@ -0,0 +1,70 @@
+{
+ "name": "lodash._baseslice",
+ "version": "4.0.0",
+ "description": "The internal lodash function `baseSlice` exported as a module.",
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "author": {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ "contributors": [
+ {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "name": "Blaine Bublitz",
+ "email": "blaine@iceddev.com",
+ "url": "https://github.com/phated"
+ },
+ {
+ "name": "Mathias Bynens",
+ "email": "mathias@qiwi.be",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "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.\""
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "_id": "lodash._baseslice@4.0.0",
+ "_shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "_from": "lodash._baseslice@>=4.0.0 <4.1.0",
+ "_npmVersion": "2.14.15",
+ "_nodeVersion": "5.4.0",
+ "_npmUser": {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ "dist": {
+ "shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "tarball": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz"
+ },
+ "maintainers": [
+ {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ {
+ "name": "mathias",
+ "email": "mathias@qiwi.be"
+ },
+ {
+ "name": "phated",
+ "email": "blaine@iceddev.com"
+ }
+ ],
+ "directories": {},
+ "_resolved": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz",
+ "readme": "ERROR: No README data found!"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.repeat/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/LICENSE
similarity index 100%
rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.repeat/LICENSE
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/LICENSE
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/README.md
new file mode 100644
index 00000000000000..ba060c94dadea0
--- /dev/null
+++ b/deps/npm/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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/index.js
new file mode 100644
index 00000000000000..d5848107499c34
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/index.js
@@ -0,0 +1,153 @@
+/**
+ * lodash (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
+ * Based on Underscore.js 1.8.3
+ * 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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/package.json
new file mode 100644
index 00000000000000..474798f13467c2
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash._basetostring/package.json
@@ -0,0 +1,74 @@
+{
+ "name": "lodash._basetostring",
+ "version": "4.12.0",
+ "description": "The internal lodash function `baseToString` exported as a module.",
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "author": {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ "contributors": [
+ {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "name": "Blaine Bublitz",
+ "email": "blaine.bublitz@gmail.com",
+ "url": "https://github.com/phated"
+ },
+ {
+ "name": "Mathias Bynens",
+ "email": "mathias@qiwi.be",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "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.\""
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "_id": "lodash._basetostring@4.12.0",
+ "_shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "_from": "lodash._basetostring@>=4.12.0 <4.13.0",
+ "_npmVersion": "2.15.5",
+ "_nodeVersion": "5.5.0",
+ "_npmUser": {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ "dist": {
+ "shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "tarball": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz"
+ },
+ "maintainers": [
+ {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ {
+ "name": "mathias",
+ "email": "mathias@qiwi.be"
+ },
+ {
+ "name": "phated",
+ "email": "blaine@iceddev.com"
+ }
+ ],
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash._basetostring-4.12.0.tgz_1463062033665_0.6722894972190261"
+ },
+ "directories": {},
+ "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz",
+ "readme": "ERROR: No README data found!"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/LICENSE
new file mode 100644
index 00000000000000..e0c69d56032d15
--- /dev/null
+++ b/deps/npm/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
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md
similarity index 80%
rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/README.md
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md
index b3858fd68e7866..75aa6b0699b4df 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/README.md
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/README.md
@@ -1,4 +1,4 @@
-# lodash.tostring v4.1.2
+# lodash.tostring v4.1.3
The [lodash](https://lodash.com/) method `_.toString` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.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.2-npm-packages/lodash.tostring) for more details.
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js
similarity index 81%
rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/index.js
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js
index 5c0e3e2b987eb6..8a2cde39290e82 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/index.js
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/index.js
@@ -1,10 +1,10 @@
/**
- * lodash 4.1.2 (Custom Build)
+ * lodash (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
* Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/
/** Used as references for various `Number` constants. */
@@ -66,7 +66,8 @@ function checkGlobal(value) {
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
@@ -78,12 +79,33 @@ var Symbol = root.Symbol;
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`.
@@ -110,9 +132,11 @@ function isObjectLike(value) {
*
* @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`.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
* @example
*
* _.isSymbol(Symbol.iterator);
@@ -127,11 +151,12 @@ function isSymbol(value) {
}
/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` and `undefined` values. The sign of `-0` is preserved.
+ * 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.
@@ -147,18 +172,7 @@ function isSymbol(value) {
* // => '1,2,3'
*/
function toString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (value == null) {
- return '';
- }
- if (isSymbol(value)) {
- return symbolToString ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
+ return value == null ? '' : baseToString(value);
}
module.exports = toString;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json
similarity index 77%
rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/package.json
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json
index daf01553a964eb..dca724cd869c8a 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/node_modules/lodash.tostring/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.tostring",
- "version": "4.1.2",
+ "version": "4.1.3",
"description": "The lodash method `_.toString` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -41,18 +41,18 @@
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "_id": "lodash.tostring@4.1.2",
- "_shasum": "7d326a5cf64da4298f2fd35b688d848267535288",
- "_from": "lodash.tostring@4.1.2",
- "_npmVersion": "2.14.17",
+ "_id": "lodash.tostring@4.1.3",
+ "_shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "_from": "lodash.tostring@>=4.0.0 <5.0.0",
+ "_npmVersion": "2.15.5",
"_nodeVersion": "5.5.0",
"_npmUser": {
"name": "jdalton",
"email": "john.david.dalton@gmail.com"
},
"dist": {
- "shasum": "7d326a5cf64da4298f2fd35b688d848267535288",
- "tarball": "http://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz"
+ "shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "tarball": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz"
},
"maintainers": [
{
@@ -69,10 +69,10 @@
}
],
"_npmOperationalInternal": {
- "host": "packages-13-west.internal.npmjs.com",
- "tmp": "tmp/lodash.tostring-4.1.2.tgz_1456896853027_0.8195764778647572"
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash.tostring-4.1.3.tgz_1463062634002_0.7874096168670803"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz",
+ "_resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz",
"readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json
index 5bf072f9710dac..cf622e87073fb8 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.pad",
- "version": "4.1.0",
+ "version": "4.4.0",
"description": "The lodash method `_.pad` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -22,7 +22,7 @@
},
{
"name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
+ "email": "blaine.bublitz@gmail.com",
"url": "https://github.com/phated"
},
{
@@ -39,24 +39,25 @@
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
"dependencies": {
- "lodash.repeat": "^4.0.0",
+ "lodash._baseslice": "~4.0.0",
+ "lodash._basetostring": "~4.12.0",
"lodash.tostring": "^4.0.0"
},
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "_id": "lodash.pad@4.1.0",
- "_shasum": "dbbe3a9681fccb69970473a2263f50c196ac3aa9",
+ "_id": "lodash.pad@4.4.0",
+ "_shasum": "faa38df26c0a69ec5086a82246c958e150dcb1ab",
"_from": "lodash.pad@>=4.1.0 <5.0.0",
- "_npmVersion": "2.14.18",
+ "_npmVersion": "2.15.5",
"_nodeVersion": "5.5.0",
"_npmUser": {
"name": "jdalton",
"email": "john.david.dalton@gmail.com"
},
"dist": {
- "shasum": "dbbe3a9681fccb69970473a2263f50c196ac3aa9",
- "tarball": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz"
+ "shasum": "faa38df26c0a69ec5086a82246c958e150dcb1ab",
+ "tarball": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.4.0.tgz"
},
"maintainers": [
{
@@ -73,9 +74,10 @@
}
],
"_npmOperationalInternal": {
- "host": "packages-9-west.internal.npmjs.com",
- "tmp": "tmp/lodash.pad-4.1.0.tgz_1455615516420_0.3130727862007916"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.pad-4.4.0.tgz_1463062450475_0.3613762252498418"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz"
+ "_resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.4.0.tgz",
+ "readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE
index bcbe13d67a9621..e0c69d56032d15 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/LICENSE
@@ -1,23 +1,47 @@
-The MIT License (MIT)
+Copyright jQuery Foundation and other contributors
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-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.
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md
index ac84987849bf1a..909eef8f2215ef 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/README.md
@@ -1,4 +1,4 @@
-# lodash.padend v4.2.0
+# lodash.padend v4.5.0
The [lodash](https://lodash.com/) method `_.padEnd` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var padEnd = require('lodash.padend');
```
-See the [documentation](https://lodash.com/docs#padEnd) or [package source](https://github.com/lodash/lodash/blob/4.2.0-npm-packages/lodash.padend) for more details.
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js
index d7c813a1dbd015..5af50372e338dd 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/index.js
@@ -1,22 +1,25 @@
/**
- * lodash 4.2.0 (Custom Build)
+ * lodash (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
* Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/
-var repeat = require('lodash.repeat'),
+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]';
+ genTag = '[object GeneratorFunction]',
+ symbolTag = '[object Symbol]';
/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;
@@ -95,38 +98,79 @@ function stringToArray(string) {
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * 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;
+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 {string} string The string to create padding for.
- * @param {number} [length=0] The padding length.
+ * @param {number} length The padding length.
* @param {string} [chars=' '] The string used as padding.
* @returns {string} Returns the padding for `string`.
*/
-function createPadding(string, length, chars) {
- length = toInteger(length);
+function createPadding(length, chars) {
+ chars = chars === undefined ? ' ' : baseToString(chars);
- var strLength = stringSize(string);
- if (!length || strLength >= length) {
- return '';
+ var charsLength = chars.length;
+ if (charsLength < 2) {
+ return charsLength ? baseRepeat(chars, length) : chars;
}
- var padLength = length - strLength;
- chars = chars === undefined ? ' ' : (chars + '');
-
- var result = repeat(chars, nativeCeil(padLength / stringSize(chars)));
+ var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
return reHasComplexSymbol.test(chars)
- ? stringToArray(result).slice(0, padLength).join('')
- : result.slice(0, padLength);
+ ? castSlice(stringToArray(result), 0, length).join('')
+ : result.slice(0, length);
}
/**
@@ -134,9 +178,11 @@ function createPadding(string, length, chars) {
*
* @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`.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
* @example
*
* _.isFunction(_);
@@ -147,18 +193,20 @@ function createPadding(string, length, chars) {
*/
function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ // 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](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ * 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`.
@@ -182,30 +230,80 @@ function isObject(value) {
}
/**
- * Converts `value` to an integer.
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
*
- * **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 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 integer.
+ * @returns {number} Returns the converted number.
* @example
*
- * _.toInteger(3);
- * // => 3
+ * _.toFinite(3.2);
+ * // => 3.2
*
- * _.toInteger(Number.MIN_VALUE);
- * // => 0
+ * _.toFinite(Number.MIN_VALUE);
+ * // => 5e-324
*
- * _.toInteger(Infinity);
+ * _.toFinite(Infinity);
* // => 1.7976931348623157e+308
*
- * _.toInteger('3');
- * // => 3
+ * _.toFinite('3.2');
+ * // => 3.2
*/
-function toInteger(value) {
+function toFinite(value) {
if (!value) {
return value === 0 ? value : 0;
}
@@ -214,8 +312,40 @@ function toInteger(value) {
var sign = (value < 0 ? -1 : 1);
return sign * MAX_INTEGER;
}
- var remainder = value % 1;
- return value === value ? (remainder ? value - remainder : value) : 0;
+ 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;
}
/**
@@ -223,13 +353,14 @@ function toInteger(value) {
*
* @static
* @memberOf _
+ * @since 4.0.0
* @category Lang
* @param {*} value The value to process.
* @returns {number} Returns the number.
* @example
*
- * _.toNumber(3);
- * // => 3
+ * _.toNumber(3.2);
+ * // => 3.2
*
* _.toNumber(Number.MIN_VALUE);
* // => 5e-324
@@ -237,10 +368,16 @@ function toInteger(value) {
* _.toNumber(Infinity);
* // => Infinity
*
- * _.toNumber('3');
- * // => 3
+ * _.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;
@@ -261,6 +398,7 @@ function toNumber(value) {
*
* @static
* @memberOf _
+ * @since 4.0.0
* @category String
* @param {string} [string=''] The string to pad.
* @param {number} [length=0] The padding length.
@@ -279,7 +417,12 @@ function toNumber(value) {
*/
function padEnd(string, length, chars) {
string = toString(string);
- return string + createPadding(string, length, chars);
+ 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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/LICENSE
new file mode 100644
index 00000000000000..b054ca5a3ac7d6
--- /dev/null
+++ b/deps/npm/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
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/README.md
new file mode 100644
index 00000000000000..8cd4181ccdc00d
--- /dev/null
+++ b/deps/npm/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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/index.js
new file mode 100644
index 00000000000000..59293c3d0037a8
--- /dev/null
+++ b/deps/npm/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)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation
+ * Based on Underscore.js 1.8.3
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT 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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/package.json
new file mode 100644
index 00000000000000..a8e4a8520c7ad0
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._baseslice/package.json
@@ -0,0 +1,70 @@
+{
+ "name": "lodash._baseslice",
+ "version": "4.0.0",
+ "description": "The internal lodash function `baseSlice` exported as a module.",
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "author": {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ "contributors": [
+ {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "name": "Blaine Bublitz",
+ "email": "blaine@iceddev.com",
+ "url": "https://github.com/phated"
+ },
+ {
+ "name": "Mathias Bynens",
+ "email": "mathias@qiwi.be",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "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.\""
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "_id": "lodash._baseslice@4.0.0",
+ "_shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "_from": "lodash._baseslice@>=4.0.0 <4.1.0",
+ "_npmVersion": "2.14.15",
+ "_nodeVersion": "5.4.0",
+ "_npmUser": {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ "dist": {
+ "shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "tarball": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz"
+ },
+ "maintainers": [
+ {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ {
+ "name": "mathias",
+ "email": "mathias@qiwi.be"
+ },
+ {
+ "name": "phated",
+ "email": "blaine@iceddev.com"
+ }
+ ],
+ "directories": {},
+ "_resolved": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz",
+ "readme": "ERROR: No README data found!"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/LICENSE
new file mode 100644
index 00000000000000..e0c69d56032d15
--- /dev/null
+++ b/deps/npm/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
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/README.md
new file mode 100644
index 00000000000000..ba060c94dadea0
--- /dev/null
+++ b/deps/npm/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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/index.js
new file mode 100644
index 00000000000000..d5848107499c34
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/index.js
@@ -0,0 +1,153 @@
+/**
+ * lodash (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
+ * Based on Underscore.js 1.8.3
+ * 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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/package.json
new file mode 100644
index 00000000000000..474798f13467c2
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash._basetostring/package.json
@@ -0,0 +1,74 @@
+{
+ "name": "lodash._basetostring",
+ "version": "4.12.0",
+ "description": "The internal lodash function `baseToString` exported as a module.",
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "author": {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ "contributors": [
+ {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "name": "Blaine Bublitz",
+ "email": "blaine.bublitz@gmail.com",
+ "url": "https://github.com/phated"
+ },
+ {
+ "name": "Mathias Bynens",
+ "email": "mathias@qiwi.be",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "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.\""
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "_id": "lodash._basetostring@4.12.0",
+ "_shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "_from": "lodash._basetostring@>=4.12.0 <4.13.0",
+ "_npmVersion": "2.15.5",
+ "_nodeVersion": "5.5.0",
+ "_npmUser": {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ "dist": {
+ "shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "tarball": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz"
+ },
+ "maintainers": [
+ {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ {
+ "name": "mathias",
+ "email": "mathias@qiwi.be"
+ },
+ {
+ "name": "phated",
+ "email": "blaine@iceddev.com"
+ }
+ ],
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash._basetostring-4.12.0.tgz_1463062033665_0.6722894972190261"
+ },
+ "directories": {},
+ "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz",
+ "readme": "ERROR: No README data found!"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/LICENSE
new file mode 100644
index 00000000000000..e0c69d56032d15
--- /dev/null
+++ b/deps/npm/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
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/README.md
new file mode 100644
index 00000000000000..75aa6b0699b4df
--- /dev/null
+++ b/deps/npm/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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js
new file mode 100644
index 00000000000000..8a2cde39290e82
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/index.js
@@ -0,0 +1,178 @@
+/**
+ * lodash (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
+ * Based on Underscore.js 1.8.3
+ * 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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.repeat/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json
similarity index 65%
rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.repeat/package.json
rename to deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json
index 2d808082598013..dca724cd869c8a 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.repeat/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/node_modules/lodash.tostring/package.json
@@ -1,13 +1,13 @@
{
- "name": "lodash.repeat",
- "version": "4.0.2",
- "description": "The lodash method `_.repeat` exported as a module.",
+ "name": "lodash.tostring",
+ "version": "4.1.3",
+ "description": "The lodash method `_.toString` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
"keywords": [
"lodash-modularized",
- "repeat"
+ "tostring"
],
"author": {
"name": "John-David Dalton",
@@ -38,24 +38,21 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "dependencies": {
- "lodash.tostring": "^4.0.0"
- },
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "_id": "lodash.repeat@4.0.2",
- "_shasum": "72c4e409757448c99e3c4c334ab066b789ca3f3b",
- "_from": "lodash.repeat@4.0.2",
- "_npmVersion": "2.15.3",
+ "_id": "lodash.tostring@4.1.3",
+ "_shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "_from": "lodash.tostring@>=4.0.0 <5.0.0",
+ "_npmVersion": "2.15.5",
"_nodeVersion": "5.5.0",
"_npmUser": {
"name": "jdalton",
"email": "john.david.dalton@gmail.com"
},
"dist": {
- "shasum": "72c4e409757448c99e3c4c334ab066b789ca3f3b",
- "tarball": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.2.tgz"
+ "shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "tarball": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz"
},
"maintainers": [
{
@@ -68,14 +65,14 @@
},
{
"name": "phated",
- "email": "blaine@iceddev.com"
+ "email": "blaine.bublitz@gmail.com"
}
],
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/lodash.repeat-4.0.2.tgz_1460126921614_0.3440221941564232"
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash.tostring-4.1.3.tgz_1463062634002_0.7874096168670803"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.2.tgz",
+ "_resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz",
"readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json
index c73abf999253b5..c5573d0f8f12b5 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padend/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.padend",
- "version": "4.2.0",
+ "version": "4.5.0",
"description": "The lodash method `_.padEnd` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -22,7 +22,7 @@
},
{
"name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
+ "email": "blaine.bublitz@gmail.com",
"url": "https://github.com/phated"
},
{
@@ -39,24 +39,25 @@
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
"dependencies": {
- "lodash.repeat": "^4.0.0",
+ "lodash._baseslice": "~4.0.0",
+ "lodash._basetostring": "~4.12.0",
"lodash.tostring": "^4.0.0"
},
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "_id": "lodash.padend@4.2.0",
- "_shasum": "b84e8c3401d4538055c6e321a51e3aee19881a18",
+ "_id": "lodash.padend@4.5.0",
+ "_shasum": "a289e9377ee2e6de8ba7f11f3a8eb326070b7619",
"_from": "lodash.padend@>=4.1.0 <5.0.0",
- "_npmVersion": "2.14.18",
+ "_npmVersion": "2.15.5",
"_nodeVersion": "5.5.0",
"_npmUser": {
"name": "jdalton",
"email": "john.david.dalton@gmail.com"
},
"dist": {
- "shasum": "b84e8c3401d4538055c6e321a51e3aee19881a18",
- "tarball": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz"
+ "shasum": "a289e9377ee2e6de8ba7f11f3a8eb326070b7619",
+ "tarball": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.5.0.tgz"
},
"maintainers": [
{
@@ -73,9 +74,10 @@
}
],
"_npmOperationalInternal": {
- "host": "packages-6-west.internal.npmjs.com",
- "tmp": "tmp/lodash.padend-4.2.0.tgz_1455615519416_0.9670630963519216"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.padend-4.5.0.tgz_1463062451966_0.5034168094862252"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz"
+ "_resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.5.0.tgz",
+ "readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE
index bcbe13d67a9621..e0c69d56032d15 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/LICENSE
@@ -1,23 +1,47 @@
-The MIT License (MIT)
+Copyright jQuery Foundation and other contributors
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-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.
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md
index d3176b0012afb9..bcc1c5aa6710e0 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/README.md
@@ -1,4 +1,4 @@
-# lodash.padstart v4.2.0
+# lodash.padstart v4.5.0
The [lodash](https://lodash.com/) method `_.padStart` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var padStart = require('lodash.padstart');
```
-See the [documentation](https://lodash.com/docs#padStart) or [package source](https://github.com/lodash/lodash/blob/4.2.0-npm-packages/lodash.padstart) for more details.
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js
index 9f403a1f857fae..456889536633cb 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/index.js
@@ -1,22 +1,25 @@
/**
- * lodash 4.2.0 (Custom Build)
+ * lodash (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
* Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/
-var repeat = require('lodash.repeat'),
+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]';
+ genTag = '[object GeneratorFunction]',
+ symbolTag = '[object Symbol]';
/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;
@@ -95,38 +98,79 @@ function stringToArray(string) {
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * 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;
+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 {string} string The string to create padding for.
- * @param {number} [length=0] The padding length.
+ * @param {number} length The padding length.
* @param {string} [chars=' '] The string used as padding.
* @returns {string} Returns the padding for `string`.
*/
-function createPadding(string, length, chars) {
- length = toInteger(length);
+function createPadding(length, chars) {
+ chars = chars === undefined ? ' ' : baseToString(chars);
- var strLength = stringSize(string);
- if (!length || strLength >= length) {
- return '';
+ var charsLength = chars.length;
+ if (charsLength < 2) {
+ return charsLength ? baseRepeat(chars, length) : chars;
}
- var padLength = length - strLength;
- chars = chars === undefined ? ' ' : (chars + '');
-
- var result = repeat(chars, nativeCeil(padLength / stringSize(chars)));
+ var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
return reHasComplexSymbol.test(chars)
- ? stringToArray(result).slice(0, padLength).join('')
- : result.slice(0, padLength);
+ ? castSlice(stringToArray(result), 0, length).join('')
+ : result.slice(0, length);
}
/**
@@ -134,9 +178,11 @@ function createPadding(string, length, chars) {
*
* @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`.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
* @example
*
* _.isFunction(_);
@@ -147,18 +193,20 @@ function createPadding(string, length, chars) {
*/
function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ // 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](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ * 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`.
@@ -182,30 +230,80 @@ function isObject(value) {
}
/**
- * Converts `value` to an integer.
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
*
- * **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 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 integer.
+ * @returns {number} Returns the converted number.
* @example
*
- * _.toInteger(3);
- * // => 3
+ * _.toFinite(3.2);
+ * // => 3.2
*
- * _.toInteger(Number.MIN_VALUE);
- * // => 0
+ * _.toFinite(Number.MIN_VALUE);
+ * // => 5e-324
*
- * _.toInteger(Infinity);
+ * _.toFinite(Infinity);
* // => 1.7976931348623157e+308
*
- * _.toInteger('3');
- * // => 3
+ * _.toFinite('3.2');
+ * // => 3.2
*/
-function toInteger(value) {
+function toFinite(value) {
if (!value) {
return value === 0 ? value : 0;
}
@@ -214,8 +312,40 @@ function toInteger(value) {
var sign = (value < 0 ? -1 : 1);
return sign * MAX_INTEGER;
}
- var remainder = value % 1;
- return value === value ? (remainder ? value - remainder : value) : 0;
+ 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;
}
/**
@@ -223,13 +353,14 @@ function toInteger(value) {
*
* @static
* @memberOf _
+ * @since 4.0.0
* @category Lang
* @param {*} value The value to process.
* @returns {number} Returns the number.
* @example
*
- * _.toNumber(3);
- * // => 3
+ * _.toNumber(3.2);
+ * // => 3.2
*
* _.toNumber(Number.MIN_VALUE);
* // => 5e-324
@@ -237,10 +368,16 @@ function toInteger(value) {
* _.toNumber(Infinity);
* // => Infinity
*
- * _.toNumber('3');
- * // => 3
+ * _.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;
@@ -261,6 +398,7 @@ function toNumber(value) {
*
* @static
* @memberOf _
+ * @since 4.0.0
* @category String
* @param {string} [string=''] The string to pad.
* @param {number} [length=0] The padding length.
@@ -279,7 +417,12 @@ function toNumber(value) {
*/
function padStart(string, length, chars) {
string = toString(string);
- return createPadding(string, length, chars) + 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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/LICENSE
new file mode 100644
index 00000000000000..b054ca5a3ac7d6
--- /dev/null
+++ b/deps/npm/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
+Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/README.md
new file mode 100644
index 00000000000000..8cd4181ccdc00d
--- /dev/null
+++ b/deps/npm/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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/index.js
new file mode 100644
index 00000000000000..59293c3d0037a8
--- /dev/null
+++ b/deps/npm/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)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright 2012-2016 The Dojo Foundation
+ * Based on Underscore.js 1.8.3
+ * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT 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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/package.json
new file mode 100644
index 00000000000000..a8e4a8520c7ad0
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._baseslice/package.json
@@ -0,0 +1,70 @@
+{
+ "name": "lodash._baseslice",
+ "version": "4.0.0",
+ "description": "The internal lodash function `baseSlice` exported as a module.",
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "author": {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ "contributors": [
+ {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "name": "Blaine Bublitz",
+ "email": "blaine@iceddev.com",
+ "url": "https://github.com/phated"
+ },
+ {
+ "name": "Mathias Bynens",
+ "email": "mathias@qiwi.be",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "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.\""
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "_id": "lodash._baseslice@4.0.0",
+ "_shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "_from": "lodash._baseslice@>=4.0.0 <4.1.0",
+ "_npmVersion": "2.14.15",
+ "_nodeVersion": "5.4.0",
+ "_npmUser": {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ "dist": {
+ "shasum": "f5ce1df982948ecaff63f223853415b7b9763704",
+ "tarball": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz"
+ },
+ "maintainers": [
+ {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ {
+ "name": "mathias",
+ "email": "mathias@qiwi.be"
+ },
+ {
+ "name": "phated",
+ "email": "blaine@iceddev.com"
+ }
+ ],
+ "directories": {},
+ "_resolved": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz",
+ "readme": "ERROR: No README data found!"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/LICENSE
new file mode 100644
index 00000000000000..e0c69d56032d15
--- /dev/null
+++ b/deps/npm/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
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/README.md
new file mode 100644
index 00000000000000..ba060c94dadea0
--- /dev/null
+++ b/deps/npm/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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/index.js
new file mode 100644
index 00000000000000..d5848107499c34
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/index.js
@@ -0,0 +1,153 @@
+/**
+ * lodash (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
+ * Based on Underscore.js 1.8.3
+ * 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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/package.json
new file mode 100644
index 00000000000000..474798f13467c2
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash._basetostring/package.json
@@ -0,0 +1,74 @@
+{
+ "name": "lodash._basetostring",
+ "version": "4.12.0",
+ "description": "The internal lodash function `baseToString` exported as a module.",
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "author": {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ "contributors": [
+ {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "name": "Blaine Bublitz",
+ "email": "blaine.bublitz@gmail.com",
+ "url": "https://github.com/phated"
+ },
+ {
+ "name": "Mathias Bynens",
+ "email": "mathias@qiwi.be",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "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.\""
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "_id": "lodash._basetostring@4.12.0",
+ "_shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "_from": "lodash._basetostring@>=4.12.0 <4.13.0",
+ "_npmVersion": "2.15.5",
+ "_nodeVersion": "5.5.0",
+ "_npmUser": {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ "dist": {
+ "shasum": "9327c9dc5158866b7fa4b9d42f4638e5766dd9df",
+ "tarball": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz"
+ },
+ "maintainers": [
+ {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ {
+ "name": "mathias",
+ "email": "mathias@qiwi.be"
+ },
+ {
+ "name": "phated",
+ "email": "blaine@iceddev.com"
+ }
+ ],
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash._basetostring-4.12.0.tgz_1463062033665_0.6722894972190261"
+ },
+ "directories": {},
+ "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz",
+ "readme": "ERROR: No README data found!"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/LICENSE
new file mode 100644
index 00000000000000..e0c69d56032d15
--- /dev/null
+++ b/deps/npm/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
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/README.md
new file mode 100644
index 00000000000000..75aa6b0699b4df
--- /dev/null
+++ b/deps/npm/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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js
new file mode 100644
index 00000000000000..8a2cde39290e82
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/index.js
@@ -0,0 +1,178 @@
+/**
+ * lodash (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
+ * Based on Underscore.js 1.8.3
+ * 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/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json
new file mode 100644
index 00000000000000..dca724cd869c8a
--- /dev/null
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/node_modules/lodash.tostring/package.json
@@ -0,0 +1,78 @@
+{
+ "name": "lodash.tostring",
+ "version": "4.1.3",
+ "description": "The lodash method `_.toString` exported as a module.",
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "keywords": [
+ "lodash-modularized",
+ "tostring"
+ ],
+ "author": {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ "contributors": [
+ {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "name": "Blaine Bublitz",
+ "email": "blaine.bublitz@gmail.com",
+ "url": "https://github.com/phated"
+ },
+ {
+ "name": "Mathias Bynens",
+ "email": "mathias@qiwi.be",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "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.\""
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "_id": "lodash.tostring@4.1.3",
+ "_shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "_from": "lodash.tostring@>=4.0.0 <5.0.0",
+ "_npmVersion": "2.15.5",
+ "_nodeVersion": "5.5.0",
+ "_npmUser": {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ "dist": {
+ "shasum": "5697f62973f30105a76c2deb3e2d1669f04fd825",
+ "tarball": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz"
+ },
+ "maintainers": [
+ {
+ "name": "jdalton",
+ "email": "john.david.dalton@gmail.com"
+ },
+ {
+ "name": "mathias",
+ "email": "mathias@qiwi.be"
+ },
+ {
+ "name": "phated",
+ "email": "blaine.bublitz@gmail.com"
+ }
+ ],
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/lodash.tostring-4.1.3.tgz_1463062634002_0.7874096168670803"
+ },
+ "directories": {},
+ "_resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz",
+ "readme": "ERROR: No README data found!"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json
index 2dd0b3cae7608b..560c4eb39af01c 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padstart/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.padstart",
- "version": "4.2.0",
+ "version": "4.5.0",
"description": "The lodash method `_.padStart` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -22,7 +22,7 @@
},
{
"name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
+ "email": "blaine.bublitz@gmail.com",
"url": "https://github.com/phated"
},
{
@@ -39,24 +39,25 @@
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
"dependencies": {
- "lodash.repeat": "^4.0.0",
+ "lodash._baseslice": "~4.0.0",
+ "lodash._basetostring": "~4.12.0",
"lodash.tostring": "^4.0.0"
},
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "_id": "lodash.padstart@4.2.0",
- "_shasum": "e36f89fd6c3b5072219087695b765de83ec96985",
+ "_id": "lodash.padstart@4.5.0",
+ "_shasum": "3ea190f6734841c3364d279d11e056726b60a79a",
"_from": "lodash.padstart@>=4.1.0 <5.0.0",
- "_npmVersion": "2.14.18",
+ "_npmVersion": "2.15.5",
"_nodeVersion": "5.5.0",
"_npmUser": {
"name": "jdalton",
"email": "john.david.dalton@gmail.com"
},
"dist": {
- "shasum": "e36f89fd6c3b5072219087695b765de83ec96985",
- "tarball": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz"
+ "shasum": "3ea190f6734841c3364d279d11e056726b60a79a",
+ "tarball": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.5.0.tgz"
},
"maintainers": [
{
@@ -73,9 +74,10 @@
}
],
"_npmOperationalInternal": {
- "host": "packages-6-west.internal.npmjs.com",
- "tmp": "tmp/lodash.padstart-4.2.0.tgz_1455615522339_0.6710881665349007"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/lodash.padstart-4.5.0.tgz_1463062453524_0.18468116875737906"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz"
+ "_resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.5.0.tgz",
+ "readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.repeat/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.repeat/README.md
deleted file mode 100644
index 9d626e83f8c191..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.repeat/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash.repeat v4.0.2
-
-The [lodash](https://lodash.com/) method `_.repeat` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash.repeat
-```
-
-In Node.js:
-```js
-var repeat = require('lodash.repeat');
-```
-
-See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/4.0.2-npm-packages/lodash.repeat) for more details.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.repeat/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.repeat/index.js
deleted file mode 100644
index 5c290973169fec..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.repeat/index.js
+++ /dev/null
@@ -1,463 +0,0 @@
-/**
- * lodash 4.0.2 (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright jQuery Foundation and other contributors
- * Released under MIT license
- * Based on Underscore.js 1.8.3
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */
-var 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 detect unsigned integer values. */
-var reIsUint = /^(?:0|[1-9]\d*)$/;
-
-/** Built-in method references without a dependency on `root`. */
-var freeParseInt = parseInt;
-
-/**
- * Checks if `value` is a valid array-like index.
- *
- * @private
- * @param {*} value The value to check.
- * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
- * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
- */
-function isIndex(value, length) {
- value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
- length = length == null ? MAX_SAFE_INTEGER : length;
- return value > -1 && value % 1 == 0 && value < length;
-}
-
-/** 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 nativeFloor = Math.floor;
-
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
-
-/**
- * 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;
-}
-
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a
- * [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects
- * Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
-
-/**
- * Checks if the given arguments are from an iteratee call.
- *
- * @private
- * @param {*} value The potential iteratee value argument.
- * @param {*} index The potential iteratee index or key argument.
- * @param {*} object The potential iteratee object argument.
- * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
- * else `false`.
- */
-function isIterateeCall(value, index, object) {
- if (!isObject(object)) {
- return false;
- }
- var type = typeof index;
- if (type == 'number'
- ? (isArrayLike(object) && isIndex(index, object.length))
- : (type == 'string' && index in object)
- ) {
- return eq(object[index], value);
- }
- return false;
-}
-
-/**
- * Performs a
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'user': 'fred' };
- * var other = { 'user': 'fred' };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
-function eq(value, other) {
- return value === other || (value !== value && other !== other);
-}
-
-/**
- * Checks if `value` is array-like. A value is considered array-like if it's
- * not a function and has a `value.length` that's an integer greater than or
- * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- * @example
- *
- * _.isArrayLike([1, 2, 3]);
- * // => true
- *
- * _.isArrayLike(document.body.children);
- * // => true
- *
- * _.isArrayLike('abc');
- * // => true
- *
- * _.isArrayLike(_.noop);
- * // => false
- */
-function isArrayLike(value) {
- return value != null && isLength(getLength(value)) && !isFunction(value);
-}
-
-/**
- * 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 a valid array-like length.
- *
- * **Note:** This function is loosely based on
- * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length,
- * else `false`.
- * @example
- *
- * _.isLength(3);
- * // => true
- *
- * _.isLength(Number.MIN_VALUE);
- * // => false
- *
- * _.isLength(Infinity);
- * // => false
- *
- * _.isLength('3');
- * // => false
- */
-function isLength(value) {
- return typeof value == 'number' &&
- value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * 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 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);
- * // => 3
- *
- * _.toInteger(Number.MIN_VALUE);
- * // => 0
- *
- * _.toInteger(Infinity);
- * // => 1.7976931348623157e+308
- *
- * _.toInteger('3');
- * // => 3
- */
-function toInteger(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;
- }
- var remainder = value % 1;
- return value === value ? (remainder ? value - remainder : value) : 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);
- * // => 3
- *
- * _.toNumber(Number.MIN_VALUE);
- * // => 5e-324
- *
- * _.toNumber(Infinity);
- * // => Infinity
- *
- * _.toNumber('3');
- * // => 3
- */
-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);
-}
-
-/**
- * Repeats the given string `n` times.
- *
- * @static
- * @memberOf _
- * @since 3.0.0
- * @category String
- * @param {string} [string=''] The string to repeat.
- * @param {number} [n=1] The number of times to repeat the string.
- * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
- * @returns {string} Returns the repeated string.
- * @example
- *
- * _.repeat('*', 3);
- * // => '***'
- *
- * _.repeat('abc', 2);
- * // => 'abcabc'
- *
- * _.repeat('abc', 0);
- * // => ''
- */
-function repeat(string, n, guard) {
- if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {
- n = 1;
- } else {
- n = toInteger(n);
- }
- return baseRepeat(toString(string), n);
-}
-
-module.exports = repeat;
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/LICENSE b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/LICENSE
deleted file mode 100644
index bcbe13d67a9621..00000000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.tostring/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-The MIT License (MIT)
-
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-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/deps/npm/node_modules/npmlog/node_modules/gauge/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/package.json
index b8422d3d91994c..57652359b1f524 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/package.json
+++ b/deps/npm/node_modules/npmlog/node_modules/gauge/package.json
@@ -59,5 +59,6 @@
"tmp": "tmp/gauge-1.2.7.tgz_1455835409513_0.6293477965518832"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz"
+ "_resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
+ "readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/npmlog/package.json b/deps/npm/node_modules/npmlog/package.json
index 6e8c2abc5b6cfc..271d21e459cda8 100644
--- a/deps/npm/node_modules/npmlog/package.json
+++ b/deps/npm/node_modules/npmlog/package.json
@@ -6,12 +6,15 @@
},
"name": "npmlog",
"description": "logger for npm",
- "version": "2.0.3",
+ "version": "2.0.4",
"repository": {
"type": "git",
"url": "git+https://github.com/npm/npmlog.git"
},
"main": "log.js",
+ "files": [
+ "log.js"
+ ],
"scripts": {
"test": "tap test/*.js"
},
@@ -24,23 +27,23 @@
"tap": "~5.7.0"
},
"license": "ISC",
- "gitHead": "9dfe26296118ceb5443e76f347f256c35e7ca999",
+ "gitHead": "3732fd4ba1ca2d47c6102343e6c3fb7e66df7fe5",
"bugs": {
"url": "https://github.com/npm/npmlog/issues"
},
"homepage": "https://github.com/npm/npmlog#readme",
- "_id": "npmlog@2.0.3",
- "_shasum": "020f99351f0c02e399c674ba256e7c4d3b3dd298",
- "_from": "npmlog@2.0.3",
- "_npmVersion": "3.8.1",
- "_nodeVersion": "4.2.2",
+ "_id": "npmlog@2.0.4",
+ "_shasum": "98b52530f2514ca90d09ec5b22c8846722375692",
+ "_from": "npmlog@>=2.0.4 <2.1.0",
+ "_npmVersion": "3.9.1",
+ "_nodeVersion": "5.10.1",
"_npmUser": {
- "name": "iarna",
- "email": "me@re-becca.org"
+ "name": "zkat",
+ "email": "kat@sykosomatic.org"
},
"dist": {
- "shasum": "020f99351f0c02e399c674ba256e7c4d3b3dd298",
- "tarball": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.3.tgz"
+ "shasum": "98b52530f2514ca90d09ec5b22c8846722375692",
+ "tarball": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz"
},
"maintainers": [
{
@@ -54,12 +57,17 @@
{
"name": "othiym23",
"email": "ogd@aoaioxxysz.net"
+ },
+ {
+ "name": "zkat",
+ "email": "kat@sykosomatic.org"
}
],
"_npmOperationalInternal": {
- "host": "packages-13-west.internal.npmjs.com",
- "tmp": "tmp/npmlog-2.0.3.tgz_1458089035965_0.5096880353521556"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/npmlog-2.0.4.tgz_1463616637725_0.461703865788877"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.3.tgz"
+ "_resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
+ "readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/npmlog/test/basic.js b/deps/npm/node_modules/npmlog/test/basic.js
deleted file mode 100644
index 1887d3a2a8cd4e..00000000000000
--- a/deps/npm/node_modules/npmlog/test/basic.js
+++ /dev/null
@@ -1,235 +0,0 @@
-var tap = require('tap')
-var log = require('../')
-
-var result = []
-var logEvents = []
-var logInfoEvents = []
-var logPrefixEvents = []
-
-var util = require('util')
-
-var resultExpect =
-[ '\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[7msill\u001b[0m \u001b[0m\u001b[35msilly prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[34m\u001b[40mverb\u001b[0m \u001b[0m\u001b[35mverbose prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32minfo\u001b[0m \u001b[0m\u001b[35minfo prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32m\u001b[40mhttp\u001b[0m \u001b[0m\u001b[35mhttp prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[30m\u001b[43mWARN\u001b[0m \u001b[0m\u001b[35mwarn prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35merror prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32minfo\u001b[0m \u001b[0m\u001b[35minfo prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[32m\u001b[40mhttp\u001b[0m \u001b[0m\u001b[35mhttp prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[30m\u001b[43mWARN\u001b[0m \u001b[0m\u001b[35mwarn prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35merror prefix\u001b[0m x = {"foo":{"bar":"baz"}}\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m This is a longer\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m message, with some details\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m and maybe a stack.\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u001b[31m\u001b[40mERR!\u001b[0m \u001b[0m\u001b[35m404\u001b[0m \n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u0007noise\u001b[0m\u001b[35m\u001b[0m LOUD NOISES\n',
- '\u001b[0m\u001b[37m\u001b[40mnpm\u001b[0m \u001b[0m\u0007noise\u001b[0m \u001b[0m\u001b[35merror\u001b[0m erroring\n',
- '\u001b[0m' ]
-
-var logPrefixEventsExpect =
-[ { id: 2,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 9,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 16,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] } ]
-
-// should be the same.
-var logInfoEventsExpect = logPrefixEventsExpect
-
-var logEventsExpect =
-[ { id: 0,
- level: 'silly',
- prefix: 'silly prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 1,
- level: 'verbose',
- prefix: 'verbose prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 2,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 3,
- level: 'http',
- prefix: 'http prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 4,
- level: 'warn',
- prefix: 'warn prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 5,
- level: 'error',
- prefix: 'error prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 6,
- level: 'silent',
- prefix: 'silent prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 7,
- level: 'silly',
- prefix: 'silly prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 8,
- level: 'verbose',
- prefix: 'verbose prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 9,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 10,
- level: 'http',
- prefix: 'http prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 11,
- level: 'warn',
- prefix: 'warn prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 12,
- level: 'error',
- prefix: 'error prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 13,
- level: 'silent',
- prefix: 'silent prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 14,
- level: 'silly',
- prefix: 'silly prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 15,
- level: 'verbose',
- prefix: 'verbose prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 16,
- level: 'info',
- prefix: 'info prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 17,
- level: 'http',
- prefix: 'http prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 18,
- level: 'warn',
- prefix: 'warn prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 19,
- level: 'error',
- prefix: 'error prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 20,
- level: 'silent',
- prefix: 'silent prefix',
- message: 'x = {"foo":{"bar":"baz"}}',
- messageRaw: [ 'x = %j', { foo: { bar: 'baz' } } ] },
- { id: 21,
- level: 'error',
- prefix: '404',
- message: 'This is a longer\nmessage, with some details\nand maybe a stack.\n',
- messageRaw: [ 'This is a longer\nmessage, with some details\nand maybe a stack.\n' ] },
- { id: 22,
- level: 'noise',
- prefix: false,
- message: 'LOUD NOISES',
- messageRaw: [ 'LOUD NOISES' ] },
- { id: 23,
- level: 'noise',
- prefix: 'error',
- message: 'erroring',
- messageRaw: [ 'erroring' ] } ]
-
-var Stream = require('stream').Stream
-var s = new Stream()
-s.write = function (m) {
- result.push(m)
-}
-
-s.writable = true
-s.isTTY = true
-s.end = function () {}
-
-log.stream = s
-
-log.heading = 'npm'
-
-
-tap.test('basic', function (t) {
- log.on('log', logEvents.push.bind(logEvents))
- log.on('log.info', logInfoEvents.push.bind(logInfoEvents))
- log.on('info prefix', logPrefixEvents.push.bind(logPrefixEvents))
-
- console.error('log.level=silly')
- log.level = 'silly'
- log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
- log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
- log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
- log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
- log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
- log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
- log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
-
- console.error('log.level=silent')
- log.level = 'silent'
- log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
- log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
- log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
- log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
- log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
- log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
- log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
-
- console.error('log.level=info')
- log.level = 'info'
- log.silly('silly prefix', 'x = %j', {foo:{bar:'baz'}})
- log.verbose('verbose prefix', 'x = %j', {foo:{bar:'baz'}})
- log.info('info prefix', 'x = %j', {foo:{bar:'baz'}})
- log.http('http prefix', 'x = %j', {foo:{bar:'baz'}})
- log.warn('warn prefix', 'x = %j', {foo:{bar:'baz'}})
- log.error('error prefix', 'x = %j', {foo:{bar:'baz'}})
- log.silent('silent prefix', 'x = %j', {foo:{bar:'baz'}})
- log.error('404', 'This is a longer\n'+
- 'message, with some details\n'+
- 'and maybe a stack.\n')
- log.addLevel('noise', 10000, {beep: true})
- log.noise(false, 'LOUD NOISES')
- log.noise('error', 'erroring')
-
- t.deepEqual(result.join('').trim(), resultExpect.join('').trim(), 'result')
- t.deepEqual(log.record, logEventsExpect, 'record')
- t.deepEqual(logEvents, logEventsExpect, 'logEvents')
- t.deepEqual(logInfoEvents, logInfoEventsExpect, 'logInfoEvents')
- t.deepEqual(logPrefixEvents, logPrefixEventsExpect, 'logPrefixEvents')
-
- t.end()
-})
diff --git a/deps/npm/node_modules/npmlog/test/progress.js b/deps/npm/node_modules/npmlog/test/progress.js
deleted file mode 100644
index 68dca2afc73575..00000000000000
--- a/deps/npm/node_modules/npmlog/test/progress.js
+++ /dev/null
@@ -1,131 +0,0 @@
-'use strict'
-
-var test = require('tap').test
-var Progress = require('are-we-there-yet')
-var log = require('../log.js')
-
-var actions = []
-log.gauge = {
- enable: function () {
- actions.push(['enable'])
- },
- disable: function () {
- actions.push(['disable'])
- },
- hide: function () {
- actions.push(['hide'])
- },
- show: function (name, completed) {
- actions.push(['show', name, completed])
- },
- pulse: function (name) {
- actions.push(['pulse', name])
- }
-}
-
-function didActions(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})
- }
- }
- t.is(actions.length, output.length, msg)
- tests.forEach(function (test) {
- t.is(actions[test.cmd] ? actions[test.cmd][test.arg] : null,
- output[test.cmd][test.arg],
- msg + ': ' + output[test.cmd] + (test.arg ? ' arg #'+test.arg : ''))
- })
- actions = []
-}
-
-function resetTracker() {
- log.disableProgress()
- log.tracker = new Progress.TrackerGroup()
- log.enableProgress()
- actions = []
-}
-
-test('enableProgress', function (t) {
- t.plan(6)
- resetTracker()
- log.disableProgress()
- actions = []
- log.enableProgress()
- didActions(t, 'enableProgress', [ [ 'enable' ], [ 'show', undefined, 0 ] ])
- log.enableProgress()
- didActions(t, 'enableProgress again', [])
-})
-
-test('disableProgress', function (t) {
- t.plan(4)
- resetTracker()
- log.disableProgress()
- didActions(t, 'disableProgress', [ [ 'hide' ], [ 'disable' ] ])
- log.disableProgress()
- didActions(t, 'disableProgress again', [])
-})
-
-test('showProgress', function (t) {
- t.plan(5)
- resetTracker()
- log.disableProgress()
- actions = []
- log.showProgress('foo')
- didActions(t, 'showProgress disabled', [])
- log.enableProgress()
- actions = []
- log.showProgress('foo')
- didActions(t, 'showProgress', [ [ 'show', 'foo', 0 ] ])
-})
-
-test('clearProgress', function (t) {
- t.plan(3)
- resetTracker()
- log.clearProgress()
- didActions(t, 'clearProgress', [ [ 'hide' ] ])
- log.disableProgress()
- actions = []
- log.clearProgress()
- didActions(t, 'clearProgress disabled', [ ])
-})
-
-test("newItem", function (t) {
- t.plan(12)
- resetTracker()
- actions = []
- var a = log.newItem("test", 10)
- didActions(t, "newItem", [ [ 'show', 'test', 0 ] ])
- a.completeWork(5)
- didActions(t, "newItem:completeWork", [ [ 'show', 'test', 0.5 ] ])
- a.finish()
- didActions(t, "newItem:finish", [ [ 'show', 'test', 1 ] ])
-})
-
-// test that log objects proxy through. And test that completion status filters up
-test("newGroup", function (t) {
- t.plan(23)
- resetTracker()
- var a = log.newGroup("newGroup")
- didActions(t, 'newGroup', [[ 'show', 'newGroup', 0 ]])
- a.warn("test", "this is a test")
- didActions(t, "newGroup:warn", [ [ 'pulse', 'test' ], [ 'hide' ], [ 'show', undefined, 0 ] ])
- var b = a.newItem("newGroup2", 10)
- didActions(t, "newGroup:newItem", [ [ 'show', 'newGroup2', 0 ] ])
- b.completeWork(5)
- didActions(t, "newGroup:completeWork", [ [ 'show', 'newGroup2', 0.5] ])
- a.finish()
- didActions(t, "newGroup:finish", [ [ 'show', 'newGroup', 1 ] ])
-})
-
-test("newStream", function (t) {
- t.plan(13)
- resetTracker()
- var a = log.newStream("newStream", 10)
- didActions(t, "newStream", [ [ 'show', 'newStream', 0 ] ])
- a.write("abcde")
- didActions(t, "newStream", [ [ 'show', 'newStream', 0.5 ] ])
- a.write("fghij")
- didActions(t, "newStream", [ [ 'show', 'newStream', 1 ] ])
- t.is(log.tracker.completed(), 1, "Overall completion")
-})
diff --git a/deps/npm/node_modules/readable-stream/.npmignore b/deps/npm/node_modules/readable-stream/.npmignore
index 38344f87a62766..265ff739e071cd 100644
--- a/deps/npm/node_modules/readable-stream/.npmignore
+++ b/deps/npm/node_modules/readable-stream/.npmignore
@@ -2,4 +2,7 @@ build/
test/
examples/
fs.js
-zlib.js
\ No newline at end of file
+zlib.js
+.zuul.yml
+.nyc_output
+coverage
diff --git a/deps/npm/node_modules/readable-stream/README.md b/deps/npm/node_modules/readable-stream/README.md
index c4e4a34a7ae0fa..ae9e3363c8e8a3 100644
--- a/deps/npm/node_modules/readable-stream/README.md
+++ b/deps/npm/node_modules/readable-stream/README.md
@@ -1,6 +1,6 @@
# readable-stream
-***Node-core v5.9.1 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
+***Node-core v6.1.0 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/)
@@ -16,7 +16,7 @@ npm install --save readable-stream
***Node-core streams for userland***
This package is a mirror of the Streams2 and Streams3 implementations in
-Node-core, including [documentation](doc/stream.markdown).
+Node-core, including [documentation](doc/stream.md).
If you want to guarantee a stable streams base, regardless of what version of
Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html).
diff --git a/deps/npm/node_modules/readable-stream/doc/stream.markdown b/deps/npm/node_modules/readable-stream/doc/stream.md
similarity index 97%
rename from deps/npm/node_modules/readable-stream/doc/stream.markdown
rename to deps/npm/node_modules/readable-stream/doc/stream.md
index ecf997a3f5a14f..c907ca0e7b726a 100644
--- a/deps/npm/node_modules/readable-stream/doc/stream.markdown
+++ b/deps/npm/node_modules/readable-stream/doc/stream.md
@@ -160,7 +160,8 @@ Emitted when the stream and any of its underlying resources (a file
descriptor, for example) have been closed. The event indicates that
no more events will be emitted, and no further computation will occur.
-Not all streams will emit the `'close'` event.
+Not all streams will emit the `'close'` event as the `'close'` event is
+optional.
#### Event: 'data'
@@ -201,7 +202,7 @@ readable.on('end', () => {
#### Event: 'error'
-* {Error Object}
+* {Error}
Emitted if there was an error receiving data.
@@ -490,7 +491,7 @@ function parseHeader(stream, callback) {
var split = str.split(/\n\n/);
header += split.shift();
var remaining = split.join('\n\n');
- var buf = new Buffer(remaining, 'utf8');
+ var buf = Buffer.from(remaining, 'utf8');
if (buf.length)
stream.unshift(buf);
stream.removeListener('error', callback);
@@ -573,6 +574,15 @@ Examples of writable streams include:
* [child process stdin][]
* [`process.stdout`][], [`process.stderr`][]
+#### Event: 'close'
+
+Emitted when the stream and any of its underlying resources (a file descriptor,
+for example) have been closed. The event indicates that no more events will be
+emitted, and no further computation will occur.
+
+Not all streams will emit the `'close'` event as the `'close'` event is
+optional.
+
#### Event: 'drain'
If a [`stream.write(chunk)`][stream-write] call returns `false`, then the
@@ -695,6 +705,7 @@ file.end('world!');
#### writable.setDefaultEncoding(encoding)
* `encoding` {String} The new default encoding
+* Return: `this`
Sets the default encoding for a writable stream.
@@ -985,7 +996,7 @@ Counter.prototype._read = function() {
this.push(null);
else {
var str = '' + i;
- var buf = new Buffer(str, 'ascii');
+ var buf = Buffer.from(str, 'ascii');
this.push(buf);
}
};
@@ -1717,30 +1728,30 @@ horribly wrong.
[`'end'`]: #stream_event_end
[`'finish'`]: #stream_event_finish
[`'readable'`]: #stream_event_readable
-[`buf.toString(encoding)`]: https://nodejs.org/docs/v5.9.1/api/buffer.html#buffer_buf_tostring_encoding_start_end
-[`EventEmitter`]: https://nodejs.org/docs/v5.9.1/api/events.html#events_class_eventemitter
-[`process.stderr`]: https://nodejs.org/docs/v5.9.1/api/process.html#process_process_stderr
-[`process.stdin`]: https://nodejs.org/docs/v5.9.1/api/process.html#process_process_stdin
-[`process.stdout`]: https://nodejs.org/docs/v5.9.1/api/process.html#process_process_stdout
+[`buf.toString(encoding)`]: https://nodejs.org/docs/v6.1.0/api/buffer.html#buffer_buf_tostring_encoding_start_end
+[`EventEmitter`]: https://nodejs.org/docs/v6.1.0/api/events.html#events_class_eventemitter
+[`process.stderr`]: https://nodejs.org/docs/v6.1.0/api/process.html#process_process_stderr
+[`process.stdin`]: https://nodejs.org/docs/v6.1.0/api/process.html#process_process_stdin
+[`process.stdout`]: https://nodejs.org/docs/v6.1.0/api/process.html#process_process_stdout
[`stream.cork()`]: #stream_writable_cork
[`stream.pipe()`]: #stream_readable_pipe_destination_options
[`stream.uncork()`]: #stream_writable_uncork
[`stream.unpipe()`]: #stream_readable_unpipe_destination
[`stream.wrap()`]: #stream_readable_wrap_stream
-[`tls.CryptoStream`]: https://nodejs.org/docs/v5.9.1/api/tls.html#tls_class_cryptostream
-[`util.inherits()`]: https://nodejs.org/docs/v5.9.1/api/util.html#util_util_inherits_constructor_superconstructor
+[`tls.CryptoStream`]: https://nodejs.org/docs/v6.1.0/api/tls.html#tls_class_cryptostream
+[`util.inherits()`]: https://nodejs.org/docs/v6.1.0/api/util.html#util_util_inherits_constructor_superconstructor
[API for Stream Consumers]: #stream_api_for_stream_consumers
[API for Stream Implementors]: #stream_api_for_stream_implementors
-[child process stdin]: https://nodejs.org/docs/v5.9.1/api/child_process.html#child_process_child_stdin
-[child process stdout and stderr]: https://nodejs.org/docs/v5.9.1/api/child_process.html#child_process_child_stdout
+[child process stdin]: https://nodejs.org/docs/v6.1.0/api/child_process.html#child_process_child_stdin
+[child process stdout and stderr]: https://nodejs.org/docs/v6.1.0/api/child_process.html#child_process_child_stdout
[Compatibility]: #stream_compatibility_with_older_node_js_versions
[crypto]: crypto.html
[Duplex]: #stream_class_stream_duplex
-[fs read streams]: https://nodejs.org/docs/v5.9.1/api/fs.html#fs_class_fs_readstream
-[fs write streams]: https://nodejs.org/docs/v5.9.1/api/fs.html#fs_class_fs_writestream
-[HTTP requests, on the client]: https://nodejs.org/docs/v5.9.1/api/http.html#http_class_http_clientrequest
-[HTTP responses, on the server]: https://nodejs.org/docs/v5.9.1/api/http.html#http_class_http_serverresponse
-[http-incoming-message]: https://nodejs.org/docs/v5.9.1/api/http.html#http_class_http_incomingmessage
+[fs read streams]: https://nodejs.org/docs/v6.1.0/api/fs.html#fs_class_fs_readstream
+[fs write streams]: https://nodejs.org/docs/v6.1.0/api/fs.html#fs_class_fs_writestream
+[HTTP requests, on the client]: https://nodejs.org/docs/v6.1.0/api/http.html#http_class_http_clientrequest
+[HTTP responses, on the server]: https://nodejs.org/docs/v6.1.0/api/http.html#http_class_http_serverresponse
+[http-incoming-message]: https://nodejs.org/docs/v6.1.0/api/http.html#http_class_http_incomingmessage
[Object mode]: #stream_object_mode
[Readable]: #stream_class_stream_readable
[SimpleProtocol v2]: #stream_example_simpleprotocol_parser_v2
@@ -1755,7 +1766,7 @@ horribly wrong.
[stream-read]: #stream_readable_read_size
[stream-resume]: #stream_readable_resume
[stream-write]: #stream_writable_write_chunk_encoding_callback
-[TCP sockets]: https://nodejs.org/docs/v5.9.1/api/net.html#net_class_net_socket
+[TCP sockets]: https://nodejs.org/docs/v6.1.0/api/net.html#net_class_net_socket
[Transform]: #stream_class_stream_transform
[Writable]: #stream_class_stream_writable
[zlib]: zlib.html
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_readable.js b/deps/npm/node_modules/readable-stream/lib/_stream_readable.js
index 54a9d5c553d69e..79914fa684cbb1 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_readable.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_readable.js
@@ -10,15 +10,11 @@ var processNextTick = require('process-nextick-args');
var isArray = require('isarray');
/**/
-/**/
-var Buffer = require('buffer').Buffer;
-/**/
-
Readable.ReadableState = ReadableState;
-var EE = require('events');
-
/**/
+var EE = require('events').EventEmitter;
+
var EElistenerCount = function (emitter, type) {
return emitter.listeners(type).length;
};
@@ -36,6 +32,9 @@ var Stream;
/**/
var Buffer = require('buffer').Buffer;
+/**/
+var bufferShim = require('buffer-shims');
+/**/
/**/
var util = require('core-util-is');
@@ -44,7 +43,7 @@ util.inherits = require('inherits');
/**/
var debugUtil = require('util');
-var debug = undefined;
+var debug = void 0;
if (debugUtil && debugUtil.debuglog) {
debug = debugUtil.debuglog('stream');
} else {
@@ -56,6 +55,19 @@ var StringDecoder;
util.inherits(Readable, Stream);
+var hasPrependListener = typeof EE.prototype.prependListener === 'function';
+
+function prependListener(emitter, event, fn) {
+ if (hasPrependListener) return emitter.prependListener(event, fn);
+
+ // This is a brutally ugly hack to make sure that our error handler
+ // is attached before any userland ones. NEVER DO THIS. This is here
+ // only because this code needs to continue to work with older versions
+ // of Node.js that do not include the prependListener() method. The goal
+ // is to eventually remove this hack.
+ if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
+}
+
var Duplex;
function ReadableState(options, stream) {
Duplex = Duplex || require('./_stream_duplex');
@@ -149,7 +161,7 @@ Readable.prototype.push = function (chunk, encoding) {
if (!state.objectMode && typeof chunk === 'string') {
encoding = encoding || state.defaultEncoding;
if (encoding !== state.encoding) {
- chunk = new Buffer(chunk, encoding);
+ chunk = bufferShim.from(chunk, encoding);
encoding = '';
}
}
@@ -179,8 +191,8 @@ function readableAddChunk(stream, state, chunk, encoding, addToFront) {
var e = new Error('stream.push() after EOF');
stream.emit('error', e);
} else if (state.endEmitted && addToFront) {
- var e = new Error('stream.unshift() after end event');
- stream.emit('error', e);
+ var _e = new Error('stream.unshift() after end event');
+ stream.emit('error', _e);
} else {
var skipAdd;
if (state.decoder && !addToFront && !encoding) {
@@ -533,7 +545,8 @@ Readable.prototype.pipe = function (dest, pipeOpts) {
// If the user unpiped during `dest.write()`, it is possible
// to get stuck in a permanently paused state if that write
// also returned false.
- if (state.pipesCount === 1 && state.pipes[0] === dest && src.listenerCount('data') === 1 && !cleanedUp) {
+ // => Check whether `dest` is still a piping destination.
+ if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
debug('false write response, pause', src._readableState.awaitDrain);
src._readableState.awaitDrain++;
}
@@ -549,9 +562,9 @@ Readable.prototype.pipe = function (dest, pipeOpts) {
dest.removeListener('error', onerror);
if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
}
- // This is a brutally ugly hack to make sure that our error handler
- // is attached before any userland ones. NEVER DO THIS.
- if (!dest._events || !dest._events.error) dest.on('error', onerror);else if (isArray(dest._events.error)) dest._events.error.unshift(onerror);else dest._events.error = [onerror, dest._events.error];
+
+ // Make sure our error handler is attached before userland ones.
+ prependListener(dest, 'error', onerror);
// Both close and finish should trigger unpipe, but only once.
function onclose() {
@@ -825,16 +838,16 @@ function fromList(n, state) {
} else {
// complex case.
// we have enough to cover it, but it spans past the first buffer.
- if (stringMode) ret = '';else ret = new Buffer(n);
+ if (stringMode) ret = '';else ret = bufferShim.allocUnsafe(n);
var c = 0;
for (var i = 0, l = list.length; i < l && c < n; i++) {
- var buf = list[0];
- var cpy = Math.min(n - c, buf.length);
+ var _buf = list[0];
+ var cpy = Math.min(n - c, _buf.length);
- if (stringMode) ret += buf.slice(0, cpy);else buf.copy(ret, c, 0, cpy);
+ if (stringMode) ret += _buf.slice(0, cpy);else _buf.copy(ret, c, 0, cpy);
- if (cpy < buf.length) list[0] = buf.slice(cpy);else list.shift();
+ if (cpy < _buf.length) list[0] = _buf.slice(cpy);else list.shift();
c += cpy;
}
@@ -849,7 +862,7 @@ function endReadable(stream) {
// If we get here before consuming all the bytes, then that is a
// bug in node. Should never happen.
- if (state.length > 0) throw new Error('endReadable called on non-empty stream');
+ if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
if (!state.endEmitted) {
state.ended = true;
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_transform.js b/deps/npm/node_modules/readable-stream/lib/_stream_transform.js
index 625cdc17698059..dbc996ede62363 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_transform.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_transform.js
@@ -134,7 +134,7 @@ Transform.prototype.push = function (chunk, encoding) {
// an error, then that'll put the hurt on the whole operation. If you
// never call cb(), then you'll never get another chunk.
Transform.prototype._transform = function (chunk, encoding, cb) {
- throw new Error('not implemented');
+ throw new Error('Not implemented');
};
Transform.prototype._write = function (chunk, encoding, cb) {
@@ -172,9 +172,9 @@ function done(stream, er) {
var ws = stream._writableState;
var ts = stream._transformState;
- if (ws.length) throw new Error('calling transform done when ws.length != 0');
+ if (ws.length) throw new Error('Calling transform done when ws.length != 0');
- if (ts.transforming) throw new Error('calling transform done when still transforming');
+ if (ts.transforming) throw new Error('Calling transform done when still transforming');
return stream.push(null);
}
\ No newline at end of file
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_writable.js b/deps/npm/node_modules/readable-stream/lib/_stream_writable.js
index 95916c992a9507..ed5efcbd203208 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_writable.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_writable.js
@@ -14,10 +14,6 @@ var processNextTick = require('process-nextick-args');
var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
/**/
-/**/
-var Buffer = require('buffer').Buffer;
-/**/
-
Writable.WritableState = WritableState;
/**/
@@ -43,6 +39,9 @@ var Stream;
/**/
var Buffer = require('buffer').Buffer;
+/**/
+var bufferShim = require('buffer-shims');
+/**/
util.inherits(Writable, Stream);
@@ -146,10 +145,9 @@ function WritableState(options, stream) {
// count buffered requests
this.bufferedRequestCount = 0;
- // create the two objects needed to store the corked requests
- // they are not a linked list, as no new elements are inserted in there
+ // allocate the first CorkedRequest, there is always
+ // one allocated and free to use, and we maintain at most two
this.corkedRequestsFree = new CorkedRequest(this);
- this.corkedRequestsFree.next = new CorkedRequest(this);
}
WritableState.prototype.getBuffer = function writableStateGetBuffer() {
@@ -196,7 +194,7 @@ function Writable(options) {
// Otherwise people can pipe Writable streams, which is just wrong.
Writable.prototype.pipe = function () {
- this.emit('error', new Error('Cannot pipe. Not readable.'));
+ this.emit('error', new Error('Cannot pipe, not readable'));
};
function writeAfterEnd(stream, cb) {
@@ -213,9 +211,16 @@ function writeAfterEnd(stream, cb) {
// how many bytes or characters.
function validChunk(stream, state, chunk, cb) {
var valid = true;
-
- if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
- var er = new TypeError('Invalid non-string/buffer chunk');
+ var er = false;
+ // Always throw error if a null is written
+ // if we are not in object mode then throw
+ // if it is not a buffer, string, or undefined.
+ if (chunk === null) {
+ er = new TypeError('May not write null values to stream');
+ } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ if (er) {
stream.emit('error', er);
processNextTick(cb, er);
valid = false;
@@ -265,11 +270,12 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
if (typeof encoding === 'string') encoding = encoding.toLowerCase();
if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
this._writableState.defaultEncoding = encoding;
+ return this;
};
function decodeChunk(state, chunk, encoding) {
if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
- chunk = new Buffer(chunk, encoding);
+ chunk = bufferShim.from(chunk, encoding);
}
return chunk;
}
@@ -392,12 +398,16 @@ function clearBuffer(stream, state) {
doWrite(stream, state, true, state.length, buffer, '', holder.finish);
- // doWrite is always async, defer these to save a bit of time
+ // doWrite is almost always async, defer these to save a bit of time
// as the hot path ends with doWrite
state.pendingcb++;
state.lastBufferedRequest = null;
- state.corkedRequestsFree = holder.next;
- holder.next = null;
+ if (holder.next) {
+ state.corkedRequestsFree = holder.next;
+ holder.next = null;
+ } else {
+ state.corkedRequestsFree = new CorkedRequest(state);
+ }
} else {
// Slow case, write chunks one-by-one
while (entry) {
diff --git a/deps/npm/node_modules/readable-stream/node_modules/buffer-shims/index.js b/deps/npm/node_modules/readable-stream/node_modules/buffer-shims/index.js
new file mode 100644
index 00000000000000..1cab4c05e1ac2a
--- /dev/null
+++ b/deps/npm/node_modules/readable-stream/node_modules/buffer-shims/index.js
@@ -0,0 +1,108 @@
+'use strict';
+
+var buffer = require('buffer');
+var Buffer = buffer.Buffer;
+var SlowBuffer = buffer.SlowBuffer;
+var MAX_LEN = buffer.kMaxLength || 2147483647;
+exports.alloc = function alloc(size, fill, encoding) {
+ if (typeof Buffer.alloc === 'function') {
+ return Buffer.alloc(size, fill, encoding);
+ }
+ if (typeof encoding === 'number') {
+ throw new TypeError('encoding must not be number');
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size > MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ var enc = encoding;
+ var _fill = fill;
+ if (_fill === undefined) {
+ enc = undefined;
+ _fill = 0;
+ }
+ var buf = new Buffer(size);
+ if (typeof _fill === 'string') {
+ var fillBuf = new Buffer(_fill, enc);
+ var flen = fillBuf.length;
+ var i = -1;
+ while (++i < size) {
+ buf[i] = fillBuf[i % flen];
+ }
+ } else {
+ buf.fill(_fill);
+ }
+ return buf;
+}
+exports.allocUnsafe = function allocUnsafe(size) {
+ if (typeof Buffer.allocUnsafe === 'function') {
+ return Buffer.allocUnsafe(size);
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size > MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ return new Buffer(size);
+}
+exports.from = function from(value, encodingOrOffset, length) {
+ if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
+ return Buffer.from(value, encodingOrOffset, length);
+ }
+ if (typeof value === 'number') {
+ throw new TypeError('"value" argument must not be a number');
+ }
+ if (typeof value === 'string') {
+ return new Buffer(value, encodingOrOffset);
+ }
+ if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
+ var offset = encodingOrOffset;
+ if (arguments.length === 1) {
+ return new Buffer(value);
+ }
+ if (typeof offset === 'undefined') {
+ offset = 0;
+ }
+ var len = length;
+ if (typeof len === 'undefined') {
+ len = value.byteLength - offset;
+ }
+ if (offset >= value.byteLength) {
+ throw new RangeError('\'offset\' is out of bounds');
+ }
+ if (len > value.byteLength - offset) {
+ throw new RangeError('\'length\' is out of bounds');
+ }
+ return new Buffer(value.slice(offset, offset + len));
+ }
+ if (Buffer.isBuffer(value)) {
+ var out = new Buffer(value.length);
+ value.copy(out, 0, 0, value.length);
+ return out;
+ }
+ if (value) {
+ if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
+ return new Buffer(value);
+ }
+ if (value.type === 'Buffer' && Array.isArray(value.data)) {
+ return new Buffer(value.data);
+ }
+ }
+
+ throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
+}
+exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
+ if (typeof Buffer.allocUnsafeSlow === 'function') {
+ return Buffer.allocUnsafeSlow(size);
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size >= MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ return new SlowBuffer(size);
+}
diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/LICENSE-MIT b/deps/npm/node_modules/readable-stream/node_modules/buffer-shims/license.md
similarity index 79%
rename from deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/LICENSE-MIT
rename to deps/npm/node_modules/readable-stream/node_modules/buffer-shims/license.md
index b576e8d484df60..01cfaefe2fcaff 100644
--- a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/LICENSE-MIT
+++ b/deps/npm/node_modules/readable-stream/node_modules/buffer-shims/license.md
@@ -1,6 +1,4 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Jon Schlinkert
+# Copyright (c) 2016 Calvin Metcalf
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -9,13 +7,13 @@ 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 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
+**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.
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.**
diff --git a/deps/npm/node_modules/readable-stream/node_modules/buffer-shims/package.json b/deps/npm/node_modules/readable-stream/node_modules/buffer-shims/package.json
new file mode 100644
index 00000000000000..fe079c9657d9fc
--- /dev/null
+++ b/deps/npm/node_modules/readable-stream/node_modules/buffer-shims/package.json
@@ -0,0 +1,51 @@
+{
+ "name": "buffer-shims",
+ "version": "1.0.0",
+ "description": "some shims for node buffers",
+ "main": "index.js",
+ "scripts": {
+ "test": "tape test/*.js"
+ },
+ "files": [
+ "index.js"
+ ],
+ "license": "MIT",
+ "devDependencies": {
+ "tape": "^4.5.1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/calvinmetcalf/buffer-shims.git"
+ },
+ "gitHead": "ea89b3857ab5b8203957922a84e9a48cf4c47e0a",
+ "bugs": {
+ "url": "https://github.com/calvinmetcalf/buffer-shims/issues"
+ },
+ "_id": "buffer-shims@1.0.0",
+ "_shasum": "9978ce317388c649ad8793028c3477ef044a8b51",
+ "_from": "buffer-shims@>=1.0.0 <2.0.0",
+ "_npmVersion": "3.8.6",
+ "_nodeVersion": "5.11.0",
+ "_npmUser": {
+ "name": "cwmma",
+ "email": "calvin.metcalf@gmail.com"
+ },
+ "dist": {
+ "shasum": "9978ce317388c649ad8793028c3477ef044a8b51",
+ "tarball": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
+ },
+ "maintainers": [
+ {
+ "name": "cwmma",
+ "email": "calvin.metcalf@gmail.com"
+ }
+ ],
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/buffer-shims-1.0.0.tgz_1462560889323_0.8640750856138766"
+ },
+ "directories": {},
+ "_resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "readme": "ERROR: No README data found!",
+ "homepage": "https://github.com/calvinmetcalf/buffer-shims#readme"
+}
diff --git a/deps/npm/node_modules/readable-stream/node_modules/buffer-shims/readme.md b/deps/npm/node_modules/readable-stream/node_modules/buffer-shims/readme.md
new file mode 100644
index 00000000000000..7ea6475e284e8e
--- /dev/null
+++ b/deps/npm/node_modules/readable-stream/node_modules/buffer-shims/readme.md
@@ -0,0 +1,21 @@
+buffer-shims
+===
+
+functions to make sure the new buffer methods work in older browsers.
+
+```js
+var bufferShim = require('buffer-shims');
+bufferShim.from('foo');
+bufferShim.alloc(9, 'cafeface', 'hex');
+bufferShim.allocUnsafe(15);
+bufferShim.allocUnsafeSlow(21);
+```
+
+should just use the original in newer nodes and on older nodes uses fallbacks.
+
+Known Issues
+===
+- this does not patch the buffer object, only the constructor stuff
+- it's actually a polyfill
+
+![](https://i.imgur.com/zxII3jJ.gif)
diff --git a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/package.json b/deps/npm/node_modules/readable-stream/node_modules/core-util-is/package.json
index ddd227e64f99f4..19fb85922bc035 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/package.json
+++ b/deps/npm/node_modules/readable-stream/node_modules/core-util-is/package.json
@@ -46,7 +46,7 @@
},
"dist": {
"shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7",
- "tarball": "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+ "tarball": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
},
"maintainers": [
{
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json b/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json
index 703ea43cb4d5ac..e86d232e6090f3 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json
+++ b/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json
@@ -57,7 +57,7 @@
},
"dist": {
"shasum": "bb935d48582cba168c06834957a54a3e07124f11",
- "tarball": "http://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ "tarball": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
},
"maintainers": [
{
diff --git a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/package.json b/deps/npm/node_modules/readable-stream/node_modules/string_decoder/package.json
index 0364d54ba46af6..8e8b77db7b42cd 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/package.json
+++ b/deps/npm/node_modules/readable-stream/node_modules/string_decoder/package.json
@@ -46,7 +46,7 @@
],
"dist": {
"shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94",
- "tarball": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+ "tarball": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
diff --git a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json b/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json
index ae0c70f6c633f1..a018135492d81f 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json
+++ b/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json
@@ -46,7 +46,7 @@
],
"dist": {
"shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf",
- "tarball": "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ "tarball": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
diff --git a/deps/npm/node_modules/readable-stream/package.json b/deps/npm/node_modules/readable-stream/package.json
index 745c4d8ef25272..af4c325431dd09 100644
--- a/deps/npm/node_modules/readable-stream/package.json
+++ b/deps/npm/node_modules/readable-stream/package.json
@@ -1,9 +1,10 @@
{
"name": "readable-stream",
- "version": "2.1.2",
+ "version": "2.1.4",
"description": "Streams3, a user-land copy of the stream library from Node.js",
"main": "readable.js",
"dependencies": {
+ "buffer-shims": "^1.0.0",
"core-util-is": "~1.0.0",
"inherits": "~2.0.1",
"isarray": "~1.0.0",
@@ -12,15 +13,17 @@
"util-deprecate": "~1.0.1"
},
"devDependencies": {
+ "assert": "~1.4.0",
"nyc": "^6.4.0",
"tap": "~0.7.1",
"tape": "~4.5.1",
- "zuul": "~3.9.0"
+ "zuul": "~3.9.0",
+ "zuul-ngrok": "^4.0.0"
},
"scripts": {
"test": "tap test/parallel/*.js test/ours/*.js",
"browser": "npm run write-zuul && zuul -- test/browser.js",
- "write-zuul": "printf \"ui: tape\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml",
+ "write-zuul": "printf \"ui: tape\ntunnel: ngrok\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml",
"local": "zuul --local -- test/browser.js",
"cover": "nyc npm test",
"report": "nyc report --reporter=lcov"
@@ -43,22 +46,22 @@
]
},
"license": "MIT",
- "gitHead": "06754eed4f2b882b589f8667ecc8aadcf916045f",
+ "gitHead": "7752832fba237929388dea6c96911a0a6379abfc",
"bugs": {
"url": "https://github.com/nodejs/readable-stream/issues"
},
- "_id": "readable-stream@2.1.2",
- "_shasum": "a92b6e854f13ff0685e4ca7dce6cf73d3e319422",
- "_from": "readable-stream@2.1.2",
- "_npmVersion": "3.8.3",
- "_nodeVersion": "5.10.1",
+ "_id": "readable-stream@2.1.4",
+ "_shasum": "70b9791c6fcb8480db44bd155a0f6bb58f172468",
+ "_from": "readable-stream@>=2.1.4 <2.2.0",
+ "_npmVersion": "3.8.6",
+ "_nodeVersion": "5.11.0",
"_npmUser": {
"name": "cwmma",
"email": "calvin.metcalf@gmail.com"
},
"dist": {
- "shasum": "a92b6e854f13ff0685e4ca7dce6cf73d3e319422",
- "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.2.tgz"
+ "shasum": "70b9791c6fcb8480db44bd155a0f6bb58f172468",
+ "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.4.tgz"
},
"maintainers": [
{
@@ -80,10 +83,10 @@
],
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/readable-stream-2.1.2.tgz_1461933796258_0.5075750169344246"
+ "tmp": "tmp/readable-stream-2.1.4.tgz_1463679605032_0.6917394688352942"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.2.tgz",
+ "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.4.tgz",
"readme": "ERROR: No README data found!",
"homepage": "https://github.com/nodejs/readable-stream#readme"
}
diff --git a/deps/npm/node_modules/which/CHANGELOG.md b/deps/npm/node_modules/which/CHANGELOG.md
index 03879364f87804..56106119e9a645 100644
--- a/deps/npm/node_modules/which/CHANGELOG.md
+++ b/deps/npm/node_modules/which/CHANGELOG.md
@@ -1,6 +1,15 @@
# Changes
+## v1.2.10
+
+* Use env.PATH only, not env.Path
+
+## v1.2.9
+
+* fix for paths starting with ../
+* Remove unused `is-absolute` module
+
## v1.2.8
* bullet items in changelog that contain (but don't start with) #
diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/LICENSE b/deps/npm/node_modules/which/node_modules/is-absolute/LICENSE
deleted file mode 100644
index 904ab073b70946..00000000000000
--- a/deps/npm/node_modules/which/node_modules/is-absolute/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, Jon Schlinkert.Copyright (c) 2009-2015, TJ Holowaychuk.
-
-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/deps/npm/node_modules/which/node_modules/is-absolute/README.md b/deps/npm/node_modules/which/node_modules/is-absolute/README.md
deleted file mode 100644
index 2347828a3e73dd..00000000000000
--- a/deps/npm/node_modules/which/node_modules/is-absolute/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# is-absolute [![NPM version](https://badge.fury.io/js/is-absolute.svg)](http://badge.fury.io/js/is-absolute) [![Build Status](https://travis-ci.org/jonschlinkert/is-absolute.svg)](https://travis-ci.org/jonschlinkert/is-absolute)
-
-> Return true if a file path is absolute.
-
-Based on the `isAbsolute` utility method in [express](https://github.com/visionmedia/express).
-
-## Install with [npm](npmjs.org)
-
-```bash
-npm i is-absolute --save
-```
-
-## Usage
-
-```js
-var isAbsolute = require('is-absolute');
-console.log(isAbsolute('a/b/c.js'));
-//=> 'false';
-```
-
-## Running tests
-Install dev dependencies.
-
-```bash
-npm i -d && npm test
-```
-
-
-## Contributing
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-absolute/issues)
-
-
-## Other projects
-* [is-relative](https://github.com/jonschlinkert/is-relative): Returns `true` if the path appears to be relative.
-* [is-dotfile](https://github.com/regexps/is-dotfile): Return true if a file path is (or has) a dotfile.
-* [is-glob](https://github.com/jonschlinkert/is-glob): Returns `true` if the given string looks like a glob pattern.
-* [cwd](https://github.com/jonschlinkert/cwd): Node.js util for easily getting the current working directory of a project based on package.json or the given path.
-* [git-config-path](https://github.com/jonschlinkert/git-config-path): Resolve the path to the user's global .gitconfig.
-
-## Author
-
-**Jon Schlinkert**
-
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-Copyright (c) 2014-2015 Jon Schlinkert
-Released under the MIT license
-
-***
-
-_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on March 05, 2015._
diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/index.js b/deps/npm/node_modules/which/node_modules/is-absolute/index.js
deleted file mode 100644
index 9df4d5c2406a97..00000000000000
--- a/deps/npm/node_modules/which/node_modules/is-absolute/index.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*!
- * is-absolute
- *
- * Copyright (c) 2014-2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var isRelative = require('is-relative');
-
-module.exports = function isAbsolute(filepath) {
- if ('/' === filepath[0]) {
- return true;
- }
- if (':' === filepath[1] && '\\' === filepath[2]) {
- return true;
- }
- // Microsoft Azure absolute filepath
- if ('\\\\' == filepath.substring(0, 2)) {
- return true;
- }
- if (!isRelative(filepath)) {
- return true;
- }
-};
diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/README.md b/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/README.md
deleted file mode 100644
index 5d7a2a2aabb928..00000000000000
--- a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# is-relative [![NPM version](https://badge.fury.io/js/is-relative.svg)](http://badge.fury.io/js/is-relative)
-
-> Returns `true` if the path appears to be relative.
-
-## Install
-### Install with [npm](npmjs.org)
-
-```bash
-npm i is-relative --save
-```
-
-## Usage
-### [isRelative](index.js#L16)
-
-* `filepath` **{String}**: Path to test.
-* `returns`: {Boolean}
-
-```js
-var isRelative = require('is-relative');
-isRelative('README.md');
-//=> true
-```
-
-
-## Author
-
-**Jon Schlinkert**
-
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-Copyright (c) 2014 Jon Schlinkert
-Released under the MIT license
-
-***
-
-_This file was generated by [verb](https://github.com/assemble/verb) on November 17, 2014._
\ No newline at end of file
diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/index.js b/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/index.js
deleted file mode 100644
index ffc760a82a5dab..00000000000000
--- a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-
-/**
- * ```js
- * var isRelative = require('is-relative');
- * isRelative('README.md');
- * //=> true
- * ```
- *
- * @name isRelative
- * @param {String} `filepath` Path to test.
- * @return {Boolean}
- * @api public
- */
-
-module.exports = function isRelative(filepath) {
- if (typeof filepath !== 'string') {
- throw new Error('isRelative expects a string.');
- }
- return !/^([a-z]+:)?[\\\/]/i.test(filepath);
-};
\ No newline at end of file
diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/package.json b/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/package.json
deleted file mode 100644
index d582081dd157ca..00000000000000
--- a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "name": "is-relative",
- "description": "Returns `true` if the path appears to be relative.",
- "version": "0.1.3",
- "homepage": "https://github.com/jonschlinkert/is-relative",
- "author": {
- "name": "Jon Schlinkert",
- "url": "https://github.com/jonschlinkert"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/jonschlinkert/is-relative.git"
- },
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-relative/issues"
- },
- "licenses": [
- {
- "type": "MIT",
- "url": "https://github.com/jonschlinkert/is-relative/blob/master/LICENSE-MIT"
- }
- ],
- "keywords": [
- "absolute",
- "check",
- "file",
- "filepath",
- "is",
- "normalize",
- "path",
- "path.relative",
- "relative",
- "resolve",
- "slash",
- "slashes",
- "uri",
- "url"
- ],
- "main": "index.js",
- "files": [
- "index.js",
- "LICENSE-MIT"
- ],
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha -R spec"
- },
- "devDependencies": {
- "mocha": "*",
- "verb": ">= 0.2.6",
- "verb-tag-jscomments": "^0.1.4"
- },
- "_id": "is-relative@0.1.3",
- "_shasum": "905fee8ae86f45b3ec614bc3c15c869df0876e82",
- "_from": "is-relative@>=0.1.0 <0.2.0",
- "_npmVersion": "1.4.9",
- "_npmUser": {
- "name": "jonschlinkert",
- "email": "github@sellside.com"
- },
- "maintainers": [
- {
- "name": "jonschlinkert",
- "email": "github@sellside.com"
- }
- ],
- "dist": {
- "shasum": "905fee8ae86f45b3ec614bc3c15c869df0876e82",
- "tarball": "http://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/package.json b/deps/npm/node_modules/which/node_modules/is-absolute/package.json
deleted file mode 100644
index 4f954b855f11d4..00000000000000
--- a/deps/npm/node_modules/which/node_modules/is-absolute/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "name": "is-absolute",
- "description": "Return true if a file path is absolute.",
- "version": "0.1.7",
- "homepage": "https://github.com/jonschlinkert/is-absolute",
- "author": {
- "name": "Jon Schlinkert",
- "url": "https://github.com/jonschlinkert"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/jonschlinkert/is-absolute.git"
- },
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-absolute/issues"
- },
- "license": {
- "type": "MIT",
- "url": "https://github.com/jonschlinkert/is-absolute/blob/master/LICENSE"
- },
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-relative": "^0.1.0"
- },
- "devDependencies": {
- "mocha": "*"
- },
- "keywords": [
- "absolute",
- "check",
- "file",
- "filepath",
- "is",
- "normalize",
- "path",
- "path.relative",
- "relative",
- "resolve",
- "slash",
- "slashes",
- "uri",
- "url"
- ],
- "gitHead": "90cca7b671620bf28b778a61fddc8a986a2e1095",
- "_id": "is-absolute@0.1.7",
- "_shasum": "847491119fccb5fb436217cc737f7faad50f603f",
- "_from": "is-absolute@>=0.1.7 <0.2.0",
- "_npmVersion": "2.5.1",
- "_nodeVersion": "0.12.0",
- "_npmUser": {
- "name": "jonschlinkert",
- "email": "github@sellside.com"
- },
- "maintainers": [
- {
- "name": "jonschlinkert",
- "email": "github@sellside.com"
- }
- ],
- "dist": {
- "shasum": "847491119fccb5fb436217cc737f7faad50f603f",
- "tarball": "http://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz"
- },
- "directories": {},
- "_resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz",
- "readme": "ERROR: No README data found!"
-}
diff --git a/deps/npm/node_modules/which/node_modules/isexe/package.json b/deps/npm/node_modules/which/node_modules/isexe/package.json
index 0787bc7599d469..328d69c54f0487 100644
--- a/deps/npm/node_modules/which/node_modules/isexe/package.json
+++ b/deps/npm/node_modules/which/node_modules/isexe/package.json
@@ -41,7 +41,7 @@
},
"dist": {
"shasum": "36f3e22e60750920f5e7241a476a8c6a42275ad0",
- "tarball": "http://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz"
+ "tarball": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz"
},
"maintainers": [
{
diff --git a/deps/npm/node_modules/which/package.json b/deps/npm/node_modules/which/package.json
index 964ddcf56b4800..90b621d8cc3585 100644
--- a/deps/npm/node_modules/which/package.json
+++ b/deps/npm/node_modules/which/package.json
@@ -6,7 +6,7 @@
},
"name": "which",
"description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
- "version": "1.2.8",
+ "version": "1.2.10",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/node-which.git"
@@ -17,7 +17,6 @@
},
"license": "ISC",
"dependencies": {
- "is-absolute": "^0.1.7",
"isexe": "^1.1.1"
},
"devDependencies": {
@@ -34,23 +33,23 @@
"which.js",
"bin/which"
],
- "gitHead": "e4de2c25e9163b1f55323792f0fc5806e948ffc1",
+ "gitHead": "3f590834623ee940d922e12b1c8b9cbf24bd5012",
"bugs": {
"url": "https://github.com/isaacs/node-which/issues"
},
"homepage": "https://github.com/isaacs/node-which#readme",
- "_id": "which@1.2.8",
- "_shasum": "37fa9f6eab30e49b8ef6eea24681c5799d52ebd6",
- "_from": "which@1.2.8",
- "_npmVersion": "3.8.9",
- "_nodeVersion": "5.6.0",
+ "_id": "which@1.2.10",
+ "_shasum": "91cd9bd0751322411b659b40f054b21de957ab2d",
+ "_from": "which@>=1.2.10 <1.3.0",
+ "_npmVersion": "3.9.1",
+ "_nodeVersion": "4.4.4",
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
},
"dist": {
- "shasum": "37fa9f6eab30e49b8ef6eea24681c5799d52ebd6",
- "tarball": "https://registry.npmjs.org/which/-/which-1.2.8.tgz"
+ "shasum": "91cd9bd0751322411b659b40f054b21de957ab2d",
+ "tarball": "https://registry.npmjs.org/which/-/which-1.2.10.tgz"
},
"maintainers": [
{
@@ -60,9 +59,9 @@
],
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/which-1.2.8.tgz_1462472514341_0.746755798580125"
+ "tmp": "tmp/which-1.2.10.tgz_1465116744337_0.4818702598568052"
},
"directories": {},
- "_resolved": "https://registry.npmjs.org/which/-/which-1.2.8.tgz",
+ "_resolved": "https://registry.npmjs.org/which/-/which-1.2.10.tgz",
"readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/which/which.js b/deps/npm/node_modules/which/which.js
index 4ba14cd02f24cc..5a9b15ca60403f 100644
--- a/deps/npm/node_modules/which/which.js
+++ b/deps/npm/node_modules/which/which.js
@@ -9,7 +9,6 @@ var path = require('path')
var COLON = isWindows ? ';' : ':'
var isexe = require('isexe')
var fs = require('fs')
-var isAbsolute = require('is-absolute')
function getNotFoundError (cmd) {
var er = new Error('not found: ' + cmd)
@@ -20,7 +19,7 @@ function getNotFoundError (cmd) {
function getPathInfo (cmd, opt) {
var colon = opt.colon || COLON
- var pathEnv = opt.path || process.env.Path || process.env.PATH || ''
+ var pathEnv = opt.path || process.env.PATH || ''
var pathExt = ['']
pathEnv = pathEnv.split(colon)
@@ -75,7 +74,7 @@ function which (cmd, opt, cb) {
pathPart = pathPart.slice(1, -1)
var p = path.join(pathPart, cmd)
- if (!pathPart && (/^\./).test(cmd)) {
+ if (!pathPart && (/^\.[\\\/]/).test(cmd)) {
p = cmd.slice(0, 2) + p
}
;(function E (ii, ll) {
@@ -109,7 +108,7 @@ function whichSync (cmd, opt) {
pathPart = pathPart.slice(1, -1)
var p = path.join(pathPart, cmd)
- if (!pathPart && (/^\./).test(cmd)) {
+ if (!pathPart && /^\.[\\\/]/.test(cmd)) {
p = cmd.slice(0, 2) + p
}
for (var j = 0, ll = pathExt.length; j < ll; j ++) {
diff --git a/deps/npm/node_modules/wrappy/package.json b/deps/npm/node_modules/wrappy/package.json
index b88e66283290ba..4028270c7f83be 100644
--- a/deps/npm/node_modules/wrappy/package.json
+++ b/deps/npm/node_modules/wrappy/package.json
@@ -1,21 +1,24 @@
{
"name": "wrappy",
- "version": "1.0.1",
+ "version": "1.0.2",
"description": "Callback wrapping utility",
"main": "wrappy.js",
+ "files": [
+ "wrappy.js"
+ ],
"directories": {
"test": "test"
},
"dependencies": {},
"devDependencies": {
- "tap": "^0.4.12"
+ "tap": "^2.3.1"
},
"scripts": {
- "test": "tap test/*.js"
+ "test": "tap --coverage test/*.js"
},
"repository": {
"type": "git",
- "url": "https://github.com/npm/wrappy"
+ "url": "git+https://github.com/npm/wrappy.git"
},
"author": {
"name": "Isaac Z. Schlueter",
@@ -27,26 +30,34 @@
"url": "https://github.com/npm/wrappy/issues"
},
"homepage": "https://github.com/npm/wrappy",
- "gitHead": "006a8cbac6b99988315834c207896eed71fd069a",
- "_id": "wrappy@1.0.1",
- "_shasum": "1e65969965ccbc2db4548c6b84a6f2c5aedd4739",
- "_from": "wrappy@1.0.1",
- "_npmVersion": "2.0.0",
- "_nodeVersion": "0.10.31",
+ "gitHead": "71d91b6dc5bdeac37e218c2cf03f9ab55b60d214",
+ "_id": "wrappy@1.0.2",
+ "_shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f",
+ "_from": "wrappy@>=1.0.2 <1.1.0",
+ "_npmVersion": "3.9.1",
+ "_nodeVersion": "5.10.1",
"_npmUser": {
- "name": "isaacs",
- "email": "i@izs.me"
+ "name": "zkat",
+ "email": "kat@sykosomatic.org"
+ },
+ "dist": {
+ "shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f",
+ "tarball": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
},
"maintainers": [
{
"name": "isaacs",
"email": "i@izs.me"
+ },
+ {
+ "name": "zkat",
+ "email": "kat@sykosomatic.org"
}
],
- "dist": {
- "shasum": "1e65969965ccbc2db4548c6b84a6f2c5aedd4739",
- "tarball": "http://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/wrappy-1.0.2.tgz_1463527848281_0.037129373755306005"
},
- "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+ "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"readme": "ERROR: No README data found!"
}
diff --git a/deps/npm/node_modules/wrappy/test/basic.js b/deps/npm/node_modules/wrappy/test/basic.js
deleted file mode 100644
index 5ed0fcdfd9c52e..00000000000000
--- a/deps/npm/node_modules/wrappy/test/basic.js
+++ /dev/null
@@ -1,51 +0,0 @@
-var test = require('tap').test
-var wrappy = require('../wrappy.js')
-
-test('basic', function (t) {
- function onceifier (cb) {
- var called = false
- return function () {
- if (called) return
- called = true
- return cb.apply(this, arguments)
- }
- }
- onceifier.iAmOnce = {}
- var once = wrappy(onceifier)
- t.equal(once.iAmOnce, onceifier.iAmOnce)
-
- var called = 0
- function boo () {
- t.equal(called, 0)
- called++
- }
- // has some rando property
- boo.iAmBoo = true
-
- var onlyPrintOnce = once(boo)
-
- onlyPrintOnce() // prints 'boo'
- onlyPrintOnce() // does nothing
- t.equal(called, 1)
-
- // random property is retained!
- t.equal(onlyPrintOnce.iAmBoo, true)
-
- var logs = []
- var logwrap = wrappy(function (msg, cb) {
- logs.push(msg + ' wrapping cb')
- return function () {
- logs.push(msg + ' before cb')
- var ret = cb.apply(this, arguments)
- logs.push(msg + ' after cb')
- }
- })
-
- var c = logwrap('foo', function () {
- t.same(logs, [ 'foo wrapping cb', 'foo before cb' ])
- })
- c()
- t.same(logs, [ 'foo wrapping cb', 'foo before cb', 'foo after cb' ])
-
- t.end()
-})
diff --git a/deps/npm/package.json b/deps/npm/package.json
index 50ec15a47e955c..a509afa6d5127e 100644
--- a/deps/npm/package.json
+++ b/deps/npm/package.json
@@ -1,5 +1,5 @@
{
- "version": "2.15.5",
+ "version": "2.15.8",
"name": "npm",
"description": "a package manager for JavaScript",
"keywords": [
@@ -30,7 +30,7 @@
"main": "./lib/npm.js",
"bin": "./bin/npm-cli.js",
"dependencies": {
- "abbrev": "~1.0.7",
+ "abbrev": "~1.0.9",
"ansi": "~0.3.1",
"ansicolors": "~0.3.2",
"ansistyles": "~0.1.3",
@@ -47,17 +47,17 @@
"editor": "~1.0.0",
"fs-vacuum": "~1.2.9",
"fs-write-stream-atomic": "~1.0.8",
- "fstream": "~1.0.8",
+ "fstream": "~1.0.10",
"fstream-npm": "~1.0.7",
"github-url-from-git": "~1.4.0",
"github-url-from-username-repo": "~1.0.2",
- "glob": "~7.0.3",
+ "glob": "~7.0.4",
"graceful-fs": "~4.1.4",
"hosted-git-info": "~2.1.4",
"inflight": "~1.0.4",
"inherits": "~2.0.1",
"ini": "~1.3.4",
- "init-package-json": "~1.9.3",
+ "init-package-json": "~1.9.4",
"lockfile": "~1.0.1",
"lru-cache": "~4.0.1",
"minimatch": "~3.0.0",
@@ -69,9 +69,9 @@
"npm-cache-filename": "~1.0.2",
"npm-install-checks": "~1.0.7",
"npm-package-arg": "~4.1.0",
- "npm-registry-client": "~7.1.0",
- "npm-user-validate": "~0.1.2",
- "npmlog": "~2.0.3",
+ "npm-registry-client": "~7.1.2",
+ "npm-user-validate": "~0.1.4",
+ "npmlog": "~2.0.4",
"once": "~1.3.3",
"opener": "~1.4.1",
"osenv": "~0.1.3",
@@ -79,7 +79,7 @@
"read": "~1.0.7",
"read-installed": "~4.0.3",
"read-package-json": "~2.0.4",
- "readable-stream": "~2.1.2",
+ "readable-stream": "~2.1.4",
"realize-package-specifier": "~3.0.1",
"request": "~2.72.0",
"retry": "~0.9.0",
@@ -96,8 +96,8 @@
"umask": "~1.1.0",
"validate-npm-package-license": "~3.0.1",
"validate-npm-package-name": "~2.2.2",
- "which": "~1.2.8",
- "wrappy": "~1.0.1",
+ "which": "~1.2.10",
+ "wrappy": "~1.0.2",
"write-file-atomic": "~1.1.4"
},
"bundleDependencies": [
@@ -179,7 +179,7 @@
"marked-man": "~0.1.5",
"npm-registry-couchapp": "~2.6.12",
"npm-registry-mock": "~1.0.1",
- "require-inject": "~1.3.1",
+ "require-inject": "~1.4.0",
"sprintf-js": "~1.0.3",
"tacks": "~1.2.1",
"tap": "~5.7.1"
diff --git a/deps/npm/test/common-tap.js b/deps/npm/test/common-tap.js
index de0a9f416d79d8..06c1e3f9f7eb7c 100644
--- a/deps/npm/test/common-tap.js
+++ b/deps/npm/test/common-tap.js
@@ -5,7 +5,6 @@ if (!global.setImmediate || !require('timers').setImmediate) {
setTimeout.apply(this, args)
}
}
-
var spawn = require('child_process').spawn
var path = require('path')
@@ -25,7 +24,7 @@ var bin = exports.bin = require.resolve('../bin/npm-cli.js')
var chain = require('slide').chain
var once = require('once')
-exports.npm = function (cmd, opts, cb) {
+exports.npm = function npm (cmd, opts, cb) {
cb = once(cb)
cmd = [bin].concat(cmd)
opts = opts || {}
@@ -60,7 +59,7 @@ exports.npm = function (cmd, opts, cb) {
return child
}
-exports.makeGitRepo = function (params, cb) {
+exports.makeGitRepo = function makeGitRepo (params, cb) {
// git must be called after npm.load because it uses config
var git = require('../lib/utils/git.js')
@@ -85,3 +84,14 @@ exports.makeGitRepo = function (params, cb) {
chain(commands, cb)
}
+
+exports.rmFromInShrinkwrap = function rmFromInShrinkwrap (obj) {
+ for (var i in obj) {
+ if (i === "from")
+ delete obj[i]
+ else if (i === "dependencies")
+ for (var j in obj[i])
+ exports.rmFromInShrinkwrap(obj[i][j])
+ }
+ return obj
+}
\ No newline at end of file
diff --git a/deps/npm/test/common.js b/deps/npm/test/common.js
deleted file mode 100644
index 2755056b1b491c..00000000000000
--- a/deps/npm/test/common.js
+++ /dev/null
@@ -1,7 +0,0 @@
-
-// whatever, it's just tests.
-;["util","assert"].forEach(function (thing) {
- thing = require("thing")
- for (var i in thing) global[i] = thing[i]
-}
-
diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/test.js b/deps/npm/test/packages/npm-test-shrinkwrap/test.js
deleted file mode 100644
index fba90ec6516311..00000000000000
--- a/deps/npm/test/packages/npm-test-shrinkwrap/test.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var path = require("path")
-var assert = require("assert")
-
-process.env.npm_config_prefix = process.cwd()
-delete process.env.npm_config_global
-delete process.env.npm_config_depth
-
-var npm = process.env.npm_execpath
-
-require("child_process").execFile(process.execPath, [npm, "ls", "--json"], {
- stdio: "pipe", env: process.env, cwd: process.cwd() },
- function (err, stdout, stderr) {
- if (err) throw err
-
- var actual = JSON.parse(stdout)
- var expected = require("./npm-shrinkwrap.json")
- rmFrom(actual)
- actual = actual.dependencies
- rmFrom(expected)
- expected = expected.dependencies
- console.error(JSON.stringify(actual, null, 2))
- console.error(JSON.stringify(expected, null, 2))
-
- assert.deepEqual(actual, expected)
-})
-
-function rmFrom (obj) {
- for (var i in obj) {
- if (i === "from")
- delete obj[i]
- else if (i === "dependencies")
- for (var j in obj[i])
- rmFrom(obj[i][j])
- }
-}
diff --git a/deps/npm/test/tap/install-shrinkwrap-equals-ls.js b/deps/npm/test/tap/install-shrinkwrap-equals-ls.js
new file mode 100644
index 00000000000000..1c324e56c2524c
--- /dev/null
+++ b/deps/npm/test/tap/install-shrinkwrap-equals-ls.js
@@ -0,0 +1,288 @@
+var fs = require('graceful-fs')
+var path = require('path')
+
+var mkdirp = require('mkdirp')
+var osenv = require('osenv')
+var rimraf = require('rimraf')
+var test = require('tap').test
+
+var common = require('../common-tap.js')
+
+var pkg = path.join(__dirname, 'install-shrinkwrap-equals-ls')
+
+var EXEC_OPTS = {cwd: pkg}
+
+var json = {
+ "name": "install-shrinkwrap-equals-ls",
+ "version": "1.0.0",
+ "dependencies": {
+ "react": "^0.14.0",
+ "react-bootstrap": "^0.28.1",
+ "react-dom": "^0.14.0"
+ }
+}
+
+var shrinkwrap = {
+ "name": "install-shrinkwrap-equals-ls",
+ "version": "1.0.0",
+ "dependencies": {
+ "react": {
+ "version": "0.14.8",
+ "from": "react@>=0.14.0 <0.15.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-0.14.8.tgz",
+ "dependencies": {
+ "envify": {
+ "version": "3.4.0",
+ "from": "envify@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz",
+ "dependencies": {
+ "through": {
+ "version": "2.3.8",
+ "from": "through@>=2.3.4 <2.4.0",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
+ },
+ "jstransform": {
+ "version": "10.1.0",
+ "from": "jstransform@>=10.0.1 <11.0.0",
+ "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz",
+ "dependencies": {
+ "base62": {
+ "version": "0.1.1",
+ "from": "base62@0.1.1",
+ "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz"
+ },
+ "esprima-fb": {
+ "version": "13001.1001.0-dev-harmony-fb",
+ "from": "esprima-fb@13001.1001.0-dev-harmony-fb",
+ "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz"
+ },
+ "source-map": {
+ "version": "0.1.31",
+ "from": "source-map@0.1.31",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz",
+ "dependencies": {
+ "amdefine": {
+ "version": "1.0.0",
+ "from": "amdefine@>=0.0.4",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "fbjs": {
+ "version": "0.6.1",
+ "from": "fbjs@>=0.6.1 <0.7.0",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "1.2.6",
+ "from": "core-js@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz"
+ },
+ "loose-envify": {
+ "version": "1.1.0",
+ "from": "loose-envify@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.1.0.tgz",
+ "dependencies": {
+ "js-tokens": {
+ "version": "1.0.3",
+ "from": "js-tokens@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.3.tgz"
+ }
+ }
+ },
+ "promise": {
+ "version": "7.1.1",
+ "from": "promise@>=7.0.3 <8.0.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz",
+ "dependencies": {
+ "asap": {
+ "version": "2.0.3",
+ "from": "asap@>=2.0.3 <2.1.0",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz"
+ }
+ }
+ },
+ "ua-parser-js": {
+ "version": "0.7.10",
+ "from": "ua-parser-js@>=0.7.9 <0.8.0",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.10.tgz"
+ },
+ "whatwg-fetch": {
+ "version": "0.9.0",
+ "from": "whatwg-fetch@>=0.9.0 <0.10.0",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz"
+ }
+ }
+ }
+ }
+ },
+ "react-bootstrap": {
+ "version": "0.28.5",
+ "from": "react-bootstrap@>=0.28.1 <0.29.0",
+ "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.28.5.tgz",
+ "dependencies": {
+ "babel-runtime": {
+ "version": "5.8.38",
+ "from": "babel-runtime@>=5.8.25 <6.0.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz",
+ "dependencies": {
+ "core-js": {
+ "version": "1.2.6",
+ "from": "core-js@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz"
+ }
+ }
+ },
+ "classnames": {
+ "version": "2.2.3",
+ "from": "classnames@>=2.1.5 <3.0.0",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.3.tgz"
+ },
+ "dom-helpers": {
+ "version": "2.4.0",
+ "from": "dom-helpers@>=2.4.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-2.4.0.tgz"
+ },
+ "invariant": {
+ "version": "2.2.1",
+ "from": "invariant@>=2.1.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.1.tgz",
+ "dependencies": {
+ "loose-envify": {
+ "version": "1.1.0",
+ "from": "loose-envify@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.1.0.tgz",
+ "dependencies": {
+ "js-tokens": {
+ "version": "1.0.3",
+ "from": "js-tokens@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.3.tgz"
+ }
+ }
+ }
+ }
+ },
+ "keycode": {
+ "version": "2.1.1",
+ "from": "keycode@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.1.tgz"
+ },
+ "lodash-compat": {
+ "version": "3.10.2",
+ "from": "lodash-compat@>=3.10.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/lodash-compat/-/lodash-compat-3.10.2.tgz"
+ },
+ "react-overlays": {
+ "version": "0.6.3",
+ "from": "react-overlays@>=0.6.0 <0.7.0",
+ "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.6.3.tgz",
+ "dependencies": {
+ "react-prop-types": {
+ "version": "0.2.2",
+ "from": "react-prop-types@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.2.2.tgz"
+ }
+ }
+ },
+ "react-prop-types": {
+ "version": "0.3.0",
+ "from": "react-prop-types@>=0.3.0 <0.4.0",
+ "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.3.0.tgz"
+ },
+ "uncontrollable": {
+ "version": "3.2.3",
+ "from": "uncontrollable@>=3.1.3 <4.0.0",
+ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.2.3.tgz"
+ },
+ "warning": {
+ "version": "2.1.0",
+ "from": "warning@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz",
+ "dependencies": {
+ "loose-envify": {
+ "version": "1.1.0",
+ "from": "loose-envify@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.1.0.tgz",
+ "dependencies": {
+ "js-tokens": {
+ "version": "1.0.3",
+ "from": "js-tokens@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.3.tgz"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "react-dom": {
+ "version": "0.14.8",
+ "from": "react-dom@>=0.14.0 <0.15.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.8.tgz"
+ }
+ }
+}
+
+
+test('setup', function (t) {
+ setup()
+ t.end()
+})
+
+test('An npm install with shrinkwrap equals npm ls --json', function (t) {
+ common.npm(
+ [
+ '--loglevel', 'silent',
+ 'install'
+ ],
+ EXEC_OPTS,
+ function (err, code) {
+ t.ifError(err, 'npm install ran without issue')
+ t.notOk(code, 'npm install exited with code 0')
+ common.npm(
+ [
+ '--loglevel', 'silent',
+ 'ls', '--json'
+ ],
+ EXEC_OPTS,
+ function (err, code, out) {
+ t.ifError(err, 'npm ls --json ran without issue')
+ t.notOk(code, 'npm ls --json exited with code 0')
+ var actual = common.rmFromInShrinkwrap(JSON.parse(out))
+ var expected = common.rmFromInShrinkwrap(
+ JSON.parse(JSON.stringify(shrinkwrap))
+ )
+ t.deepEqual(actual, expected)
+ t.end()
+ })
+ }
+ )
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.end()
+})
+
+function cleanup () {
+ process.chdir(__dirname)
+ rimraf.sync(pkg)
+}
+
+function setup () {
+ cleanup()
+ mkdirp.sync(pkg)
+ process.chdir(pkg)
+ fs.writeFileSync(
+ 'package.json',
+ JSON.stringify(json, null, 2)
+ )
+ fs.writeFileSync(
+ 'npm-shrinkwrap.json',
+ JSON.stringify(shrinkwrap, null, 2)
+ )
+}
diff --git a/deps/npm/test/tap/legacy-shrinkwrap.js b/deps/npm/test/tap/legacy-shrinkwrap.js
index 6f5303037707a0..2c51bf1e3b8669 100644
--- a/deps/npm/test/tap/legacy-shrinkwrap.js
+++ b/deps/npm/test/tap/legacy-shrinkwrap.js
@@ -100,21 +100,12 @@ test('shrinkwrap', function (t) {
var actual = JSON.parse(stdout)
var expected = require(path.resolve(basepath, 'npm-shrinkwrap.json'))
// from is expected to vary
- t.isDeeply(rmFrom(actual), rmFrom(expected))
+ t.isDeeply(
+ common.rmFromInShrinkwrap(actual),
+ common.rmFromInShrinkwrap(expected)
+ )
t.done()
}
-
- function rmFrom (obj) {
- for (var i in obj) {
- if (i === 'from') {
- delete obj[i]
- } else if (i === 'dependencies') {
- for (var j in obj[i]) {
- rmFrom(obj[i][j])
- }
- }
- }
- }
})
test('cleanup', function (t) {
diff --git a/deps/v8/src/arm64/lithium-codegen-arm64.cc b/deps/v8/src/arm64/lithium-codegen-arm64.cc
index 074926b83b7700..fb17397fd4db2e 100644
--- a/deps/v8/src/arm64/lithium-codegen-arm64.cc
+++ b/deps/v8/src/arm64/lithium-codegen-arm64.cc
@@ -2801,6 +2801,8 @@ void LCodeGen::DoDoubleToIntOrSmi(LDoubleToIntOrSmi* instr) {
void LCodeGen::DoDrop(LDrop* instr) {
__ Drop(instr->count());
+
+ RecordPushedArgumentsDelta(instr->hydrogen_value()->argument_delta());
}
diff --git a/deps/v8/test/mjsunit/regress/regress-arm64-spillslots.js b/deps/v8/test/mjsunit/regress/regress-arm64-spillslots.js
new file mode 100644
index 00000000000000..1791b248431186
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-arm64-spillslots.js
@@ -0,0 +1,34 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+"use strict";
+
+function Message(message) {
+ this.message = message;
+}
+
+function Inlined(input) {
+ var dummy = arguments[1] === undefined;
+ if (input instanceof Message) {
+ return input;
+ }
+ print("unreachable, but we must create register allocation complexity");
+ return [];
+}
+
+function Process(input) {
+ var ret = [];
+ ret.push(Inlined(input[0], 1, 2));
+ return ret;
+}
+
+var input = [new Message("TEST PASS")];
+
+Process(input);
+Process(input);
+%OptimizeFunctionOnNextCall(Process);
+var result = Process(input);
+assertEquals("TEST PASS", result[0].message);
diff --git a/deps/v8/tools/gen-postmortem-metadata.py b/deps/v8/tools/gen-postmortem-metadata.py
index 0f90b26698ed4b..0bd7952894e698 100644
--- a/deps/v8/tools/gen-postmortem-metadata.py
+++ b/deps/v8/tools/gen-postmortem-metadata.py
@@ -224,6 +224,20 @@
}
'''
+#
+# Get the base class
+#
+def get_base_class(klass):
+ if (klass == 'Object'):
+ return klass;
+
+ if (not (klass in klasses)):
+ return None;
+
+ k = klasses[klass];
+
+ return get_base_class(k['parent']);
+
#
# Loads class hierarchy and type information from "objects.h".
#
@@ -262,12 +276,14 @@ def load_objects():
typestr += line;
continue;
- match = re.match('class (\w[^\s:]*)(: public (\w[^\s{]*))?\s*{',
+ match = re.match('class (\w[^:]*)(: public (\w[^{]*))?\s*{\s*',
line);
if (match):
- klass = match.group(1);
+ klass = match.group(1).rstrip().lstrip();
pklass = match.group(3);
+ if (pklass):
+ pklass = pklass.rstrip().lstrip();
klasses[klass] = { 'parent': pklass };
#
@@ -518,6 +534,9 @@ def emit_config():
keys.sort();
for klassname in keys:
pklass = klasses[klassname]['parent'];
+ bklass = get_base_class(klassname);
+ if (bklass != 'Object'):
+ continue;
if (pklass == None):
continue;
diff --git a/doc/api/_toc.markdown b/doc/api/_toc.markdown
index 5c8fbdd7901e20..2527ad84e2e360 100644
--- a/doc/api/_toc.markdown
+++ b/doc/api/_toc.markdown
@@ -1,7 +1,10 @@
@// NB(chrisdickinson): if you move this file, be sure to update tools/doc/html.js to
@// point at the new location.
* [About these Docs](documentation.html)
-* [Synopsis](synopsis.html)
+* [Usage & Example](synopsis.html)
+
+
+
* [Assertion Testing](assert.html)
* [Buffer](buffer.html)
* [C/C++ Addons](addons.html)
@@ -39,3 +42,8 @@
* [V8](v8.html)
* [VM](vm.html)
* [ZLIB](zlib.html)
+
+
+
+* [GitHub Repo & Issue Tracker](https://github.com/nodejs/node)
+* [Mailing List](http://groups.google.com/group/nodejs)
diff --git a/doc/api/buffer.markdown b/doc/api/buffer.markdown
index 4e6cdd546d88a9..2a0b45d0e46a03 100644
--- a/doc/api/buffer.markdown
+++ b/doc/api/buffer.markdown
@@ -18,7 +18,7 @@ The size of the `Buffer` is established when it is created and cannot be
resized.
The `Buffer` class is a global within Node.js, making it unlikely that one
-would need to ever use `require('buffer')`.
+would need to ever use `require('buffer').Buffer`.
```js
const buf1 = new Buffer(10);
@@ -799,8 +799,8 @@ buf.readUInt8(1);
* Return: {Number}
Reads an unsigned 16-bit integer from the Buffer at the specified `offset` with
-specified endian format (`readInt32BE()` returns big endian,
-`readInt32LE()` returns little endian).
+specified endian format (`readUInt16BE()` returns big endian,
+`readUInt16LE()` returns little endian).
Setting `noAssert` to `true` skips validation of the `offset`. This allows the
`offset` to be beyond the end of the Buffer.
@@ -832,8 +832,8 @@ buf.readUInt16LE(2);
* Return: {Number}
Reads an unsigned 32-bit integer from the Buffer at the specified `offset` with
-specified endian format (`readInt32BE()` returns big endian,
-`readInt32LE()` returns little endian).
+specified endian format (`readUInt32BE()` returns big endian,
+`readUInt32LE()` returns little endian).
Setting `noAssert` to `true` skips validation of the `offset`. This allows the
`offset` to be beyond the end of the Buffer.
diff --git a/doc/api/child_process.markdown b/doc/api/child_process.markdown
index a7d7a55d8106e1..cc8b8ce8c67b97 100644
--- a/doc/api/child_process.markdown
+++ b/doc/api/child_process.markdown
@@ -139,13 +139,13 @@ generated output.
```js
const exec = require('child_process').exec;
-const child = exec('cat *.js bad_file | wc -l',
- (error, stdout, stderr) => {
- console.log(`stdout: ${stdout}`);
- console.log(`stderr: ${stderr}`);
- if (error !== null) {
- console.log(`exec error: ${error}`);
- }
+exec('cat *.js bad_file | wc -l', (error, stdout, stderr) => {
+ if (error) {
+ console.error(`exec error: ${error}`);
+ return;
+ }
+ console.log(`stdout: ${stdout}`);
+ console.log(`stderr: ${stderr}`);
});
```
diff --git a/doc/api/cluster.markdown b/doc/api/cluster.markdown
index b14c3aaf2bfc83..4c25d58516d309 100644
--- a/doc/api/cluster.markdown
+++ b/doc/api/cluster.markdown
@@ -140,9 +140,9 @@ Similar to the `cluster.on('exit')` event, but specific to this worker.
```js
const worker = cluster.fork();
worker.on('exit', (code, signal) => {
- if( signal ) {
+ if (signal) {
console.log(`worker was killed by signal: ${signal}`);
- } else if( code !== 0 ) {
+ } else if (code !== 0) {
console.log(`worker exited with error code: ${code}`);
} else {
console.log('worker success!');
@@ -285,7 +285,7 @@ if (cluster.isMaster) {
server.listen(8000);
process.on('message', (msg) => {
- if(msg === 'shutdown') {
+ if (msg === 'shutdown') {
// initiate graceful close of any connections to server
}
});
@@ -485,8 +485,8 @@ The `addressType` is one of:
## Event: 'message'
-* `worker` {cluster.Worker}
* `message` {Object}
+* `handle` {undefined|Object}
Emitted when any worker receives a message.
diff --git a/doc/api/crypto.markdown b/doc/api/crypto.markdown
index 3b103bdeaa4241..f0d21238be3670 100644
--- a/doc/api/crypto.markdown
+++ b/doc/api/crypto.markdown
@@ -719,7 +719,7 @@ console.log(sign.sign(private_key, 'hex'));
// Prints the calculated signature
```
-A [`sign`][] instance can also be created by just passing in the digest
+A `Sign` instance can also be created by just passing in the digest
algorithm name, in which case OpenSSL will infer the full signature algorithm
from the type of the PEM-formatted private key, including algorithms that
do not have directly exposed name constants, e.g. 'ecdsa-with-SHA256'.
diff --git a/doc/api/debugger.markdown b/doc/api/debugger.markdown
index bbde4f0f4b3753..2bbaf9049eb5fb 100644
--- a/doc/api/debugger.markdown
+++ b/doc/api/debugger.markdown
@@ -152,6 +152,7 @@ after)
* `watchers` - List all watchers and their values (automatically listed on each
breakpoint)
* `repl` - Open debugger's repl for evaluation in debugging script's context
+* `exec expr` - Execute an expression in debugging script's context
### Execution control
diff --git a/doc/api/documentation.markdown b/doc/api/documentation.markdown
index 4d357e39efab37..2922c011f5845c 100644
--- a/doc/api/documentation.markdown
+++ b/doc/api/documentation.markdown
@@ -21,7 +21,7 @@ documentation is generated using the `tools/doc/generate.js` program.
The HTML template is located at `doc/template.html`.
-If you find a error in this documentation, please [submit an issue][]
+If you find an error in this documentation, please [submit an issue][]
or see [the contributing guide][] for directions on how to submit a patch.
## Stability Index
diff --git a/doc/api/errors.markdown b/doc/api/errors.markdown
index efb469ec46f05d..8f5a0abf3321df 100644
--- a/doc/api/errors.markdown
+++ b/doc/api/errors.markdown
@@ -231,7 +231,7 @@ function MyError() {
}
// Without passing MyError to captureStackTrace, the MyError
-// frame would should up in the .stack property. by passing
+// frame would show up in the .stack property. By passing
// the constructor, we omit that frame and all frames above it.
new MyError().stack
```
diff --git a/doc/api/events.markdown b/doc/api/events.markdown
index 500d046f9e59f7..464a0f61570113 100644
--- a/doc/api/events.markdown
+++ b/doc/api/events.markdown
@@ -130,7 +130,7 @@ myEmitter.emit('event');
```
Using the `eventEmitter.once()` method, it is possible to register a listener
-that is immediately unregistered after it is called.
+that is unregistered before it is called.
```js
const myEmitter = new MyEmitter();
@@ -338,9 +338,8 @@ Returns a reference to the `EventEmitter` so calls can be chained.
### emitter.once(eventName, listener)
-Adds a **one time** `listener` function for the event named `eventName`. This
-listener is invoked only the next time `eventName` is triggered, after which
-it is removed.
+Adds a **one time** `listener` function for the event named `eventName`. The
+next time `eventName` is triggered, this listener is removed and then invoked.
```js
server.once('connection', (stream) => {
diff --git a/doc/api/fs.markdown b/doc/api/fs.markdown
index 87e7fcaa365a29..ed87141c07cc2d 100644
--- a/doc/api/fs.markdown
+++ b/doc/api/fs.markdown
@@ -438,8 +438,8 @@ Synchronous fdatasync(2). Returns `undefined`.
## fs.fstat(fd, callback)
Asynchronous fstat(2). The callback gets two arguments `(err, stats)` where
-`stats` is a `fs.Stats` object. `fstat()` is identical to [`stat()`][], except that
-the file to be stat-ed is specified by the file descriptor `fd`.
+`stats` is a [`fs.Stats`][] object. `fstat()` is identical to [`stat()`][],
+except that the file to be stat-ed is specified by the file descriptor `fd`.
## fs.fstatSync(fd)
@@ -504,9 +504,9 @@ Synchronous link(2). Returns `undefined`.
## fs.lstat(path, callback)
Asynchronous lstat(2). The callback gets two arguments `(err, stats)` where
-`stats` is a `fs.Stats` object. `lstat()` is identical to `stat()`, except that if
-`path` is a symbolic link, then the link itself is stat-ed, not the file that it
-refers to.
+`stats` is a [`fs.Stats`][] object. `lstat()` is identical to `stat()`,
+except that if `path` is a symbolic link, then the link itself is stat-ed,
+not the file that it refers to.
## fs.lstatSync(path)
@@ -823,9 +823,10 @@ to be notified of filesystem changes.
* On Windows systems, this feature depends on `ReadDirectoryChangesW`.
If the underlying functionality is not available for some reason, then
-`fs.watch` will not be able to function. For example, watching files or
-directories on network file systems (NFS, SMB, etc.) often doesn't work
-reliably or at all.
+`fs.watch` will not be able to function. For example, watching files or
+directories can be unreliable, and in some cases impossible, on network file
+systems (NFS, SMB, etc), or host file systems when using virtualization software
+such as Vagrant, Docker, etc.
You can still use `fs.watchFile`, which uses stat polling, but it is slower and
less reliable.
diff --git a/doc/api/globals.markdown b/doc/api/globals.markdown
index 643ab4334b20a6..f70c52aae4904e 100644
--- a/doc/api/globals.markdown
+++ b/doc/api/globals.markdown
@@ -5,6 +5,10 @@
These objects are available in all modules. Some of these objects aren't
actually in the global scope but in the module scope - this will be noted.
+The objects listed here are specific to Node.js. There are a number of
+[built-in objects][] that are part of the JavaScript language itself, which are
+also globally accessible.
+
## Class: Buffer
@@ -38,7 +42,7 @@ For instance, given two modules: `a` and `b`, where `b` is a dependency of
References to `__dirname` within `b.js` will return
`/Users/mjr/app/node_modules/b` while references to `__dirname` within `a.js`
-will return `/Users/mj/app`.
+will return `/Users/mjr/app`.
## \_\_filename
@@ -209,3 +213,4 @@ but rather than loading the module, just return the resolved filename.
[`setImmediate`]: timers.html#timers_setimmediate_callback_arg
[`setInterval`]: timers.html#timers_setinterval_callback_delay_arg
[`setTimeout`]: timers.html#timers_settimeout_callback_delay_arg
+[built-in objects]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
diff --git a/doc/api/modules.markdown b/doc/api/modules.markdown
index 20c8b175cd9340..836285b26f491d 100644
--- a/doc/api/modules.markdown
+++ b/doc/api/modules.markdown
@@ -30,8 +30,9 @@ The module `circle.js` has exported the functions `area()` and
`circumference()`. To add functions and objects to the root of your module,
you can add them to the special `exports` object.
-Variables local to the module will be private, as though the module was wrapped
-in a function. In this example the variable `PI` is private to `circle.js`.
+Variables local to the module will be private, because the module is wrapped
+in a function by Node.js (see [module wrapper](#modules_the_module_wrapper)).
+In this example, the variable `PI` is private to `circle.js`.
If you want the root of your module's export to be a function (such as a
constructor) or if you want to export a complete object in one assignment
@@ -425,6 +426,30 @@ These are mostly for historic reasons. **You are highly encouraged
to place your dependencies locally in `node_modules` folders.** They
will be loaded faster, and more reliably.
+## The module wrapper
+
+
+
+Before a module's code is executed, Node.js will wrap it with a function
+wrapper that looks like the following:
+
+```js
+(function (exports, require, module, __filename, __dirname) {
+// Your module code actually lives in here
+});
+```
+
+By doing this, Node.js achieves a few things:
+
+- It keeps top-level variables (defined with `var`, `const` or `let`) scoped to
+the module rather than the global object.
+- It helps to provide some global-looking variables that are actually specific
+to the module, such as:
+ - The `module` and `exports` objects that the implementor can use to export
+ values from the module.
+ - The convenience variables `__filename` and `__dirname`, containing the
+ module's absolute filename and directory path.
+
## The `module` Object
diff --git a/doc/api/repl.markdown b/doc/api/repl.markdown
index 2b61e5da38e1f9..a6d78b61d446b8 100644
--- a/doc/api/repl.markdown
+++ b/doc/api/repl.markdown
@@ -13,7 +13,7 @@ dropped into the REPL. It has simplistic emacs line-editing.
```
$ node
Type '.help' for options.
-> a = [ 1, 2, 3];
+> a = [1, 2, 3];
[ 1, 2, 3 ]
> a.forEach((v) => {
... console.log(v);
diff --git a/doc/api/synopsis.markdown b/doc/api/synopsis.markdown
index 7dd3b8fe99d7fd..134c0dbed7286e 100644
--- a/doc/api/synopsis.markdown
+++ b/doc/api/synopsis.markdown
@@ -1,29 +1,43 @@
-# Synopsis
+# Usage
+`node [options] [v8 options] [script.js | -e "script"] [arguments]`
+
+Please see the [Command Line Options][] document for information about
+different options and ways to run scripts with Node.
+
+## Example
+
An example of a [web server][] written with Node.js which responds with
`'Hello World'`:
```js
const http = require('http');
-http.createServer( (request, response) => {
- response.writeHead(200, {'Content-Type': 'text/plain'});
- response.end('Hello World\n');
-}).listen(8124);
+const hostname = '127.0.0.1';
+const port = 3000;
+
+const server = http.createServer((req, res) => {
+ res.statusCode = 200;
+ res.setHeader('Content-Type', 'text/plain');
+ res.end('Hello World\n');
+});
-console.log('Server running at http://127.0.0.1:8124/');
+server.listen(port, hostname, () => {
+ console.log(`Server running at http://${hostname}:${port}/`);
+});
```
To run the server, put the code into a file called `example.js` and execute
-it with the node program
+it with Node.js:
```
$ node example.js
-Server running at http://127.0.0.1:8124/
+Server running at http://127.0.0.1:3000/
```
All of the examples in the documentation can be run similarly.
+[Command Line Options]: cli.html#cli_command_line_options
[web server]: http.html
diff --git a/doc/api_assets/style.css b/doc/api_assets/style.css
index 0024035ca171bd..a8e4b32611164b 100644
--- a/doc/api_assets/style.css
+++ b/doc/api_assets/style.css
@@ -50,35 +50,6 @@ em code {
font-style: normal;
}
-::-webkit-scrollbar {
- -webkit-appearance: none;
-}
-
-::-webkit-scrollbar-button {
- display: none;
-}
-
-::-webkit-scrollbar-track {
- background: #fff;
-}
-
-::-webkit-scrollbar-thumb {
- min-height: 48px;
- background: #d2d2d2;
- background-clip: padding-box;
- border: 3px solid #fff;
- border-radius: 5px;
-}
-
-::-webkit-scrollbar-thumb:active {
- background: #888;
- border-width: 2px;
-}
-
-::-webkit-scrollbar {
- width: 10px;
-}
-
#changelog #gtoc {
display: none;
}
@@ -87,6 +58,12 @@ em code {
font-size: .8em;
}
+.line {
+ width: calc(100% - 1em);
+ display: block;
+ padding-bottom: 1px;
+}
+
.api_stability {
color: white !important;
margin: 0 0 1em 0;
@@ -202,6 +179,12 @@ header h1 {
padding-top: 1em;
}
+#apicontent .line {
+ width: calc(50% - 1em);
+ margin: 1em 1em .95em;
+ background-color: #ccc;
+}
+
#toc + h1 {
margin-top: 1em;
padding-top: 0;
@@ -380,10 +363,22 @@ a code {
#column2 ul {
list-style: none;
- margin: 1.25em 0;
+ margin: .9em 0 .5em;
background: #333;
}
+#column2 > :first-child {
+ margin: 1.25em 1em;
+}
+
+#column2 > ul:nth-child(2) {
+ margin: 1.25em 0 .5em;
+}
+
+#column2 > ul:last-child {
+ margin: .9em 0 1.25em;
+}
+
#column2 ul li {
padding-left: 1.4em;
margin-bottom: .5em;
@@ -391,6 +386,11 @@ a code {
font-size: .8em;
}
+#column2 .line {
+ margin: 0 .5em;
+ background-color: #707070;
+}
+
#column2 ul li:last-child {
margin-bottom: 0;
}
@@ -467,3 +467,16 @@ th > *:last-child, td > *:last-child {
font-size: 3.5em;
}
}
+
+@media print {
+ html {
+ height: auto;
+ }
+ #column2.interior {
+ display: none;
+ }
+ #column1.interior {
+ margin-left: auto;
+ overflow-y: auto;
+ }
+}
diff --git a/doc/node.1 b/doc/node.1
index 9835af74a8f40c..0382a095db6d77 100644
--- a/doc/node.1
+++ b/doc/node.1
@@ -59,7 +59,7 @@ Syntax check the script without executing.
.TP
.BR \-i ", " \-\-interactive
-Opens the REPL even if stdin does not appear to be a terminal.
+Open the REPL even if stdin does not appear to be a terminal.
.TP
.BR \-r ", " \-\-require " " \fImodule\fR
@@ -80,7 +80,7 @@ Throw errors for deprecations.
.TP
.BR \-\-trace\-sync\-io
-Prints a stack trace whenever synchronous I/O is detected after the first turn
+Print a stack trace whenever synchronous I/O is detected after the first turn
of the event loop.
.TP
diff --git a/doc/onboarding-extras.md b/doc/onboarding-extras.md
index 2f35e2778c3a2c..55db6107350951 100644
--- a/doc/onboarding-extras.md
+++ b/doc/onboarding-extras.md
@@ -1,26 +1,24 @@
## Who to CC in issues
-* `lib/buffer`: @trevnorris
-* `lib/child_process`: @cjihrig, @bnoordhuis, @piscisaereus
-* `lib/cluster`: @cjihrig, @bnoordhuis, @piscisaereus
-* `lib/{crypto,tls,https}`: @indutny, @shigeki, @nodejs/crypto
-* `lib/domains`: @misterdjules
-* `lib/{_}http{*}`: @indutny, @bnoordhuis, @nodejs/http
-* `lib/net`: @indutny, @bnoordhuis, @piscisaereus, @chrisdickinson, @nodejs/streams
-* `lib/{_}stream{s|*}`: @nodejs/streams
-* `lib/repl`: @fishrock123
-* `lib/timers`: @fishrock123, @misterdjules
-* `lib/zlib`: @indutny, @bnoordhuis
-
-* `src/async-wrap.*`: @trevnorris
-* `src/node_crypto.*`: @indutny, @shigeki, @nodejs/crypto
-
-* `test/*`: @nodejs/testing, @trott
-
-* `tools/eslint`, `.eslintrc`: @silverwind, @trott
-
-* upgrading v8: @bnoordhuis / @targos / @ofrobots
-* upgrading npm: @thealphanerd, @fishrock123
+| subsystem | maintainers |
+| --- | --- |
+| `lib/buffer` | @trevnorris |
+| `lib/child_process` | @cjihrig, @bnoordhuis |
+| `lib/cluster` | @cjihrig, @bnoordhuis |
+| `lib/{crypto,tls,https}` | @nodejs/crypto |
+| `lib/domains` | @misterdjules |
+| `lib/{_}http{*}` | @indutny, @bnoordhuis, @mscdex, @nodejs/http |
+| `lib/net` | @indutny, @bnoordhuis, @nodejs/streams |
+| `lib/{_}stream{s|*}` | @nodejs/streams |
+| `lib/repl` | @fishrock123 |
+| `lib/timers` | @fishrock123, @misterdjules |
+| `lib/zlib` | @indutny, @bnoordhuis |
+| `src/async-wrap.*` | @trevnorris |
+| `src/node_crypto.*` | @nodejs/crypto |
+| `test/*` | @nodejs/testing |
+| `tools/eslint`, `.eslintrc` | @silverwind, @trott |
+| upgrading v8 | @bnoordhuis, @targos, @ofrobots |
+| upgrading npm | @thealphanerd, @fishrock123 |
When things need extra attention, are controversial, or `semver-major`: @nodejs/ctc
@@ -52,6 +50,8 @@ Please use these when possible / appropriate
* `feature request` - Any issue that requests a new feature (usually not PRs)
* `good first contribution` - Issues suitable for newcomers to process
+--
+
* `semver-{minor,major}`
* be conservative – that is, if a change has the remote *chance* of breaking something, go for semver-major
* when adding a semver label, add a comment explaining why you're adding it
@@ -94,7 +94,7 @@ to update from nodejs/node:
* prefer to make the originating user update the code, since they have it fresh in mind
* first, reattempt with `git am -3` (3-way merge)`
* if `-3` still fails, and you need to get it merged:
- * `git fetch origin pull/N/head:pr-N && git checkout pr-N && git rebase master`
+ * `git fetch upstream pull/N/head:pr-N && git checkout pr-N && git rebase master`
## best practices
diff --git a/doc/releases.md b/doc/releases.md
index 512deb34acf84d..b7e00683693027 100644
--- a/doc/releases.md
+++ b/doc/releases.md
@@ -127,7 +127,7 @@ See https://github.com/nodejs/node/labels/confirmed-bug for complete and current
* Include the full list of commits since the last release here. Do not include "Working on X.Y.Z+1" commits.
```
-The release type should be either Stable, LTS, or Maintenance, depending on the type of release being produced.
+The release type should be either Current, LTS, or Maintenance, depending on the type of release being produced.
### 4. Create Release Commit
@@ -187,7 +187,7 @@ Jenkins collects the artifacts from the builds, allowing you to download and ins
Once you have produced builds that you're happy with, create a new tag. By waiting until this stage to create tags, you can discard a proposed release if something goes wrong or additional commits are required. Once you have created a tag and pushed it to GitHub, you ***should not*** delete and re-tag. If you make a mistake after tagging then you'll have to version-bump and start again and count that tag/version as lost.
-Tag summaries have a predictable format, look at a recent tag to see, `git tag -v v5.3.0`. The message should look something like `2015-12-16 Node.js v5.3.0 (Stable) Release`.
+Tag summaries have a predictable format, look at a recent tag to see, `git tag -v v6.0.0`. The message should look something like `2016-04-26 Node.js v6.0.0 (Current) Release`.
Create a tag using the following command:
diff --git a/doc/template.html b/doc/template.html
index dec3f50670226e..71e3a21e1d4d5c 100644
--- a/doc/template.html
+++ b/doc/template.html
@@ -13,7 +13,7 @@