diff --git a/deps/npm/.mailmap b/deps/npm/.mailmap index 84886514da4666527b69fdfe226aeb5f17e547f9..55383ba8df11d2f5689208e70eae9a3fea4d3f55 100644 --- a/deps/npm/.mailmap +++ b/deps/npm/.mailmap @@ -24,6 +24,7 @@ Isaac Z. Schlueter Isaac Z. Schlueter isaacs Jake Verbaten James Sanders +James Treworgy Jason Smith Jonas Weber Julien Meddah diff --git a/deps/npm/.travis.yml b/deps/npm/.travis.yml index d555682984faf5aa5427a534dbef74346d2a5e01..e5828a39759b6e30d8fcf9106586aad72d434d97 100644 --- a/deps/npm/.travis.yml +++ b/deps/npm/.travis.yml @@ -8,7 +8,7 @@ env: - DEPLOY_VERSION=testing before_install: - "npm config set spin false" - - "npm install -g npm/npm#2.x" + - "node . install -g ." - "sudo mkdir -p /var/run/couchdb" script: "npm run-script test-all" notifications: diff --git a/deps/npm/AUTHORS b/deps/npm/AUTHORS index 9b03dc4d363c9f111ba1e39e485371b6df715743..cbafe00659c6bd45cbd0ba9991cf537f53c083d2 100644 --- a/deps/npm/AUTHORS +++ b/deps/npm/AUTHORS @@ -291,11 +291,12 @@ Eduardo Pinho Rachel Hutchison Ryan Temple Eugene Sharygin -Nick Heiner James Talmage jane arc Joseph Dykstra +Andrew Crites Joshua Egan +Carlos Alberto Thomas Cort Thaddee Tyl Steve Klabnik @@ -308,7 +309,7 @@ murgatroid99 Marcin Cieslak João Reis Matthew Hasbach -Anna Henningsen Jon Hall +Anna Henningsen +James Treworgy James Hartig -snopeks diff --git a/deps/npm/CHANGELOG.md b/deps/npm/CHANGELOG.md index 8a8dbbca445cd508eec0a325fb256f097134f623..d4c1ba4aa2fa8f3172d6287b313b81936a5c1fba 100644 --- a/deps/npm/CHANGELOG.md +++ b/deps/npm/CHANGELOG.md @@ -1,49 +1,118 @@ -### v2.14.7 (2015-10-01): +### v3.3.6 (2015-09-30): + +I have the most exciting news for you this week. YOU HAVE NO IDEA. Well, +ok, maybe you do if you follow my twitter. + +Performance just got 5 bazillion times better (under some circumstances, +ymmv, etc). So– my test scenario is our very own website. In npm@2, on my +macbook running `npm ls` takes about 5 seconds. Personally it's more than +I'd like, but it's entire workable. In npm@3 it has been taking _50_ seconds, +which is appalling. But after doing some work on Monday isolating the performance +issues I've been able to reduce npm@3's run time back down to 5 seconds. + +Other scenarios were even worse, there was one that until now in npm@3 that +took almost 6 minutes, and has been reduced to 14 seconds. + +* [`7bc0d4c`](https:github.com/npm/npm/commit/7bc0d4c) + [`cf42217`](https:github.com/npm/npm/commit/cf42217) + [#8826](https://github.com/npm/npm/issues/8826) + Stop using deepclone on super big datastructures. Avoid cloning + all-together even when that means mutating things, when possible. + Otherwise use a custom written tree-copying function that understands + the underlying datastructure well enough to only copy what we absolutely + need to. + ([@iarna](https://github.com/iarna)) + +In other news, look for us this Friday and Saturday at the amazing +[Open Source and Feelings](https://osfeels.com) conference, where something like a +third of the company will be attending. + +#### And finally a dependency update + +* [`a6a4437`](https:github.com/npm/npm/commit/a6a4437) + glob@5.0.15 + ([@isaacs](https://github.com/isaacs)) + +#### And some subdep updates + +* [`cc5e6a0`](https:github.com/npm/npm/commit/cc5e6a0) + hoek@2.16.3 + ([@nlf](https://github.com/nlf)) +* [`912a516`](https:github.com/npm/npm/commit/912a516) + boom@2.9.0 + ([@arb](https://github.com/arb)) +* [`63944e9`](https:github.com/npm/npm/commit/63944e9) + bluebird@2.10.1 + ([@petkaantonov](https://github.com/petkaantonov)) +* [`ef16003`](https:github.com/npm/npm/commit/ef16003) + mime-types@2.1.7 & mime-db@1.19.0 + ([@dougwilson](https://github.com/dougwilson)) +* [`2b8c0dd`](https:github.com/npm/npm/commit/2b8c0dd) + request@2.64.0 + ([@simov](https://github.com/simov)) +* [`8139124`](https:github.com/npm/npm/commit/8139124) + brace-expansion@1.1.1 + ([@juliangruber](https://github.com/juliangruber)) + +### v3.3.5 (2015-09-24): -#### MORE RELEASE STAGGERING?! +Some of you all may not be aware, but npm is ALSO a company. I tell you this +'cause npm-the-company had an all-staff get together this week, flying in +our remote folks from around the world. That was great, but it also +basically eliminated normal work on Monday and Tuesday. -Hi all, and greetings from [Open Source & Feelings](http://osfeels.com)! +Still, we've got a couple of really important bug fixes this week. Plus a +lil bit from the [now LTS 2.x branch](https://github.com/npm/npm/releases/tag/v2.14.6). -So we're switching gears a little with how we handle our weekly releases: from -now on, we're going to stagger release weeks between dependency bumps and -regular patches. So, this week, aside from a doc change, we'll be doing only -version bumps. Expect actual patches next week! +#### ATTENTION WINDOWS USERS -#### TOTALLY FOLLOWING THE RULES ALREADY +If you previously updated to npm 3 and you try to update again, you may get +an error messaging telling you that npm won't install npm into itself. Until you +are at 3.3.5 or greater, you can get around this with `npm install -f -g npm`. -So I snuck this in, because it's our own [@snopeks](https://github.com/snopeks)' -first contribution to the main `npm` repo. She's been helping with building -support documents for Orgs, and contributed her general intro guide to the new -feature so you can read it with `npm help orgs` right in your terminal! +* [`bef06f5`](https://github.com/npm/npm/commit/bef06f5) + [#9741](https://github.com/npm/npm/pull/9741) Uh... so... er... it + seems that since npm@3.2.0 on Windows with a default configuration, it's + been impossible to update npm. Well, that's not actually true, there's a + work around (see above), but it shouldn't be complaining in the first + place. + ([@iarna](https://github.com/iarna)) -* [`8324ea0`](https://github.com/npm/npm/commit/8324ea023ace4e08b6b8959ad199e2457af9f9cf) - [#9761](https://github.com/npm/npm/pull/9761) Added general user guide for - Orgs. - ([@snopeks](https://github.com/snopeks)) +#### STACK OVERFLOWS ON PUBLISH -#### JUST. ONE. MORE. +* [`330b496`](https://github.com/npm/npm/commit/330b496) + [#9667](https://github.com/npm/npm/pull/9667) + We were keeping track of metadata about your project while packing the + tree in a way that resulted in this data being written to packed tar files + headers. When this metadata included cycles, it resulted in the the tar + file entering an infinite recursive loop and eventually crashing with a + stack overflow. -* [`9a502ca`](https://github.com/npm/npm/commit/9a502ca96e2d43ec75a8f684c9ca33af7e910f0a) - Use unique package name in tests to work around weird test-state-based - failures. + I've patched this by keeping track of your metadata by closing over the + variables in question instead, and I've further restricted gathering and + tracking the metadata to times when it's actually needed. (Which is only + if you need bundled modules.) ([@iarna](https://github.com/iarna)) -#### OKAY ACTUALLY THE THING I WAS SUPPOSED TO DO +#### LESS CRASHY ERROR MESSAGES ON BAD PACKAGES -Anyway -- here's your version bump! :) +* [`829921f`](https://github.com/npm/npm/commit/829921f) + [#9741](https://github.com/npm/npm/pull/9741) + Packages with invalid names or versions were crashing the installer. These + are now captured and warned as was originally intended. + ([@iarna](https://github.com/iarna)) + +#### ONE DEPENDENCY UPDATE -* [`4aeb94c`](https://github.com/npm/npm/commit/4aeb94c9f0df3f41802cf2e0397a998f3b527c25) - `request@2.64.0`: No longer defaulting to `application/json` for `json` - requests. Also some minor doc and packaging patches. +* [`963295c`](https://github.com/npm/npm/commit/963295c) + npm-install-checks@2.0.1 + ([@iarna](https://github.com/iarna)) + +#### AND ONE SUBDEPENDENCY + +* [`448737d`](https://github.com/npm/npm/commit/448737d) + request@2.63.0 ([@simov](https://github.com/simov)) - `minimatch@3.0.0`: No longer packaging browser modules. - ([@isaacs](https://github.com/isaacs)) -* [`a18b213`](https://github.com/npm/npm/commit/a18b213e6945a8f5faf882927829ac95f844e2aa) - `glob@5.0.15`: Upgraded `minimatch` dependency. - ([@isaacs](https://github.com/isaacs)) -* [`9eb64d4`](https://github.com/npm/npm/commit/9eb64e44509519ca9d788502edb2eba4cea5c86b) - `nock@2.13.0` - ([@pgte](https://github.com/pgte)) ### v2.14.6 (2015-09-24): @@ -65,12 +134,70 @@ Still, we're bringing you a couple of tiny little changes this week! making `json` requests. ([@simov](https://github.com/simov)) +### v3.3.4 (2015-09-17): + +This is a relatively quiet release, bringing a few bug fixes and +some module updates, plus via the +[2.14.5 release](https://github.com/npm/npm/releases/tag/v2.14.5) +some forward compatibility fixes with versions of Node that +aren't yet released. + +#### NO BETA NOTICE THIS TIME!! + +But, EXCITING NEWS FRIENDS, this week marks the exit of npm@3 +from beta. This means that the week of this release, +[v3.3.3](https://github.com/npm/npm/releases/tag/v3.3.3) will +become `latest` and this version (v3.3.4) will become `next`!! + +#### CRUFT FOR THE CRUFT GODS + +What I call "cruft", by which I mean, files sitting around in +your `node_modules` folder, will no longer produce warnings in +`npm ls` nor during `npm install`. This brings npm@3's behavior +in line with npm@2. + +* [`a127801`](https://github.com/npm/npm/commit/a127801) + [#9285](https://github.com/npm/npm/pull/9586) + Stop warning about cruft in module directories. + ([@iarna](https://github.com/iarna)) + +#### BETTER ERROR MESSAGE + +* [`95ee92c`](https://github.com/npm/npm/commit/95ee92c) + [#9433](https://github.com/npm/npm/issues/9433) + Give better error messages for invalid urls in the dependecy + list. + ([@jamietre](https://github.com/jamietre)) + +#### MODULE UPDATES + +* [`ebb92ca`](https://github.com/npm/npm/commit/ebb92ca) + retry@0.8.0 [(@tim-kos](https://github.com/tim-kos)) +* [`55f1285`](https://github.com/npm/npm/commit/55f1285) + normalize-package-data@2.3.4 [(@zkat](https://github.com/zkat)) +* [`6d4ebff`](https://github.com/npm/npm/commit/6d4ebff) + sha@2.0.1 [(@ForbesLindesay](https://github.com/ForbesLindesay)) +* [`09a9c7a`](https://github.com/npm/npm/commit/09a9c7a) + semver@5.0.3 [(@isaacs](https://github.com/isaacs)) +* [`745000f`](https://github.com/npm/npm/commit/745000f) + node-gyp@3.0.3 [(@rvagg](https://github.com/rvagg)) + +#### SUB DEP MODULE UPDATES + +* [`578ca25`](https://github.com/npm/npm/commit/578ca25) + request@2.62.0 [(@simov](https://github.com/simov)) +* [`1d8996e`](https://github.com/npm/npm/commit/1d8996e) + jju@1.2.1 [(@rlidwka](https://github.com/rlidwka)) +* [`6da1ba4`](https://github.com/npm/npm/commit/6da1ba4) + hoek@2.16.2 [(@nlf](https://github.com/nlf)) + ### v2.14.5 (2015-09-17): #### NPM IS DEAD. LONG LIVE NPM -That's right folks. As of this week, `npm@latest` is `npm@3`! There's some -really great shiny new things over there, and you should really take a look. +That's right folks. As of this week, `npm@next` is `npm@3`, which means it'll be +`npm@latest` next week! There's some really great shiny new things over there, +and you should really take a look. Many kudos to [@iarna](https://github.com/iarna) for her hard work on `npm@3`! @@ -138,6 +265,141 @@ bunch of patches to get the latest npm working. `semver@5.0.3`: Removed uglify-js dead code. ([@isaacs](https://github.com/isaacs)) +### v3.3.3 (2015-09-10): + +This short week brought us brings us a few small bug fixes, a +doc change and a whole lotta dependency updates. + +Plus, as usual, this includes a forward port of everything in +[`npm@2.14.4`](https://github.com/npm/npm/releases/tag/v2.14.4). + +#### BETA BUT NOT FOREVER + +**_THIS IS BETA SOFTWARE_**. `npm@3` will remain in beta until +we're confident that it's stable and have assessed the effect of +the breaking changes on the community. During that time we will +still be doing `npm@2` releases, with `npm@2` tagged as `latest` +and `next`. We'll _also_ be publishing new releases of `npm@3` +as `npm@v3.x-next` and `npm@v3.x-latest` alongside those +versions until we're ready to switch everyone over to `npm@3`. +We need your help to find and fix its remaining bugs. It's a +significant rewrite, so we are _sure_ there still significant +bugs remaining. So do us a solid and deploy it in non-critical +CI environments and for day-to-day use, but maybe don't use it +for production maintenance or frontline continuous deployment +just yet. + +#### REMOVE INSTALLED BINARIES ON WINDOWS + +So waaaay back at the start of August, I fixed a bug with +[#9198](https://github.com/npm/npm/pull/9198). That fix made it +so that if you had two modules installed that both installed the +same binary (eg `gulp` & `gulp-cli`), that removing one wouldn't +remove the binary if it was owned by the other. + +It did this by doing some hocus-pocus that, turns out, was +Unix-specific, so on Windows it just threw up its hands and +stopped removing installed binaries at all. Not great. + +So today we're fixing that– it let us maintain the same safety +that we added in #9198, but ALSO works with windows. + +* [`25fbaed`](https://github.com/npm/npm/commit/25fbaed) + [#9394](https://github.com/npm/npm/issues/9394) + Treat cmd-shims the same way we treat symlinks + ([@iarna](https://github.com/iarna)) + +#### API DOCUMENTATION HAS BEEN SACRIFICED THE API GOD + +The documentation of the internal APIs of npm is going away, +because it would lead people into thinking they should integrate +with npm by using it. Please don't do that! In the future, we'd +like to give you a suite of stand alone modules that provide +better, more stand alone APIs for your applications to build on. +But for now, call the npm binary with `process.exec` or +`process.spawn` instead. + +* [`2fb60bf`](https://github.com/npm/npm/commit/2fb60bf) + Remove misleading API documentation + ([@othiym23](https://github.com/othiym23)) + +#### ALLOW `npm link` ON WINDOWS W/ PRERELEASE VERSIONS OF NODE + +We never meant to have this be a restriction in the first place +and it was only just discovered with the recent node 4.0.0 +release candidate. + +* [`6665e54`](https://github.com/npm/npm/commit/6665e54) + [#9505](https://github.com/npm/npm/pull/9505) + Allow npm link to run on windows with prerelease versions of + node + ([@jon-hall](https://github.com/jon-hall)) + +#### graceful-fs update + +We're updating all of npm's deps to use the most recent +`graceful-fs`. This turns out to be important for future not yet +released versions of node, because older versions monkey-patch +`fs` in ways that will break in the future. Plus it ALSO makes +use of `process.binding` which is an internal API that npm +definitely shouldn't have been using. We're not done yet, but +this is the bulk of them. + +* [`e7bc98e`](https://github.com/npm/npm/commit/e7bc98e) + write-file-atomic@1.1.3 + ([@iarna](https://github.com/iarna)) +* [`7417600`](https://github.com/npm/npm/commit/7417600) + tar@2.2.1 + ([@zkat](https://github.com/zkat)) +* [`e4e9d40`](https://github.com/npm/npm/commit/e4e9d40) + read-package-json@2.0.1 + ([@zkat](https://github.com/zkat)) +* [`481611d`](https://github.com/npm/npm/commit/481611d) + read-installed@4.0.3 + ([@zkat](https://github.com/zkat)) +* [`0dabbda`](https://github.com/npm/npm/commit/0dabbda) + npm-registry-client@7.0.4 + ([@zkat](https://github.com/zkat)) +* [`c075a91`](https://github.com/npm/npm/commit/c075a91) + fstream@1.0.8 + ([@zkat](https://github.com/zkat)) +* [`2e4341a`](https://github.com/npm/npm/commit/2e4341a) + fs-write-stream-atomic@1.0.4 + ([@zkat](https://github.com/zkat)) +* [`18ad16e`](https://github.com/npm/npm/commit/18ad16e) + fs-vacuum@1.2.7 + ([@zkat](https://github.com/zkat)) + +#### DEPENDENCY UPDATES + +* [`9d6666b`](https://github.com/npm/npm/commit/9d6666b) + node-gyp@3.0.1 + ([@rvagg](https://github.com/rvagg)) +* [`349c4df`](https://github.com/npm/npm/commit/349c4df) + retry@0.7.0 + ([@tim-kos](https://github.com/tim-kos)) +* [`f507551`](https://github.com/npm/npm/commit/f507551) + which@1.1.2 + ([@isaacs](https://github.com/isaacs)) +* [`e5b6743`](https://github.com/npm/npm/commit/e5b6743) + nopt@3.0.4 + ([@zkat](https://github.com/zkat)) + +#### THE DEPENDENCIES OF OUR DEPENDENCIES ARE OUR DEPENDENCIES UPDATES + +* [`316382d`](https://github.com/npm/npm/commit/316382d) + mime-types@2.1.6 & mime-db@1.18.0 +* [`64b741e`](https://github.com/npm/npm/commit/64b741e) + spdx-correct@1.0.1 +* [`fff62ac`](https://github.com/npm/npm/commit/fff62ac) + process-nextick-args@1.0.3 +* [`9d6488c`](https://github.com/npm/npm/commit/9d6488c) + cryptiles@2.0.5 +* [`1912012`](https://github.com/npm/npm/commit/1912012) + bluebird@2.10.0 +* [`4d09402`](https://github.com/npm/npm/commit/4d09402) + readdir-scoped-modules@1.0.2 + ### v2.14.4 (2015-09-10): #### THE GREAT NODEv4 SAGA @@ -219,6 +481,41 @@ updates related to this: `nopt@3.0.4`: Minor clarifications to docs about how array and errors work. ([@zkat](https://github.com/zkat)) +### v3.3.2 (2015-09-04): + +#### PLEASE HOLD FOR THE NEXT AVAILABLE MAINTAINER + +This is a tiny little maintenance release, both to update dependencies and to +keep `npm@3` up to date with changes made to `npm@2`. +[@othiym23](https://github.com/othiym23) is putting out this release (again) as +his esteemed colleague [@iarna](https://github.com/iarna) finishes relocating +herself, her family, and her sizable anime collection all the way across North +America. It contains [all the goodies in +`npm@2.14.3`](https://github.com/npm/npm/releases/tag/v2.14.3) and one other +dependency update. + +#### BETA WARNINGS FOR FUN AND PROFIT + +**_THIS IS BETA SOFTWARE_**. `npm@3` will remain in beta until we're +confident that it's stable and have assessed the effect of the breaking +changes on the community. During that time we will still be doing `npm@2` +releases, with `npm@2` tagged as `latest` and `next`. We'll _also_ be +publishing new releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` +alongside those versions until we're ready to switch everyone over to +`npm@3`. We need your help to find and fix its remaining bugs. It's a +significant rewrite, so we are _sure_ there still significant bugs +remaining. So do us a solid and deploy it in non-critical CI environments +and for day-to-day use, but maybe don't use it for production maintenance or +frontline continuous deployment just yet. + +That said, it's getting there! It will be leaving beta very soon! + +#### ONE OTHER DEPENDENCY UPDATE + +* [`bb5de34`](https://github.com/npm/npm/commit/bb5de3493531228df0bd3f0742d5493c826be6dd) + `is-my-json-valid@2.12.2`: Upgrade to a new, modernized version of + `json-pointer`. ([@mafintosh](https://github.com/mafintosh)) + ### v2.14.3 (2015-09-03): #### TEAMS AND ORGS STILL BETA. CLI CODE STILL SOLID. @@ -261,6 +558,101 @@ No actual dep updates this week, but we're bumping a couple of devDeps: `deep-equal@1.0.1`: Make `null == undefined` in non-strict mode ([@isaacs](https://github.com/isaacs)) +### v3.3.1 (2015-08-27): + +Hi all, this `npm@3` update brings you another round of bug fixes. The +headliner here is that `npm update` works again. We're running down the +clock on blocker 3.x issues! Shortly after that hits zero we'll be +promoting 3.x to latest!! + +And of course, we have changes that were brought forward from 2.x. Check out +the release notes for +[2.14.1](https://github.com/npm/npm/releases/tag/v2.14.1) and +[2.14.2](https://github.com/npm/npm/releases/tag/v2.14.2). + +#### BETA WARNINGS FOR FUN AND PROFIT + +**_THIS IS BETA SOFTWARE_**. `npm@3` will remain in beta until we're +confident that it's stable and have assessed the effect of the breaking +changes on the community. During that time we will still be doing `npm@2` +releases, with `npm@2` tagged as `latest` and `next`. We'll _also_ be +publishing new releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` +alongside those versions until we're ready to switch everyone over to +`npm@3`. We need your help to find and fix its remaining bugs. It's a +significant rewrite, so we are _sure_ there still significant bugs +remaining. So do us a solid and deploy it in non-critical CI environments +and for day-to-day use, but maybe don't use it for production maintenance or +frontline continuous deployment just yet. + +#### NPM UPDATE, NOW AGAIN YOUR FRIEND + +* [`f130a00`](https://github.com/npm/npm/commit/f130a00) + [#9095](https://github.com/npm/npm/issues/9095) + `npm update` once again works! Previously, after selecting packages + to update, it would then pick the wrong location to run the install + from. ([@iarna](https://github.com/iarna)) + +#### MORE VERBOSING FOR YOUR VERBOSE LIFECYCLES + +* [`d088b7d`](https://github.com/npm/npm/commit/d088b7d) + [#9227](https://github.com/npm/npm/pull/9227) + Add some additional logging at the verbose and silly levels + when running lifecycle scripts. Hopefully this will make + debugging issues with them a bit easier! + ([@saper](https://github.com/saper)) + +#### AND SOME OTHER BUG FIXES… + +* [`f4a5784`](https://github.com/npm/npm/commit/f4a5784) + [#9308](https://github.com/npm/npm/issues/9308) + Make fetching metadata for local modules faster! This ALSO means + that doing things like running `npm repo` won't build your + module and maybe run `prepublish`. + ([@iarna](https://github.com/iarna)) + +* [`4468c92`](https://github.com/npm/npm/commit/4468c92) + [#9205](https://github.com/npm/npm/issues/9205) + Fix a bug where local modules would sometimes not resolve relative + links using the correct base path. + ([@iarna](https://github.com/iarna)) + +* [`d395a6b`](https://github.com/npm/npm/commit/d395a6b) + [#8995](https://github.com/npm/npm/issues/8995) + Certain combinations of packages could result in different install orders for their + initial installation than for reinstalls run on the same folder. + ([@iarna](https://github.com/iarna)) + +* [`d119ea6`](https://github.com/npm/npm/commit/d119ea6) + [#9113](https://github.com/npm/npm/issues/9113) + Make extraneous packages _always_ up in `npm ls`. Previously, if an + extraneous package had a dependency that depended back on the original + package this would result in the package not showing up in `ls`. + ([@iarna](https://github.com/iarna)) + +* [`02420dc`](https://github.com/npm/npm/commit/02420dc) + [#9113](https://github.com/npm/npm/issues/9113) + Stop warning about missing top level package.json files. Errors in said + files will still be reported. + ([@iarna](https://github.com/iarna)) + +#### SOME DEP UPDATES + +* [`1ed1364`](https://github.com/npm/npm/commit/1ed1364) rimraf@2.4.3 + ([@isaacs](https://github.com/isaacs)) Added EPERM to delay/retry loop +* [`e7b8315`](https://github.com/npm/npm/commit/e7b8315) read@1.0.7 + Smaller distribution package, better metadata + ([@isaacs](https://github.com/isaacs)) + +#### SOME DEPS OF DEPS UPDATES + +* [`b273bcc`](https://github.com/npm/npm/commit/b273bcc) mime-types@2.1.5 +* [`df6e225`](https://github.com/npm/npm/commit/df6e225) mime-db@1.17.0 +* [`785f2ad`](https://github.com/npm/npm/commit/785f2ad) is-my-json-valid@2.12.1 +* [`88170dd`](https://github.com/npm/npm/commit/88170dd) form-data@1.0.0-rc3 +* [`af5357b`](https://github.com/npm/npm/commit/af5357b) request@2.61.0 +* [`337f96a`](https://github.com/npm/npm/commit/337f96a) chalk@1.1.1 +* [`3dfd74d`](https://github.com/npm/npm/commit/3dfd74d) async@1.4.2 + ### v2.14.2 (2015-08-27): #### GETTING THAT PESKY `preferGlobal` WARNING RIGHT @@ -402,6 +794,106 @@ appreciate everybody's patience and understanding tremendously. `request@2.61.0`: Bug fixes and keep-alive tweaks. ([@simov](https://github.com/simov)) +### v3.3.0 (2015-08-13): + +This is a pretty EXCITING week. But I may be a little excitable– or +possibly sleep deprived, it's sometimes hard to tell them apart. =D So +[Kat](https://github.com/zkat) really went the extra mile this week and got +the client side support for teams and orgs out in this week's 2.x release. +You can't use that just yet, 'cause we have to turn on some server side +stuff too, but this way it'll be there for you all the moment we do! Check +out the details over in the [2.14.0 release +notes](https://github.com/npm/npm/releases/tag/v2.14.0)! + +But we over here in 3.x ALSO got a new feature this week, check out the new +`--only` and `--also` flags for better control over when dev and production +dependencies are used by various npm commands. + +That, and some important bug fixes round out this week. Enjoy everyone! + +#### NEVER SHALL NOT BETA THE BETA + +**_THIS IS BETA SOFTWARE_**. EXCITING NEW BETA WARNING!!! Ok, I fibbed, +EXACTLY THE SAME BETA WARNINGS: `npm@3` will remain in beta until we're +confident that it's stable and have assessed the effect of the breaking +changes on the community. During that time we will still be doing `npm@2` +releases, with `npm@2` tagged as `latest` and `next`. We'll _also_ be +publishing new releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` +alongside those versions until we're ready to switch everyone over to +`npm@3`. We need your help to find and fix its remaining bugs. It's a +significant rewrite, so we are _sure_ there still significant bugs +remaining. So do us a solid and deploy it in non-critical CI environments +and for day-to-day use, but maybe don't use it for production maintenance or +frontline continuous deployment just yet. + +#### ONLY ALSO DEV + +Hey we've got a SUPER cool new feature for you all, thanks to the fantastic +work of [@davglass](https://github.com/davglass) and +[@bengl](https://github.com/bengl) we have `--only=prod`, +`--only=dev`, `--also=prod` and `--also=dev` options. These apply in +various ways to: `npm install`, `npm ls`, `npm outdated` and `npm update`. + +So for instance: + +``` +npm install --only=dev +``` + +Only installs dev dependencies. By contrast: + +``` +npm install --only=prod +``` + +Will only install prod dependencies and is very similar to `--production` +but differs in that it doesn't set the environment variables that +`--production` does. + +The related new flag, `--also` is most useful with things like: + +``` +npm shrinkwrap --also=dev +``` + +As shrinkwraps don't include dev deps by default. This replaces passing in +`--dev` in that scenario. + +And that leads into the fact that this deprecates `--dev` as its semantics +across commands were inconsistent and confusing. + +* [`3ab1eea`](https://github.com/npm/npm/commit/3ab1eea) + [#9024](https://github.com/npm/npm/pull/9024) + Add support for `--only`, `--also` and deprecate `--dev` + ([@bengl](https://github.com/bengl)) + +#### DON'T TOUCH! THAT'S NOT YOUR BIN + +* [`b31812e`](https://github.com/npm/npm/commit/b31812e) + [#8996](https://github.com/npm/npm/pull/8996) + When removing a module that has bin files, if one that we're going to + remove is a symlink to a DIFFERENT module, leave it alone. This only happens + when you have two modules that try to provide the same bin. + ([@iarna](https://github.com/iarna)) + +#### THERE'S AN END IN SIGHT + +* [`d2178a9`](https://github.com/npm/npm/commit/d2178a9) + [#9223](https://github.com/npm/npm/pull/9223) + Close a bunch of infinite loops that could show up with symlink cycles in your dependencies. + ([@iarna](https://github.com/iarna)) + +#### OOPS DIDN'T MEAN TO FIX THAT + +Well, not _just_ yet. This was scheduled for next week, but it snuck into +2.x this week. + +* [`139dd92`](https://github.com/npm/npm/commit/139dd92) + [#8716](https://github.com/npm/npm/pull/8716) + `npm init` will now only pick up the modules you install, not everything + else that got flattened with them. + ([@iarna](https://github.com/iarna)) + ### v2.14.0 (2015-08-13): #### IT'S HERE! KINDA! @@ -455,6 +947,69 @@ All of these changes were done under [`#9011`](https://github.com/npm/npm/pull/9 around semver range, thus making it valid semver. ([@KenanY](https://github.com/KenanY)) +### v3.2.2 (2015-08-08): + +Lot's of lovely bug fixes for `npm@3`. I'm also suuuuper excited that I +think we have a handle on stack explosions that effect a small portion of +our users. We also have some tantalizing clues as to where some low hanging +fruit may be for performance issues. + +And of course, in addition to the npm@3 specific bug fixes, there are some +great one's coming in from npm@2! [@othiym23](https://github.com/othiym23) +put together that release this week– check out its +[release notes](https://github.com/npm/npm/releases/tag/v2.13.4) for the deets. + +#### AS ALWAYS STILL BETA + +**_THIS IS BETA SOFTWARE_**. Just like the airline safety announcements, +we're not taking this plane off till we finish telling you: `npm@3` will +remain in beta until we're confident that it's stable and have assessed the +effect of the breaking changes on the community. During that time we will +still be doing `npm@2` releases, with `npm@2` tagged as `latest` and `next`. +We'll _also_ be publishing new releases of `npm@3` as `npm@v3.x-next` and +`npm@v3.x-latest` alongside those versions until we're ready to switch +everyone over to `npm@3`. We need your help to find and fix its remaining +bugs. It's a significant rewrite, so we are _sure_ there still significant +bugs remaining. So do us a solid and deploy it in non-critical CI +environments and for day-to-day use, but maybe don't use it for production +maintenance or frontline continuous deployment just yet. + +#### BUG FIXES + +* [`a8c8a13`](https://github.com/npm/npm/commit/a8c8a13) + [#9050](https://github.com/npm/npm/issues/9050) + Resolve peer deps relative to the parent of the requirer + ([@iarna](http://github.com/iarna)) +* [`05f0226`](https://github.com/npm/npm/commit/05f0226) + [#9077](https://github.com/npm/npm/issues/9077) + Fix crash when saving `git+ssh` urls + ([@iarna](http://github.com/iarna)) +* [`e4a3808`](https://github.com/npm/npm/commit/e4a3808) + [#8951](https://github.com/npm/npm/issues/8951) + Extend our patch to allow `*` to match something when a package only has + prerelease versions to everything and not just the cache. + ([@iarna](http://github.com/iarna)) +* [`d135abf`](https://github.com/npm/npm/commit/d135abf) + [#8871](https://github.com/npm/npm/issues/8871) + Don't warn about a missing `package.json` or missing fields in the global + install directory. + ([@iarna](http://github.com/iarna)) + +#### DEP VERSION BUMPS + +* [`990ee4f`](https://github.com/npm/npm/commit/990ee4f) + path-is-inside@1.0.1 ([@domenic](https://github.com/domenic)) +* [`1f71ec0`](https://github.com/npm/npm/commit/1f71ec0) + lodash.clonedeep@3.0.2 ([@jdalton](https://github.com/jdalton)) +* [`a091354`](https://github.com/npm/npm/commit/a091354) + marked@0.3.5 ([@chjj](https://github.com/chjj)) +* [`fc51f28`](https://github.com/npm/npm/commit/fc51f28) + tap@1.3.2 ([@isaacs](https://github.com/isaacs)) +* [`3569ec0`](https://github.com/npm/npm/commit/3569ec0) + nock@2.10.0 ([@pgte](https://github.com/pgte)) +* [`ad5f6fd`](https://github.com/npm/npm/commit/ad5f6fd) + npm-registry-mock@1.0.1 ([@isaacs](https://github.com/isaacs)) + ### v2.13.5 (2015-08-07): This is another quiet week for the `npm@2` release. @@ -505,6 +1060,51 @@ like _you_, which we think is swell. Thanks! * [`4bbc86e`](https://github.com/npm/npm/commit/4bbc86e3825e2eee9a8758ba26bdea0cb6a2581e) `nock@2.10.0` ([@pgte](https://github.com/pgte)) +### v3.2.1 (2015-07-31): + +#### AN EXTRA QUIET RELEASE + +A bunch of stuff got deferred for various reasons, which just means more +branches to land next week! + +Don't forget to check out [Kat's 2.x release](https://github.com/npm/npm/releases/tag/v2.13.4) for other quiet goodies. + +#### AS ALWAYS STILL BETA + +**_THIS IS BETA SOFTWARE_**. Yes, we're still reminding you of this. No, +you can't be excused. `npm@3` will remain in beta until we're confident +that it's stable and have assessed the effect of the breaking changes on the +community. During that time we will still be doing `npm@2` releases, with +`npm@2` tagged as `latest` and `next`. We'll _also_ be publishing new +releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` alongside those +versions until we're ready to switch everyone over to `npm@3`. We need your +help to find and fix its remaining bugs. It's a significant rewrite, so we +are _sure_ there still significant bugs remaining. So do us a solid and +deploy it in non-critical CI environments and for day-to-day use, but maybe +don't use it for production maintenance or frontline continuous deployment +just yet. + + +#### MAKING OUR TESTS TEST THE THING THEY TEST + +* [`6e53c3d`](https://github.com/npm/npm/commit/6e53c3d) + [#8985](https://github.com/npm/npm/pull/8985) + Many thanks to @bengl for noticing that one of our tests wasn't testing + what it claimed it was testing! ([@bengl](https://github.com/bengl)) + +#### MY PACKAGE.JSON WAS ALREADY IN THE RIGHT ORDER + +* [`eb2c7aa`](https://github.com/npm/npm/commit/d00d0f) + [#9068](https://github.com/npm/npm/pull/9079) + Stop sorting keys in the `package.json` that we haven't edited. Many + thanks to [@Qix-](https://github.com/Qix-) for bringing this up and + providing a first pass at a patch for this. + ([@iarna](https://github.com/iarna)) + +#### DEV DEP UPDATE + +* [`555f60c`](https://github.com/npm/npm/commit/555f60c) marked@0.3.4 + ### v2.13.4 (2015-07-30): #### JULY ENDS ON A FAIRLY QUIET NOTE @@ -536,6 +1136,103 @@ Hooray. nock@2.9.1 ([@pgte](https://github.com/pgte)) +### v3.2.0 (2015-07-24): + +#### MORE CONFIG, BETTER WINDOWS AND A BUG FIX + +This is a smallish release with a new config option and some bug fixes. And +lots of module updates. + +#### BETA BETAS ON + +**_THIS IS BETA SOFTWARE_**. Yes, we're still reminding you of this. No, +you can't be excused. `npm@3` will remain in beta until we're confident +that it's stable and have assessed the effect of the breaking changes on the +community. During that time we will still be doing `npm@2` releases, with +`npm@2` tagged as `latest` and `next`. We'll _also_ be publishing new +releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` alongside those +versions until we're ready to switch everyone over to `npm@3`. We need your +help to find and fix its remaining bugs. It's a significant rewrite, so we +are _sure_ there still significant bugs remaining. So do us a solid and +deploy it in non-critical CI environments and for day-to-day use, but maybe +don't use it for production maintenance or frontline continuous deployment +just yet. + + +#### NEW CONFIGS, LESS PROGRESS + +* [`423d8f7`](https://github.com/npm/npm/commit/423d8f7) + [#8704](https://github.com/npm/npm/issues/8704) + Add the ability to disable the new progress bar with `--no-progress` + ([@iarna](https://github.com/iarna)) + +#### AND BUG FIXES + +* [`b3ee452`](https://github.com/npm/npm/commit/b3ee452) + [#9038](https://github.com/npm/npm/pull/9038) + We previously disabled the use of the new `fs.access` API on Windows, but + the bug we were seeing is fixed in io.js@1.5.0 so we now use `fs.access` + if you're using that version or greater. + ([@iarna](https://github.com/iarna)) + +* [`b181fa3`](https://github.com/npm/npm/commit/b181fa3) + [#8921](https://github.com/npm/npm/issues/8921) + [#8637](https://github.com/npm/npm/issues/8637) + Rejigger how we validate modules for install. This allow is to fix + a problem where arch/os checking wasn't being done at all. + It also made it easy to add back in a check that declines to + install a module in itself unless you force it. + ([@iarna](https://github.com/iarna)) + +#### AND A WHOLE BUNCH OF SUBDEP VERSIONS + +These are all development dependencies and semver-compatible subdep +upgrades, so they should not have visible impact on users. + +* [`6b3f6d9`](https://github.com/npm/npm/commit/6b3f6d9) standard@4.3.3 +* [`f4e22e5`](https://github.com/npm/npm/commit/f4e22e5) readable-stream@2.0.2 (inside concat-stream) +* [`f130bfc`](https://github.com/npm/npm/commit/f130bfc) minimatch@2.0.10 (inside node-gyp's copy of glob) +* [`36c6a0d`](https://github.com/npm/npm/commit/36c6a0d) caseless@0.11.0 +* [`80df59c`](https://github.com/npm/npm/commit/80df59c) chalk@1.1.0 +* [`ea935d9`](https://github.com/npm/npm/commit/ea935d9) bluebird@2.9.34 +* [`3588a0c`](https://github.com/npm/npm/commit/3588a0c) extend@3.0.0 +* [`c6a8450`](https://github.com/npm/npm/commit/c6a8450) form-data@1.0.0-rc2 +* [`a04925b`](https://github.com/npm/npm/commit/a04925b) har-validator@1.8.0 +* [`ee7c095`](https://github.com/npm/npm/commit/ee7c095) has-ansi@2.0.0 +* [`944fc34`](https://github.com/npm/npm/commit/944fc34) hawk@3.1.0 +* [`783dc7b`](https://github.com/npm/npm/commit/783dc7b) lodash._basecallback@3.3.1 +* [`acef0fe`](https://github.com/npm/npm/commit/acef0fe) lodash._baseclone@3.3.0 +* [`dfe959a`](https://github.com/npm/npm/commit/dfe959a) lodash._basedifference@3.0.3 +* [`a03bc76`](https://github.com/npm/npm/commit/a03bc76) lodash._baseflatten@3.1.4 +* [`8a07d50`](https://github.com/npm/npm/commit/8a07d50) lodash._basetostring@3.0.1 +* [`7785e3f`](https://github.com/npm/npm/commit/7785e3f) lodash._baseuniq@3.0.3 +* [`826fb35`](https://github.com/npm/npm/commit/826fb35) lodash._createcache@3.1.2 +* [`76030b3`](https://github.com/npm/npm/commit/76030b3) lodash._createpadding@3.6.1 +* [`1a49ec6`](https://github.com/npm/npm/commit/1a49ec6) lodash._getnative@3.9.1 +* [`eebe47f`](https://github.com/npm/npm/commit/eebe47f) lodash.isarguments@3.0.4 +* [`09994d4`](https://github.com/npm/npm/commit/09994d4) lodash.isarray@3.0.4 +* [`b6f8dbf`](https://github.com/npm/npm/commit/b6f8dbf) lodash.keys@3.1.2 +* [`c67dd6b`](https://github.com/npm/npm/commit/c67dd6b) lodash.pad@3.1.1 +* [`4add042`](https://github.com/npm/npm/commit/4add042) lodash.repeat@3.0.1 +* [`e04993c`](https://github.com/npm/npm/commit/e04993c) lru-cache@2.6.5 +* [`2ed7da4`](https://github.com/npm/npm/commit/2ed7da4) mime-db@1.15.0 +* [`ae08244`](https://github.com/npm/npm/commit/ae08244) mime-types@2.1.3 +* [`e71410e`](https://github.com/npm/npm/commit/e71410e) os-homedir@1.0.1 +* [`67c13e0`](https://github.com/npm/npm/commit/67c13e0) process-nextick-args@1.0.2 +* [`12ee041`](https://github.com/npm/npm/commit/12ee041) qs@4.0.0 +* [`15564a6`](https://github.com/npm/npm/commit/15564a6) spdx-license-ids@1.0.2 +* [`8733bff`](https://github.com/npm/npm/commit/8733bff) supports-color@2.0.0 +* [`230943c`](https://github.com/npm/npm/commit/230943c) tunnel-agent@0.4.1 +* [`26a4653`](https://github.com/npm/npm/commit/26a4653) ansi-styles@2.1.0 +* [`3d27081`](https://github.com/npm/npm/commit/3d27081) bl@1.0.0 +* [`9efa110`](https://github.com/npm/npm/commit/9efa110) async@1.4.0 + +#### MERGED FORWARD + +* As usual, we've ported all the npm@2 goodies in this week's + [v2.13.3](https://github.com/npm/npm/releases/tag/v2.13.3) + release. + ### v2.13.3 (2015-07-23): #### I'M SAVING THE GOOD JOKES FOR MORE INTERESTING RELEASES @@ -635,6 +1332,79 @@ And some other version bumps for good measure. Fixes this thing where Kat decided to save `nock` as a regular dependency ;) ([@othiym23](https://github.com/othiym23)) +### v3.1.3 (2015-07-17): + +Rebecca: So Kat, I hear this week's other release uses a dialog between us to +explain what changed? + +Kat: Well, you could say that… + +Rebecca: I would! This week I fixed more npm@3 bugs! + +Kat: That sounds familiar. + +Rebecca: Eheheheh, well, before we look at those, a word from our sponsor… + +#### BETA IS AS BETA DOES + +**_THIS IS BETA SOFTWARE_**. Yes, we're still reminding you of this. No, +you can't be excused. `npm@3` will remain in beta until we're confident +that it's stable and have assessed the effect of the breaking changes on the +community. During that time we will still be doing `npm@2` releases, with +`npm@2` tagged as `latest` and `next`. We'll _also_ be publishing new +releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` alongside those +versions until we're ready to switch everyone over to `npm@3`. We need your +help to find and fix its remaining bugs. It's a significant rewrite, so we +are _sure_ there still significant bugs remaining. So do us a solid and +deploy it in non-critical CI environments and for day-to-day use, but maybe +don't use it for production maintenance or frontline continuous deployment +just yet. + +Rebecca: Ok, enough of the dialoguing, that's Kat's schtick. But do remember +kids, betas hide in dark hallways waiting to break your stuff, stuff like… + +#### SO MANY LINKS YOU COULD MAKE A CHAIN + +* [`6d69ec9`](https://github.com/npm/npm/6d69ec9) + [#8967](https://github.com/npm/npm/issues/8967) + Removing a module linked into your globals would result in having + all of its subdeps removed. Since the npm release process does + exactly this, it burned me -every- -single- -week-. =D + While we're here, we also removed extraneous warns that used to + spill out when you'd remove a symlink. + ([@iarna](https://github.com/iarna)) + +* [`fdb360f`](https://github.com/npm/npm/fdb360f) + [#8874](https://github.com/npm/npm/issues/8874) + Linking scoped modules was failing outright, but this fixes that + and updates our tests so we don't do it again. + ([@iarna](https://github.com/iarna)) + +#### WE'LL TRY NOT TO CRACK YOUR WINDOWS + +* [`9fafb18`](https://github.com/npm/npm/9fafb18) + [#8701](https://github.com/npm/npm/issues/8701) + npm@3 introduced permissions checks that run before it actually tries to + do something. This saves you from having an install fail half way + through. We did this using the shiny new `fs.access` function available + in `node 0.12` and `io.js`, with fallback options for older nodes. Unfortunately + the way we implemented the fallback caused racey problems for Windows systems. + This fixes that by ensuring we only ever run any one check on a directory once. + BUT it turns out there are bugs in `fs.access` on Windows. So this ALSO just disables + the use of `fs.access` on Windows entirely until that settles out. + ([@iarna](https://github.com/iarna)) + +#### ZOOM ZOOM, DEP UPDATES + +* [`5656baa`](https://github.com/npm/npm/5656baa) + `gauge@1.2.2`: Better handle terminal resizes while printing the progress bar + ([@iarna](https://github.com/iarna)) + +#### MERGED FORWARD + +* Check out Kat's [super-fresh release notes for v2.13.2](https://github.com/npm/npm/releases/tag/v2.13.2) + and see all the changes we ported from npm@2. + ### v2.13.2 (2015-07-16): #### HOLD ON TO YOUR TENTACLES... IT'S NPM RELEASE TIME! @@ -708,6 +1478,92 @@ Both: Stay Freeesh~ `node-gyp@2.0.2`: Fixes an issue with long paths on Win32 ([@TooTallNate](https://github.com/TooTallNate)) +### v3.1.2 + +#### SO VERY BETA RELEASE + +So, `v3.1.1` managed to actually break installing local modules. And then +immediately after I drove to an island for the weekend. 😁 So let's get +this fixed outside the usual release train! + +Fortunately it didn't break installing _global_ modules and so you could +swap it out for another version at least. + +#### DISCLAIMER MEANS WHAT IT SAYS + +**_THIS IS BETA SOFTWARE_**. Yes, we're still reminding you of this. No, +you can't be excused. `npm@3` will remain in beta until we're confident +that it's stable and have assessed the effect of the breaking changes on the +community. During that time we will still be doing `npm@2` releases, with +`npm@2` tagged as `latest` and `next`. We'll _also_ be publishing new +releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` alongside those +versions until we're ready to switch everyone over to `npm@3`. We need your +help to find and fix its remaining bugs. It's a significant rewrite, so we +are _sure_ there still significant bugs remaining. So do us a solid and +deploy it in non-critical CI environments and for day-to-day use, but maybe +don't use it for production maintenance or frontline continuous deployment +just yet. + +#### THIS IS IT, THE REASON + +* [`f5e19df`](https://github.com/npm/npm/commit/f5e19df) + [#8893](https://github.com/npm/npm/issues/8893) + Fix crash when installing local modules introduced by the fix for + [#8608](https://github.com/npm/npm/issues/8608) + ([@iarna](https://github.com/iarna) + +### v3.1.1 + +#### RED EYE RELEASE + +Rebecca's up too late writing tests, so you can have npm@3 bug fixes! Lots +of great new issues from you all! ❤️️ Keep it up! + +#### YUP STILL BETA, PLEASE PAY ATTENTION + +**_THIS IS BETA SOFTWARE_**. Yes, we're still reminding you of this. No, +you can't be excused. `npm@3` will remain in beta until we're confident +that it's stable and have assessed the effect of the breaking changes on the +community. During that time we will still be doing `npm@2` releases, with +`npm@2` tagged as `latest` and `next`. We'll _also_ be publishing new +releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` alongside those +versions until we're ready to switch everyone over to `npm@3`. We need your +help to find and fix its remaining bugs. It's a significant rewrite, so we +are _sure_ there still significant bugs remaining. So do us a solid and +deploy it in non-critical CI environments and for day-to-day use, but maybe +don't use it for production maintenance or frontline continuous deployment +just yet. + +#### BOOGS + +* [`9badfd6`](https://github.com/npm/npm/commit/9babfd63f19f2d80b2d2624e0963b0bdb0d76ef4) + [#8608](https://github.com/npm/npm/issues/8608) + Make global installs and uninstalls MUCH faster by only reading the directories of + modules referred to by arguments. + ([@iarna](https://github.com/iarna) +* [`075a5f0`](https://github.com/npm/npm/commit/075a5f046ab6837f489b08d44cb601e9fdb369b7) + [#8660](https://github.com/npm/npm/issues/8660) + Failed optional deps would still result in the optional deps own + dependencies being installed. We now find them and fail them out of the + tree. + ([@iarna](https://github.com/iarna) +* [`c9fbbb5`](https://github.com/npm/npm/commit/c9fbbb540083396ea58fd179d81131d959d8e049) + [#8863](https://github.com/npm/npm/issues/8863) + The "no compatible version found" error message was including only the + version requested, not the name of the package we wanted. Ooops! + ([@iarna](https://github.com/iarna) +* [`32e6bbd`](https://github.com/npm/npm/commit/32e6bbd21744dcbe8c0720ab53f60caa7f2a0588) + [#8806](https://github.com/npm/npm/issues/8806) + The "uninstall" lifecycle was being run after all of a module's dependencies has been + removed. This reverses that order-- this means "uninstall" lifecycles can make use + of the package's dependencies. + ([@iarna](https://github.com/iarna) + +#### MERGED FORWARD + +* Check out the [v2.13.1 release notes](https://github.com/npm/npm/releases/tag/v2.13.1) + and see all the changes we ported from npm@2. + ### v2.13.1 (2015-07-09): #### KAUAI WAS NICE. I MISS IT. @@ -758,6 +1614,120 @@ updated at their own pace. * [`b168e33`](https://github.com/npm/npm/commit/b168e33ad46faf47020a45f72ba8cec8c644bdb9) undeduplicate `strip-ansi` ([@othiym23](https://github.com/othiym23)) +### v3.1.0 (2015-07-02): + +This has been a brief week of bug fixes, plus some fun stuff merged forward +from this weeks 2.x release. See the +[2.13.0 release notes](https://github.com/npm/npm/releases/tag/v2.13.0) +for details on that. + +You all have been AWESOME with +[all](https://github.com/npm/npm/milestones/3.x) +[the](https://github.com/npm/npm/milestones/3.2.0) +npm@3 bug reports! Thank you and keep up the great work! + +#### NEW PLACE, SAME CODE + +Remember how last week we said `npm@3` would go to `3.0-next` and latest +tags? Yeaaah, no, please use `npm@v3.x-next` and `npm@v3.x-latest` going forward. + +I dunno why we said "suuure, we'll never do a feature release till we're out +of beta" when we're still forward porting `npm@2.x` features. `¯\_(ツ)_/¯` + +If you do accidentally use the old tag names, I'll be maintaining them +for a few releases, but they won't be around forever. + +#### YUP STILL BETA, PLEASE PAY ATTENTION + +**_THIS IS BETA SOFTWARE_**. `npm@3` will remain in beta until we're +confident that it's stable and have assessed the effect of the breaking +changes on the community. During that time we will still be doing `npm@2` +releases, with `npm@2` tagged as `latest` and `next`. We'll _also_ be +publishing new releases of `npm@3` as `npm@v3.x-next` and `npm@v3.x-latest` +alongside those versions until we're ready to switch everyone over to +`npm@3`. We need your help to find and fix its remaining bugs. It's a +significant rewrite, so we are _sure_ there still significant bugs +remaining. So do us a solid and deploy it in non-critical CI environments +and for day-to-day use, but maybe don't use it for production maintenance +or frontline continuous deployment just yet. + +#### BUGS ON THE WINDOWS + + * [`0030ade`](https://github.com/npm/npm/commit/0030ade) + [#8685](https://github.com/npm/npm/issues/8685) + Windows would hang when trying to clone git repos + ([@euprogramador](https://github.com/npm/npm/pull/8777)) + * [`b259bcc`](https://github.com/npm/npm/commit/b259bcc) + [#8786](https://github.com/npm/npm/pull/8786) + Windows permissions checks would cause installations to fail under some + circumstances. We're disabling the checks entirely for this release. + I'm hoping to check back with this next week to get a Windows friendly + fix in. + ([@iarna](https://github.com/iarna)) + +#### SO MANY BUGS SQUASHED, JUST CALL US RAID + + * [`0848698`](https://github.com/npm/npm/commit/0848698) + [#8686](https://github.com/npm/npm/pull/8686) + Stop leaving progress bar cruft on the screen during publication + ([@ajcrites](https://github.com/ajcrites)) + * [`57c3cea`](https://github.com/npm/npm/commit/57c3cea) + [#8695](https://github.com/npm/npm/pull/8695) + Remote packages with shrinkwraps made npm cause node + iojs to explode + and catch fire. NO MORE. + ([@iarna](https://github.com/iarna)) + * [`2875ba3`](https://github.com/npm/npm/commit/2875ba3) + [#8723](https://github.com/npm/npm/pull/8723) + I uh, told you that engineStrict checking had gone away last week. + TURNS OUT I LIED. So this is making that actually be true. + ([@iarna](https://github.com/iarna)) + * [`28064e5`](https://github.com/npm/npm/commit/28064e5) + [#3358](https://github.com/npm/npm/issues/3358) + Consistently allow Unicode BOMs at the start of package.json files. + Previously this was allowed some of time, like when you were installing + modules, but not others, like running npm version or installing w/ + `--save`. + ([@iarna](https://github.com/iarna)) + * [`3cb6ad2`](https://github.com/npm/npm/commit/3cb6ad2) + [#8736](https://github.com/npm/npm/issues/8766) + npm@3 wasn't running the "install" lifecycle in your current (toplevel) + module. This broke modules that relied on C compilation. BOO. + ([@iarna](https://github.com/iarna)) + * [`68da583`](https://github.com/npm/npm/commit/68da583) + [#8766](https://github.com/npm/npm/issues/8766) + To my great shame, `npm link package` wasn't working AT ALL if you + didn't have `package` already installed. + ([@iarna](https://github.com/iarna)) + * [`edd7448`](https://github.com/npm/npm/commit/edd7448) + read-package-tree@5.0.0: This update makes read-package-tree not explode + when there's bad data in your node_modules folder. npm@2 silently + ignores this sort of thing. + ([@iarna](https://github.com/iarna)) + * [`0bb08c8`](https://github.com/npm/npm/commit/0bb08c8) + [#8778](https://github.com/npm/npm/pull/8778) + RELATEDLY, we now show any errors from your node_modules folder after + your installation completes as warnings. We're also reporting these in + `npm ls` now. + ([@iarna](https://github.com/iarna)) + * [`6c248ff`](https://github.com/npm/npm/commit/6c248ff) + [#8779](https://github.com/npm/npm/pull/8779) + Hey, you know how we used to complain if your `package.json` was + missing stuff? Well guess what, we are again. I know, I know, you can + thank me later. + ([@iarna](https://github.com/iarna)) + * [`d6f7c98`](https://github.com/npm/npm/commit/d6f7c98) + So, when we were rolling back after errors we had untested code that + tried to undo moves. Being untested it turns out it was very broken. + I've removed it until we have time to do this right. + ([@iarna](https://github.com/iarna)) + +#### NEW VERSION + +Just the one. Others came in via the 2.x release. Do check out its +changelog, immediately following this message. + + * [`4e602c5`](https://github.com/npm/npm/commit/4e602c5) lodash@3.2.2 + ### v2.13.0 (2015-07-02): #### FORREST IS OUT! LET'S SNEAK IN ALL THE THINGS! @@ -918,6 +1888,311 @@ with this fix. * [`151904a`](https://github.com/npm/npm/commit/151904af39dc24567f8c98529a2a64a4dbcc960a) `nopt@3.0.3` ([@isaacs](https://github.com/isaacs)) +### v3.0.0 (2015-06-25): + +Wow, it's finally here! This has been a long time coming. We are all +delighted and proud to be getting this out into the world, and are looking +forward to working with the npm user community to get it production-ready +as quickly as possible. + +`npm@3` constitutes a nearly complete rewrite of npm's installer to be +easier to maintain, and to bring a bunch of valuable new features and +design improvements to you all. + +[@othiym23](https://github.com/othiym23) and +[@isaacs](https://github.com/isaacs) have been +[talking about the changes](http://blog.npmjs.org/post/91303926460/npm-cli-roadmap-a-periodic-update) +in this release for well over a year, and it's been the primary focus of +[@iarna](https://github.com/iarna) since she joined the team. + +Given that this is a near-total rewrite, all changes listed here are +[@iarna](https://github.com/iarna)'s work unless otherwise specified. + +#### NO, REALLY, READ THIS PARAGRAPH. IT'S THE IMPORTANT ONE. + +**_THIS IS BETA SOFTWARE_**. `npm@3` will remain in beta until we're +confident that it's stable and have assessed the effect of the breaking +changes on the community. During that time we will still be doing `npm@2` +releases, with `npm@2` tagged as `latest` and `next`. We'll _also_ be +publishing new releases of `npm@3` as `npm@3.0-next` and `npm@3.0-latest` +alongside those versions until we're ready to switch everyone over to +`npm@3`. We need your help to find and fix its remaining bugs. It's a +significant rewrite, so we are _sure_ there still significant bugs +remaining. So do us a solid and deploy it in non-critical CI environments +and for day-to-day use, but maybe don't use it for production maintenance +or frontline continuous deployment just yet. + +#### BREAKING CHANGES + +##### `peerDependencies` + +`grunt`, `gulp`, and `broccoli` plugin maintainers take note! You will be +affected by this change! + +* [#6930](https://github.com/npm/npm/issues/6930) + ([#6565](https://github.com/npm/npm/issues/6565)) + `peerDependencies` no longer cause _anything_ to be implicitly installed. + Instead, npm will now warn if a packages `peerDependencies` are missing, + but it's up to the consumer of the module (i.e. you) to ensure the peers + get installed / are included in `package.json` as direct `dependencies` + or `devDependencies` of your package. +* [#3803](https://github.com/npm/npm/issues/3803) + npm also no longer checks `peerDependencies` until after it has fully + resolved the tree. + +This shifts the responsibility for fulfilling peer dependencies from library +/ framework / plugin maintainers to application authors, and is intended to +get users out of the dependency hell caused by conflicting `peerDependency` +constraints. npm's job is to keep you _out_ of dependency hell, not put you +in it. + +##### `engineStrict` + +* [#6931](https://github.com/npm/npm/issues/6931) The rarely-used + `package.json` option `engineStrict` has been deprecated for several + months, producing warnings when it was used. Starting with `npm@3`, the + value of the field is ignored, and engine violations will only produce + warnings. If you, as a user, want strict `engines` field enforcement, + just run `npm config set engine-strict true`. + +As with the peer dependencies change, this is about shifting control from +module authors to application authors. It turns out `engineStrict` was very +difficult to understand even harder to use correctly, and more often than +not just made modules using it difficult to deploy. + +##### `npm view` + +* [`77f1aec`](https://github.com/npm/npm/commit/77f1aec) With `npm view` (aka + `npm info`), always return arrays for versions, maintainers, etc. Previously + npm would return a plain value if there was only one, and multiple values if + there were more. ([@KenanY](https://github.com/KenanY)) + +#### KNOWN BUGS + +Again, this is a _**BETA RELEASE**_, so not everything is working just yet. +Here are the issues that we already know about. If you run into something +that isn't on this list, +[let us know](https://github.com/npm/npm/issues/new)! + +* [#8575](https://github.com/npm/npm/issues/8575) + Circular deps will never be removed by the prune-on-uninstall code. +* [#8588](https://github.com/npm/npm/issues/8588) + Local deps where the dep name and the name in the package.json differ + don't result in an error. +* [#8637](https://github.com/npm/npm/issues/8637) + Modules can install themselves as direct dependencies. npm@2 declined to + do this. +* [#8660](https://github.com/npm/npm/issues/8660) + Dependencies of failed optional dependencies aren't rolled back when the + optional dependency is, and then are reported as extraneous thereafter. + +#### NEW FEATURES + +##### The multi-stage installer! + +* [#5919](https://github.com/npm/npm/issues/5919) + Previously the installer had a set of steps it executed for each package + and it would immediately start executing them as soon as it decided to + act on a package. + + But now it executes each of those steps at the same time for all + packages, waiting for all of one stage to complete before moving on. This + eliminates many race conditions and makes the code easier to reason + about. + +This fixes, for instance: + +* [#6926](https://github.com/npm/npm/issues/6926) + ([#5001](https://github.com/npm/npm/issues/5001), + [#6170](https://github.com/npm/npm/issues/6170)) + `install` and `postinstall` lifecycle scripts now only execute `after` + all the module with the script's dependencies are installed. + +##### Install: it looks different! + +You'll now get a tree much like the one produced by `npm ls` that +highlights in orange the packages that were installed. Similarly, any +removed packages will have their names prefixed by a `-`. + +Also, `npm outdated` used to include the name of the module in the +`Location` field: + +``` +Package Current Wanted Latest Location +deep-equal MISSING 1.0.0 1.0.0 deep-equal +glob 4.5.3 4.5.3 5.0.10 rimraf > glob +``` + +Now it shows the module that required it as the final point in the +`Location` field: + +``` +Package Current Wanted Latest Location +deep-equal MISSING 1.0.0 1.0.0 npm +glob 4.5.3 4.5.3 5.0.10 npm > rimraf +``` + +Previously the `Location` field was telling you where the module was on +disk. Now it tells you what requires the module. When more than one thing +requires the module you'll see it listed once for each thing requiring it. + +##### Install: it works different! + +* [#6928](https://github.com/npm/npm/issues/6928) + ([#2931](https://github.com/npm/npm/issues/2931) + [#2950](https://github.com/npm/npm/issues/2950)) + `npm install` when you have an `npm-shrinkwrap.json` will ensure you have + the modules specified in it are installed in exactly the shape specified + no matter what you had when you started. +* [#6913](https://github.com/npm/npm/issues/6913) + ([#1341](https://github.com/npm/npm/issues/1341) + [#3124](https://github.com/npm/npm/issues/3124) + [#4956](https://github.com/npm/npm/issues/4956) + [#6349](https://github.com/npm/npm/issues/6349) + [#5465](https://github.com/npm/npm/issues/5465)) + `npm install` when some of your dependencies are missing sub-dependencies + will result in those sub-dependencies being installed. That is, `npm + install` now knows how to fix broken installs, most of the time. +* [#5465](https://github.com/npm/npm/issues/5465) + If you directly `npm install` a module that's already a subdep of + something else and your new version is incompatible, it will now install + the previous version nested in the things that need it. +* [`a2b50cf`](https://github.com/npm/npm/commit/a2b50cf) + [#5693](https://github.com/npm/npm/issues/5693) + When installing a new module, if it's mentioned in your + `npm-shrinkwrap.json` or your `package.json` use the version specifier + from there if you didn't specify one yourself. + +##### Flat, flat, flat! + +Your dependencies will now be installed *maximally flat*. Insofar as is +possible, all of your dependencies, and their dependencies, and THEIR +dependencies will be installed in your project's `node_modules` folder with no +nesting. You'll only see modules nested underneath one another when two (or +more) modules have conflicting dependencies. + +* [#3697](https://github.com/npm/npm/issues/3697) + This will hopefully eliminate most cases where windows users ended up + with paths that were too long for Explorer and other standard tools to + deal with. +* [#6912](https://github.com/npm/npm/issues/6912) + ([#4761](https://github.com/npm/npm/issues/4761) + [#4037](https://github.com/npm/npm/issues/4037)) + This also means that your installs will be deduped from the start. +* [#5827](https://github.com/npm/npm/issues/5827) + This deduping even extends to git deps. +* [#6936](https://github.com/npm/npm/issues/6936) + ([#5698](https://github.com/npm/npm/issues/5698)) + Various commands are dedupe aware now. + +This has some implications for the behavior of other commands: + +* `npm uninstall` removes any dependencies of the module that you specified + that aren't required by any other module. Previously, it would only + remove those that happened to be installed under it, resulting in left + over cruft if you'd ever deduped. +* `npm ls` now shows you your dependency tree organized around what + requires what, rather than where those modules are on disk. +* [#6937](https://github.com/npm/npm/issues/6937) + `npm dedupe` now flattens the tree in addition to deduping. + +And bundling of dependencies when packing or publishing changes too: + +* [#2442](https://github.com/npm/npm/issues/2442) + bundledDependencies no longer requires that you specify deduped sub deps. + npm can now see that a dependency is required by something bundled and + automatically include it. To put that another way, bundledDependencies + should ONLY include things that you included in dependencies, + optionalDependencies or devDependencies. +* [#5437](https://github.com/npm/npm/issues/5437) + When bundling a dependency that's both a `devDependency` and the child of + a regular `dependency`, npm bundles the child dependency. + +As a demonstration of our confidence in our own work, npm's own +dependencies are now flattened, deduped, and bundled in the `npm@3` style. +This means that `npm@3` can't be packed or published by `npm@2`, which is +something to be aware of if you're hacking on npm. + +##### Shrinkwraps: they are a-changin'! + +First of all, they should be idempotent now +([#5779](https://github.com/npm/npm/issues/5779)). No more differences +because the first time you install (without `npm-shrinkwrap.json`) and the +second time (with `npm-shrinkwrap.json`). + +* [#6781](https://github.com/npm/npm/issues/6781) + Second, if you save your changes to `package.json` and you have + `npm-shrinkwrap.json`, then it will be updated as well. This applies to + all of the commands that update your tree: + * `npm install --save` + * `npm update --save` + * `npm dedupe --save` ([#6410](https://github.com/npm/npm/issues/6410)) + * `npm uninstall --save` +* [#4944](https://github.com/npm/npm/issues/4944) + ([#5161](https://github.com/npm/npm/issues/5161) + [#5448](https://github.com/npm/npm/issues/5448)) + Third, because `node_modules` folders are now deduped and flat, + shrinkwrap has to also be smart enough to handle this. + +And finally, enjoy this shrinkwrap bug fix: + +* [#3675](https://github.com/npm/npm/issues/3675) + When shrinkwrapping a dependency that's both a `devDependency` and the + child of a regular `dependency`, npm now correctly includes the child. + +##### The Age of Progress (Bars)! + +* [#6911](https://github.com/npm/npm/issues/6911) + ([#1257](https://github.com/npm/npm/issues/1257) + [#5340](https://github.com/npm/npm/issues/5340) + [#6420](https://github.com/npm/npm/issues/6420)) + The spinner is gone (yay? boo? will you miss it?), and in its place npm + has _progress bars_, so you actually have some sense of how long installs + will take. It's provided in Unicode and non-Unicode variants, and Unicode + support is automatically detected from your environment. + +#### TINY JEWELS + +The bottom is where we usually hide the less interesting bits of each +release, but each of these are small but incredibly useful bits of this +release, and very much worth checking out: + +* [`9ebe312`](https://github.com/npm/npm/commit/9ebe312) + Build system maintainers, rejoice: npm does a better job of cleaning up + after itself in your temporary folder. +* [#6942](https://github.com/npm/npm/issues/6942) + Check for permissions issues prior to actually trying to install + anything. +* Emit warnings at the end of the installation when possible, so that + they'll be on your screen when npm stops. +* [#3505](https://github.com/npm/npm/issues/3505) + `npm --dry-run`: You can now ask that npm only report what it _would have + done_ with the new `--dry-run` flag. This can be passed to any of the + commands that change your `node_modules` folder: `install`, `uninstall`, + `update` and `dedupe`. +* [`81b46fb`](https://github.com/npm/npm/commit/81b46fb) + npm now knows the correct URLs for `npm bugs` and `npm repo` for + repositories hosted on Bitbucket and GitLab, just like it does for GitHub + (and GitHub support now extends to projects hosted as gists as well as + traditional repositories). +* [`5be4008a`](https://github.com/npm/npm/commit/5be4008a09730cfa3891d9f145e4ec7f2accd144) + npm has been cleaned up to pass the [`standard`](http://npm.im/standard) + style checker. Forrest and Rebecca both feel this makes it easier to read + and understand the code, and should also make it easier for new + contributors to put merge-ready patches. + ([@othiym23](https://github.com/othiym23)) + +#### ZARRO BOOGS + +* [`6401643`](https://github.com/npm/npm/commit/6401643) + Make sure the global install directory exists before installing to it. + ([@thefourtheye](https://github.com/thefourtheye)) +* [#6158](https://github.com/npm/npm/issues/6158) + When we remove modules we do so inside-out running unbuild for each one. +* [`960a765`](https://github.com/npm/npm/commit/960a765) + The short usage information for each subcommand has been brought in sync + with the documentation. ([@smikes](https://github.com/smikes)) + ### v2.12.0 (2015-06-18): #### REMEMBER WHEN I SAID THAT THING ABOUT PERMISSIONS? diff --git a/deps/npm/LICENSE b/deps/npm/LICENSE index b6e3548d19ccc940f18366426644b2448add2411..ab28d1e223fb8b6bb35f117438248d12a6c5f608 100644 --- a/deps/npm/LICENSE +++ b/deps/npm/LICENSE @@ -251,11 +251,11 @@ details. Any data published to The npm Registry (including user account information) may be removed or modified at the sole discretion of the npm server administrators. -"npm Logo" created by Mathias Pettersson and Brian Hammond, -used with permission. +"npm Logo" contributed by Mathias Pettersson and Brian Hammond, +use is subject to https://www.npmjs.com/policies/trademark "Gubblebum Blocky" font -Copyright (c) by Tjarda Koster, http://jelloween.deviantart.com +Copyright (c) by Tjarda Koster, https://jelloween.deviantart.com included for use in the npm website and documentation, used with permission. diff --git a/deps/npm/Makefile b/deps/npm/Makefile index 34e40624b5aee679ddba29b0a2b63cac982b5b00..abdac9ceb70a56a7758361a088708a15b0d16f0a 100644 --- a/deps/npm/Makefile +++ b/deps/npm/Makefile @@ -16,10 +16,6 @@ cli_mandocs = $(shell find doc/cli -name '*.md' \ |sed 's|doc/cli/|man/man1/|g' ) \ man/man1/npm-README.1 -api_mandocs = $(shell find doc/api -name '*.md' \ - |sed 's|.md|.3|g' \ - |sed 's|doc/api/|man/man3/|g' ) - files_mandocs = $(shell find doc/files -name '*.md' \ |sed 's|.md|.5|g' \ |sed 's|doc/files/|man/man5/|g' ) \ @@ -36,10 +32,6 @@ cli_htmldocs = $(shell find doc/cli -name '*.md' \ |sed 's|doc/cli/|html/doc/cli/|g' ) \ html/doc/README.html -api_htmldocs = $(shell find doc/api -name '*.md' \ - |sed 's|.md|.html|g' \ - |sed 's|doc/api/|html/doc/api/|g' ) - files_htmldocs = $(shell find doc/files -name '*.md' \ |sed 's|.md|.html|g' \ |sed 's|doc/files/|html/doc/files/|g' ) \ @@ -51,9 +43,9 @@ misc_htmldocs = $(shell find doc/misc -name '*.md' \ |sed 's|doc/misc/|html/doc/misc/|g' ) \ html/doc/index.html -mandocs = $(api_mandocs) $(cli_mandocs) $(files_mandocs) $(misc_mandocs) +mandocs = $(cli_mandocs) $(files_mandocs) $(misc_mandocs) -htmldocs = $(api_htmldocs) $(cli_htmldocs) $(files_htmldocs) $(misc_htmldocs) +htmldocs = $(cli_htmldocs) $(files_htmldocs) $(misc_htmldocs) all: doc @@ -93,7 +85,6 @@ doc-clean: .building_marked \ .building_marked-man \ html/doc \ - html/api \ man # use `npm install marked-man` for this to work. @@ -105,10 +96,6 @@ man/man1/%.1: doc/cli/%.md scripts/doc-build.sh package.json @[ -d man/man1 ] || mkdir -p man/man1 scripts/doc-build.sh $< $@ -man/man3/%.3: doc/api/%.md scripts/doc-build.sh package.json - @[ -d man/man3 ] || mkdir -p man/man3 - scripts/doc-build.sh $< $@ - man/man5/npm-json.5: man/man5/package.json.5 cp $< $@ @@ -138,12 +125,9 @@ html/doc/cli/%.html: doc/cli/%.md $(html_docdeps) @[ -d html/doc/cli ] || mkdir -p html/doc/cli scripts/doc-build.sh $< $@ -html/doc/api/%.html: doc/api/%.md $(html_docdeps) - @[ -d html/doc/api ] || mkdir -p html/doc/api - scripts/doc-build.sh $< $@ - html/doc/files/npm-json.html: html/doc/files/package.json.html cp $< $@ + html/doc/files/npm-global.html: html/doc/files/npm-folders.html cp $< $@ @@ -168,7 +152,7 @@ node_modules/.bin/marked-man: doc: man -man: $(cli_docs) $(api_docs) +man: $(cli_docs) test: doc node cli.js test diff --git a/deps/npm/bin/node-gyp-bin/node-gyp.cmd b/deps/npm/bin/node-gyp-bin/node-gyp.cmd index 83ea8f5924785855766723deb7abe1bf4d19d989..bb0a7f710666e221e8c768e265a5049f2defdd7e 100755 --- a/deps/npm/bin/node-gyp-bin/node-gyp.cmd +++ b/deps/npm/bin/node-gyp-bin/node-gyp.cmd @@ -1,5 +1,5 @@ -if not defined npm_config_node_gyp ( - node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %* -) else ( +if not defined npm_config_node_gyp ( + node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %* +) else ( node %npm_config_node_gyp% %* -) +) diff --git a/deps/npm/bin/npm-cli.js b/deps/npm/bin/npm-cli.js index ace40ca791c45915d2679a21883c1306eff89923..60d00bf29ab918cc244233fc0cbaceffaf9802c7 100755 --- a/deps/npm/bin/npm-cli.js +++ b/deps/npm/bin/npm-cli.js @@ -1,75 +1,77 @@ #!/usr/bin/env node ;(function () { // wrapper in case we're in module_context mode -// windows: running "npm blah" in this folder will invoke WSH, not node. -if (typeof WScript !== "undefined") { - WScript.echo("npm does not work when run\n" - +"with the Windows Scripting Host\n\n" - +"'cd' to a different directory,\n" - +"or type 'npm.cmd ',\n" - +"or type 'node npm '.") - WScript.quit(1) - return -} - - -process.title = "npm" - -var log = require("npmlog") -log.pause() // will be unpaused when config is loaded. -log.info("it worked if it ends with", "ok") - -var path = require("path") - , npm = require("../lib/npm.js") - , npmconf = require("../lib/config/core.js") - , errorHandler = require("../lib/utils/error-handler.js") - - , configDefs = npmconf.defs - , shorthands = configDefs.shorthands - , types = configDefs.types - , nopt = require("nopt") - -// if npm is called as "npmg" or "npm_g", then -// run in global mode. -if (path.basename(process.argv[1]).slice(-1) === "g") { - process.argv.splice(1, 1, "npm", "-g") -} - -log.verbose("cli", process.argv) - -var conf = nopt(types, shorthands) -npm.argv = conf.argv.remain -if (npm.deref(npm.argv[0])) npm.command = npm.argv.shift() -else conf.usage = true - - -if (conf.version) { - console.log(npm.version) - return -} - -if (conf.versions) { - npm.command = "version" - conf.usage = false - npm.argv = [] -} - -log.info("using", "npm@%s", npm.version) -log.info("using", "node@%s", process.version) - -process.on("uncaughtException", errorHandler) - -if (conf.usage && npm.command !== "help") { - npm.argv.unshift(npm.command) - npm.command = "help" -} - -// now actually fire up npm and run the command. -// this is how to use npm programmatically: -conf._exit = true -npm.load(conf, function (er) { - if (er) return errorHandler(er) - npm.commands[npm.command](npm.argv, errorHandler) -}) + // windows: running "npm blah" in this folder will invoke WSH, not node. + /*global WScript*/ + if (typeof WScript !== 'undefined') { + WScript.echo( + 'npm does not work when run\n' + + 'with the Windows Scripting Host\n\n' + + "'cd' to a different directory,\n" + + "or type 'npm.cmd ',\n" + + "or type 'node npm '." + ) + WScript.quit(1) + return + } + + process.title = 'npm' + + var log = require('npmlog') + log.pause() // will be unpaused when config is loaded. + + log.info('it worked if it ends with', 'ok') + + var path = require('path') + var npm = require('../lib/npm.js') + var npmconf = require('../lib/config/core.js') + var errorHandler = require('../lib/utils/error-handler.js') + + var configDefs = npmconf.defs + var shorthands = configDefs.shorthands + var types = configDefs.types + var nopt = require('nopt') + + // if npm is called as "npmg" or "npm_g", then + // run in global mode. + if (path.basename(process.argv[1]).slice(-1) === 'g') { + process.argv.splice(1, 1, 'npm', '-g') + } + + log.verbose('cli', process.argv) + + var conf = nopt(types, shorthands) + npm.argv = conf.argv.remain + if (npm.deref(npm.argv[0])) npm.command = npm.argv.shift() + else conf.usage = true + + if (conf.version) { + console.log(npm.version) + return + } + + if (conf.versions) { + npm.command = 'version' + conf.usage = false + npm.argv = [] + } + + log.info('using', 'npm@%s', npm.version) + log.info('using', 'node@%s', process.version) + + process.on('uncaughtException', errorHandler) + + if (conf.usage && npm.command !== 'help') { + npm.argv.unshift(npm.command) + npm.command = 'help' + } + + // now actually fire up npm and run the command. + // this is how to use npm programmatically: + conf._exit = true + npm.load(conf, function (er) { + if (er) return errorHandler(er) + npm.commands[npm.command](npm.argv, errorHandler) + }) })() diff --git a/deps/npm/bin/read-package-json.js b/deps/npm/bin/read-package-json.js index 3e5a0c77f254b461f41b7530dda755fc454cca55..7e62a0bd7de5525f068018d4c7a7335745cf7fc6 100755 --- a/deps/npm/bin/read-package-json.js +++ b/deps/npm/bin/read-package-json.js @@ -1,22 +1,24 @@ var argv = process.argv if (argv.length < 3) { - console.error("Usage: read-package.json [ ...]") + console.error('Usage: read-package.json [ ...]') process.exit(1) } -var fs = require("fs") - , file = argv[2] - , readJson = require("read-package-json") +var file = argv[2] +var readJson = require('read-package-json') readJson(file, function (er, data) { if (er) throw er - if (argv.length === 3) console.log(data) - else argv.slice(3).forEach(function (field) { - field = field.split(".") - var val = data - field.forEach(function (f) { - val = val[f] + if (argv.length === 3) { + console.log(data) + } else { + argv.slice(3).forEach(function (field) { + field = field.split('.') + var val = data + field.forEach(function (f) { + val = val[f] + }) + console.log(val) }) - console.log(val) - }) + } }) diff --git a/deps/npm/cli.js b/deps/npm/cli.js index 0df931e35a4120eba2999eabec082fc65d890cdb..05c5e21fb1eb53a1434f09221cbebc3cf11e0e02 100755 --- a/deps/npm/cli.js +++ b/deps/npm/cli.js @@ -1,2 +1,2 @@ #!/usr/bin/env node -require("./bin/npm-cli.js") +require('./bin/npm-cli.js') diff --git a/deps/npm/doc/api/npm-bin.md b/deps/npm/doc/api/npm-bin.md deleted file mode 100644 index bd27af2fdca30e448eaf8a6c3c574bd26e92a968..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-bin.md +++ /dev/null @@ -1,13 +0,0 @@ -npm-bin(3) -- Display npm bin folder -==================================== - -## SYNOPSIS - - npm.commands.bin(args, cb) - -## DESCRIPTION - -Print the folder where npm will install executables. - -This function should not be used programmatically. Instead, just refer -to the `npm.bin` property. diff --git a/deps/npm/doc/api/npm-bugs.md b/deps/npm/doc/api/npm-bugs.md deleted file mode 100644 index cc4db8f9ecdb91927932c2f995bea0e481627c5f..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-bugs.md +++ /dev/null @@ -1,19 +0,0 @@ -npm-bugs(3) -- Bugs for a package in a web browser maybe -======================================================== - -## SYNOPSIS - - npm.commands.bugs(package, callback) - -## DESCRIPTION - -This command tries to guess at the likely location of a package's -bug tracker URL, and then tries to open it using the `--browser` -config param. - -Like other commands, the first parameter is an array. This command only -uses the first element, which is expected to be a package name with an -optional version number. - -This command will launch a browser, so this command may not be the most -friendly for programmatic use. diff --git a/deps/npm/doc/api/npm-cache.md b/deps/npm/doc/api/npm-cache.md deleted file mode 100644 index e7079d8c1e9f5b6dd707f023fb4fbf94eda3da88..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-cache.md +++ /dev/null @@ -1,30 +0,0 @@ -npm-cache(3) -- manage the npm cache programmatically -===================================================== - -## SYNOPSIS - - npm.commands.cache([args], callback) - - // helpers - npm.commands.cache.clean([args], callback) - npm.commands.cache.add([args], callback) - npm.commands.cache.read(name, version, forceBypass, callback) - -## DESCRIPTION - -This acts much the same ways as the npm-cache(1) command line -functionality. - -The callback is called with the package.json data of the thing that is -eventually added to or read from the cache. - -The top level `npm.commands.cache(...)` functionality is a public -interface, and like all commands on the `npm.commands` object, it will -match the command line behavior exactly. - -However, the cache folder structure and the cache helper functions are -considered **internal** API surface, and as such, may change in future -releases of npm, potentially without warning or significant version -incrementation. - -Use at your own risk. diff --git a/deps/npm/doc/api/npm-commands.md b/deps/npm/doc/api/npm-commands.md deleted file mode 100644 index 36dcfd8d6b6f52389a4581d5bb13f88a79335e60..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-commands.md +++ /dev/null @@ -1,22 +0,0 @@ -npm-commands(3) -- npm commands -=============================== - -## SYNOPSIS - - npm.commands[](args, callback) - -## DESCRIPTION - -npm comes with a full set of commands, and each of the commands takes a -similar set of arguments. - -In general, all commands on the command object take an **array** of positional -argument **strings**. The last argument to any function is a callback. Some -commands are special and take other optional arguments. - -All commands have their own man page. See `man npm-` for command-line -usage, or `man 3 npm-` for programmatic usage. - -## SEE ALSO - -* npm-index(7) diff --git a/deps/npm/doc/api/npm-config.md b/deps/npm/doc/api/npm-config.md deleted file mode 100644 index 7ae22742810841d54643feb23d9732890e493558..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-config.md +++ /dev/null @@ -1,45 +0,0 @@ -npm-config(3) -- Manage the npm configuration files -=================================================== - -## SYNOPSIS - - npm.commands.config(args, callback) - var val = npm.config.get(key) - npm.config.set(key, val) - -## DESCRIPTION - -This function acts much the same way as the command-line version. The first -element in the array tells config what to do. Possible values are: - -* `set` - - Sets a config parameter. The second element in `args` is interpreted as the - key, and the third element is interpreted as the value. - -* `get` - - Gets the value of a config parameter. The second element in `args` is the - key to get the value of. - -* `delete` (`rm` or `del`) - - Deletes a parameter from the config. The second element in `args` is the - key to delete. - -* `list` (`ls`) - - Show all configs that aren't secret. No parameters necessary. - -* `edit`: - - Opens the config file in the default editor. This command isn't very useful - programmatically, but it is made available. - -To programmatically access npm configuration settings, or set them for -the duration of a program, use the `npm.config.set` and `npm.config.get` -functions instead. - -## SEE ALSO - -* npm(3) diff --git a/deps/npm/doc/api/npm-deprecate.md b/deps/npm/doc/api/npm-deprecate.md deleted file mode 100644 index 200fb9c30ae019c76488dcaf0450659484f55cd9..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-deprecate.md +++ /dev/null @@ -1,34 +0,0 @@ -npm-deprecate(3) -- Deprecate a version of a package -==================================================== - -## SYNOPSIS - - npm.commands.deprecate(args, callback) - -## DESCRIPTION - -This command will update the npm registry entry for a package, providing -a deprecation warning to all who attempt to install it. - -The 'args' parameter must have exactly two elements: - -* `package[@version]` - - The `version` portion is optional, and may be either a range, or a - specific version, or a tag. - -* `message` - - The warning message that will be printed whenever a user attempts to - install the package. - -Note that you must be the package owner to deprecate something. See the -`owner` and `adduser` help topics. - -To un-deprecate a package, specify an empty string (`""`) for the `message` argument. - -## SEE ALSO - -* npm-publish(3) -* npm-unpublish(3) -* npm-registry(7) diff --git a/deps/npm/doc/api/npm-docs.md b/deps/npm/doc/api/npm-docs.md deleted file mode 100644 index 2c5fc5e6321b3836fb72fe68448576f80c7f8e5b..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-docs.md +++ /dev/null @@ -1,19 +0,0 @@ -npm-docs(3) -- Docs for a package in a web browser maybe -======================================================== - -## SYNOPSIS - - npm.commands.docs(package, callback) - -## DESCRIPTION - -This command tries to guess at the likely location of a package's -documentation URL, and then tries to open it using the `--browser` -config param. - -Like other commands, the first parameter is an array. This command only -uses the first element, which is expected to be a package name with an -optional version number. - -This command will launch a browser, so this command may not be the most -friendly for programmatic use. diff --git a/deps/npm/doc/api/npm-edit.md b/deps/npm/doc/api/npm-edit.md deleted file mode 100644 index b13fbb8578bee6293ab23e2fa625637346b9868a..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-edit.md +++ /dev/null @@ -1,24 +0,0 @@ -npm-edit(3) -- Edit an installed package -======================================== - -## SYNOPSIS - - npm.commands.edit(package, callback) - -## DESCRIPTION - -Opens the package folder in the default editor (or whatever you've -configured as the npm `editor` config -- see `npm help config`.) - -After it has been edited, the package is rebuilt so as to pick up any -changes in compiled packages. - -For instance, you can do `npm install connect` to install connect -into your package, and then `npm.commands.edit(["connect"], callback)` -to make a few changes to your locally installed copy. - -The first parameter is a string array with a single element, the package -to open. The package can optionally have a version number attached. - -Since this command opens an editor in a new process, be careful about where -and how this is used. diff --git a/deps/npm/doc/api/npm-explore.md b/deps/npm/doc/api/npm-explore.md deleted file mode 100644 index a239f3df3142fd055fec38371330d3b60734c9a8..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-explore.md +++ /dev/null @@ -1,18 +0,0 @@ -npm-explore(3) -- Browse an installed package -============================================= - -## SYNOPSIS - - npm.commands.explore(args, callback) - -## DESCRIPTION - -Spawn a subshell in the directory of the installed package specified. - -If a command is specified, then it is run in the subshell, which then -immediately terminates. - -Note that the package is *not* automatically rebuilt afterwards, so be -sure to use `npm rebuild ` if you make any changes. - -The first element in the 'args' parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command. diff --git a/deps/npm/doc/api/npm-help-search.md b/deps/npm/doc/api/npm-help-search.md deleted file mode 100644 index 01b235ce72b4bd4456aa1479d57d06d47cf124ca..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-help-search.md +++ /dev/null @@ -1,30 +0,0 @@ -npm-help-search(3) -- Search the help pages -=========================================== - -## SYNOPSIS - - npm.commands.helpSearch(args, [silent,] callback) - -## DESCRIPTION - -This command is rarely useful, but it exists in the rare case that it is. - -This command takes an array of search terms and returns the help pages that -match in order of best match. - -If there is only one match, then npm displays that help section. If there -are multiple results, the results are printed to the screen formatted and the -array of results is returned. Each result is an object with these properties: - -* hits: - A map of args to number of hits on that arg. For example, {"npm": 3} -* found: - Total number of unique args that matched. -* totalHits: - Total number of hits. -* lines: - An array of all matching lines (and some adjacent lines). -* file: - Name of the file that matched - -The silent parameter is not necessary not used, but it may in the future. diff --git a/deps/npm/doc/api/npm-init.md b/deps/npm/doc/api/npm-init.md deleted file mode 100644 index 9b75bf79116dd3dabdb5f74130dddb05681cb216..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-init.md +++ /dev/null @@ -1,29 +0,0 @@ -npm init(3) -- Interactively create a package.json file -======================================================= - -## SYNOPSIS - - npm.commands.init(args, callback) - -## DESCRIPTION - -This will ask you a bunch of questions, and then write a package.json for you. - -It attempts to make reasonable guesses about what you want things to be set to, -and then writes a package.json file with the options you've selected. - -If you already have a package.json file, it'll read that first, and default to -the options in there. - -It is strictly additive, so it does not delete options from your package.json -without a really good reason to do so. - -Since this function expects to be run on the command-line, it doesn't work very -well as a programmatically. The best option is to roll your own, and since -JavaScript makes it stupid simple to output formatted JSON, that is the -preferred method. If you're sure you want to handle command-line prompting, -then go ahead and use this programmatically. - -## SEE ALSO - -package.json(5) diff --git a/deps/npm/doc/api/npm-install.md b/deps/npm/doc/api/npm-install.md deleted file mode 100644 index 12f665a76c92c7739a19b6f42e86e332d7948650..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-install.md +++ /dev/null @@ -1,19 +0,0 @@ -npm-install(3) -- install a package programmatically -==================================================== - -## SYNOPSIS - - npm.commands.install([where,] packages, callback) - -## DESCRIPTION - -This acts much the same ways as installing on the command-line. - -The 'where' parameter is optional and only used internally, and it specifies -where the packages should be installed to. - -The 'packages' parameter is an array of strings. Each element in the array is -the name of a package to be installed. - -Finally, 'callback' is a function that will be called when all packages have been -installed or when an error has been encountered. diff --git a/deps/npm/doc/api/npm-link.md b/deps/npm/doc/api/npm-link.md deleted file mode 100644 index fe875ec60f1c4c4e27ddf5c01bbc44cf3ef83139..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-link.md +++ /dev/null @@ -1,33 +0,0 @@ -npm-link(3) -- Symlink a package folder -======================================= - -## SYNOPSIS - - npm.commands.link(callback) - npm.commands.link(packages, callback) - -## DESCRIPTION - -Package linking is a two-step process. - -Without parameters, link will create a globally-installed -symbolic link from `prefix/package-name` to the current folder. - -With a parameters, link will create a symlink from the local `node_modules` -folder to the global symlink. - -When creating tarballs for `npm publish`, the linked packages are -"snapshotted" to their current state by resolving the symbolic links. - -This is -handy for installing your own stuff, so that you can work on it and test it -iteratively without having to continually rebuild. - -For example: - - npm.commands.link(cb) # creates global link from the cwd - # (say redis package) - npm.commands.link('redis', cb) # link-install the package - -Now, any changes to the redis package will be reflected in -the package in the current working directory diff --git a/deps/npm/doc/api/npm-load.md b/deps/npm/doc/api/npm-load.md deleted file mode 100644 index de412aff5b87b5b866c051ca03f3868f0d8b984b..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-load.md +++ /dev/null @@ -1,26 +0,0 @@ -npm-load(3) -- Load config settings -=================================== - -## SYNOPSIS - - npm.load(conf, cb) - -## DESCRIPTION - -npm.load() must be called before any other function call. Both parameters are -optional, but the second is recommended. - -The first parameter is an object containing command-line config params, and the -second parameter is a callback that will be called when npm is loaded and ready -to serve. - -The first parameter should follow a similar structure as the package.json -config object. - -For example, to emulate the --dev flag, pass an object that looks like this: - - { - "dev": true - } - -For a list of all the available command-line configs, see `npm help config` diff --git a/deps/npm/doc/api/npm-ls.md b/deps/npm/doc/api/npm-ls.md deleted file mode 100644 index 5de78f2104ae0c677b97ca92039bae281daae720..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-ls.md +++ /dev/null @@ -1,56 +0,0 @@ -npm-ls(3) -- List installed packages -====================================== - -## SYNOPSIS - - npm.commands.ls(args, [silent,] callback) - -## DESCRIPTION - -This command will print to stdout all the versions of packages that are -installed, as well as their dependencies, in a tree-structure. It will also -return that data using the callback. - -This command does not take any arguments, but args must be defined. -Beyond that, if any arguments are passed in, npm will politely warn that it -does not take positional arguments, though you may set config flags -like with any other command, such as `global` to list global packages. - -It will print out extraneous, missing, and invalid packages. - -If the silent parameter is set to true, nothing will be output to the screen, -but the data will still be returned. - -Callback is provided an error if one occurred, the full data about which -packages are installed and which dependencies they will receive, and a -"lite" data object which just shows which versions are installed where. -Note that the full data object is a circular structure, so care must be -taken if it is serialized to JSON. - -## CONFIGURATION - -### long - -* Default: false -* Type: Boolean - -Show extended information. - -### parseable - -* Default: false -* Type: Boolean - -Show parseable output instead of tree view. - -### global - -* Default: false -* Type: Boolean - -List packages in the global install prefix instead of in the current -project. - -Note, if parseable is set or long isn't set, then duplicates will be trimmed. -This means that if a submodule has the same dependency as a parent module, then the -dependency will only be output once. diff --git a/deps/npm/doc/api/npm-outdated.md b/deps/npm/doc/api/npm-outdated.md deleted file mode 100644 index 89f4cf6faa7fd78ed669eba70eb4bdf57889181d..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-outdated.md +++ /dev/null @@ -1,13 +0,0 @@ -npm-outdated(3) -- Check for outdated packages -============================================== - -## SYNOPSIS - - npm.commands.outdated([packages,] callback) - -## DESCRIPTION - -This command will check the registry to see if the specified packages are -currently outdated. - -If the 'packages' parameter is left out, npm will check all packages. diff --git a/deps/npm/doc/api/npm-owner.md b/deps/npm/doc/api/npm-owner.md deleted file mode 100644 index 71fcccff59163b7bd6c82c77f7c573cbeb7b089d..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-owner.md +++ /dev/null @@ -1,31 +0,0 @@ -npm-owner(3) -- Manage package owners -===================================== - -## SYNOPSIS - - npm.commands.owner(args, callback) - -## DESCRIPTION - -The first element of the 'args' parameter defines what to do, and the subsequent -elements depend on the action. Possible values for the action are (order of -parameters are given in parenthesis): - -* ls (package): - List all the users who have access to modify a package and push new versions. - Handy when you need to know who to bug for help. -* add (user, package): - Add a new user as a maintainer of a package. This user is enabled to modify - metadata, publish new versions, and add other owners. -* rm (user, package): - Remove a user from the package owner list. This immediately revokes their - privileges. - -Note that there is only one level of access. Either you can modify a package, -or you can't. Future versions may contain more fine-grained access levels, but -that is not implemented at this time. - -## SEE ALSO - -* npm-publish(3) -* npm-registry(7) diff --git a/deps/npm/doc/api/npm-pack.md b/deps/npm/doc/api/npm-pack.md deleted file mode 100644 index cb339c0c42d6fec6bc1b786307f1805c66226ca2..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-pack.md +++ /dev/null @@ -1,19 +0,0 @@ -npm-pack(3) -- Create a tarball from a package -============================================== - -## SYNOPSIS - - npm.commands.pack([packages,] callback) - -## DESCRIPTION - -For anything that's installable (that is, a package folder, tarball, -tarball url, name@tag, name@version, or name), this command will fetch -it to the cache, and then copy the tarball to the current working -directory as `-.tgz`, and then write the filenames out to -stdout. - -If the same package is specified multiple times, then the file will be -overwritten the second time. - -If no arguments are supplied, then npm packs the current package folder. diff --git a/deps/npm/doc/api/npm-ping.md b/deps/npm/doc/api/npm-ping.md deleted file mode 100644 index 4357fe2ba999948a13d52840f47e4cc3d4a696a7..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-ping.md +++ /dev/null @@ -1,14 +0,0 @@ -npm-ping(3) -- Ping npm registry -================================ - -## SYNOPSIS - - npm.registry.ping(registry, options, function (er, pong)) - -## DESCRIPTION - -Attempts to connect to the given registry, returning a `pong` -object with various metadata if it succeeds. - -This function is primarily useful for debugging connection issues -to npm registries. diff --git a/deps/npm/doc/api/npm-prefix.md b/deps/npm/doc/api/npm-prefix.md deleted file mode 100644 index 806dd4b6cbafd0af6225eb5389acbae7c6a86b03..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-prefix.md +++ /dev/null @@ -1,15 +0,0 @@ -npm-prefix(3) -- Display prefix -=============================== - -## SYNOPSIS - - npm.commands.prefix(args, callback) - -## DESCRIPTION - -Print the prefix to standard out. - -'args' is never used and callback is never called with data. -'args' must be present or things will break. - -This function is not useful programmatically diff --git a/deps/npm/doc/api/npm-prune.md b/deps/npm/doc/api/npm-prune.md deleted file mode 100644 index 2a4f177485deb9055a9a2c58e2f544a48fd1d3fb..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-prune.md +++ /dev/null @@ -1,17 +0,0 @@ -npm-prune(3) -- Remove extraneous packages -========================================== - -## SYNOPSIS - - npm.commands.prune([packages,] callback) - -## DESCRIPTION - -This command removes "extraneous" packages. - -The first parameter is optional, and it specifies packages to be removed. - -No packages are specified, then all packages will be checked. - -Extraneous packages are packages that are not listed on the parent -package's dependencies list. diff --git a/deps/npm/doc/api/npm-publish.md b/deps/npm/doc/api/npm-publish.md deleted file mode 100644 index 6871dafb856d0eec77bde4bc8cd1a7220e4c46f4..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-publish.md +++ /dev/null @@ -1,30 +0,0 @@ -npm-publish(3) -- Publish a package -=================================== - -## SYNOPSIS - - npm.commands.publish([packages,] callback) - -## DESCRIPTION - -Publishes a package to the registry so that it can be installed by name. -Possible values in the 'packages' array are: - -* ``: - A folder containing a package.json file - -* ``: - A url or file path to a gzipped tar archive containing a single folder - with a package.json file inside. - -If the package array is empty, npm will try to publish something in the -current working directory. - -This command could fails if one of the packages specified already exists in -the registry. Overwrites when the "force" environment variable is set. - -## SEE ALSO - -* npm-registry(7) -* npm-adduser(1) -* npm-owner(3) diff --git a/deps/npm/doc/api/npm-rebuild.md b/deps/npm/doc/api/npm-rebuild.md deleted file mode 100644 index 8b8989806ae26f6b0aee8d2f2430038a4392ac95..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-rebuild.md +++ /dev/null @@ -1,16 +0,0 @@ -npm-rebuild(3) -- Rebuild a package -=================================== - -## SYNOPSIS - - npm.commands.rebuild([packages,] callback) - -## DESCRIPTION - -This command runs the `npm build` command on each of the matched packages. This is useful -when you install a new version of node, and must recompile all your C++ addons with -the new binary. If no 'packages' parameter is specify, every package will be rebuilt. - -## CONFIGURATION - -See `npm help build` diff --git a/deps/npm/doc/api/npm-repo.md b/deps/npm/doc/api/npm-repo.md deleted file mode 100644 index af3c52fab64a308b556b910521e7266688e81329..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-repo.md +++ /dev/null @@ -1,19 +0,0 @@ -npm-repo(3) -- Open package repository page in the browser -======================================================== - -## SYNOPSIS - - npm.commands.repo(package, callback) - -## DESCRIPTION - -This command tries to guess at the likely location of a package's -repository URL, and then tries to open it using the `--browser` -config param. - -Like other commands, the first parameter is an array. This command only -uses the first element, which is expected to be a package name with an -optional version number. - -This command will launch a browser, so this command may not be the most -friendly for programmatic use. diff --git a/deps/npm/doc/api/npm-restart.md b/deps/npm/doc/api/npm-restart.md deleted file mode 100644 index 606c41bf8505f44d51c2a9fbe2bca0543e0501eb..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-restart.md +++ /dev/null @@ -1,41 +0,0 @@ -npm-restart(3) -- Restart a package -=================================== - -## SYNOPSIS - - npm.commands.restart(packages, callback) - -## DESCRIPTION - -This restarts a package (or multiple packages). - -This runs a package's "stop", "restart", and "start" scripts, and associated -pre- and post- scripts, in the order given below: - -1. prerestart -2. prestop -3. stop -4. poststop -5. restart -6. prestart -7. start -8. poststart -9. postrestart - -If no version is specified, then it restarts the "active" version. - -npm can restart multiple packages. Just specify multiple packages in -the `packages` parameter. - -## NOTE - -Note that the "restart" script is run **in addition to** the "stop" -and "start" scripts, not instead of them. - -This is the behavior as of `npm` major version 2. A change in this -behavior will be accompanied by an increase in major version number - -## SEE ALSO - -* npm-start(3) -* npm-stop(3) diff --git a/deps/npm/doc/api/npm-root.md b/deps/npm/doc/api/npm-root.md deleted file mode 100644 index 1c3ab56402c0f8f190179f35874608f4359c94c3..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-root.md +++ /dev/null @@ -1,15 +0,0 @@ -npm-root(3) -- Display npm root -=============================== - -## SYNOPSIS - - npm.commands.root(args, callback) - -## DESCRIPTION - -Print the effective `node_modules` folder to standard out. - -'args' is never used and callback is never called with data. -'args' must be present or things will break. - -This function is not useful programmatically. diff --git a/deps/npm/doc/api/npm-run-script.md b/deps/npm/doc/api/npm-run-script.md deleted file mode 100644 index 91ad95351bb5c0a5979e9f9fff382b77bf40c488..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-run-script.md +++ /dev/null @@ -1,27 +0,0 @@ -npm-run-script(3) -- Run arbitrary package scripts -================================================== - -## SYNOPSIS - - npm.commands.run-script(args, callback) - -## DESCRIPTION - -This runs an arbitrary command from a package's "scripts" object. - -It is used by the test, start, restart, and stop commands, but can be -called directly, as well. - -The 'args' parameter is an array of strings. Behavior depends on the number -of elements. If there is only one element, npm assumes that the element -represents a command to be run on the local repository. If there is more than -one element, then the first is assumed to be the package and the second is -assumed to be the command to run. All other elements are ignored. - -## SEE ALSO - -* npm-scripts(7) -* npm-test(3) -* npm-start(3) -* npm-restart(3) -* npm-stop(3) diff --git a/deps/npm/doc/api/npm-search.md b/deps/npm/doc/api/npm-search.md deleted file mode 100644 index 30651d76a4227f3c2f166c97597379e1dded5f15..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-search.md +++ /dev/null @@ -1,35 +0,0 @@ -npm-search(3) -- Search for packages -==================================== - -## SYNOPSIS - - npm.commands.search(searchTerms, [silent,] [staleness,] callback) - -## DESCRIPTION - -Search the registry for packages matching the search terms. The available parameters are: - -* searchTerms: - Array of search terms. These terms are case-insensitive. -* silent: - If true, npm will not log anything to the console. -* staleness: - This is the threshold for stale packages. "Fresh" packages are not refreshed - from the registry. This value is measured in seconds. -* callback: - Returns an object where each key is the name of a package, and the value - is information about that package along with a 'words' property, which is - a space-delimited string of all of the interesting words in that package. - The only properties included are those that are searched, which generally include: - - * name - * description - * maintainers - * url - * keywords - -A search on the registry excludes any result that does not match all of the -search terms. It also removes any items from the results that contain an -excluded term (the "searchexclude" config). The search is case insensitive -and doesn't try to read your mind (it doesn't do any verb tense matching or the -like). diff --git a/deps/npm/doc/api/npm-shrinkwrap.md b/deps/npm/doc/api/npm-shrinkwrap.md deleted file mode 100644 index 6584d6a0da48f784acb0c1949784f860ad866dea..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-shrinkwrap.md +++ /dev/null @@ -1,20 +0,0 @@ -npm-shrinkwrap(3) -- programmatically generate package shrinkwrap file -==================================================== - -## SYNOPSIS - - npm.commands.shrinkwrap(args, [silent,] callback) - -## DESCRIPTION - -This acts much the same ways as shrinkwrapping on the command-line. - -This command does not take any arguments, but 'args' must be defined. -Beyond that, if any arguments are passed in, npm will politely warn that it -does not take positional arguments. - -If the 'silent' parameter is set to true, nothing will be output to the screen, -but the shrinkwrap file will still be written. - -Finally, 'callback' is a function that will be called when the shrinkwrap has -been saved. diff --git a/deps/npm/doc/api/npm-start.md b/deps/npm/doc/api/npm-start.md deleted file mode 100644 index deeea90d97649bb60431f1dc2913931c3560dc0b..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-start.md +++ /dev/null @@ -1,13 +0,0 @@ -npm-start(3) -- Start a package -=============================== - -## SYNOPSIS - - npm.commands.start(packages, callback) - -## DESCRIPTION - -This runs a package's "start" script, if one was provided. - -npm can start multiple packages. Just specify multiple packages in the -`packages` parameter. diff --git a/deps/npm/doc/api/npm-stop.md b/deps/npm/doc/api/npm-stop.md deleted file mode 100644 index 0f8333d35132332c5102c02776d0dec600a9077a..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-stop.md +++ /dev/null @@ -1,13 +0,0 @@ -npm-stop(3) -- Stop a package -============================= - -## SYNOPSIS - - npm.commands.stop(packages, callback) - -## DESCRIPTION - -This runs a package's "stop" script, if one was provided. - -npm can run stop on multiple packages. Just specify multiple packages -in the `packages` parameter. diff --git a/deps/npm/doc/api/npm-tag.md b/deps/npm/doc/api/npm-tag.md deleted file mode 100644 index 9cda0c407dec8424106007d9b9cd8f6a99936bfb..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-tag.md +++ /dev/null @@ -1,23 +0,0 @@ -npm-tag(3) -- Tag a published version -===================================== - -## SYNOPSIS - - npm.commands.tag(package@version, tag, callback) - -## DESCRIPTION - -Tags the specified version of the package with the specified tag, or the -`--tag` config if not specified. - -The 'package@version' is an array of strings, but only the first two elements are -currently used. - -The first element must be in the form package@version, where package -is the package name and version is the version number (much like installing a -specific version). - -The second element is the name of the tag to tag this version with. If this -parameter is missing or falsey (empty), the default from the config will be -used. For more information about how to set this config, check -`man 3 npm-config` for programmatic usage or `man npm-config` for cli usage. diff --git a/deps/npm/doc/api/npm-test.md b/deps/npm/doc/api/npm-test.md deleted file mode 100644 index bc48dcc35f9572ecc107073d84ca3dfb2d67c201..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-test.md +++ /dev/null @@ -1,16 +0,0 @@ -npm-test(3) -- Test a package -============================= - -## SYNOPSIS - - npm.commands.test(packages, callback) - -## DESCRIPTION - -This runs a package's "test" script, if one was provided. - -To run tests as a condition of installation, set the `npat` config to -true. - -npm can run tests on multiple packages. Just specify multiple packages -in the `packages` parameter. diff --git a/deps/npm/doc/api/npm-uninstall.md b/deps/npm/doc/api/npm-uninstall.md deleted file mode 100644 index 4505295b3b3d3a43c500b3d31d789da8e5d4eea8..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-uninstall.md +++ /dev/null @@ -1,16 +0,0 @@ -npm-uninstall(3) -- uninstall a package programmatically -======================================================== - -## SYNOPSIS - - npm.commands.uninstall(packages, callback) - -## DESCRIPTION - -This acts much the same ways as uninstalling on the command-line. - -The 'packages' parameter is an array of strings. Each element in the array is -the name of a package to be uninstalled. - -Finally, 'callback' is a function that will be called when all packages have been -uninstalled or when an error has been encountered. diff --git a/deps/npm/doc/api/npm-unpublish.md b/deps/npm/doc/api/npm-unpublish.md deleted file mode 100644 index 6cbc5c1f371ffecb355347edf688b3fa7e2fdd4e..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-unpublish.md +++ /dev/null @@ -1,20 +0,0 @@ -npm-unpublish(3) -- Remove a package from the registry -====================================================== - -## SYNOPSIS - - npm.commands.unpublish(package, callback) - -## DESCRIPTION - -This removes a package version from the registry, deleting its -entry and removing the tarball. - -The package parameter must be defined. - -Only the first element in the package parameter is used. If there is no first -element, then npm assumes that the package at the current working directory -is what is meant. - -If no version is specified, or if all versions are removed then -the root package entry is removed from the registry entirely. diff --git a/deps/npm/doc/api/npm-update.md b/deps/npm/doc/api/npm-update.md deleted file mode 100644 index 52d7ec343c0cfd79ee37bc4f12afd5ac05adb3fb..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-update.md +++ /dev/null @@ -1,18 +0,0 @@ -npm-update(3) -- Update a package -================================= - -## SYNOPSIS - - npm.commands.update(packages, callback) - -# DESCRIPTION - -Updates a package, upgrading it to the latest version. It also installs any -missing packages. - -The `packages` argument is an array of packages to update. The `callback` -parameter will be called when done or when an error occurs. - -## SEE ALSO - -* npm-update(1) diff --git a/deps/npm/doc/api/npm-version.md b/deps/npm/doc/api/npm-version.md deleted file mode 100644 index bd40102c457bf8b3f875bcb8c64321be1c60c90c..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-version.md +++ /dev/null @@ -1,18 +0,0 @@ -npm-version(3) -- Bump a package version -======================================== - -## SYNOPSIS - - npm.commands.version(newversion, callback) - -## DESCRIPTION - -Run this in a package directory to bump the version and write the new -data back to the package.json file. - -If run in a git repo, it will also create a version commit and tag, and -fail if the repo is not clean. - -Like all other commands, this function takes a string array as its first -parameter. The difference, however, is this function will fail if it does -not have exactly one element. The only element should be a version number. diff --git a/deps/npm/doc/api/npm-view.md b/deps/npm/doc/api/npm-view.md deleted file mode 100644 index 0c110f52ed1c59644978c7291bf1e4b61cd46c71..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-view.md +++ /dev/null @@ -1,93 +0,0 @@ -npm-view(3) -- View registry info -================================= - -## SYNOPSIS - - npm.commands.view(args, [silent,] callback) - -## DESCRIPTION - -This command shows data about a package and prints it to the stream -referenced by the `outfd` config, which defaults to stdout. - -The "args" parameter is an ordered list that closely resembles the command-line -usage. The elements should be ordered such that the first element is -the package and version (package@version). The version is optional. After that, -the rest of the parameters are fields with optional subfields ("field.subfield") -which can be used to get only the information desired from the registry. - -The callback will be passed all of the data returned by the query. - -For example, to get the package registry entry for the `connect` package, -you can do this: - - npm.commands.view(["connect"], callback) - -If no version is specified, "latest" is assumed. - -Field names can be specified after the package descriptor. -For example, to show the dependencies of the `ronn` package at version -0.3.5, you could do the following: - - npm.commands.view(["ronn@0.3.5", "dependencies"], callback) - -You can view child field by separating them with a period. -To view the git repository URL for the latest version of npm, you could -do this: - - npm.commands.view(["npm", "repository.url"], callback) - -For fields that are arrays, requesting a non-numeric field will return -all of the values from the objects in the list. For example, to get all -the contributor names for the "express" project, you can do this: - - npm.commands.view(["express", "contributors.email"], callback) - -You may also use numeric indices in square braces to specifically select -an item in an array field. To just get the email address of the first -contributor in the list, you can do this: - - npm.commands.view(["express", "contributors[0].email"], callback) - -Multiple fields may be specified, and will be printed one after another. -For exampls, to get all the contributor names and email addresses, you -can do this: - - npm.commands.view(["express", "contributors.name", "contributors.email"], callback) - -"Person" fields are shown as a string if they would be shown as an -object. So, for example, this will show the list of npm contributors in -the shortened string format. (See `npm help json` for more on this.) - - npm.commands.view(["npm", "contributors"], callback) - -If a version range is provided, then data will be printed for every -matching version of the package. This will show which version of jsdom -was required by each matching version of yui3: - - npm.commands.view(["yui3@>0.5.4", "dependencies.jsdom"], callback) - -## OUTPUT - -If only a single string field for a single version is output, then it -will not be colorized or quoted, so as to enable piping the output to -another command. - -If the version range matches multiple versions, than each printed value -will be prefixed with the version it applies to. - -If multiple fields are requested, than each of them are prefixed with -the field name. - -Console output can be disabled by setting the 'silent' parameter to true. - -## RETURN VALUE - -The data returned will be an object in this formation: - - { : - { : - , ... } - , ... } - -corresponding to the list of fields selected. diff --git a/deps/npm/doc/api/npm-whoami.md b/deps/npm/doc/api/npm-whoami.md deleted file mode 100644 index 598a1ab1a347e5a18e7c2a87d3f1815a3eff842d..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm-whoami.md +++ /dev/null @@ -1,15 +0,0 @@ -npm-whoami(3) -- Display npm username -===================================== - -## SYNOPSIS - - npm.commands.whoami(args, callback) - -## DESCRIPTION - -Print the `username` config to standard output. - -'args' is never used and callback is never called with data. -'args' must be present or things will break. - -This function is not useful programmatically diff --git a/deps/npm/doc/api/npm.md b/deps/npm/doc/api/npm.md deleted file mode 100644 index 611292ec94688d18d61b6fc2c0d494b7e92406b4..0000000000000000000000000000000000000000 --- a/deps/npm/doc/api/npm.md +++ /dev/null @@ -1,115 +0,0 @@ -npm(3) -- javascript package manager -==================================== - -## SYNOPSIS - - var npm = require("npm") - npm.load([configObject, ]function (er, npm) { - // use the npm object, now that it's loaded. - - npm.config.set(key, val) - val = npm.config.get(key) - - console.log("prefix = %s", npm.prefix) - - npm.commands.install(["package"], cb) - }) - -## VERSION - -@VERSION@ - -## DESCRIPTION - -This is the API documentation for npm. -To find documentation of the command line -client, see `npm(1)`. - -Prior to using npm's commands, `npm.load()` must be called. If you provide -`configObject` as an object map of top-level configs, they override the values -stored in the various config locations. In the npm command line client, this -set of configs is parsed from the command line options. Additional -configuration params are loaded from two configuration files. See -`npm-config(1)`, `npm-config(7)`, and `npmrc(5)` for more information. - -After that, each of the functions are accessible in the -commands object: `npm.commands.`. See `npm-index(7)` for a list of -all possible commands. - -All commands on the command object take an **array** of positional argument -**strings**. The last argument to any function is a callback. Some -commands take other optional arguments. - -Configs cannot currently be set on a per function basis, as each call to -npm.config.set will change the value for *all* npm commands in that process. - -To find API documentation for a specific command, run the `npm apihelp` -command. - -## METHODS AND PROPERTIES - -* `npm.load(configs, cb)` - - Load the configuration params, and call the `cb` function once the - globalconfig and userconfig files have been loaded as well, or on - nextTick if they've already been loaded. - -* `npm.config` - - An object for accessing npm configuration parameters. - - * `npm.config.get(key)` - * `npm.config.set(key, val)` - * `npm.config.del(key)` - -* `npm.dir` or `npm.root` - - The `node_modules` directory where npm will operate. - -* `npm.prefix` - - The prefix where npm is operating. (Most often the current working - directory.) - -* `npm.cache` - - The place where npm keeps JSON and tarballs it fetches from the - registry (or uploads to the registry). - -* `npm.tmp` - - npm's temporary working directory. - -* `npm.deref` - - Get the "real" name for a command that has either an alias or - abbreviation. - -## MAGIC - -For each of the methods in the `npm.commands` object, a method is added to the -npm object, which takes a set of positional string arguments rather than an -array and a callback. - -If the last argument is a callback, then it will use the supplied -callback. However, if no callback is provided, then it will print out -the error or results. - -For example, this would work in a node repl: - - > npm = require("npm") - > npm.load() // wait a sec... - > npm.install("dnode", "express") - -Note that that *won't* work in a node program, since the `install` -method will get called before the configuration load is completed. - -## ABBREVS - -In order to support `npm ins foo` instead of `npm install foo`, the -`npm.commands` object has a set of abbreviations as well as the full -method names. Use the `npm.deref` method to find the real name. - -For example: - - var cmd = npm.deref("unp") // cmd === "unpublish" diff --git a/deps/npm/doc/cli/npm-bin.md b/deps/npm/doc/cli/npm-bin.md index 33863b45714b8f69c38a573e8eea3ee91730e762..8e1abbee8f0fca35753c7e67be68ad250d28ede5 100644 --- a/deps/npm/doc/cli/npm-bin.md +++ b/deps/npm/doc/cli/npm-bin.md @@ -3,7 +3,7 @@ npm-bin(1) -- Display npm bin folder ## SYNOPSIS - npm bin + npm bin [--global] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-bugs.md b/deps/npm/doc/cli/npm-bugs.md index 002d9f7556f31a240797b342501f86a0e8296c06..d2ad534fa3501a1639d5662f0f46be20eb56ca6c 100644 --- a/deps/npm/doc/cli/npm-bugs.md +++ b/deps/npm/doc/cli/npm-bugs.md @@ -3,8 +3,7 @@ npm-bugs(1) -- Bugs for a package in a web browser maybe ## SYNOPSIS - npm bugs - npm bugs (with no args in a package dir) + npm bugs [] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-build.md b/deps/npm/doc/cli/npm-build.md index 4d3467a160dd0c9143590bf079501f7e67981727..019f225850dc043aa5c924817f588771cbb4811c 100644 --- a/deps/npm/doc/cli/npm-build.md +++ b/deps/npm/doc/cli/npm-build.md @@ -3,7 +3,7 @@ npm-build(1) -- Build a package ## SYNOPSIS - npm build + npm build [] * ``: A folder containing a `package.json` file in its root. diff --git a/deps/npm/doc/cli/npm-completion.md b/deps/npm/doc/cli/npm-completion.md index bec0f60867cf8219f6a31b30fc6a0c9736b2008b..6c7f3935629e7b1c5b16d00f15859d242bce7431 100644 --- a/deps/npm/doc/cli/npm-completion.md +++ b/deps/npm/doc/cli/npm-completion.md @@ -3,7 +3,7 @@ npm-completion(1) -- Tab Completion for npm ## SYNOPSIS - . <(npm completion) + source <(npm completion) ## DESCRIPTION @@ -12,7 +12,10 @@ Enables tab-completion in all npm commands. The synopsis above loads the completions into your current shell. Adding it to your ~/.bashrc or ~/.zshrc will make the completions available -everywhere. +everywhere: + + npm completion >> ~/.bashrc + npm completion >> ~/.zshrc You may of course also pipe the output of npm completion to a file such as `/usr/local/etc/bash_completion.d/npm` if you have a system diff --git a/deps/npm/doc/cli/npm-config.md b/deps/npm/doc/cli/npm-config.md index 1d978c9dea0b45761935b57559c1cbc701fb67c7..119840ef010f17c080916b371acb9de1f6d5e742 100644 --- a/deps/npm/doc/cli/npm-config.md +++ b/deps/npm/doc/cli/npm-config.md @@ -8,7 +8,6 @@ npm-config(1) -- Manage the npm configuration files npm config delete npm config list npm config edit - npm c [set|get|delete|list] npm get npm set [--global] diff --git a/deps/npm/doc/cli/npm-dedupe.md b/deps/npm/doc/cli/npm-dedupe.md index d3be01050c7f5b4dca75bfb244dadbb06439eab2..c963dfa8e9ee45c0d4a62a04c04b6c9b8e4b8058 100644 --- a/deps/npm/doc/cli/npm-dedupe.md +++ b/deps/npm/doc/cli/npm-dedupe.md @@ -31,25 +31,20 @@ Because of the hierarchical nature of node's module lookup, b and d will both get their dependency met by the single c package at the root level of the tree. +The deduplication algorithm walks the tree, moving each dependency as far +up in the tree as possible, even if duplicates are not found. This will +result in both a flat and deduplicated tree. + If a suitable version exists at the target location in the tree already, then it will be left untouched, but the other duplicates will be deleted. -If no suitable version can be found, then a warning is printed, and -nothing is done. - -If any arguments are supplied, then they are filters, and only the -named packages will be touched. - -Note that this operation transforms the dependency tree, and may -result in packages getting updated versions, perhaps from the npm -registry. +Arguments are ignored. Dedupe always acts on the entire tree. -This feature is experimental, and may change in future versions. +Modules -The `--tag` argument will apply to all of the affected dependencies. If a -tag with the given name exists, the tagged version is preferred over newer -versions. +Note that this operation transforms the dependency tree, but will never +result in new modules being installed. ## SEE ALSO diff --git a/deps/npm/doc/cli/npm-deprecate.md b/deps/npm/doc/cli/npm-deprecate.md index e62579349526e7a0f4e8f9246dc694bc4a905304..1be6f491be2053d9ee665602c6abea91d5c49772 100644 --- a/deps/npm/doc/cli/npm-deprecate.md +++ b/deps/npm/doc/cli/npm-deprecate.md @@ -3,7 +3,7 @@ npm-deprecate(1) -- Deprecate a version of a package ## SYNOPSIS - npm deprecate [@] + npm deprecate [@] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-docs.md b/deps/npm/doc/cli/npm-docs.md index 5db3d9f7e94f8c8a0282d97e891e8ad7888799e9..f5064c55e2829ac0145d9ab015b50bbbda8845ff 100644 --- a/deps/npm/doc/cli/npm-docs.md +++ b/deps/npm/doc/cli/npm-docs.md @@ -4,9 +4,9 @@ npm-docs(1) -- Docs for a package in a web browser maybe ## SYNOPSIS npm docs [ [ ...]] - npm docs (with no args in a package dir) + npm docs . npm home [ [ ...]] - npm home (with no args in a package dir) + npm home . ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-edit.md b/deps/npm/doc/cli/npm-edit.md index 6a73317b81979125e554eaa988d2e33496c8f87c..89ecfa877eeacd2f8a45d8b1530085778180747b 100644 --- a/deps/npm/doc/cli/npm-edit.md +++ b/deps/npm/doc/cli/npm-edit.md @@ -3,7 +3,7 @@ npm-edit(1) -- Edit an installed package ## SYNOPSIS - npm edit [@] + npm edit [@] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-explore.md b/deps/npm/doc/cli/npm-explore.md index fded5340870776126d1178ed6bc4e5bfec39210a..b66e08bfb935cab68fd3c06f49ff58be51a3b083 100644 --- a/deps/npm/doc/cli/npm-explore.md +++ b/deps/npm/doc/cli/npm-explore.md @@ -3,7 +3,7 @@ npm-explore(1) -- Browse an installed package ## SYNOPSIS - npm explore [ -- ] + npm explore [ -- ] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-help-search.md b/deps/npm/doc/cli/npm-help-search.md index 7bf7401ba0cb49aca97e9c978febcb400a236deb..0a40f1c43b91672da7f61417d4a94dcd805fa0d8 100644 --- a/deps/npm/doc/cli/npm-help-search.md +++ b/deps/npm/doc/cli/npm-help-search.md @@ -3,7 +3,7 @@ npm-help-search(1) -- Search npm help documentation ## SYNOPSIS - npm help-search some search terms + npm help-search ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-help.md b/deps/npm/doc/cli/npm-help.md index 7991b1d38d2aaa2d0c0a407923097b37fbdac7ce..9fb96c9c2e6512901265d9824d757714e4ae92b2 100644 --- a/deps/npm/doc/cli/npm-help.md +++ b/deps/npm/doc/cli/npm-help.md @@ -3,8 +3,7 @@ npm-help(1) -- Get help on npm ## SYNOPSIS - npm help - npm help some search terms + npm help [] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-init.md b/deps/npm/doc/cli/npm-init.md index ec4c25bedaab44f54c6cac57293d21dc3ba3d130..e90f9ef04d91a22766a7b23a8864879cb04f9026 100644 --- a/deps/npm/doc/cli/npm-init.md +++ b/deps/npm/doc/cli/npm-init.md @@ -3,7 +3,7 @@ npm-init(1) -- Interactively create a package.json file ## SYNOPSIS - npm init [-f|--force|-y|--yes] + npm init [--force|-f|--yes|-y] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-install.md b/deps/npm/doc/cli/npm-install.md index be32f7b296ef015defc45c060533696abffbb44c..07c61e174aa725dede3e95d3d04c6235df85c031 100644 --- a/deps/npm/doc/cli/npm-install.md +++ b/deps/npm/doc/cli/npm-install.md @@ -3,15 +3,17 @@ npm-install(1) -- Install a package ## SYNOPSIS - npm install (with no args in a package dir) + npm install (with no args, in package dir) + npm install [<@scope>/] + npm install [<@scope>/]@ + npm install [<@scope>/]@ + npm install [<@scope>/]@ npm install npm install npm install - npm install [@/] [--save|--save-dev|--save-optional] [--save-exact] - npm install [@/]@ - npm install [@/]@ - npm install [@/]@ - npm i (with any of the previous argument usage) + + alias: npm i + common options: [--save|--save-dev|--save-optional] [--save-exact] [--dry-run] ## DESCRIPTION @@ -27,7 +29,7 @@ A `package` is: * d) a `@` that is published on the registry (see `npm-registry(7)`) with (c) * e) a `@` that points to (d) * f) a `` that has a "latest" tag satisfying (e) -* g) a `` that resolves to (b) +* g) a `` that resolves to (a) Even if you never publish your package, you can still get a lot of benefits of using npm if you just want to write a node program (a), and @@ -71,7 +73,7 @@ after packing it up into a tarball (b). npm install https://github.com/indexzero/forever/tarball/v0.5.6 -* `npm install [@/] [--save|--save-dev|--save-optional]`: +* `npm install [<@scope>/] [--save|--save-dev|--save-optional]`: Do a `@` install, where `` is the "tag" config. (See `npm-config(7)`.) @@ -99,6 +101,9 @@ after packing it up into a tarball (b). exact version rather than using npm's default semver range operator. + Further, if you have an `npm-shrinkwrap.json` then it will be updated as + well. + `` is optional. The package will be downloaded from the registry associated with the specified scope. If no registry is associated with the given scope the default registry is assumed. See `npm-scope(7)`. @@ -121,7 +126,7 @@ after packing it up into a tarball (b). working directory, then it will try to install that, and only try to fetch the package by name if it is not valid. -* `npm install [@/]@`: +* `npm install [<@scope>/]@`: Install the version of the package that is referenced by the specified tag. If the tag does not exist in the registry data for that package, then this @@ -132,7 +137,7 @@ after packing it up into a tarball (b). npm install sax@latest npm install @myorg/mypackage@latest -* `npm install [@/]@`: +* `npm install [<@scope>/]@`: Install the specified version of the package. This will fail if the version has not been published to the registry. @@ -142,7 +147,7 @@ after packing it up into a tarball (b). npm install sax@0.1.1 npm install @myorg/privatepackage@1.5.0 -* `npm install [@/]@`: +* `npm install [<@scope>/]@`: Install a version of the package matching the specified version range. This will follow the same rules for resolving dependencies described in `package.json(5)`. @@ -157,10 +162,10 @@ after packing it up into a tarball (b). * `npm install `: - Install a package by cloning a git remote url. The format of the git - url is: + Installs the package from the hosted git provider, cloning it with + `git`. First it tries via the https (git with github) and if that fails, via ssh. - ://[[:]@][:][:/][#] + ://[[:]@][:][:][/][#] `` is one of `git`, `git+ssh`, `git+http`, or `git+https`. If no `` is specified, then `master` is @@ -241,6 +246,9 @@ The `--tag` argument will apply to all of the specified install targets. If a tag with the given name exists, the tagged version is preferred over newer versions. +The `--dry-run` argument will report in the usual way what the install would +have done without actually installing anything. + The `--force` argument will force npm to fetch remote resources even if a local copy exists on disk. @@ -264,6 +272,9 @@ shrinkwrap file and use the package.json instead. The `--nodedir=/path/to/node/source` argument will allow npm to find the node source code so that npm can compile native modules. +The `--only={prod[uction]|dev[elopment]}` argument will cause either only +`devDependencies` or only non-`devDependencies` to be installed. + See `npm-config(7)`. Many of the configuration params have some effect on installation, since that's most of what npm does. @@ -271,26 +282,39 @@ effect on installation, since that's most of what npm does. To install a package, npm uses the following algorithm: - install(where, what, family, ancestors) - fetch what, unpack to /node_modules/ - for each dep in what.dependencies - resolve dep to precise version - for each dep@version in what.dependencies - not in /node_modules//node_modules/* - and not in - add precise version deps to - install(/node_modules/, dep, family) + load the existing node_modules tree from disk + clone the tree + fetch the package.json and assorted metadata and add it to the clone + walk the clone and add any missing dependencies + dependencies will be added as close to the top as is possible + without breaking any other modules + compare the original tree with the cloned tree and make a list of + actions to take to convert one to the other + execute all of the actions, deepest first + kinds of actions are install, update, remove and move For this `package{dep}` structure: `A{B,C}, B{C}, C{D}`, this algorithm produces: A +-- B - `-- C - `-- D + +-- C + +-- D That is, the dependency from B to C is satisfied by the fact that A -already caused C to be installed at a higher level. +already caused C to be installed at a higher level. D is still installed +at the top level because nothing conflicts with it. + +For `A{B,C}, B{C,D@1}, C{D@2}`, this algorithm produces: + + A + +-- B + +-- C + `-- D@2 + +-- D@1 + +Because B's D@1 will be installed in the top leve, C now has to install D@2 +privately for itself. See npm-folders(5) for a more detailed description of the specific folder structures that npm creates. diff --git a/deps/npm/doc/cli/npm-link.md b/deps/npm/doc/cli/npm-link.md index b6d0c143ad4c15f0433d4536bab31f789814921c..344fcbf1a742bb98d878f57c41f12b435cefcd32 100644 --- a/deps/npm/doc/cli/npm-link.md +++ b/deps/npm/doc/cli/npm-link.md @@ -3,9 +3,10 @@ npm-link(1) -- Symlink a package folder ## SYNOPSIS - npm link (in package folder) - npm link [@/] - npm ln (with any of the previous argument usage) + npm link (in package dir) + npm link [<@scope>/][@] + + alias: npm ln ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-logout.md b/deps/npm/doc/cli/npm-logout.md index 867953c02449bc4745ee482bcb85000a41f24522..411ea67e6ca10ea7d529cbd4bda44fcc1c4bc1ca 100644 --- a/deps/npm/doc/cli/npm-logout.md +++ b/deps/npm/doc/cli/npm-logout.md @@ -3,7 +3,7 @@ npm-logout(1) -- Log out of the registry ## SYNOPSIS - npm logout [--registry=url] [--scope=@orgname] + npm logout [--registry=] [--scope=<@scope>] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-ls.md b/deps/npm/doc/cli/npm-ls.md index 318cdd8fd64997493527341a751d07a5892b2d23..70835189aae582c76fd21f26eac41fb474d22f62 100644 --- a/deps/npm/doc/cli/npm-ls.md +++ b/deps/npm/doc/cli/npm-ls.md @@ -3,10 +3,9 @@ npm-ls(1) -- List installed packages ## SYNOPSIS - npm list [[@/] ...] - npm ls [[@/] ...] - npm la [[@/] ...] - npm ll [[@/] ...] + npm ls [[<@scope>/] ...] + + aliases: list, la, ll ## DESCRIPTION @@ -28,6 +27,9 @@ If a project specifies git urls for dependencies these are shown in parentheses after the name@version to make it easier for users to recognize potential forks of a project. +The tree shown is the logical dependency tree, based on package +dependencies, not the physical layout of your node_modules folder. + When run as `ll` or `la`, it shows extended information by default. ## CONFIGURATION @@ -81,6 +83,14 @@ Display only the dependency tree for packages in `dependencies`. Display only the dependency tree for packages in `devDependencies`. +### only + +* Type: String + +When "dev" or "development", is an alias to `dev`. + +When "prod" or "production", is an alias to `production`.` + ## SEE ALSO * npm-config(1) diff --git a/deps/npm/doc/cli/npm-outdated.md b/deps/npm/doc/cli/npm-outdated.md index aa2a7d5dd16e02307f7dcbf9c2631f47f18f631b..bdc9b9b8ed79821fdca551d5ec811ee2234414fc 100644 --- a/deps/npm/doc/cli/npm-outdated.md +++ b/deps/npm/doc/cli/npm-outdated.md @@ -3,7 +3,7 @@ npm-outdated(1) -- Check for outdated packages ## SYNOPSIS - npm outdated [ [ ...]] + npm outdated [[<@scope>/] ...] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-owner.md b/deps/npm/doc/cli/npm-owner.md index b400f76378f531b4f856082980be56efef5f3660..1047a09bb8a05370f02eb50780d3b297f824dd67 100644 --- a/deps/npm/doc/cli/npm-owner.md +++ b/deps/npm/doc/cli/npm-owner.md @@ -3,9 +3,9 @@ npm-owner(1) -- Manage package owners ## SYNOPSIS - npm owner ls - npm owner add - npm owner rm + npm owner add [<@scope>/] + npm owner rm [<@scope>/] + npm owner ls [<@scope>/] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-pack.md b/deps/npm/doc/cli/npm-pack.md index 42bc1564be71573a3d7ef4c1996f971c82900f33..f44f5e3620c2afd777de779d188c7227c96d9778 100644 --- a/deps/npm/doc/cli/npm-pack.md +++ b/deps/npm/doc/cli/npm-pack.md @@ -3,15 +3,15 @@ npm-pack(1) -- Create a tarball from a package ## SYNOPSIS - npm pack [ [ ...]] + npm pack [[<@scope>/]...] ## DESCRIPTION For anything that's installable (that is, a package folder, tarball, -tarball url, name@tag, name@version, or name), this command will fetch -it to the cache, and then copy the tarball to the current working -directory as `-.tgz`, and then write the filenames out to -stdout. +tarball url, name@tag, name@version, name, or scoped name), this +command will fetch it to the cache, and then copy the tarball to the +current working directory as `-.tgz`, and then write +the filenames out to stdout. If the same package is specified multiple times, then the file will be overwritten the second time. diff --git a/deps/npm/doc/cli/npm-prune.md b/deps/npm/doc/cli/npm-prune.md index 846a04240e598d36b04d8a41b393193cc30c85ad..9089122117ab40b235461f4be65142739ae8901d 100644 --- a/deps/npm/doc/cli/npm-prune.md +++ b/deps/npm/doc/cli/npm-prune.md @@ -3,8 +3,7 @@ npm-prune(1) -- Remove extraneous packages ## SYNOPSIS - npm prune [ [ [/]...] [--production] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-publish.md b/deps/npm/doc/cli/npm-publish.md index 8c447d0df9c4d5d7f60d4cb5c212170939207488..8e4da32cd5f5057a65e377379177ea7c2528ccae 100644 --- a/deps/npm/doc/cli/npm-publish.md +++ b/deps/npm/doc/cli/npm-publish.md @@ -4,8 +4,10 @@ npm-publish(1) -- Publish a package ## SYNOPSIS - npm publish [--tag ] [--access ] - npm publish [--tag ] [--access ] + npm publish [|] [--tag ] [--access ] + + Publishes '.' if no argument supplied + Sets tag 'latest' if no --tag specified ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-rebuild.md b/deps/npm/doc/cli/npm-rebuild.md index 7287208681fd08a60fb7c178a818782fa5d806f0..437737d9f4b5631e084692c7c7fbe07cf2d75510 100644 --- a/deps/npm/doc/cli/npm-rebuild.md +++ b/deps/npm/doc/cli/npm-rebuild.md @@ -3,11 +3,9 @@ npm-rebuild(1) -- Rebuild a package ## SYNOPSIS - npm rebuild [ [ ...]] - npm rb [ [ ...]] + npm rebuild [[<@scope>/]...] -* ``: - The package to rebuild + alias: npm rb ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-repo.md b/deps/npm/doc/cli/npm-repo.md index 6bc6f3b3758f43728039025118a7d6b43dae0f60..523e135e8cc31f47c734403b6a488595ab3add4f 100644 --- a/deps/npm/doc/cli/npm-repo.md +++ b/deps/npm/doc/cli/npm-repo.md @@ -3,8 +3,7 @@ npm-repo(1) -- Open package repository page in the browser ## SYNOPSIS - npm repo - npm repo (with no args in a package dir) + npm repo [] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-rm.md b/deps/npm/doc/cli/npm-rm.md deleted file mode 100644 index 6691265fff939432cc82e35cfc5bede83eec028c..0000000000000000000000000000000000000000 --- a/deps/npm/doc/cli/npm-rm.md +++ /dev/null @@ -1,23 +0,0 @@ -npm-rm(1) -- Remove a package -============================= - -## SYNOPSIS - - npm rm - npm r - npm uninstall - npm un - -## DESCRIPTION - -This uninstalls a package, completely removing everything npm installed -on its behalf. - -## SEE ALSO - -* npm-prune(1) -* npm-install(1) -* npm-folders(5) -* npm-config(1) -* npm-config(7) -* npmrc(5) diff --git a/deps/npm/doc/cli/npm-root.md b/deps/npm/doc/cli/npm-root.md index ca99e1206b27891222fbb3223a854068df393aa5..a1d5bf8629913b00adc07978f9e3f04c31ab7541 100644 --- a/deps/npm/doc/cli/npm-root.md +++ b/deps/npm/doc/cli/npm-root.md @@ -3,7 +3,7 @@ npm-root(1) -- Display npm root ## SYNOPSIS - npm root + npm root [-g] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-run-script.md b/deps/npm/doc/cli/npm-run-script.md index 895e382f2faa18a21fe3ad5a65c88144800a97f8..1e956adcc0188e448a3ed3023294a2cd0a019dc5 100644 --- a/deps/npm/doc/cli/npm-run-script.md +++ b/deps/npm/doc/cli/npm-run-script.md @@ -3,8 +3,9 @@ npm-run-script(1) -- Run arbitrary package scripts ## SYNOPSIS - npm run-script [command] [-- ] - npm run [command] [-- ] + npm run-script [-- ...] + + alias: npm run ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-search.md b/deps/npm/doc/cli/npm-search.md index 4757ad3202941e77ec7f6ce949c2d14ec0565950..e7e0defa07a8792107da50365ce0705eb99256c8 100644 --- a/deps/npm/doc/cli/npm-search.md +++ b/deps/npm/doc/cli/npm-search.md @@ -4,8 +4,8 @@ npm-search(1) -- Search for packages ## SYNOPSIS npm search [--long] [search terms ...] - npm s [search terms ...] - npm se [search terms ...] + + aliases: s, se ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-shrinkwrap.md b/deps/npm/doc/cli/npm-shrinkwrap.md index ca9cb257b9d351ea9b5d9c875b176d0df09a4dbf..b4548ca7c05aab194b63440043863007327aad7e 100644 --- a/deps/npm/doc/cli/npm-shrinkwrap.md +++ b/deps/npm/doc/cli/npm-shrinkwrap.md @@ -82,29 +82,32 @@ This generates `npm-shrinkwrap.json`, which will look something like this: { "name": "A", - "version": "0.1.0", + "version": "1.1.0", "dependencies": { "B": { - "version": "0.0.1", + "version": "1.0.1", + "from": "B@^1.0.0", + "resolved": "https://registry.npmjs.org/B/-/B-1.0.1.tgz", "dependencies": { "C": { - "version": "0.0.1" + "version": "1.0.1", + "from": "org/C#v1.0.1", + "resolved": "git://github.com/org/C.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4" } } } } } -The shrinkwrap command has locked down the dependencies based on -what's currently installed in node_modules. When `npm install` -installs a package with an `npm-shrinkwrap.json` in the package -root, the shrinkwrap file (rather than `package.json` files) completely -drives the installation of that package and all of its dependencies -(recursively). So now the author publishes A@0.1.0, and subsequent -installs of this package will use B@0.0.1 and C@0.0.1, regardless the -dependencies and versions listed in A's, B's, and C's `package.json` -files. +The shrinkwrap command has locked down the dependencies based on what's +currently installed in `node_modules`. The installation behavior is changed to: + +1. The module tree described by the shrinkwrap is reproduced. This means +reproducing the structure described in the file, using the specific files +referenced in "resolved" if available, falling back to normal package +resolution using "version" if one isn't. +2. The tree is walked and any missing dependencies are installed in the usual fasion. ### Using shrinkwrapped packages @@ -126,15 +129,14 @@ To add or update a dependency in a shrinkwrapped package: 1. Run `npm install` in the package root to install the current versions of all dependencies. -2. Add or update dependencies. `npm install` each new or updated - package individually and then update `package.json`. Note that they - must be explicitly named in order to be installed: running `npm - install` with no arguments will merely reproduce the existing +2. Add or update dependencies. `npm install --save` each new or updated + package individually to update the `package.json` and the shrinkwrap. + Note that they must be explicitly named in order to be installed: running + `npm install` with no arguments will merely reproduce the existing shrinkwrap. 3. Validate that the package works as expected with the new dependencies. -4. Run `npm shrinkwrap`, commit the new `npm-shrinkwrap.json`, and - publish your package. +4. Commit the new `npm-shrinkwrap.json`, and publish your package. You can use npm-outdated(1) to view dependencies with newer versions available. diff --git a/deps/npm/doc/cli/npm-star.md b/deps/npm/doc/cli/npm-star.md index 5c076b3c3c1e7b3f6ad12f8b50898967062819d6..87d90b560c202745826f027d30cf5f1897f4f85c 100644 --- a/deps/npm/doc/cli/npm-star.md +++ b/deps/npm/doc/cli/npm-star.md @@ -3,8 +3,8 @@ npm-star(1) -- Mark your favorite packages ## SYNOPSIS - npm star [, ...] - npm unstar [, ...] + npm star [...] + npm unstar [...] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-stars.md b/deps/npm/doc/cli/npm-stars.md index 7c28f5b2a5e020f54a9876faa0cb750249f40a6e..1e225be29f3edad47efb48f61c5b83d5e19b0121 100644 --- a/deps/npm/doc/cli/npm-stars.md +++ b/deps/npm/doc/cli/npm-stars.md @@ -3,8 +3,7 @@ npm-stars(1) -- View packages marked as favorites ## SYNOPSIS - npm stars - npm stars [username] + npm stars [] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-tag.md b/deps/npm/doc/cli/npm-tag.md index d7118d4e581a23afbbfac79edfe73ce7600ffdaf..357c0862f267e328673b716c970c7e0568e062a1 100644 --- a/deps/npm/doc/cli/npm-tag.md +++ b/deps/npm/doc/cli/npm-tag.md @@ -3,7 +3,8 @@ npm-tag(1) -- Tag a published version ## SYNOPSIS - npm tag @ [] + [DEPRECATED] npm tag @ [] + See `dist-tag` ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-uninstall.md b/deps/npm/doc/cli/npm-uninstall.md index bfa667c3e26eabbcffb6c9709c4a78ee23158c40..73e39a5fb0c258981f1c447b7291d9bd02013797 100644 --- a/deps/npm/doc/cli/npm-uninstall.md +++ b/deps/npm/doc/cli/npm-uninstall.md @@ -3,8 +3,9 @@ npm-rm(1) -- Remove a package ## SYNOPSIS - npm uninstall [@/] [--save|--save-dev|--save-optional] - npm rm (with any of the previous argument usage) + npm uninstall [<@scope>/][@]... [--save|--save-dev|--save-optional] + + aliases: remove, rm, r, un, unlink ## DESCRIPTION @@ -27,6 +28,9 @@ the package version in your main package.json: * `--save-optional`: Package will be removed from your `optionalDependencies`. +Further, if you have an `npm-shrinkwrap.json` then it will be updated as +well. + Scope is optional and follows the usual rules for `npm-scope(7)`. Examples: diff --git a/deps/npm/doc/cli/npm-unpublish.md b/deps/npm/doc/cli/npm-unpublish.md index 1d5fe92878037822c7306167ce3a42a974d81fa8..0a5731ee1dbc24cd1c28f50df5b359805de4d3b9 100644 --- a/deps/npm/doc/cli/npm-unpublish.md +++ b/deps/npm/doc/cli/npm-unpublish.md @@ -3,7 +3,7 @@ npm-unpublish(1) -- Remove a package from the registry ## SYNOPSIS - npm unpublish [@/][@] + npm unpublish [<@scope>/][@] ## WARNING diff --git a/deps/npm/doc/cli/npm-update.md b/deps/npm/doc/cli/npm-update.md index ce31c28910ff08972f6c022da36d000caa6e383b..30a0702d7dd7f011368b1e0083733813667a6335 100644 --- a/deps/npm/doc/cli/npm-update.md +++ b/deps/npm/doc/cli/npm-update.md @@ -3,7 +3,7 @@ npm-update(1) -- Update a package ## SYNOPSIS - npm update [-g] [ [ ...]] + npm update [-g] [...] ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-version.md b/deps/npm/doc/cli/npm-version.md index 0a00e78cd7ccb9c854d9431316b9ca0be517002e..0527a4d71352a1e5c7777fd94e222e8b1d26e4b2 100644 --- a/deps/npm/doc/cli/npm-version.md +++ b/deps/npm/doc/cli/npm-version.md @@ -5,6 +5,10 @@ npm-version(1) -- Bump a package version npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease] + 'npm -v' or 'npm --version' to print npm version + 'npm view version' to view a package's published version + 'npm ls' to inspect current package/dependency versions + ## DESCRIPTION Run this in a package directory to bump the version and write the new diff --git a/deps/npm/doc/cli/npm-view.md b/deps/npm/doc/cli/npm-view.md index 683ed09f46f6519b7369a8a9a70a637f4e0a1f4f..2330c016ec36aa51cd215fb2a92ad2c776b98214 100644 --- a/deps/npm/doc/cli/npm-view.md +++ b/deps/npm/doc/cli/npm-view.md @@ -3,8 +3,9 @@ npm-view(1) -- View registry info ## SYNOPSIS - npm view [@/][@] [[.]...] - npm v [@/][@] [[.]...] + npm view [<@scope>/][@] [[.]...] + + aliases: info, show, v ## DESCRIPTION diff --git a/deps/npm/doc/cli/npm-whoami.md b/deps/npm/doc/cli/npm-whoami.md index 3ff8837ff49d929a93178da1ea84c4aeb014cd8d..70b6a48f44671ce563b990815a2a83d2798ea25c 100644 --- a/deps/npm/doc/cli/npm-whoami.md +++ b/deps/npm/doc/cli/npm-whoami.md @@ -3,7 +3,7 @@ npm-whoami(1) -- Display npm username ## SYNOPSIS - npm whoami + npm whoami [--registry ] ## DESCRIPTION diff --git a/deps/npm/doc/files/package.json.md b/deps/npm/doc/files/package.json.md index 91064b58b96159020092e97aebe1219c53221b19..82e174677d8c797e4ef2a118f0ff156212221ee5 100644 --- a/deps/npm/doc/files/package.json.md +++ b/deps/npm/doc/files/package.json.md @@ -626,17 +626,10 @@ field is advisory only. ## engineStrict -**NOTE: This feature is deprecated and will be removed in npm 3.0.0.** +**This feature was deprecated with npm 3.0.0** -If you are sure that your module will *definitely not* run properly on -versions of Node/npm other than those specified in the `engines` object, -then you can set `"engineStrict": true` in your package.json file. -This will override the user's `engine-strict` config setting. - -Please do not do this unless you are really very very sure. If your -engines object is something overly restrictive, you can quite easily and -inadvertently lock yourself into obscurity and prevent your users from -updating to new versions of Node. Consider this choice carefully. +Prior to npm 3.0.0, this feature was used to treat this package as if the +user had set `engine-strict`. ## os diff --git a/deps/npm/doc/misc/npm-config.md b/deps/npm/doc/misc/npm-config.md index 4b9d32ba3338ccc957a66ef3fca0649dff4913c8..a28dd61d128568ef7841bc33a1ef488f4f0b77b6 100644 --- a/deps/npm/doc/misc/npm-config.md +++ b/deps/npm/doc/misc/npm-config.md @@ -28,7 +28,7 @@ The four relevant files are: * per-project config file (/path/to/my/project/.npmrc) * per-user config file (~/.npmrc) -* global config file ($PREFIX/npmrc) +* global config file ($PREFIX/etc/npmrc) * npm builtin config file (/path/to/npm/npmrc) See npmrc(5) for more details. @@ -124,6 +124,14 @@ you want your scoped package to be publicly viewable (and installable) set Force npm to always require authentication when accessing the registry, even for `GET` requests. +### also + +* Default: null +* Type: String + +When "dev" or "development" and running local `npm shrinkwrap`, +`npm outdated`, or `npm update`, is an alias for `--dev`. + ### bin-links * Default: `true` @@ -268,6 +276,17 @@ Install `dev-dependencies` along with packages. Note that `dev-dependencies` are also installed if the `npat` flag is set. +### dry-run + +* Default: false +* Type: Boolean + +Indicates that you don't want npm to make any changes and that it should +only report what it would have done. This can be passed into any of the +commands that modify your local installation, eg, `install`, `update`, +`dedupe`, `uninstall`. This is NOT currently honored by network related +commands, eg `dist-tags`, `owner`, `publish`, etc. + ### editor * Default: `EDITOR` environment variable if set, or `"vi"` on Posix, @@ -561,6 +580,24 @@ Run tests on installation. A node module to `require()` when npm loads. Useful for programmatic usage. +### only + +* Default: null +* Type: String + +When "dev" or "development" and running local `npm install` without any +arguments, only devDependencies (and their dependencies) are installed. + +When "dev" or "development" and running local `npm ls`, `npm outdated`, or +`npm update`, is an alias for `--dev`. + +When "prod" or "production" and running local `npm install` without any +arguments, only non-devDependencies (and their dependencies) are +installed. + +When "prod" or "production" and running local `npm ls`, `npm outdated`, or +`npm update`, is an alias for `--production`. + ### optional * Default: true @@ -597,6 +634,16 @@ Set to true to run in "production" mode. local `npm install` without any arguments. 2. Set the NODE_ENV="production" for lifecycle scripts. +### progress + +* Default: true +* Type: Boolean + +When set to `true`, npm will display a progress bar during time intensive +operations, if `process.stderr` is a TTY. + +Set to `false` to suppress the progress bar. + ### proprietary-attribs * Default: true @@ -772,17 +819,6 @@ using `-s` to add a signature. Note that git requires you to have set up GPG keys in your git configs for this to work properly. -### spin - -* Default: true -* Type: Boolean or `"always"` - -When set to `true`, npm will display an ascii spinner while it is doing -things, if `process.stderr` is a TTY. - -Set to `false` to suppress the spinner, or set to `always` to output -the spinner even for non-TTY outputs. - ### strict-ssl * Default: true @@ -827,7 +863,7 @@ on success, but left behind on failure for forensic purposes. ### unicode -* Default: true +* Default: true on windows and mac/unix systems with a unicode locale * Type: Boolean When set to true, npm uses unicode characters in the tree output. When diff --git a/deps/npm/doc/misc/npm-index.md b/deps/npm/doc/misc/npm-index.md index 4efcb92af3569897cc83ecf9058639e067f465ca..4af01fd689051046b23eb3012e64fae077eabf8b 100644 --- a/deps/npm/doc/misc/npm-index.md +++ b/deps/npm/doc/misc/npm-index.md @@ -141,10 +141,6 @@ Open package repository page in the browser Restart a package -### npm-rm(1) - -Remove a package - ### npm-root(1) Display npm root @@ -217,166 +213,6 @@ Display npm username Using npm in your Node programs -### npm(3) - -javascript package manager - -### npm-bin(3) - -Display npm bin folder - -### npm-bugs(3) - -Bugs for a package in a web browser maybe - -### npm-cache(3) - -manage the npm cache programmatically - -### npm-commands(3) - -npm commands - -### npm-config(3) - -Manage the npm configuration files - -### npm-deprecate(3) - -Deprecate a version of a package - -### npm-docs(3) - -Docs for a package in a web browser maybe - -### npm-edit(3) - -Edit an installed package - -### npm-explore(3) - -Browse an installed package - -### npm-help-search(3) - -Search the help pages - -### npm-init(3) - -Interactively create a package.json file - -### npm-install(3) - -install a package programmatically - -### npm-link(3) - -Symlink a package folder - -### npm-load(3) - -Load config settings - -### npm-ls(3) - -List installed packages - -### npm-outdated(3) - -Check for outdated packages - -### npm-owner(3) - -Manage package owners - -### npm-pack(3) - -Create a tarball from a package - -### npm-ping(3) - -Ping npm registry - -### npm-prefix(3) - -Display prefix - -### npm-prune(3) - -Remove extraneous packages - -### npm-publish(3) - -Publish a package - -### npm-rebuild(3) - -Rebuild a package - -### npm-repo(3) - -Open package repository page in the browser - -### npm-restart(3) - -Restart a package - -### npm-root(3) - -Display npm root - -### npm-run-script(3) - -Run arbitrary package scripts - -### npm-search(3) - -Search for packages - -### npm-shrinkwrap(3) - -programmatically generate package shrinkwrap file - -### npm-start(3) - -Start a package - -### npm-stop(3) - -Stop a package - -### npm-tag(3) - -Tag a published version - -### npm-test(3) - -Test a package - -### npm-uninstall(3) - -uninstall a package programmatically - -### npm-unpublish(3) - -Remove a package from the registry - -### npm-update(3) - -Update a package - -### npm-version(3) - -Bump a package version - -### npm-view(3) - -View registry info - -### npm-whoami(3) - -Display npm username - ## Files File system structures npm uses @@ -421,10 +257,6 @@ Frequently Asked Questions Index of all npm documentation -### npm-orgs(7) - -Working with Teams & Orgs - ### npm-registry(7) The JavaScript Package Registry diff --git a/deps/npm/doc/misc/npm-orgs.md b/deps/npm/doc/misc/npm-orgs.md deleted file mode 100644 index 1f9977eaddf4be51754b8a865c3d485076de489e..0000000000000000000000000000000000000000 --- a/deps/npm/doc/misc/npm-orgs.md +++ /dev/null @@ -1,90 +0,0 @@ -npm-orgs(7) -- Working with Teams & Orgs -======================================== - -## DESCRIPTION - -There are three levels of org users: - -1. Super admin, controls billing & adding people to the org. -2. Team admin, manages team membership & package access. -3. Developer, works on packages they are given access to. - -The super admin is the only person who can add users to the org because it impacts the monthly bill. The super admin will use the website to manage membership. Every org has a `developers` team that all users are automatically added to. - -The team admin is the person who manages team creation, team membership, and package access for teams. The team admin grants package access to teams, not individuals. - -The developer will be able to access packages based on the teams they are on. Access is either read-write or read-only. - -There are two main commands: - -1. `npm team` see npm-access(1) for more details -2. `npm access` see npm-team(1) for more details - -## Team Admins create teams - -* Check who you’ve added to your org: - -``` -npm team ls :developers -``` - -* Each org is automatically given a `developers` team, so you can see the whole list of team members in your org. This team automatically gets read-write access to all packages, but you can change that with the `access` command. - -* Create a new team: - -``` -npm team create -``` - -* Add members to that team: - -``` -npm team add -``` - -## Publish a package and adjust package access - -* In package directory, run - -``` -npm init --scope= -``` -to scope it for your org & publish as usual - -* Grant access: - -``` -npm access grant [] -``` - -* Revoke access: - -``` -npm access revoke [] -``` - -## Monitor your package access - -* See what org packages a team member can access: - -``` -npm access ls-packages -``` - -* See packages available to a specific team: - -``` -npm access ls-packages -``` - -* Check which teams are collaborating on a package: - -``` -npm access ls-collaborators -``` - -## SEE ALSO - -* npm-team(1) -* npm-access(1) -* npm-scope(7) diff --git a/deps/npm/html/doc/README.html b/deps/npm/html/doc/README.html index 3ff8701c178278b5521e633e43079e175d2e299c..537f3c06598d9864be2db8d68c68df2fbd6e7471 100644 --- a/deps/npm/html/doc/README.html +++ b/deps/npm/html/doc/README.html @@ -140,7 +140,7 @@ specific purpose, or lack of malice in any given npm package.

If you have a complaint about a package in the public npm registry, and cannot resolve it with the package owner, please email -support@npmjs.com and explain the situation.

+support@npmjs.com and explain the situation.

Any data published to The npm Registry (including user account information) may be removed or modified at the sole discretion of the npm server administrators.

@@ -183,5 +183,5 @@ will no doubt tell you to put the output in a gist or email.

       - + diff --git a/deps/npm/html/doc/api/npm-bin.html b/deps/npm/html/doc/api/npm-bin.html index f7dbcb1d6699e2e22cf29cd34122657f7e8bc2a9..1fb691d340844e5edc37df759cee4e62502b14bb 100644 --- a/deps/npm/html/doc/api/npm-bin.html +++ b/deps/npm/html/doc/api/npm-bin.html @@ -28,5 +28,5 @@ to the npm.bin property.

       - + diff --git a/deps/npm/html/doc/api/npm-bugs.html b/deps/npm/html/doc/api/npm-bugs.html index 787057361e1f7bd6a0227ec6974d0f21799d12a3..e63c7875cd2a3081d5bb4219ac6efe7f93549d1e 100644 --- a/deps/npm/html/doc/api/npm-bugs.html +++ b/deps/npm/html/doc/api/npm-bugs.html @@ -33,5 +33,5 @@ friendly for programmatic use.

       - + diff --git a/deps/npm/html/doc/api/npm-cache.html b/deps/npm/html/doc/api/npm-cache.html index 95640498f86008c05a4e431548186bfc49a1bf5b..1dd1447942f76aa210d0e7e2e45e5c7e89dc4033 100644 --- a/deps/npm/html/doc/api/npm-cache.html +++ b/deps/npm/html/doc/api/npm-cache.html @@ -42,5 +42,5 @@ incrementation.

       - + diff --git a/deps/npm/html/doc/api/npm-commands.html b/deps/npm/html/doc/api/npm-commands.html index 3b0dc843e25248e1aa8cbe98885cc9a1b90b9609..278f9d6aad8c080f9bdae7b7c62573419dc6b426 100644 --- a/deps/npm/html/doc/api/npm-commands.html +++ b/deps/npm/html/doc/api/npm-commands.html @@ -36,5 +36,5 @@ usage, or man 3 npm-<command> for programmatic usage.

       - + diff --git a/deps/npm/html/doc/api/npm-config.html b/deps/npm/html/doc/api/npm-config.html index e2f2519246c105ef0f1cf17a19750b1a4a453e47..ec60c18660d29db506c0945d9dbc159e01707629 100644 --- a/deps/npm/html/doc/api/npm-config.html +++ b/deps/npm/html/doc/api/npm-config.html @@ -57,5 +57,5 @@ functions instead.

       - + diff --git a/deps/npm/html/doc/api/npm-deprecate.html b/deps/npm/html/doc/api/npm-deprecate.html index 5f35253d0ca4e7a1e0e9e980e25a96916a17e4cf..6f3dd8a3523a5b29fd08cfebe1243d07d78f80db 100644 --- a/deps/npm/html/doc/api/npm-deprecate.html +++ b/deps/npm/html/doc/api/npm-deprecate.html @@ -47,5 +47,5 @@ a deprecation warning to all who attempt to install it.

       - + diff --git a/deps/npm/html/doc/api/npm-docs.html b/deps/npm/html/doc/api/npm-docs.html index 908533f162dffb6ed44c58e0469690626d293973..8465f6239731147b55112106b22a763c83d562ea 100644 --- a/deps/npm/html/doc/api/npm-docs.html +++ b/deps/npm/html/doc/api/npm-docs.html @@ -33,5 +33,5 @@ friendly for programmatic use.

       - + diff --git a/deps/npm/html/doc/api/npm-edit.html b/deps/npm/html/doc/api/npm-edit.html index 6acabac5542f000e3083b2227bb57dc4e844ec72..1a51093886cdc427e3d28c8b1c29dd6c05bf7b07 100644 --- a/deps/npm/html/doc/api/npm-edit.html +++ b/deps/npm/html/doc/api/npm-edit.html @@ -36,5 +36,5 @@ and how this is used.

       - + diff --git a/deps/npm/html/doc/api/npm-explore.html b/deps/npm/html/doc/api/npm-explore.html index 587ebfd0365c74564c89ffb9f24f80673920eecf..fed88f0f13b0280f94ee2db451146725ace7451c 100644 --- a/deps/npm/html/doc/api/npm-explore.html +++ b/deps/npm/html/doc/api/npm-explore.html @@ -31,5 +31,5 @@ sure to use npm rebuild <pkg> if you make any changes.

       - + diff --git a/deps/npm/html/doc/api/npm-help-search.html b/deps/npm/html/doc/api/npm-help-search.html index 0732f3f66f0cd2e9863ecfea0973d9d6caffe18c..e3560fe62c8cfb760ee71aa9e56a79985c44eb9f 100644 --- a/deps/npm/html/doc/api/npm-help-search.html +++ b/deps/npm/html/doc/api/npm-help-search.html @@ -44,5 +44,5 @@ Name of the file that matched        - + diff --git a/deps/npm/html/doc/api/npm-init.html b/deps/npm/html/doc/api/npm-init.html index 6beeaf6e2b71d3a55a313fd2d81ca9db6beae820..c43ad57aff108a27411c0b7f4ee95271f2b51c9a 100644 --- a/deps/npm/html/doc/api/npm-init.html +++ b/deps/npm/html/doc/api/npm-init.html @@ -39,5 +39,5 @@ then go ahead and use this programmatically.

       - + diff --git a/deps/npm/html/doc/api/npm-install.html b/deps/npm/html/doc/api/npm-install.html index e697b8176f9b929f64ad01a4f0efeb9f16509e38..6d16e5f360fcd5d6359d105ee7ba7d5be242854c 100644 --- a/deps/npm/html/doc/api/npm-install.html +++ b/deps/npm/html/doc/api/npm-install.html @@ -32,5 +32,5 @@ installed or when an error has been encountered.

       - + diff --git a/deps/npm/html/doc/api/npm-link.html b/deps/npm/html/doc/api/npm-link.html index 4137329992f80142b118497bd5f3983efb6589af..6ff53ac7992371ee356ee7b69e4751486db3deee 100644 --- a/deps/npm/html/doc/api/npm-link.html +++ b/deps/npm/html/doc/api/npm-link.html @@ -42,5 +42,5 @@ the package in the current working directory

       - + diff --git a/deps/npm/html/doc/api/npm-load.html b/deps/npm/html/doc/api/npm-load.html index 2af4720ac40b3931580f550128b324bbfc696070..a500b7ac5cfd41631059d9b0310c7ee34f38bed0 100644 --- a/deps/npm/html/doc/api/npm-load.html +++ b/deps/npm/html/doc/api/npm-load.html @@ -37,5 +37,5 @@ config object.

       - + diff --git a/deps/npm/html/doc/api/npm-ls.html b/deps/npm/html/doc/api/npm-ls.html index b0d31e2515fc8b10334ba9abf545cd55d09172a0..fec0008537023ffcc4701c637e1fc423a85fef53 100644 --- a/deps/npm/html/doc/api/npm-ls.html +++ b/deps/npm/html/doc/api/npm-ls.html @@ -63,5 +63,5 @@ dependency will only be output once.

       - + diff --git a/deps/npm/html/doc/api/npm-outdated.html b/deps/npm/html/doc/api/npm-outdated.html index 5c564a6eea81885dbb4dc6a6c9b414dad95ae8b4..560d73908ef8628dc885d08cfd7046f38c089464 100644 --- a/deps/npm/html/doc/api/npm-outdated.html +++ b/deps/npm/html/doc/api/npm-outdated.html @@ -28,5 +28,5 @@ currently outdated.

       - + diff --git a/deps/npm/html/doc/api/npm-owner.html b/deps/npm/html/doc/api/npm-owner.html index 32c0e6feac02f41a8454c9a9467e9384fc0773ce..b725cab7595014b69d8c17b8e9a9942d354edd7f 100644 --- a/deps/npm/html/doc/api/npm-owner.html +++ b/deps/npm/html/doc/api/npm-owner.html @@ -47,5 +47,5 @@ that is not implemented at this time.

       - + diff --git a/deps/npm/html/doc/api/npm-pack.html b/deps/npm/html/doc/api/npm-pack.html index da0a19993cbb30e042e6badefaaf72ee55555786..f4086f3b1d2d8647458b48ad10cf8bdd899bdfa7 100644 --- a/deps/npm/html/doc/api/npm-pack.html +++ b/deps/npm/html/doc/api/npm-pack.html @@ -33,5 +33,5 @@ overwritten the second time.

       - + diff --git a/deps/npm/html/doc/api/npm-ping.html b/deps/npm/html/doc/api/npm-ping.html index b768c73d4538c599577e0ab4505c7e0edbf45a30..1bafcbffc5869eb88bf3f873850b0c5c5e35314a 100644 --- a/deps/npm/html/doc/api/npm-ping.html +++ b/deps/npm/html/doc/api/npm-ping.html @@ -29,4 +29,4 @@ to npm registries.

       - + diff --git a/deps/npm/html/doc/api/npm-prefix.html b/deps/npm/html/doc/api/npm-prefix.html index 6f9dcff7917a4efc816930bf19e6e16e5c1dfcc8..87cb6cc9ecbd40feff430ab8feab21b0b0acf1a8 100644 --- a/deps/npm/html/doc/api/npm-prefix.html +++ b/deps/npm/html/doc/api/npm-prefix.html @@ -29,5 +29,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-prune.html b/deps/npm/html/doc/api/npm-prune.html index 44f67558217df032bbac5a22c428d68bb47a1759..886a63134fcfe7628b873e1fb45dee2b23114881 100644 --- a/deps/npm/html/doc/api/npm-prune.html +++ b/deps/npm/html/doc/api/npm-prune.html @@ -30,5 +30,5 @@ package's dependencies list.

       - + diff --git a/deps/npm/html/doc/api/npm-publish.html b/deps/npm/html/doc/api/npm-publish.html index 9aec5e56509bb56bb454389f8436c9efcd5d5712..4ca8c6897fc5711ea0a093f5fd5e992fae0a51a0 100644 --- a/deps/npm/html/doc/api/npm-publish.html +++ b/deps/npm/html/doc/api/npm-publish.html @@ -46,5 +46,5 @@ the registry. Overwrites when the "force" environment variable is set        - + diff --git a/deps/npm/html/doc/api/npm-rebuild.html b/deps/npm/html/doc/api/npm-rebuild.html index f65c948f25b689ff42c6ce65bff0d1e9b78f619a..6f5c40d403fea3ca4fad8e238c9cfac3814498b6 100644 --- a/deps/npm/html/doc/api/npm-rebuild.html +++ b/deps/npm/html/doc/api/npm-rebuild.html @@ -30,5 +30,5 @@ the new binary. If no 'packages' parameter is specify, every package wil        - + diff --git a/deps/npm/html/doc/api/npm-repo.html b/deps/npm/html/doc/api/npm-repo.html index c0f95fa2c6d1818005ffacbd7351b04924071b5b..44f799e7c2416da0db2e157fc9e438eee3be0f0b 100644 --- a/deps/npm/html/doc/api/npm-repo.html +++ b/deps/npm/html/doc/api/npm-repo.html @@ -33,5 +33,5 @@ friendly for programmatic use.

       - + diff --git a/deps/npm/html/doc/api/npm-restart.html b/deps/npm/html/doc/api/npm-restart.html index 7390b50d270187a6063dbd19d650632d1ee28a0e..f31a949fe40d14c6441e037fe47fd47e415c057c 100644 --- a/deps/npm/html/doc/api/npm-restart.html +++ b/deps/npm/html/doc/api/npm-restart.html @@ -52,5 +52,5 @@ behavior will be accompanied by an increase in major version number

       - + diff --git a/deps/npm/html/doc/api/npm-root.html b/deps/npm/html/doc/api/npm-root.html index 706518ad20e9bad18496c6c24dd0bec1edc39d2c..bb10d3bd67ea427c19121ba9ee6a4ad0de487e65 100644 --- a/deps/npm/html/doc/api/npm-root.html +++ b/deps/npm/html/doc/api/npm-root.html @@ -29,5 +29,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-run-script.html b/deps/npm/html/doc/api/npm-run-script.html index 196ea26143afa07f05b95db23ae579888f30a041..6625e0ec80264e58c3f339fd104285052cc970d2 100644 --- a/deps/npm/html/doc/api/npm-run-script.html +++ b/deps/npm/html/doc/api/npm-run-script.html @@ -41,5 +41,5 @@ assumed to be the command to run. All other elements are ignored.

       - + diff --git a/deps/npm/html/doc/api/npm-search.html b/deps/npm/html/doc/api/npm-search.html index 3c83b1a6c22bee75550ab8d2e47e8ab5dbb15c01..a7376b23ea799aa557bcc5be760831106b549802 100644 --- a/deps/npm/html/doc/api/npm-search.html +++ b/deps/npm/html/doc/api/npm-search.html @@ -53,5 +53,5 @@ like).

       - + diff --git a/deps/npm/html/doc/api/npm-shrinkwrap.html b/deps/npm/html/doc/api/npm-shrinkwrap.html index f9c37187ac2425b3552d9fe657f293f443a5e951..5764ab1fd546fdbc79c6ae274d0393877ac3a729 100644 --- a/deps/npm/html/doc/api/npm-shrinkwrap.html +++ b/deps/npm/html/doc/api/npm-shrinkwrap.html @@ -33,5 +33,5 @@ been saved.

       - + diff --git a/deps/npm/html/doc/api/npm-start.html b/deps/npm/html/doc/api/npm-start.html index 2e02140363285ea701d660bdd1643801dee4ecd2..79eaea8608f3cd7f2fda1c6677cc4b1fbfba6602 100644 --- a/deps/npm/html/doc/api/npm-start.html +++ b/deps/npm/html/doc/api/npm-start.html @@ -28,5 +28,5 @@        - + diff --git a/deps/npm/html/doc/api/npm-stop.html b/deps/npm/html/doc/api/npm-stop.html index 7a83de6a08c001bb47f1430468001d1b1d9f57ec..e6dda89c7923cc31373b368ca5dbb2edaab73ad2 100644 --- a/deps/npm/html/doc/api/npm-stop.html +++ b/deps/npm/html/doc/api/npm-stop.html @@ -28,5 +28,5 @@ in the packages parameter.

       - + diff --git a/deps/npm/html/doc/api/npm-tag.html b/deps/npm/html/doc/api/npm-tag.html index 6569e063275d6d200b122b68c5a8ecaa002cdfc3..ccd9da2099cb7d3d3527b0b99f8c19a04e644f72 100644 --- a/deps/npm/html/doc/api/npm-tag.html +++ b/deps/npm/html/doc/api/npm-tag.html @@ -36,5 +36,5 @@ used. For more information about how to set this config, check        - + diff --git a/deps/npm/html/doc/api/npm-test.html b/deps/npm/html/doc/api/npm-test.html index c556185e38f3bb2e4abefeebf64d553e1e35b032..69bdab014bb7cdfabc74a9a34636149e6c7e3a54 100644 --- a/deps/npm/html/doc/api/npm-test.html +++ b/deps/npm/html/doc/api/npm-test.html @@ -30,5 +30,5 @@ in the packages parameter.

       - + diff --git a/deps/npm/html/doc/api/npm-uninstall.html b/deps/npm/html/doc/api/npm-uninstall.html index 33c7016ee7fe7de566a1ddd602f388818a30a336..c9cdf9f5da9d7058a5d8acd4dba6d308da04d63e 100644 --- a/deps/npm/html/doc/api/npm-uninstall.html +++ b/deps/npm/html/doc/api/npm-uninstall.html @@ -30,5 +30,5 @@ uninstalled or when an error has been encountered.

       - + diff --git a/deps/npm/html/doc/api/npm-unpublish.html b/deps/npm/html/doc/api/npm-unpublish.html index 03e4d93ee8ea172f8aa55c01495812ac616675ea..e489cef1115b566b8bed82103a3e38329f188f2b 100644 --- a/deps/npm/html/doc/api/npm-unpublish.html +++ b/deps/npm/html/doc/api/npm-unpublish.html @@ -33,5 +33,5 @@ the root package entry is removed from the registry entirely.

       - + diff --git a/deps/npm/html/doc/api/npm-update.html b/deps/npm/html/doc/api/npm-update.html index fc42422829be8b0d4d13061659fe279edda04472..7492b63ee8a89d7ea3afd62f38eb1d26eeea0d06 100644 --- a/deps/npm/html/doc/api/npm-update.html +++ b/deps/npm/html/doc/api/npm-update.html @@ -33,5 +33,5 @@ parameter will be called when done or when an error occurs.

       - + diff --git a/deps/npm/html/doc/api/npm-version.html b/deps/npm/html/doc/api/npm-version.html index d584335baed1fed450fd63b5c866bb7897bcf643..7ff3a475d967ee13b3d52065447e96607d338cca 100644 --- a/deps/npm/html/doc/api/npm-version.html +++ b/deps/npm/html/doc/api/npm-version.html @@ -32,5 +32,5 @@ not have exactly one element. The only element should be a version number.

       - + diff --git a/deps/npm/html/doc/api/npm-view.html b/deps/npm/html/doc/api/npm-view.html index 110f222c02ad60d0476505981110353514ee2009..8f8ccdff4ab9add0eac146bac67ad93349f89ac2 100644 --- a/deps/npm/html/doc/api/npm-view.html +++ b/deps/npm/html/doc/api/npm-view.html @@ -81,5 +81,5 @@ the field name.

       - + diff --git a/deps/npm/html/doc/api/npm-whoami.html b/deps/npm/html/doc/api/npm-whoami.html index 30cd99f8a9a52ecd3765d6d2797822e0726b7f1c..e56a2e5d837583cfae59c2fa9c2acd2b74b1c0da 100644 --- a/deps/npm/html/doc/api/npm-whoami.html +++ b/deps/npm/html/doc/api/npm-whoami.html @@ -29,5 +29,5 @@        - + diff --git a/deps/npm/html/doc/api/npm.html b/deps/npm/html/doc/api/npm.html index b1e961cb88605fec568ed183b9b4b2ec6083ff90..4911e3d59f257fc428dd5e7a2c9891479510b3ec 100644 --- a/deps/npm/html/doc/api/npm.html +++ b/deps/npm/html/doc/api/npm.html @@ -23,7 +23,7 @@ npm.load([configObject, ]function (er, npm) { npm.commands.install(["package"], cb) })

VERSION

-

2.14.7

+

3.3.0

DESCRIPTION

This is the API documentation for npm. To find documentation of the command line @@ -109,5 +109,5 @@ method names. Use the npm.deref method to find the real name.

       - + diff --git a/deps/npm/html/doc/cli/npm-access.html b/deps/npm/html/doc/cli/npm-access.html index 761aea5e5250abe0ee2a609121c1a45ba561dd7b..15eb34c86a811f59bbb470d91d3f8bbeed1591e3 100644 --- a/deps/npm/html/doc/cli/npm-access.html +++ b/deps/npm/html/doc/cli/npm-access.html @@ -84,5 +84,5 @@ with an HTTP 402 status code (logically enough), unless you use        - + diff --git a/deps/npm/html/doc/cli/npm-adduser.html b/deps/npm/html/doc/cli/npm-adduser.html index a331bfbbf543c4ceed14de059933129b460746e0..5b19a67f4f4d85827c6c64f4347ee3789d3e67c2 100644 --- a/deps/npm/html/doc/cli/npm-adduser.html +++ b/deps/npm/html/doc/cli/npm-adduser.html @@ -68,5 +68,5 @@ precedence over any global configuration.

       - + diff --git a/deps/npm/html/doc/cli/npm-bin.html b/deps/npm/html/doc/cli/npm-bin.html index 12c598c62ffc5b303fbb1fdfb45bdb06882a8ee1..050f86425954783890e283f350d6d90c442f20a6 100644 --- a/deps/npm/html/doc/cli/npm-bin.html +++ b/deps/npm/html/doc/cli/npm-bin.html @@ -11,7 +11,7 @@

npm-bin

Display npm bin folder

SYNOPSIS

-
npm bin
+
npm bin [--global]
 

DESCRIPTION

Print the folder where npm will install executables.

SEE ALSO

@@ -35,5 +35,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-bugs.html b/deps/npm/html/doc/cli/npm-bugs.html index fcd2b88da1c46f4458efd5302a6716e9941021dd..02a2e932c151ee64bb4ae72b0a0ab1b5826f4838 100644 --- a/deps/npm/html/doc/cli/npm-bugs.html +++ b/deps/npm/html/doc/cli/npm-bugs.html @@ -11,8 +11,7 @@

npm-bugs

Bugs for a package in a web browser maybe

SYNOPSIS

-
npm bugs <pkgname>
-npm bugs (with no args in a package dir)
+
npm bugs [<pkgname>]
 

DESCRIPTION

This command tries to guess at the likely location of a package's bug tracker URL, and then tries to open it using the --browser @@ -54,5 +53,5 @@ a package.json in the current folder and use the name        -

+ diff --git a/deps/npm/html/doc/cli/npm-build.html b/deps/npm/html/doc/cli/npm-build.html index 9bc91614328b52477ac376ed849ac826bcd5b49a..b8689f190ee4713c334b77fad8cf047f0e99cbac 100644 --- a/deps/npm/html/doc/cli/npm-build.html +++ b/deps/npm/html/doc/cli/npm-build.html @@ -11,7 +11,7 @@

npm-build

Build a package

SYNOPSIS

-
npm build <package-folder>
+
npm build [<package-folder>]
 
  • <package-folder>: A folder containing a package.json file in its root.
  • @@ -40,5 +40,5 @@ directly, run:

           - + diff --git a/deps/npm/html/doc/cli/npm-bundle.html b/deps/npm/html/doc/cli/npm-bundle.html index 81a65c16921498004b614e167a9026b17d001a55..18cb054696e918e715ee500848e6e6426f72add9 100644 --- a/deps/npm/html/doc/cli/npm-bundle.html +++ b/deps/npm/html/doc/cli/npm-bundle.html @@ -31,5 +31,5 @@ install packages into the local space.

           - + diff --git a/deps/npm/html/doc/cli/npm-cache.html b/deps/npm/html/doc/cli/npm-cache.html index 85179374751b8233321408bc8c51ca2c6f2a64de..e9da236630f631cdd23490d38caf6b435a758e18 100644 --- a/deps/npm/html/doc/cli/npm-cache.html +++ b/deps/npm/html/doc/cli/npm-cache.html @@ -81,5 +81,5 @@ they do not make an HTTP request to the registry.

           - + diff --git a/deps/npm/html/doc/cli/npm-completion.html b/deps/npm/html/doc/cli/npm-completion.html index 15f71fb290f1bbf7349043507ae8f261acf08a07..48f05ec3f6fef3359b6a36f3355b55ccc86e883c 100644 --- a/deps/npm/html/doc/cli/npm-completion.html +++ b/deps/npm/html/doc/cli/npm-completion.html @@ -11,14 +11,16 @@

    npm-completion

    Tab Completion for npm

    SYNOPSIS

    -
    . <(npm completion)
    +
    source <(npm completion)
     

    DESCRIPTION

    Enables tab-completion in all npm commands.

    The synopsis above loads the completions into your current shell. Adding it to your ~/.bashrc or ~/.zshrc will make the completions available -everywhere.

    -

    You may of course also pipe the output of npm completion to a file +everywhere:

    +
    npm completion >> ~/.bashrc
    +npm completion >> ~/.zshrc
    +

    You may of course also pipe the output of npm completion to a file such as /usr/local/etc/bash_completion.d/npm if you have a system that will read that file for you.

    When COMP_CWORD, COMP_LINE, and COMP_POINT are defined in the @@ -42,5 +44,5 @@ completions based on the arguments.

           - + diff --git a/deps/npm/html/doc/cli/npm-config.html b/deps/npm/html/doc/cli/npm-config.html index d73762fe026dd0207509e7ea025e9c5984024301..86b13ad58172a6d1922874bc3a452ed3ac2944f0 100644 --- a/deps/npm/html/doc/cli/npm-config.html +++ b/deps/npm/html/doc/cli/npm-config.html @@ -16,7 +16,6 @@ npm config get <key> npm config delete <key> npm config list npm config edit -npm c [set|get|delete|list] npm get <key> npm set <key> <value> [--global]

    DESCRIPTION

    @@ -66,5 +65,5 @@ global config.

           - + diff --git a/deps/npm/html/doc/cli/npm-dedupe.html b/deps/npm/html/doc/cli/npm-dedupe.html index b8bab0074dd91fd793c392242f0902b8854ae0f2..520d5158d73314b757c6b2a54b96a082313f2c5c 100644 --- a/deps/npm/html/doc/cli/npm-dedupe.html +++ b/deps/npm/html/doc/cli/npm-dedupe.html @@ -31,20 +31,16 @@ be more effectively shared by multiple dependent packages.

Because of the hierarchical nature of node's module lookup, b and d will both get their dependency met by the single c package at the root level of the tree.

+

The deduplication algorithm walks the tree, moving each dependency as far +up in the tree as possible, even if duplicates are not found. This will +result in both a flat and deduplicated tree.

If a suitable version exists at the target location in the tree already, then it will be left untouched, but the other duplicates will be deleted.

-

If no suitable version can be found, then a warning is printed, and -nothing is done.

-

If any arguments are supplied, then they are filters, and only the -named packages will be touched.

-

Note that this operation transforms the dependency tree, and may -result in packages getting updated versions, perhaps from the npm -registry.

-

This feature is experimental, and may change in future versions.

-

The --tag argument will apply to all of the affected dependencies. If a -tag with the given name exists, the tagged version is preferred over newer -versions.

+

Arguments are ignored. Dedupe always acts on the entire tree.

+

Modules

+

Note that this operation transforms the dependency tree, but will never +result in new modules being installed.

SEE ALSO

  • npm-ls(1)
  • @@ -63,5 +59,5 @@ versions.

           - + diff --git a/deps/npm/html/doc/cli/npm-deprecate.html b/deps/npm/html/doc/cli/npm-deprecate.html index 9549631b6920120754a928427753384e2ba16b11..33d09e1959e0f18733c3378a4bfeb757f198dcbf 100644 --- a/deps/npm/html/doc/cli/npm-deprecate.html +++ b/deps/npm/html/doc/cli/npm-deprecate.html @@ -11,7 +11,7 @@

    npm-deprecate

    Deprecate a version of a package

    SYNOPSIS

    -
    npm deprecate <name>[@<version>] <message>
    +
    npm deprecate <pkg>[@<version>] <message>
     

    DESCRIPTION

    This command will update the npm registry entry for a package, providing a deprecation warning to all who attempt to install it.

    @@ -38,5 +38,5 @@ something like this:

           - + diff --git a/deps/npm/html/doc/cli/npm-dist-tag.html b/deps/npm/html/doc/cli/npm-dist-tag.html index 2a683e71065c431471fafa1044e66c57bf043707..3435ecc32bbf155d7f4330f8a16655329470e28e 100644 --- a/deps/npm/html/doc/cli/npm-dist-tag.html +++ b/deps/npm/html/doc/cli/npm-dist-tag.html @@ -77,5 +77,5 @@ begin with a number or the letter v.

           - + diff --git a/deps/npm/html/doc/cli/npm-docs.html b/deps/npm/html/doc/cli/npm-docs.html index 0e17c157fc6abcf2fb4703af7412348c457d1db5..7a9028f783e3b18908d2754ea066c348868c396a 100644 --- a/deps/npm/html/doc/cli/npm-docs.html +++ b/deps/npm/html/doc/cli/npm-docs.html @@ -12,9 +12,9 @@

    npm-docs

    Docs for a package in a web browser maybe

    SYNOPSIS

    npm docs [<pkgname> [<pkgname> ...]]
    -npm docs (with no args in a package dir)
    +npm docs .
     npm home [<pkgname> [<pkgname> ...]]
    -npm home (with no args in a package dir)
    +npm home .
     

    DESCRIPTION

    This command tries to guess at the likely location of a package's documentation URL, and then tries to open it using the --browser @@ -56,5 +56,5 @@ the current folder and use the name property.

           - + diff --git a/deps/npm/html/doc/cli/npm-edit.html b/deps/npm/html/doc/cli/npm-edit.html index 79c150019e10238b0326b78410fb795e62817d1d..8d1bfc1efad920d761e891577332fed4945cf2b6 100644 --- a/deps/npm/html/doc/cli/npm-edit.html +++ b/deps/npm/html/doc/cli/npm-edit.html @@ -11,7 +11,7 @@

    npm-edit

    Edit an installed package

    SYNOPSIS

    -
    npm edit <name>[@<version>]
    +
    npm edit <pkg>[@<version>]
     

    DESCRIPTION

    Opens the package folder in the default editor (or whatever you've configured as the npm editor config -- see npm-config(7).)

    @@ -49,5 +49,5 @@ or "notepad" on Windows.        - + diff --git a/deps/npm/html/doc/cli/npm-explore.html b/deps/npm/html/doc/cli/npm-explore.html index 29364ad4f3921ced43cfca6e07b6d54111e874a6..8be4b5af9a3806e9cd3fe058c962e79ba49c50c6 100644 --- a/deps/npm/html/doc/cli/npm-explore.html +++ b/deps/npm/html/doc/cli/npm-explore.html @@ -11,7 +11,7 @@

    npm-explore

    Browse an installed package

    SYNOPSIS

    -
    npm explore <name> [ -- <cmd>]
    +
    npm explore <pkg> [ -- <cmd>]
     

    DESCRIPTION

    Spawn a subshell in the directory of the installed package specified.

    If a command is specified, then it is run in the subshell, which then @@ -49,5 +49,5 @@ Windows        -

    + diff --git a/deps/npm/html/doc/cli/npm-help-search.html b/deps/npm/html/doc/cli/npm-help-search.html index 2ff4a11ac6994369f0a2e1e4c926022257eb367e..ad9182bfdf40c6079b81fb4afc97c84c5bcedece 100644 --- a/deps/npm/html/doc/cli/npm-help-search.html +++ b/deps/npm/html/doc/cli/npm-help-search.html @@ -11,7 +11,7 @@

    npm-help-search

    Search npm help documentation

    SYNOPSIS

    -
    npm help-search some search terms
    +
    npm help-search <text>
     

    DESCRIPTION

    This command will search the npm markdown documentation files for the terms provided, and then list the results, sorted by relevance.

    @@ -46,5 +46,5 @@ where the terms were found in the documentation.

           - + diff --git a/deps/npm/html/doc/cli/npm-help.html b/deps/npm/html/doc/cli/npm-help.html index 13b670b596e7c4bda138ef7b0c5600c0fd415fda..6678a564a3d81d0d54229e58c8553aca83a08ed5 100644 --- a/deps/npm/html/doc/cli/npm-help.html +++ b/deps/npm/html/doc/cli/npm-help.html @@ -11,8 +11,7 @@

    npm-help

    Get help on npm

    SYNOPSIS

    -
    npm help <topic>
    -npm help some search terms
    +
    npm help <term> [<terms..>]
     

    DESCRIPTION

    If supplied a topic, then show the appropriate documentation page.

    If the topic does not exist, or if multiple terms are provided, then run @@ -52,5 +51,5 @@ matches are equivalent to specifying a topic name.

           - + diff --git a/deps/npm/html/doc/cli/npm-init.html b/deps/npm/html/doc/cli/npm-init.html index d9c3d05247d7648af3e94e7911decbdfea4796d8..c3e3443039e77df575055b25876c38c106e36c85 100644 --- a/deps/npm/html/doc/cli/npm-init.html +++ b/deps/npm/html/doc/cli/npm-init.html @@ -11,7 +11,7 @@

    npm-init

    Interactively create a package.json file

    SYNOPSIS

    -
    npm init [-f|--force|-y|--yes]
    +
    npm init [--force|-f|--yes|-y]
     

    DESCRIPTION

    This will ask you a bunch of questions, and then write a package.json for you.

    It attempts to make reasonable guesses about what you want things to be set to, @@ -48,5 +48,5 @@ defaults and not prompt you for any options.

           - + diff --git a/deps/npm/html/doc/cli/npm-install.html b/deps/npm/html/doc/cli/npm-install.html index ab3e03f9ba6ffdc48b16ae51b8159c1b419e0709..63057da690606d11c7b4af832e3c7e4a46e22f3a 100644 --- a/deps/npm/html/doc/cli/npm-install.html +++ b/deps/npm/html/doc/cli/npm-install.html @@ -11,15 +11,17 @@

    npm-install

    Install a package

    SYNOPSIS

    -
    npm install (with no args in a package dir)
    +
    npm install (with no args, in package dir)
    +npm install [<@scope>/]<name>
    +npm install [<@scope>/]<name>@<tag>
    +npm install [<@scope>/]<name>@<version>
    +npm install [<@scope>/]<name>@<version range>
     npm install <tarball file>
     npm install <tarball url>
     npm install <folder>
    -npm install [@<scope>/]<name> [--save|--save-dev|--save-optional] [--save-exact]
    -npm install [@<scope>/]<name>@<tag>
    -npm install [@<scope>/]<name>@<version>
    -npm install [@<scope>/]<name>@<version range>
    -npm i (with any of the previous argument usage)
    +
    +alias: npm i
    +common options: [--save|--save-dev|--save-optional] [--save-exact] [--dry-run]
     

    DESCRIPTION

    This command installs a package, and any packages that it depends on. If the package has a shrinkwrap file, the installation of dependencies will be driven @@ -32,7 +34,7 @@ by that. See npm-shrinkwrap(1).

  • d) a <name>@<version> that is published on the registry (see npm-registry(7)) with (c)
  • e) a <name>@<tag> that points to (d)
  • f) a <name> that has a "latest" tag satisfying (e)
  • -
  • g) a <git remote url> that resolves to (b)
  • +
  • g) a <git remote url> that resolves to (a)

Even if you never publish your package, you can still get a lot of benefits of using npm if you just want to write a node program (a), and @@ -65,7 +67,7 @@ after packing it up into a tarball (b).

Example:

    npm install https://github.com/indexzero/forever/tarball/v0.5.6
 
-
  • npm install [@<scope>/]<name> [--save|--save-dev|--save-optional]:

    +
  • npm install [<@scope>/]<name> [--save|--save-dev|--save-optional]:

    Do a <name>@<tag> install, where <tag> is the "tag" config. (See npm-config(7).)

    In most cases, this will install the latest version @@ -86,6 +88,8 @@ package.json, there is an additional, optional flag:

  • --save-exact: Saved dependencies will be configured with an exact version rather than using npm's default semver range operator.

    +

    Further, if you have an npm-shrinkwrap.json then it will be updated as +well.

    <scope> is optional. The package will be downloaded from the registry associated with the specified scope. If no registry is associated with the given scope the default registry is assumed. See npm-scope(7).

    @@ -107,7 +111,7 @@ npm install readable-stream --save --save-exact working directory, then it will try to install that, and only try to fetch the package by name if it is not valid.
    • -
    • npm install [@<scope>/]<name>@<tag>:

      +
    • npm install [<@scope>/]<name>@<tag>:

      Install the version of the package that is referenced by the specified tag. If the tag does not exist in the registry data for that package, then this will fail.

      @@ -115,14 +119,14 @@ fetch the package by name if it is not valid.
          npm install sax@latest
           npm install @myorg/mypackage@latest
       
    • -
    • npm install [@<scope>/]<name>@<version>:

      +
    • npm install [<@scope>/]<name>@<version>:

      Install the specified version of the package. This will fail if the version has not been published to the registry.

      Example:

          npm install sax@0.1.1
           npm install @myorg/privatepackage@1.5.0
       
    • -
    • npm install [@<scope>/]<name>@<version range>:

      +
    • npm install [<@scope>/]<name>@<version range>:

      Install a version of the package matching the specified version range. This will follow the same rules for resolving dependencies described in package.json(5).

      Note that most version ranges must be put in quotes so that your shell will @@ -132,9 +136,9 @@ fetch the package by name if it is not valid. npm install @myorg/privatepackage@">=0.1.0 <0.2.0"

  • npm install <git remote url>:

    -

    Install a package by cloning a git remote url. The format of the git - url is:

    -
        <protocol>://[<user>[:<password>]@]<hostname>[:<port>][:/]<path>[#<commit-ish>]
    +

    Installs the package from the hosted git provider, cloning it with + git. First it tries via the https (git with github) and if that fails, via ssh.

    +
        <protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish>]
     

    <protocol> is one of git, git+ssh, git+http, or git+https. If no <commit-ish> is specified, then master is used.

    @@ -195,6 +199,8 @@ For example:

    The --tag argument will apply to all of the specified install targets. If a tag with the given name exists, the tagged version is preferred over newer versions.

    +

    The --dry-run argument will report in the usual way what the install would +have done without actually installing anything.

    The --force argument will force npm to fetch remote resources even if a local copy exists on disk.

    npm install sax --force
    @@ -210,27 +216,39 @@ being installed.

    shrinkwrap file and use the package.json instead.

    The --nodedir=/path/to/node/source argument will allow npm to find the node source code so that npm can compile native modules.

    +

    The --only={prod[uction]|dev[elopment]} argument will cause either only +devDependencies or only non-devDependencies to be installed.

    See npm-config(7). Many of the configuration params have some effect on installation, since that's most of what npm does.

    ALGORITHM

    To install a package, npm uses the following algorithm:

    -
    install(where, what, family, ancestors)
    -fetch what, unpack to <where>/node_modules/<what>
    -for each dep in what.dependencies
    -  resolve dep to precise version
    -for each dep@version in what.dependencies
    -    not in <where>/node_modules/<what>/node_modules/*
    -    and not in <family>
    -  add precise version deps to <family>
    -  install(<where>/node_modules/<what>, dep, family)
    +
    load the existing node_modules tree from disk
    +clone the tree
    +fetch the package.json and assorted metadata and add it to the clone
    +walk the clone and add any missing dependencies
    +  dependencies will be added as close to the top as is possible
    +  without breaking any other modules
    +compare the original tree with the cloned tree and make a list of
    +actions to take to convert one to the other
    +execute all of the actions, deepest first
    +  kinds of actions are install, update, remove and move
     

    For this package{dep} structure: A{B,C}, B{C}, C{D}, this algorithm produces:

    A
     +-- B
    -`-- C
    -    `-- D
    ++-- C
    ++-- D
     

    That is, the dependency from B to C is satisfied by the fact that A -already caused C to be installed at a higher level.

    +already caused C to be installed at a higher level. D is still installed +at the top level because nothing conflicts with it.

    +

    For A{B,C}, B{C,D@1}, C{D@2}, this algorithm produces:

    +
    A
    ++-- B
    ++-- C
    +   `-- D@2
    ++-- D@1
    +

    Because B's D@1 will be installed in the top leve, C now has to install D@2 +privately for itself.

    See npm-folders(5) for a more detailed description of the specific folder structures that npm creates.

    Limitations of npm's Install Algorithm

    @@ -277,5 +295,5 @@ affects a real use-case, it will be investigated.

           - + diff --git a/deps/npm/html/doc/cli/npm-link.html b/deps/npm/html/doc/cli/npm-link.html index 322d02d46918af170c0bd004fcb23277bf64f8eb..0a944aff94d27f7cdfd1e26f361a1b08db7884b6 100644 --- a/deps/npm/html/doc/cli/npm-link.html +++ b/deps/npm/html/doc/cli/npm-link.html @@ -11,9 +11,10 @@

    npm-link

    Symlink a package folder

    SYNOPSIS

    -
    npm link (in package folder)
    -npm link [@<scope>/]<pkgname>
    -npm ln (with any of the previous argument usage)
    +
    npm link (in package dir)
    +npm link [<@scope>/]<pkg>[@<version>]
    +
    +alias: npm ln
     

    DESCRIPTION

    Package linking is a two-step process.

    First, npm link in a package folder will create a globally-installed @@ -72,5 +73,5 @@ include that scope, e.g.

           - + diff --git a/deps/npm/html/doc/cli/npm-logout.html b/deps/npm/html/doc/cli/npm-logout.html index 16b97daae388bdfaf8051035f3a4d1373007c8f4..7fa51c9c136675e8228eca147773bb64862da57a 100644 --- a/deps/npm/html/doc/cli/npm-logout.html +++ b/deps/npm/html/doc/cli/npm-logout.html @@ -11,7 +11,7 @@

    npm-logout

    Log out of the registry

    SYNOPSIS

    -
    npm logout [--registry=url] [--scope=@orgname]
    +
    npm logout [--registry=<url>] [--scope=<@scope>]
     

    DESCRIPTION

    When logged into a registry that supports token-based authentication, tell the server to end this token's session. This will invalidate the token everywhere @@ -55,5 +55,5 @@ that registry at the same time.

           - + diff --git a/deps/npm/html/doc/cli/npm-ls.html b/deps/npm/html/doc/cli/npm-ls.html index f36d7952cf10cbc3a3bcedf90c2ff56df0e3ba5e..73144c1681f53013a24095275a11c60895e10958 100644 --- a/deps/npm/html/doc/cli/npm-ls.html +++ b/deps/npm/html/doc/cli/npm-ls.html @@ -11,10 +11,9 @@

    npm-ls

    List installed packages

    SYNOPSIS

    -
    npm list [[@<scope>/]<pkg> ...]
    -npm ls [[@<scope>/]<pkg> ...]
    -npm la [[@<scope>/]<pkg> ...]
    -npm ll [[@<scope>/]<pkg> ...]
    +
    npm ls [[<@scope>/]<pkg> ...]
    +
    +aliases: list, la, ll
     

    DESCRIPTION

    This command will print to stdout all the versions of packages that are installed, as well as their dependencies, in a tree-structure.

    @@ -22,13 +21,15 @@ installed, as well as their dependencies, in a tree-structure.

    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@2.14.7 /path/to/npm
    +
    npm@3.3.6 /path/to/npm
     └─┬ init-package-json@0.0.4
       └── promzard@0.1.5
     

    It will print out extraneous, missing, and invalid packages.

    If a project specifies git urls for dependencies these are shown in parentheses after the name@version to make it easier for users to recognize potential forks of a project.

    +

    The tree shown is the logical dependency tree, based on package +dependencies, not the physical layout of your node_modules folder.

    When run as ll or la, it shows extended information by default.

    CONFIGURATION

    json

    @@ -73,6 +74,12 @@ project.

  • Default: false
  • Display only the dependency tree for packages in devDependencies.

    +

    only

    +
      +
    • Type: String
    • +
    +

    When "dev" or "development", is an alias to dev.

    +

    When "prod" or "production", is an alias to production.`

    SEE ALSO

    • npm-config(1)
    • @@ -97,5 +104,5 @@ project.

             - + diff --git a/deps/npm/html/doc/cli/npm-outdated.html b/deps/npm/html/doc/cli/npm-outdated.html index 29728e96ae7784e66af91e1927281a61db2e0b00..5a5f67b9421320961078e5a26ffe87c3c61a723e 100644 --- a/deps/npm/html/doc/cli/npm-outdated.html +++ b/deps/npm/html/doc/cli/npm-outdated.html @@ -11,7 +11,7 @@

      npm-outdated

      Check for outdated packages

      SYNOPSIS

      -
      npm outdated [<name> [<name> ...]]
      +
      npm outdated [[<@scope>/]<pkg> ...]
       

      DESCRIPTION

      This command will check the registry to see if any (or, specific) installed packages are currently outdated.

      @@ -67,5 +67,5 @@ project.

             - + diff --git a/deps/npm/html/doc/cli/npm-owner.html b/deps/npm/html/doc/cli/npm-owner.html index 603043dc6e19e3b269655963417b473c53ce8878..6cbc0f4bdef925a1d226843780a03301a2f4aef5 100644 --- a/deps/npm/html/doc/cli/npm-owner.html +++ b/deps/npm/html/doc/cli/npm-owner.html @@ -11,9 +11,9 @@

      npm-owner

      Manage package owners

      SYNOPSIS

      -
      npm owner ls <package name>
      -npm owner add <user> <package name>
      -npm owner rm <user> <package name>
      +
      npm owner add <user> [<@scope>/]<pkg>
      +npm owner rm <user> [<@scope>/]<pkg>
      +npm owner ls [<@scope>/]<pkg>
       

      DESCRIPTION

      Manage ownership of published packages.

        @@ -49,5 +49,5 @@ that is not implemented at this time.

               - + diff --git a/deps/npm/html/doc/cli/npm-pack.html b/deps/npm/html/doc/cli/npm-pack.html index 77bf5578bbe6a6c51a918878e60f672903c99cb1..7abf2f572b81400eacb7077015a65f19b530fd2d 100644 --- a/deps/npm/html/doc/cli/npm-pack.html +++ b/deps/npm/html/doc/cli/npm-pack.html @@ -11,13 +11,13 @@

        npm-pack

        Create a tarball from a package

        SYNOPSIS

        -
        npm pack [<pkg> [<pkg> ...]]
        +
        npm pack [[<@scope>/]<pkg>...]
         

        DESCRIPTION

        For anything that's installable (that is, a package folder, tarball, -tarball url, name@tag, name@version, or name), this command will fetch -it to the cache, and then copy the tarball to the current working -directory as <name>-<version>.tgz, and then write the filenames out to -stdout.

        +tarball url, name@tag, name@version, name, or scoped name), this +command will fetch it to the cache, and then copy the tarball to the +current working directory as <name>-<version>.tgz, and then write +the filenames out to stdout.

        If the same package is specified multiple times, then the file will be overwritten the second time.

        If no arguments are supplied, then npm packs the current package folder.

        @@ -41,5 +41,5 @@ overwritten the second time.

               - + diff --git a/deps/npm/html/doc/cli/npm-ping.html b/deps/npm/html/doc/cli/npm-ping.html index e10095ec5a50ae7196eb804f1c0b8e35b5503f0c..4a78052b6c172c00a0590165d0ed9307e0a97740 100644 --- a/deps/npm/html/doc/cli/npm-ping.html +++ b/deps/npm/html/doc/cli/npm-ping.html @@ -32,4 +32,4 @@        - + diff --git a/deps/npm/html/doc/cli/npm-prefix.html b/deps/npm/html/doc/cli/npm-prefix.html index 96d63d75070f5e44fea764f13275b9a8b33b74da..26aa01fda04d6be92387f6e4f9fe35f093cbc495 100644 --- a/deps/npm/html/doc/cli/npm-prefix.html +++ b/deps/npm/html/doc/cli/npm-prefix.html @@ -38,5 +38,5 @@ to contain a package.json file unless -g is also specified.

               - + diff --git a/deps/npm/html/doc/cli/npm-prune.html b/deps/npm/html/doc/cli/npm-prune.html index d90b0fb25a57b9f331c56a5971b8d796362d4e04..88d57ece8c8af59bfe20b3bdca1dac79ffeb727a 100644 --- a/deps/npm/html/doc/cli/npm-prune.html +++ b/deps/npm/html/doc/cli/npm-prune.html @@ -11,8 +11,7 @@

        npm-prune

        Remove extraneous packages

        SYNOPSIS

        -
        npm prune [<name> [<name ...]]
        -npm prune [<name> [<name ...]] [--production]
        +
        npm prune [[<@scope>/]<pkg>...] [--production]
         

        DESCRIPTION

        This command removes "extraneous" packages. If a package name is provided, then only packages matching one of the supplied names are @@ -41,5 +40,5 @@ negate NODE_ENV being set to production.

               - + diff --git a/deps/npm/html/doc/cli/npm-publish.html b/deps/npm/html/doc/cli/npm-publish.html index b6372b26446a7a9237ab73492fca9c708bbdd9f6..bc5884d872a7971c6f51c7a2ef140f23025bca00 100644 --- a/deps/npm/html/doc/cli/npm-publish.html +++ b/deps/npm/html/doc/cli/npm-publish.html @@ -11,8 +11,10 @@

        npm-publish

        Publish a package

        SYNOPSIS

        -
        npm publish <tarball> [--tag <tag>] [--access <public|restricted>]
        -npm publish <folder> [--tag <tag>] [--access <public|restricted>]
        +
        npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>]
        +
        +Publishes '.' if no argument supplied
        +Sets tag 'latest' if no --tag specified
         

        DESCRIPTION

        Publishes a package to the registry so that it can be installed by name. See npm-developers(7) for details on what's included in the published package, as @@ -66,5 +68,5 @@ it is removed with npm-unpublish(1).

               - + diff --git a/deps/npm/html/doc/cli/npm-rebuild.html b/deps/npm/html/doc/cli/npm-rebuild.html index 4fb2d48108246b5d5ac10c9bdcbcb9d335f0397f..92ef96425b8a16c7e2ad8432edb272d17cef726a 100644 --- a/deps/npm/html/doc/cli/npm-rebuild.html +++ b/deps/npm/html/doc/cli/npm-rebuild.html @@ -11,13 +11,10 @@

        npm-rebuild

        Rebuild a package

        SYNOPSIS

        -
        npm rebuild [<name> [<name> ...]]
        -npm rb [<name> [<name> ...]]
        -
          -
        • <name>: -The package to rebuild
        • -
        -

        DESCRIPTION

        +
        npm rebuild [[<@scope>/<name>]...]
        +
        +alias: npm rb
        +

        DESCRIPTION

        This command runs the npm build command on the matched folders. This is useful when you install a new version of node, and must recompile all your C++ addons with the new binary.

        @@ -38,5 +35,5 @@ the new binary.

               - + diff --git a/deps/npm/html/doc/cli/npm-repo.html b/deps/npm/html/doc/cli/npm-repo.html index d66da6ab92f39ff198c0f37c6cb2d927f3cf1c49..1d1445eafb492ea4292205d3decb8f89483640c8 100644 --- a/deps/npm/html/doc/cli/npm-repo.html +++ b/deps/npm/html/doc/cli/npm-repo.html @@ -11,8 +11,7 @@

        npm-repo

        Open package repository page in the browser

        SYNOPSIS

        -
        npm repo <pkgname>
        -npm repo (with no args in a package dir)
        +
        npm repo [<pkg>]
         

        DESCRIPTION

        This command tries to guess at the likely location of a package's repository URL, and then tries to open it using the --browser @@ -42,5 +41,5 @@ a package.json in the current folder and use the name        -

        + diff --git a/deps/npm/html/doc/cli/npm-restart.html b/deps/npm/html/doc/cli/npm-restart.html index 7d9fe7b9641efe9bbd82899229dfcf9d1618ef5a..555c9fbeedda8f6d5b57c77979f8c2301ba95be8 100644 --- a/deps/npm/html/doc/cli/npm-restart.html +++ b/deps/npm/html/doc/cli/npm-restart.html @@ -53,5 +53,5 @@ behavior will be accompanied by an increase in major version number

               - + diff --git a/deps/npm/html/doc/cli/npm-rm.html b/deps/npm/html/doc/cli/npm-rm.html deleted file mode 100644 index 1714fe27df61f03414e57466a555780ffdeab8a6..0000000000000000000000000000000000000000 --- a/deps/npm/html/doc/cli/npm-rm.html +++ /dev/null @@ -1,43 +0,0 @@ - - - npm-rm - - - - - - -
        - -

        npm-rm

        Remove a package

        -

        SYNOPSIS

        -
        npm rm <name>
        -npm r <name>
        -npm uninstall <name>
        -npm un <name>
        -

        DESCRIPTION

        -

        This uninstalls a package, completely removing everything npm installed -on its behalf.

        -

        SEE ALSO

        - - -
        - - - - - - - - - - - - diff --git a/deps/npm/html/doc/cli/npm-root.html b/deps/npm/html/doc/cli/npm-root.html index e29dacdbea6204a69720aaad601ebcda6e149cf2..e8e2a1890f1fe701bad847ada527bf35472442e1 100644 --- a/deps/npm/html/doc/cli/npm-root.html +++ b/deps/npm/html/doc/cli/npm-root.html @@ -11,7 +11,7 @@

        npm-root

        Display npm root

        SYNOPSIS

        -
        npm root
        +
        npm root [-g]
         

        DESCRIPTION

        Print the effective node_modules folder to standard out.

        SEE ALSO

        @@ -35,5 +35,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-run-script.html b/deps/npm/html/doc/cli/npm-run-script.html index 47f437d6257a15ab2d1541ce3586227fc0e811aa..39f4d0d60b123a48ce15dca62dc8bb6655367062 100644 --- a/deps/npm/html/doc/cli/npm-run-script.html +++ b/deps/npm/html/doc/cli/npm-run-script.html @@ -11,8 +11,9 @@

        npm-run-script

        Run arbitrary package scripts

        SYNOPSIS

        -
        npm run-script [command] [-- <args>]
        -npm run [command] [-- <args>]
        +
        npm run-script <command> [-- <args>...]
        +
        +alias: npm run
         

        DESCRIPTION

        This runs an arbitrary command from a package's "scripts" object. If no "command" is provided, it will list the available scripts. run[-script] is @@ -57,5 +58,5 @@ you should write:

               - + diff --git a/deps/npm/html/doc/cli/npm-search.html b/deps/npm/html/doc/cli/npm-search.html index 049a5faa1878977882a61f9ede800c75cfff1f94..25ff96e1e85e47c01c7a20c37b26447a0e715856 100644 --- a/deps/npm/html/doc/cli/npm-search.html +++ b/deps/npm/html/doc/cli/npm-search.html @@ -12,8 +12,8 @@

        npm-search

        Search for packages

        SYNOPSIS

        npm search [--long] [search terms ...]
        -npm s [search terms ...]
        -npm se [search terms ...]
        +
        +aliases: s, se
         

        DESCRIPTION

        Search the registry for packages matching the search terms.

        If a term starts with /, then it's interpreted as a regular expression. @@ -49,5 +49,5 @@ fall on multiple lines.

               - + diff --git a/deps/npm/html/doc/cli/npm-shrinkwrap.html b/deps/npm/html/doc/cli/npm-shrinkwrap.html index 3d11d8e0e4d817cfd847bc8579975c2760c52ca9..66e3b08486939539a3a807c79b0e9d11f88d3ac8 100644 --- a/deps/npm/html/doc/cli/npm-shrinkwrap.html +++ b/deps/npm/html/doc/cli/npm-shrinkwrap.html @@ -72,27 +72,33 @@ when B hasn't changed at all.

        This generates npm-shrinkwrap.json, which will look something like this:

        {
           "name": "A",
        -  "version": "0.1.0",
        +  "version": "1.1.0",
           "dependencies": {
             "B": {
        -      "version": "0.0.1",
        +      "version": "1.0.1",
        +      "from": "B@^1.0.0",
        +      "resolved": "https://registry.npmjs.org/B/-/B-1.0.1.tgz",
               "dependencies": {
                 "C": {
        -          "version": "0.0.1"
        +          "version": "1.0.1",
        +          "from": "org/C#v1.0.1",
        +          "resolved": "git://github.com/org/C.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4"
                 }
               }
             }
           }
         }
        -

        The shrinkwrap command has locked down the dependencies based on -what's currently installed in node_modules. When npm install -installs a package with an npm-shrinkwrap.json in the package -root, the shrinkwrap file (rather than package.json files) completely -drives the installation of that package and all of its dependencies -(recursively). So now the author publishes A@0.1.0, and subsequent -installs of this package will use B@0.0.1 and C@0.0.1, regardless the -dependencies and versions listed in A's, B's, and C's package.json -files.

        +

        The shrinkwrap command has locked down the dependencies based on what's +currently installed in node_modules. The installation behavior is changed to:

        +
          +
        1. The module tree described by the shrinkwrap is reproduced. This means +reproducing the structure described in the file, using the specific files +referenced in "resolved" if available, falling back to normal package +resolution using "version" if one isn't.

          +
        2. +
        3. The tree is walked and any missing dependencies are installed in the usual fasion.

          +
        4. +

        Using shrinkwrapped packages

        Using a shrinkwrapped package is no different than using any other package: you can npm install it by hand, or add a dependency to your @@ -110,15 +116,14 @@ your package.

        1. Run npm install in the package root to install the current versions of all dependencies.
        2. -
        3. Add or update dependencies. npm install each new or updated -package individually and then update package.json. Note that they -must be explicitly named in order to be installed: running npm -install with no arguments will merely reproduce the existing +
        4. Add or update dependencies. npm install --save each new or updated +package individually to update the package.json and the shrinkwrap. +Note that they must be explicitly named in order to be installed: running +npm install with no arguments will merely reproduce the existing shrinkwrap.
        5. Validate that the package works as expected with the new dependencies.
        6. -
        7. Run npm shrinkwrap, commit the new npm-shrinkwrap.json, and -publish your package.
        8. +
        9. Commit the new npm-shrinkwrap.json, and publish your package.

        You can use npm-outdated(1) to view dependencies with newer versions available.

        @@ -164,5 +169,5 @@ contents rather than versions.

               - + diff --git a/deps/npm/html/doc/cli/npm-star.html b/deps/npm/html/doc/cli/npm-star.html index 6a33768b779697bc7e239e722530e07133056dde..c6a97f4192d3c6c8cf7e66a7466d46eb4d6678a8 100644 --- a/deps/npm/html/doc/cli/npm-star.html +++ b/deps/npm/html/doc/cli/npm-star.html @@ -11,8 +11,8 @@

        npm-star

        Mark your favorite packages

        SYNOPSIS

        -
        npm star <pkgname> [<pkg>, ...]
        -npm unstar <pkgname> [<pkg>, ...]
        +
        npm star [<pkg>...]
        +npm unstar [<pkg>...]
         

        DESCRIPTION

        "Starring" a package means that you have some interest in it. It's a vaguely positive way to show that you care.

        @@ -36,5 +36,5 @@ a vaguely positive way to show that you care.

               - + diff --git a/deps/npm/html/doc/cli/npm-stars.html b/deps/npm/html/doc/cli/npm-stars.html index 89b23b0a8872c25b4132370a40bb2b31c4e95897..47aac754d33cab2681132f18744932cda6a4c300 100644 --- a/deps/npm/html/doc/cli/npm-stars.html +++ b/deps/npm/html/doc/cli/npm-stars.html @@ -11,8 +11,7 @@

        npm-stars

        View packages marked as favorites

        SYNOPSIS

        -
        npm stars
        -npm stars [username]
        +
        npm stars [<user>]
         

        DESCRIPTION

        If you have starred a lot of neat things and want to find them again quickly this command lets you do just that.

        @@ -37,5 +36,5 @@ you will most certainly enjoy this command.

               - + diff --git a/deps/npm/html/doc/cli/npm-start.html b/deps/npm/html/doc/cli/npm-start.html index 718160b63eb421bc9298863714a6941439891230..1b5fb427f15ce30eadda4a28c31a95a428191860 100644 --- a/deps/npm/html/doc/cli/npm-start.html +++ b/deps/npm/html/doc/cli/npm-start.html @@ -34,5 +34,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-stop.html b/deps/npm/html/doc/cli/npm-stop.html index 2047d8e85417b2232688c109156deec3acb98823..b7b63c246289caefad6bcf66e401e628d38a6f6b 100644 --- a/deps/npm/html/doc/cli/npm-stop.html +++ b/deps/npm/html/doc/cli/npm-stop.html @@ -34,5 +34,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm-tag.html b/deps/npm/html/doc/cli/npm-tag.html index af7b2f746f6e9c31e59fcee029156e6446222868..2a23eccd4a71ae8b4e0f0b4a18e9b76063b22ba0 100644 --- a/deps/npm/html/doc/cli/npm-tag.html +++ b/deps/npm/html/doc/cli/npm-tag.html @@ -11,7 +11,8 @@

        npm-tag

        Tag a published version

        SYNOPSIS

        -
        npm tag <name>@<version> [<tag>]
        +
        [DEPRECATED] npm tag <name>@<version> [<tag>]
        +See `dist-tag`
         

        DESCRIPTION

        THIS COMMAND IS DEPRECATED. See npm-dist-tag(1) for details.

        Tags the specified version of the package with the specified tag, or the @@ -62,5 +63,5 @@ that do not begin with a number or the letter v.

               - + diff --git a/deps/npm/html/doc/cli/npm-team.html b/deps/npm/html/doc/cli/npm-team.html index cc23b76d82e007f6efba25f9a19354e996048abb..60333b6c37669b2704479961644f3296ce5211f9 100644 --- a/deps/npm/html/doc/cli/npm-team.html +++ b/deps/npm/html/doc/cli/npm-team.html @@ -67,4 +67,4 @@ use the npm access command to grant or revoke the appropriate permi        - + diff --git a/deps/npm/html/doc/cli/npm-test.html b/deps/npm/html/doc/cli/npm-test.html index bcd729a7487a56f50623af0d984b321cb94fdb3c..c48b3f6070740e6c5f1456a9d5fcc05713c05334 100644 --- a/deps/npm/html/doc/cli/npm-test.html +++ b/deps/npm/html/doc/cli/npm-test.html @@ -37,5 +37,5 @@ true.

               - + diff --git a/deps/npm/html/doc/cli/npm-uninstall.html b/deps/npm/html/doc/cli/npm-uninstall.html index 8763c40adb29220aa73c860e78c4460601237cfb..6d7429bbd7af9582f9f7f3f26b3a81e77a04a3cd 100644 --- a/deps/npm/html/doc/cli/npm-uninstall.html +++ b/deps/npm/html/doc/cli/npm-uninstall.html @@ -11,8 +11,9 @@

        npm-rm

        Remove a package

        SYNOPSIS

        -
        npm uninstall [@<scope>/]<package> [--save|--save-dev|--save-optional]
        -npm rm (with any of the previous argument usage)
        +
        npm uninstall [<@scope>/]<pkg>[@<version>]... [--save|--save-dev|--save-optional]
        +
        +aliases: remove, rm, r, un, unlink
         

        DESCRIPTION

        This uninstalls a package, completely removing everything npm installed on its behalf.

        @@ -30,6 +31,8 @@ the package version in your main package.json:

      • --save-optional: Package will be removed from your optionalDependencies.

      +

      Further, if you have an npm-shrinkwrap.json then it will be updated as +well.

      Scope is optional and follows the usual rules for npm-scope(7).

      Examples:

      npm uninstall sax --save
      @@ -57,5 +60,5 @@ npm uninstall dtrace-provider --save-optional
         
          
       
      -
      +
       
      diff --git a/deps/npm/html/doc/cli/npm-unpublish.html b/deps/npm/html/doc/cli/npm-unpublish.html
      index 667802cd4ccc655b7d7ddf752b1f717613fd5234..a5495578f4049ea10a566ffc524caadf3ac1c9a7 100644
      --- a/deps/npm/html/doc/cli/npm-unpublish.html
      +++ b/deps/npm/html/doc/cli/npm-unpublish.html
      @@ -11,7 +11,7 @@
       
       

      npm-unpublish

      Remove a package from the registry

      SYNOPSIS

      -
      npm unpublish [@<scope>/]<name>[@<version>]
      +
      npm unpublish [<@scope>/]<pkg>[@<version>]
       

      WARNING

      It is generally considered bad behavior to remove versions of a library that others are depending on!

      @@ -47,5 +47,5 @@ package again, a new version number must be used.

             - + diff --git a/deps/npm/html/doc/cli/npm-update.html b/deps/npm/html/doc/cli/npm-update.html index e08a2c115044b65b89d8e6acbf9c644b5c9ee3d1..0dcbb63f3058cc4b650ab9c454dfa0e726c74b57 100644 --- a/deps/npm/html/doc/cli/npm-update.html +++ b/deps/npm/html/doc/cli/npm-update.html @@ -11,7 +11,7 @@

      npm-update

      Update a package

      SYNOPSIS

      -
      npm update [-g] [<name> [<name> ...]]
      +
      npm update [-g] [<pkg>...]
       

      DESCRIPTION

      This command will update all the packages listed to the latest version (specified by the tag config), respecting semver.

      @@ -119,5 +119,5 @@ be downgraded.

             - + diff --git a/deps/npm/html/doc/cli/npm-version.html b/deps/npm/html/doc/cli/npm-version.html index 34bb9c956bb89a2178c1232e71cbfdcc516e4f0e..3c03604995ba4a0ee0b680768369baf5c7a26914 100644 --- a/deps/npm/html/doc/cli/npm-version.html +++ b/deps/npm/html/doc/cli/npm-version.html @@ -12,6 +12,10 @@

      npm-version

      Bump a package version

      SYNOPSIS

      npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease]
      +
      +'npm -v' or 'npm --version' to print npm version
      +'npm view <pkg> version' to view a package's published version
      +'npm ls' to inspect current package/dependency versions
       

      DESCRIPTION

      Run this in a package directory to bump the version and write the new data back to package.json and, if present, npm-shrinkwrap.json.

      @@ -50,7 +54,7 @@ This step is skipped if the --force flag is set.
    • Run the preversion script. These scripts have access to the old version in package.json. A typical use would be running your full test suite before deploying. Any files you want added to the commit should be explicitly added using git add.
    • -
    • Bump version in package.json as requested (patch, minor, major, etc).
    • +
    • Bump version in package.json as requested (patch, minor, major, etc).
    • Run the version script. These scripts have access to the new version in package.json (so they can incorporate it into file headers in generated files for example). Again, scripts should explicitly add generated files to the commit using git add.
    • @@ -95,5 +99,5 @@ and tag up to the server, and deletes the build/temp directory.

             - + diff --git a/deps/npm/html/doc/cli/npm-view.html b/deps/npm/html/doc/cli/npm-view.html index 930a299af6e1eada870c0be681f224c5d9754f85..af6d7360110f518e97768d2082799dd53c4229c2 100644 --- a/deps/npm/html/doc/cli/npm-view.html +++ b/deps/npm/html/doc/cli/npm-view.html @@ -11,8 +11,9 @@

      npm-view

      View registry info

      SYNOPSIS

      -
      npm view [@<scope>/]<name>[@<version>] [<field>[.<subfield>]...]
      -npm v [@<scope>/]<name>[@<version>] [<field>[.<subfield>]...]
      +
      npm view [<@scope>/]<name>[@<version>] [<field>[.<subfield>]...]
      +
      +aliases: info, show, v
       

      DESCRIPTION

      This command shows data about a package and prints it to the stream referenced by the outfd config, which defaults to stdout.

      @@ -82,5 +83,5 @@ the field name.

             - + diff --git a/deps/npm/html/doc/cli/npm-whoami.html b/deps/npm/html/doc/cli/npm-whoami.html index 1f25215aeb5a4634855b9f6eacc00cb666d32a4f..2cb374a5ed069918df06b358f0d38ce42c169625 100644 --- a/deps/npm/html/doc/cli/npm-whoami.html +++ b/deps/npm/html/doc/cli/npm-whoami.html @@ -11,7 +11,7 @@

      npm-whoami

      Display npm username

      SYNOPSIS

      -
      npm whoami
      +
      npm whoami [--registry <registry>]
       

      DESCRIPTION

      Print the username config to standard output.

      SEE ALSO

      @@ -33,5 +33,5 @@        - + diff --git a/deps/npm/html/doc/cli/npm.html b/deps/npm/html/doc/cli/npm.html index 9fd4df9b2d30c41c70408c46aaa17540af1f02a7..7581ad5a29efa6b77651a9e651b6a56face531bd 100644 --- a/deps/npm/html/doc/cli/npm.html +++ b/deps/npm/html/doc/cli/npm.html @@ -13,7 +13,7 @@

      SYNOPSIS

      npm <command> [args]
       

      VERSION

      -

      2.14.7

      +

      3.3.6

      DESCRIPTION

      npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency @@ -110,7 +110,7 @@ easily by doing npm view npm contributors.

      the issues list or ask on the mailing list.

      BUGS

      When you find issues, please report them:

      @@ -118,7 +118,7 @@ the issues list or ask on the mailing list.

    • web: http://github.com/npm/npm/issues
    • email: -npm-@googlegroups.com
    • +npm-@googlegroups.com

    Be sure to include all of the output from the npm command that didn't work as expected. The npm-debug.log file is also helpful to provide.

    @@ -128,7 +128,7 @@ will no doubt tell you to put the output in a gist or email.

    Isaac Z. Schlueter :: isaacs :: @izs :: -i@izs.me

    +i@izs.me

    SEE ALSO

    Note that, unless the user has set the engine-strict config flag, this field is advisory only.

    engineStrict

    -

    NOTE: This feature is deprecated and will be removed in npm 3.0.0.

    -

    If you are sure that your module will definitely not run properly on -versions of Node/npm other than those specified in the engines object, -then you can set "engineStrict": true in your package.json file. -This will override the user's engine-strict config setting.

    -

    Please do not do this unless you are really very very sure. If your -engines object is something overly restrictive, you can quite easily and -inadvertently lock yourself into obscurity and prevent your users from -updating to new versions of Node. Consider this choice carefully.

    +

    This feature was deprecated with npm 3.0.0

    +

    Prior to npm 3.0.0, this feature was used to treat this package as if the +user had set engine-strict.

    os

    You can specify which operating systems your module will run on:

    @@ -565,5 +559,5 @@ ignored.

           - + diff --git a/deps/npm/html/doc/files/npmrc.html b/deps/npm/html/doc/files/npmrc.html index 01a596ff22fc8e689fe9a043dad2c54bff3547d8..86742503c32f5013a171daaa6f4fdbcb13a49fe3 100644 --- a/deps/npm/html/doc/files/npmrc.html +++ b/deps/npm/html/doc/files/npmrc.html @@ -83,5 +83,5 @@ manner.

           - + diff --git a/deps/npm/html/doc/files/package.json.html b/deps/npm/html/doc/files/package.json.html index 9fecd63fa7865d00db0f42b41671ba3f163fb27f..e9f9c2f78d3aea8c0afda24cb17801e7e847291e 100644 --- a/deps/npm/html/doc/files/package.json.html +++ b/deps/npm/html/doc/files/package.json.html @@ -473,15 +473,9 @@ are capable of properly installing your program. For example:

    Note that, unless the user has set the engine-strict config flag, this field is advisory only.

    engineStrict

    -

    NOTE: This feature is deprecated and will be removed in npm 3.0.0.

    -

    If you are sure that your module will definitely not run properly on -versions of Node/npm other than those specified in the engines object, -then you can set "engineStrict": true in your package.json file. -This will override the user's engine-strict config setting.

    -

    Please do not do this unless you are really very very sure. If your -engines object is something overly restrictive, you can quite easily and -inadvertently lock yourself into obscurity and prevent your users from -updating to new versions of Node. Consider this choice carefully.

    +

    This feature was deprecated with npm 3.0.0

    +

    Prior to npm 3.0.0, this feature was used to treat this package as if the +user had set engine-strict.

    os

    You can specify which operating systems your module will run on:

    @@ -565,5 +559,5 @@ ignored.

           - + diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html index 7cc68acd4a8cb0b222a3cec2d63d2b2e2a0ff6fe..721c111d9518e4043505862a0753df42a1f9b624 100644 --- a/deps/npm/html/doc/index.html +++ b/deps/npm/html/doc/index.html @@ -80,8 +80,6 @@

    Open package repository page in the browser

    npm-restart(1)

    Restart a package

    -

    npm-rm(1)

    -

    Remove a package

    npm-root(1)

    Display npm root

    npm-run-script(1)

    @@ -118,86 +116,6 @@

    Display npm username

    API Documentation

    Using npm in your Node programs

    -

    npm(3)

    -

    javascript package manager

    -

    npm-bin(3)

    -

    Display npm bin folder

    -

    npm-bugs(3)

    -

    Bugs for a package in a web browser maybe

    -

    npm-cache(3)

    -

    manage the npm cache programmatically

    -

    npm-commands(3)

    -

    npm commands

    -

    npm-config(3)

    -

    Manage the npm configuration files

    -

    npm-deprecate(3)

    -

    Deprecate a version of a package

    -

    npm-docs(3)

    -

    Docs for a package in a web browser maybe

    -

    npm-edit(3)

    -

    Edit an installed package

    -

    npm-explore(3)

    -

    Browse an installed package

    -

    npm-help-search(3)

    -

    Search the help pages

    -

    npm-init(3)

    -

    Interactively create a package.json file

    -

    npm-install(3)

    -

    install a package programmatically

    - -

    Symlink a package folder

    -

    npm-load(3)

    -

    Load config settings

    -

    npm-ls(3)

    -

    List installed packages

    -

    npm-outdated(3)

    -

    Check for outdated packages

    -

    npm-owner(3)

    -

    Manage package owners

    -

    npm-pack(3)

    -

    Create a tarball from a package

    -

    npm-ping(3)

    -

    Ping npm registry

    -

    npm-prefix(3)

    -

    Display prefix

    -

    npm-prune(3)

    -

    Remove extraneous packages

    -

    npm-publish(3)

    -

    Publish a package

    -

    npm-rebuild(3)

    -

    Rebuild a package

    -

    npm-repo(3)

    -

    Open package repository page in the browser

    -

    npm-restart(3)

    -

    Restart a package

    -

    npm-root(3)

    -

    Display npm root

    -

    npm-run-script(3)

    -

    Run arbitrary package scripts

    -

    npm-search(3)

    -

    Search for packages

    -

    npm-shrinkwrap(3)

    -

    programmatically generate package shrinkwrap file

    -

    npm-start(3)

    -

    Start a package

    -

    npm-stop(3)

    -

    Stop a package

    -

    npm-tag(3)

    -

    Tag a published version

    -

    npm-test(3)

    -

    Test a package

    -

    npm-uninstall(3)

    -

    uninstall a package programmatically

    -

    npm-unpublish(3)

    -

    Remove a package from the registry

    -

    npm-update(3)

    -

    Update a package

    -

    npm-version(3)

    -

    Bump a package version

    -

    npm-view(3)

    -

    View registry info

    -

    npm-whoami(3)

    -

    Display npm username

    Files

    File system structures npm uses

    npm-folders(5)

    @@ -220,8 +138,6 @@

    Frequently Asked Questions

    npm-index(7)

    Index of all npm documentation

    -

    npm-orgs(7)

    -

    Working with Teams & Orgs

    npm-registry(7)

    The JavaScript Package Registry

    npm-scope(7)

    @@ -244,5 +160,5 @@        - + diff --git a/deps/npm/html/doc/misc/npm-coding-style.html b/deps/npm/html/doc/misc/npm-coding-style.html index ac3c95c105c9331883527555ff761c2eb562cbdd..ef9d62dca79de5166be483efe0de93876c0d0e5a 100644 --- a/deps/npm/html/doc/misc/npm-coding-style.html +++ b/deps/npm/html/doc/misc/npm-coding-style.html @@ -147,5 +147,5 @@ set to anything."

           - + diff --git a/deps/npm/html/doc/misc/npm-config.html b/deps/npm/html/doc/misc/npm-config.html index 0fd36894c9d06f34f03a15f885a003778d9ff5ef..e715e0541eb3cfa539c487b626ba79d10b75f35a 100644 --- a/deps/npm/html/doc/misc/npm-config.html +++ b/deps/npm/html/doc/misc/npm-config.html @@ -30,7 +30,7 @@ same.

    • per-project config file (/path/to/my/project/.npmrc)
    • per-user config file (~/.npmrc)
    • -
    • global config file ($PREFIX/npmrc)
    • +
    • global config file ($PREFIX/etc/npmrc)
    • npm builtin config file (/path/to/npm/npmrc)

    See npmrc(5) for more details.

    @@ -107,6 +107,13 @@ you want your scoped package to be publicly viewable (and installable) set

    Force npm to always require authentication when accessing the registry, even for GET requests.

    +

    also

    +
      +
    • Default: null
    • +
    • Type: String
    • +
    +

    When "dev" or "development" and running local npm shrinkwrap, +npm outdated, or npm update, is an alias for --dev.

    • Default: true
    • @@ -226,6 +233,16 @@ e.g., npm outdated --depth 9999

      Install dev-dependencies along with packages.

      Note that dev-dependencies are also installed if the npat flag is set.

      +

      dry-run

      +
        +
      • Default: false
      • +
      • Type: Boolean
      • +
      +

      Indicates that you don't want npm to make any changes and that it should +only report what it would have done. This can be passed into any of the +commands that modify your local installation, eg, install, update, +dedupe, uninstall. This is NOT currently honored by network related +commands, eg dist-tags, owner, publish, etc.

      editor

      • Default: EDITOR environment variable if set, or "vi" on Posix, @@ -483,6 +500,20 @@ colored output if it is a TTY.

      A node module to require() when npm loads. Useful for programmatic usage.

      +

      only

      +
        +
      • Default: null
      • +
      • Type: String
      • +
      +

      When "dev" or "development" and running local npm install without any +arguments, only devDependencies (and their dependencies) are installed.

      +

      When "dev" or "development" and running local npm ls, npm outdated, or +npm update, is an alias for --dev.

      +

      When "prod" or "production" and running local npm install without any +arguments, only non-devDependencies (and their dependencies) are +installed.

      +

      When "prod" or "production" and running local npm ls, npm outdated, or +npm update, is an alias for --production.

      optional

      • Default: true
      • @@ -516,6 +547,14 @@ it forces non-global commands to run in the specified folder.

        local npm install without any arguments.
      • Set the NODE_ENV="production" for lifecycle scripts.
      • +

        progress

        +
          +
        • Default: true
        • +
        • Type: Boolean
        • +
        +

        When set to true, npm will display a progress bar during time intensive +operations, if process.stderr is a TTY.

        +

        Set to false to suppress the progress bar.

        proprietary-attribs

        • Default: true
        • @@ -663,15 +702,6 @@ installing.

          using -s to add a signature.

          Note that git requires you to have set up GPG keys in your git configs for this to work properly.

          -

          spin

          -
            -
          • Default: true
          • -
          • Type: Boolean or "always"
          • -
          -

          When set to true, npm will display an ascii spinner while it is doing -things, if process.stderr is a TTY.

          -

          Set to false to suppress the spinner, or set to always to output -the spinner even for non-TTY outputs.

          strict-ssl

          • Default: true
          • @@ -709,7 +739,7 @@ particular, use care when overriding this setting for public packages.

            on success, but left behind on failure for forensic purposes.

            unicode

              -
            • Default: true
            • +
            • Default: true on windows and mac/unix systems with a unicode locale
            • Type: Boolean

            When set to true, npm uses unicode characters in the tree output. When @@ -799,5 +829,5 @@ exit successfully.

                   - + diff --git a/deps/npm/html/doc/misc/npm-developers.html b/deps/npm/html/doc/misc/npm-developers.html index 03d1a8eda0d1c054dbd8baf1e8b891c8e9e29a5d..f291fb4e1d7a1b9228c19c650b4fc57a99a782b5 100644 --- a/deps/npm/html/doc/misc/npm-developers.html +++ b/deps/npm/html/doc/misc/npm-developers.html @@ -195,5 +195,5 @@ from a fresh checkout.

                   - + diff --git a/deps/npm/html/doc/misc/npm-disputes.html b/deps/npm/html/doc/misc/npm-disputes.html index cf739f6b1c5e807887414ffcb596ee328cde7dd4..d7c759708552065b7182f70e988abfeff4048e67 100644 --- a/deps/npm/html/doc/misc/npm-disputes.html +++ b/deps/npm/html/doc/misc/npm-disputes.html @@ -13,7 +13,7 @@

            SYNOPSIS

            1. Get the author email with npm owner ls <pkgname>
            2. -
            3. Email the author, CC support@npmjs.com
            4. +
            5. Email the author, CC support@npmjs.com
            6. 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 @@ Joe's appropriate course of action in each case is the same.

            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.)
          • @@ -112,5 +112,5 @@ things into it.        - + diff --git a/deps/npm/html/doc/misc/npm-faq.html b/deps/npm/html/doc/misc/npm-faq.html index eb017f3001274cb12776509b68e86a379f2d9fc9..a6eaaaedba4b3f3212e4acca2c04af4226443b1a 100644 --- a/deps/npm/html/doc/misc/npm-faq.html +++ b/deps/npm/html/doc/misc/npm-faq.html @@ -237,7 +237,7 @@ that has a package.json in its root, or a git url.

            To check if the registry is down, open up https://registry.npmjs.org/ in a web browser. This will also tell you if you are just unable to access the internet for some reason.

            -

            If the registry IS down, let us know by emailing support@npmjs.com +

            If the registry IS down, let us know by emailing support@npmjs.com or posting an issue at https://github.com/npm/npm/issues. If it's down for the world (and not just on your local network) then we're probably already being pinged about it.

            @@ -308,5 +308,5 @@ good folks at npm, Inc.

                   - + diff --git a/deps/npm/html/doc/misc/npm-index.html b/deps/npm/html/doc/misc/npm-index.html index 2f7381b625bca06eb5d8cd471fba1172928e434b..d91644ad5dbd75653e53f04b36ac4da922acf09d 100644 --- a/deps/npm/html/doc/misc/npm-index.html +++ b/deps/npm/html/doc/misc/npm-index.html @@ -80,8 +80,6 @@

            Open package repository page in the browser

            npm-restart(1)

            Restart a package

            -

            npm-rm(1)

            -

            Remove a package

            npm-root(1)

            Display npm root

            npm-run-script(1)

            @@ -118,86 +116,6 @@

            Display npm username

            API Documentation

            Using npm in your Node programs

            -

            npm(3)

            -

            javascript package manager

            -

            npm-bin(3)

            -

            Display npm bin folder

            -

            npm-bugs(3)

            -

            Bugs for a package in a web browser maybe

            -

            npm-cache(3)

            -

            manage the npm cache programmatically

            -

            npm-commands(3)

            -

            npm commands

            -

            npm-config(3)

            -

            Manage the npm configuration files

            -

            npm-deprecate(3)

            -

            Deprecate a version of a package

            -

            npm-docs(3)

            -

            Docs for a package in a web browser maybe

            -

            npm-edit(3)

            -

            Edit an installed package

            -

            npm-explore(3)

            -

            Browse an installed package

            -

            npm-help-search(3)

            -

            Search the help pages

            -

            npm-init(3)

            -

            Interactively create a package.json file

            -

            npm-install(3)

            -

            install a package programmatically

            - -

            Symlink a package folder

            -

            npm-load(3)

            -

            Load config settings

            -

            npm-ls(3)

            -

            List installed packages

            -

            npm-outdated(3)

            -

            Check for outdated packages

            -

            npm-owner(3)

            -

            Manage package owners

            -

            npm-pack(3)

            -

            Create a tarball from a package

            -

            npm-ping(3)

            -

            Ping npm registry

            -

            npm-prefix(3)

            -

            Display prefix

            -

            npm-prune(3)

            -

            Remove extraneous packages

            -

            npm-publish(3)

            -

            Publish a package

            -

            npm-rebuild(3)

            -

            Rebuild a package

            -

            npm-repo(3)

            -

            Open package repository page in the browser

            -

            npm-restart(3)

            -

            Restart a package

            -

            npm-root(3)

            -

            Display npm root

            -

            npm-run-script(3)

            -

            Run arbitrary package scripts

            -

            npm-search(3)

            -

            Search for packages

            -

            npm-shrinkwrap(3)

            -

            programmatically generate package shrinkwrap file

            -

            npm-start(3)

            -

            Start a package

            -

            npm-stop(3)

            -

            Stop a package

            -

            npm-tag(3)

            -

            Tag a published version

            -

            npm-test(3)

            -

            Test a package

            -

            npm-uninstall(3)

            -

            uninstall a package programmatically

            -

            npm-unpublish(3)

            -

            Remove a package from the registry

            -

            npm-update(3)

            -

            Update a package

            -

            npm-version(3)

            -

            Bump a package version

            -

            npm-view(3)

            -

            View registry info

            -

            npm-whoami(3)

            -

            Display npm username

            Files

            File system structures npm uses

            npm-folders(5)

            @@ -220,8 +138,6 @@

            Frequently Asked Questions

            npm-index(7)

            Index of all npm documentation

            -

            npm-orgs(7)

            -

            Working with Teams & Orgs

            npm-registry(7)

            The JavaScript Package Registry

            npm-scope(7)

            @@ -244,5 +160,5 @@        - + diff --git a/deps/npm/html/doc/misc/npm-orgs.html b/deps/npm/html/doc/misc/npm-orgs.html index 8c6e768c25c3aa7d8a3dbf444272d389da9177be..2d92acc116d4b84e3e84c144dc4da6816de24737 100644 --- a/deps/npm/html/doc/misc/npm-orgs.html +++ b/deps/npm/html/doc/misc/npm-orgs.html @@ -86,4 +86,4 @@        - + diff --git a/deps/npm/html/doc/misc/npm-registry.html b/deps/npm/html/doc/misc/npm-registry.html index a622e530491129acb8c9906e610e7041a350e3b0..00065142cebe1d86094d2e6168397cc17910777f 100644 --- a/deps/npm/html/doc/misc/npm-registry.html +++ b/deps/npm/html/doc/misc/npm-registry.html @@ -70,5 +70,5 @@ effectively implement the entire CouchDB API anyway.

                   - + diff --git a/deps/npm/html/doc/misc/npm-scope.html b/deps/npm/html/doc/misc/npm-scope.html index a2ac6463331b57e0f804a64665bac9e2335ec39b..de22c23db4702bc481c348231cf741a3b3bf94df 100644 --- a/deps/npm/html/doc/misc/npm-scope.html +++ b/deps/npm/html/doc/misc/npm-scope.html @@ -91,5 +91,5 @@ that registry instead.

                   - + diff --git a/deps/npm/html/doc/misc/npm-scripts.html b/deps/npm/html/doc/misc/npm-scripts.html index 580535d2c5101b3a98b70f513a9df903de8ceb84..62100d82606e6fe7d6d229907ddaece611507518 100644 --- a/deps/npm/html/doc/misc/npm-scripts.html +++ b/deps/npm/html/doc/misc/npm-scripts.html @@ -207,5 +207,5 @@ scripts is for compilation which must be done on the target architecture.        - + diff --git a/deps/npm/html/doc/misc/removing-npm.html b/deps/npm/html/doc/misc/removing-npm.html index dc23b860d8d63f2e787bbe71071155793d3e8a4c..c41aa6d71d0f6559d31934a543bc0307bdc711c4 100644 --- a/deps/npm/html/doc/misc/removing-npm.html +++ b/deps/npm/html/doc/misc/removing-npm.html @@ -57,5 +57,5 @@ modules. To track those down, you can do the following:

                   - + diff --git a/deps/npm/html/doc/misc/semver.html b/deps/npm/html/doc/misc/semver.html index de275ef6e922e626d124683dafda54f322cf63a1..3207ecacdbe449e208b9c477acd6a66119246b51 100644 --- a/deps/npm/html/doc/misc/semver.html +++ b/deps/npm/html/doc/misc/semver.html @@ -282,5 +282,5 @@ range, use the satisfies(version, range) function.

                   - + diff --git a/deps/npm/html/static/toc.js b/deps/npm/html/static/toc.js index 2cfebd0aa968b7aecda730f2a3d5f8050b168c95..7551e47efdf48e0bc0ca14811e04107120a49141 100644 --- a/deps/npm/html/static/toc.js +++ b/deps/npm/html/static/toc.js @@ -1,29 +1,29 @@ ;(function () { -var wrapper = document.getElementById("wrapper") -var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0) - .filter(function (el) { - return el.parentNode === wrapper - && el.tagName.match(/H[1-6]/) - && el.id - }) -var l = 2 - , toc = document.createElement("ul") -toc.innerHTML = els.map(function (el) { - var i = el.tagName.charAt(1) - , out = "" - while (i > l) { - out += "
              " - l ++ - } - while (i < l) { - out += "
            " - l -- - } - out += "
          • " + - ( el.innerText || el.text || el.innerHTML) - + "" - return out -}).join("\n") -toc.id = "toc" -document.body.appendChild(toc) -})(); + var wrapper = document.getElementById('wrapper') + var els = Array.prototype.slice.call(wrapper.getElementsByTagName('*'), 0) + .filter(function (el) { + return el.parentNode === wrapper && + el.tagName.match(/H[1-6]/) && + el.id + }) + var l = 2 + var toc = document.createElement('ul') + toc.innerHTML = els.map(function (el) { + var i = el.tagName.charAt(1) + var out = '' + while (i > l) { + out += '
              ' + l++ + } + while (i < l) { + out += '
            ' + l-- + } + out += '
          • ' + + (el.innerText || el.text || el.innerHTML) + + '' + return out + }).join('\n') + toc.id = 'toc' + document.body.appendChild(toc) +})() diff --git a/deps/npm/lib/access.js b/deps/npm/lib/access.js index 790a760cb72201d71fd8e52f53c47e84044d6fd3..25a482a20e3cdba04b2f9cab69116d6a517623f2 100644 --- a/deps/npm/lib/access.js +++ b/deps/npm/lib/access.js @@ -35,6 +35,7 @@ access.completion = function (opts, cb) { } else { return cb(null, []) } + break case 'public': case 'restricted': case 'ls-packages': diff --git a/deps/npm/lib/adduser.js b/deps/npm/lib/adduser.js index 367f3ba0d927546516ffb76db31310f3699e1a31..630a2c5e6f17979ddb13402279babb2304295f5e 100644 --- a/deps/npm/lib/adduser.js +++ b/deps/npm/lib/adduser.js @@ -1,30 +1,32 @@ - module.exports = adduser -var log = require("npmlog") - , npm = require("./npm.js") - , read = require("read") - , userValidate = require("npm-user-validate") - , crypto +var log = require('npmlog') +var npm = require('./npm.js') +var read = require('read') +var userValidate = require('npm-user-validate') +var crypto try { - crypto = require("crypto") + crypto = require('crypto') } catch (ex) {} -adduser.usage = "npm adduser\nThen enter stuff at the prompts" +adduser.usage = 'npm adduser [--registry=url] [--scope=@orgname] [--always-auth]' function adduser (args, cb) { - npm.spinner.stop() - if (!crypto) return cb(new Error( - "You must compile node with ssl support to use the adduser feature")) - - var creds = npm.config.getCredentialsByURI(npm.config.get("registry")) - var c = { u : creds.username || "" - , p : creds.password || "" - , e : creds.email || "" - } - , u = {} - , fns = [readUsername, readPassword, readEmail, save] + if (!crypto) { + return cb(new Error( + 'You must compile node with ssl support to use the adduser feature' + )) + } + + var creds = npm.config.getCredentialsByURI(npm.config.get('registry')) + var c = { + u: creds.username || '', + p: creds.password || '', + e: creds.email || '' + } + var u = {} + var fns = [readUsername, readPassword, readEmail, save] loop() function loop (er) { @@ -37,9 +39,9 @@ function adduser (args, cb) { function readUsername (c, u, cb) { var v = userValidate.username - read({prompt: "Username: ", default: c.u || ""}, function (er, un) { + read({prompt: 'Username: ', default: c.u || ''}, function (er, un) { if (er) { - return cb(er.message === "cancelled" ? er.message : er) + return cb(er.message === 'cancelled' ? er.message : er) } // make sure it's valid. we have to do this here, because @@ -68,17 +70,17 @@ function readPassword (c, u, cb) { var prompt if (c.p && !c.changed) { - prompt = "Password: (or leave unchanged) " + prompt = 'Password: (or leave unchanged) ' } else { - prompt = "Password: " + prompt = 'Password: ' } read({prompt: prompt, silent: true}, function (er, pw) { if (er) { - return cb(er.message === "cancelled" ? er.message : er) + return cb(er.message === 'cancelled' ? er.message : er) } - if (!c.changed && pw === "") { + if (!c.changed && pw === '') { // when the username was not changed, // empty response means "use the old value" pw = c.p @@ -102,10 +104,10 @@ function readPassword (c, u, cb) { function readEmail (c, u, cb) { var v = userValidate.email - var r = { prompt: "Email: (this IS public) ", default: c.e || "" } + var r = { prompt: 'Email: (this IS public) ', default: c.e || '' } read(r, function (er, em) { if (er) { - return cb(er.message === "cancelled" ? er.message : er) + return cb(er.message === 'cancelled' ? er.message : er) } if (!em) { @@ -124,52 +126,48 @@ function readEmail (c, u, cb) { } function save (c, u, cb) { - npm.spinner.start() - // save existing configs, but yank off for this PUT - var uri = npm.config.get("registry") - var scope = npm.config.get("scope") + var uri = npm.config.get('registry') + var scope = npm.config.get('scope') // there may be a saved scope and no --registry (for login) if (scope) { - if (scope.charAt(0) !== "@") scope = "@" + scope + if (scope.charAt(0) !== '@') scope = '@' + scope - var scopedRegistry = npm.config.get(scope + ":registry") - var cliRegistry = npm.config.get("registry", "cli") + var scopedRegistry = npm.config.get(scope + ':registry') + var cliRegistry = npm.config.get('registry', 'cli') if (scopedRegistry && !cliRegistry) uri = scopedRegistry } var params = { - auth : { - username : u.u, - password : u.p, - email : u.e + auth: { + username: u.u, + password: u.p, + email: u.e } } npm.registry.adduser(uri, params, function (er, doc) { - npm.spinner.stop() if (er) return cb(er) // don't want this polluting the configuration - npm.config.del("_token", "user") + npm.config.del('_token', 'user') - if (scope) npm.config.set(scope + ":registry", uri, "user") + if (scope) npm.config.set(scope + ':registry', uri, 'user') if (doc && doc.token) { npm.config.setCredentialsByURI(uri, { - token : doc.token + token: doc.token }) - } - else { + } else { npm.config.setCredentialsByURI(uri, { - username : u.u, - password : u.p, - email : u.e, - alwaysAuth : npm.config.get("always-auth") + username: u.u, + password: u.p, + email: u.e, + alwaysAuth: npm.config.get('always-auth') }) } - log.info("adduser", "Authorized user %s", u.u) - npm.config.save("user", cb) + log.info('adduser', 'Authorized user %s', u.u) + npm.config.save('user', cb) }) } diff --git a/deps/npm/lib/bin.js b/deps/npm/lib/bin.js index 5465112d8891e88b370b5c70e20c97617cfac231..2e02617d35a790d1563393546bb78782b0fa80d7 100644 --- a/deps/npm/lib/bin.js +++ b/deps/npm/lib/bin.js @@ -1,19 +1,22 @@ module.exports = bin -var npm = require("./npm.js") -var osenv = require("osenv") +var npm = require('./npm.js') +var osenv = require('osenv') -bin.usage = "npm bin\nnpm bin -g\n(just prints the bin folder)" +bin.usage = 'npm bin [--global]' function bin (args, silent, cb) { - if (typeof cb !== "function") cb = silent, silent = false + if (typeof cb !== 'function') { + cb = silent + silent = false + } var b = npm.bin - , PATH = osenv.path() + var PATH = osenv.path() if (!silent) console.log(b) process.nextTick(cb.bind(this, null, b)) - if (npm.config.get("global") && PATH.indexOf(b) === -1) { - npm.config.get("logstream").write("(not in PATH env variable)\n") + if (npm.config.get('global') && PATH.indexOf(b) === -1) { + npm.config.get('logstream').write('(not in PATH env variable)\n') } } diff --git a/deps/npm/lib/bugs.js b/deps/npm/lib/bugs.js index 306d9bb4bfc9febce0d698a47b36d1e51c44e1f6..d42e68faa5cde5eb6ac97e26d345fc3eb79e6276 100644 --- a/deps/npm/lib/bugs.js +++ b/deps/npm/lib/bugs.js @@ -1,16 +1,11 @@ - module.exports = bugs -bugs.usage = "npm bugs " +bugs.usage = 'npm bugs []' -var npm = require("./npm.js") - , log = require("npmlog") - , opener = require("opener") - , path = require("path") - , readJson = require("read-package-json") - , npa = require("npm-package-arg") - , fs = require("fs") - , mapToRegistry = require("./utils/map-to-registry.js") +var npm = require('./npm.js') +var log = require('npmlog') +var opener = require('opener') +var fetchPackageMetadata = require('./fetch-package-metadata.js') bugs.completion = function (opts, cb) { // FIXME: there used to be registry completion here, but it stopped making @@ -19,51 +14,15 @@ bugs.completion = function (opts, cb) { } function bugs (args, cb) { - var n = args.length && npa(args[0]).name || "." - fs.stat(n, function (er, s) { - if (er) { - if (er.code === "ENOENT") return callRegistry(n, cb) - return cb(er) - } - if (!s.isDirectory()) return callRegistry(n, cb) - readJson(path.resolve(n, "package.json"), function(er, d) { - if (er) return cb(er) - getUrlAndOpen(d, cb) - }) - }) -} - -function getUrlAndOpen (d, cb) { - var repo = d.repository || d.repositories - , url - if (d.bugs) { - url = (typeof d.bugs === "string") ? d.bugs : d.bugs.url - } - else if (repo) { - if (Array.isArray(repo)) repo = repo.shift() - if (repo.hasOwnProperty("url")) repo = repo.url - log.verbose("bugs", "repository", repo) - if (repo && repo.match(/^(https?:\/\/|git(:\/\/|@))github.com/)) { - url = repo.replace(/^git(@|:\/\/)/, "https://") - .replace(/^https?:\/\/github.com:/, "https://github.com/") - .replace(/\.git$/, "")+"/issues" - } - } - if (!url) { - url = "https://www.npmjs.org/package/" + d.name - } - log.silly("bugs", "url", url) - opener(url, { command: npm.config.get("browser") }, cb) -} - -function callRegistry (name, cb) { - mapToRegistry(name, npm.config, function (er, uri, auth) { + var n = args.length ? args[0] : '.' + fetchPackageMetadata(n, '.', function (er, d) { if (er) return cb(er) - npm.registry.get(uri + "/latest", { auth : auth }, function (er, d) { - if (er) return cb(er) - - getUrlAndOpen(d, cb) - }) + var url = d.bugs && ((typeof d.bugs === 'string') ? d.bugs : d.bugs.url) + if (!url) { + url = 'https://www.npmjs.org/package/' + d.name + } + log.silly('bugs', 'url', url) + opener(url, { command: npm.config.get('browser') }, cb) }) } diff --git a/deps/npm/lib/build.js b/deps/npm/lib/build.js index 1f2d2efceb46180ba75d59098f8dd67aba3be62b..8d62cb61f80f229eb2d0f10e673b08de88504739 100644 --- a/deps/npm/lib/build.js +++ b/deps/npm/lib/build.js @@ -7,100 +7,112 @@ // This runs AFTER install or link are completed. -var npm = require("./npm.js") - , log = require("npmlog") - , chain = require("slide").chain - , fs = require("graceful-fs") - , path = require("path") - , lifecycle = require("./utils/lifecycle.js") - , readJson = require("read-package-json") - , link = require("./utils/link.js") - , linkIfExists = link.ifExists - , cmdShim = require("cmd-shim") - , cmdShimIfExists = cmdShim.ifExists - , asyncMap = require("slide").asyncMap - , ini = require("ini") - , writeFile = require("write-file-atomic") +var npm = require('./npm.js') +var log = require('npmlog') +var chain = require('slide').chain +var fs = require('graceful-fs') +var path = require('path') +var lifecycle = require('./utils/lifecycle.js') +var readJson = require('read-package-json') +var link = require('./utils/link.js') +var linkIfExists = link.ifExists +var cmdShim = require('cmd-shim') +var cmdShimIfExists = cmdShim.ifExists +var asyncMap = require('slide').asyncMap +var ini = require('ini') +var writeFile = require('write-file-atomic') +var getPackageId = require('./install/get-package-id.js') module.exports = build -build.usage = "npm build \n(this is plumbing)" +build.usage = 'npm build []' build._didBuild = {} build._noLC = {} function build (args, global, didPre, didRB, cb) { - if (typeof cb !== "function") cb = didRB, didRB = false - if (typeof cb !== "function") cb = didPre, didPre = false - if (typeof cb !== "function") { - cb = global, global = npm.config.get("global") + if (typeof cb !== 'function') { + cb = didRB + didRB = false } + if (typeof cb !== 'function') { + cb = didPre + didPre = false + } + if (typeof cb !== 'function') { + cb = global + global = npm.config.get('global') + } + // it'd be nice to asyncMap these, but actually, doing them // in parallel generally munges up the output from node-waf var builder = build_(global, didPre, didRB) - chain(args.map(function (arg) { return function (cb) { - builder(arg, cb) - }}), cb) + chain(args.map(function (arg) { + return function (cb) { + builder(arg, cb) + } + }), cb) } -function build_ (global, didPre, didRB) { return function (folder, cb) { - folder = path.resolve(folder) - if (build._didBuild[folder]) log.info("build", "already built", folder) - build._didBuild[folder] = true - log.info("build", folder) - readJson(path.resolve(folder, "package.json"), function (er, pkg) { - if (er) return cb(er) - chain - ( [ !didPre && [lifecycle, pkg, "preinstall", folder] - , [linkStuff, pkg, folder, global, didRB] - , [writeBuiltinConf, pkg, folder] - , didPre !== build._noLC && [lifecycle, pkg, "install", folder] - , didPre !== build._noLC && [lifecycle, pkg, "postinstall", folder] - , didPre !== build._noLC - && npm.config.get("npat") - && [lifecycle, pkg, "test", folder] ] - , cb ) - }) -}} +function build_ (global, didPre, didRB) { + return function (folder, cb) { + folder = path.resolve(folder) + if (build._didBuild[folder]) log.info('build', 'already built', folder) + build._didBuild[folder] = true + log.info('build', folder) + readJson(path.resolve(folder, 'package.json'), function (er, pkg) { + if (er) return cb(er) + chain([ + !didPre && [lifecycle, pkg, 'preinstall', folder], + [linkStuff, pkg, folder, global, didRB], + [writeBuiltinConf, pkg, folder], + didPre !== build._noLC && [lifecycle, pkg, 'install', folder], + didPre !== build._noLC && [lifecycle, pkg, 'postinstall', folder], + didPre !== build._noLC && npm.config.get('npat') && [lifecycle, pkg, 'test', folder] + ], + cb) + }) + } +} -function writeBuiltinConf (pkg, folder, cb) { +var writeBuiltinConf = build.writeBuiltinConf = function (pkg, folder, cb) { // the builtin config is "sticky". Any time npm installs // itself globally, it puts its builtin config file there var parent = path.dirname(folder) var dir = npm.globalDir - if (pkg.name !== "npm" || - !npm.config.get("global") || + if (pkg.name !== 'npm' || + !npm.config.get('global') || !npm.config.usingBuiltin || dir !== parent) { return cb() } var data = ini.stringify(npm.config.sources.builtin.data) - writeFile(path.resolve(folder, "npmrc"), data, cb) + writeFile(path.resolve(folder, 'npmrc'), data, cb) } -function linkStuff (pkg, folder, global, didRB, cb) { +var linkStuff = build.linkStuff = function (pkg, folder, global, didRB, cb) { // allow to opt out of linking binaries. - if (npm.config.get("bin-links") === false) return cb() + if (npm.config.get('bin-links') === false) return cb() // if it's global, and folder is in {prefix}/node_modules, // then bins are in {prefix}/bin // otherwise, then bins are in folder/../.bin - var parent = pkg.name[0] === '@' ? path.dirname(path.dirname(folder)) : path.dirname(folder) + var parent = pkg.name && pkg.name[0] === '@' ? path.dirname(path.dirname(folder)) : path.dirname(folder) var gnm = global && npm.globalDir var gtop = parent === gnm - log.info('linkStuff', pkg._id) - log.silly('linkStuff', pkg._id, 'has', parent, 'as its parent node_modules') - if (global) log.silly('linkStuff', pkg._id, 'is part of a global install') - if (gnm) log.silly('linkStuff', pkg._id, 'is installed into a global node_modules') - if (gtop) log.silly('linkStuff', pkg._id, 'is installed into the top-level global node_modules') + log.info('linkStuff', getPackageId(pkg)) + log.silly('linkStuff', getPackageId(pkg), 'has', parent, 'as its parent node_modules') + if (global) log.silly('linkStuff', getPackageId(pkg), 'is part of a global install') + if (gnm) log.silly('linkStuff', getPackageId(pkg), 'is installed into a global node_modules') + if (gtop) log.silly('linkStuff', getPackageId(pkg), 'is installed into the top-level global node_modules') shouldWarn(pkg, folder, global, function () { asyncMap( [linkBins, linkMans, !didRB && rebuildBundles], function (fn, cb) { if (!fn) return cb() - log.verbose(fn.name, pkg._id) + log.verbose(fn.name, getPackageId(pkg)) fn(pkg, folder, parent, gtop, cb) }, cb @@ -108,16 +120,16 @@ function linkStuff (pkg, folder, global, didRB, cb) { }) } -function shouldWarn(pkg, folder, global, cb) { +function shouldWarn (pkg, folder, global, cb) { var parent = path.dirname(folder) - , top = parent === npm.dir - , cwd = npm.localPrefix + var top = parent === npm.dir + var cwd = npm.localPrefix - readJson(path.resolve(cwd, "package.json"), function(er, topPkg) { + readJson(path.resolve(cwd, 'package.json'), function (er, topPkg) { if (er) return cb(er) var linkedPkg = path.basename(cwd) - , currentPkg = path.basename(folder) + var currentPkg = path.basename(folder) // current searched package is the linked package on first call if (linkedPkg !== currentPkg) { @@ -128,7 +140,7 @@ function shouldWarn(pkg, folder, global, cb) { .indexOf(currentPkg) === -1) { if (top && pkg.preferGlobal && !global) { - log.warn("prefer global", pkg._id + " should be installed with -g") + log.warn('prefer global', getPackageId(pkg) + ' should be installed with -g') } } } @@ -138,76 +150,81 @@ function shouldWarn(pkg, folder, global, cb) { } function rebuildBundles (pkg, folder, parent, gtop, cb) { - if (!npm.config.get("rebuild-bundle")) return cb() + if (!npm.config.get('rebuild-bundle')) return cb() var deps = Object.keys(pkg.dependencies || {}) .concat(Object.keys(pkg.devDependencies || {})) - , bundles = pkg.bundleDependencies || pkg.bundledDependencies || [] + var bundles = pkg.bundleDependencies || pkg.bundledDependencies || [] - fs.readdir(path.resolve(folder, "node_modules"), function (er, files) { + fs.readdir(path.resolve(folder, 'node_modules'), function (er, files) { // error means no bundles if (er) return cb() - log.verbose("rebuildBundles", files) + log.verbose('rebuildBundles', files) // don't asyncMap these, because otherwise build script output // gets interleaved and is impossible to read chain(files.filter(function (file) { // rebuild if: // not a .folder, like .bin or .hooks - return !file.match(/^[\._-]/) + return !file.match(/^[\._-]/) && // not some old 0.x style bundle - && file.indexOf("@") === -1 + file.indexOf('@') === -1 && // either not a dep, or explicitly bundled - && (deps.indexOf(file) === -1 || bundles.indexOf(file) !== -1) + (deps.indexOf(file) === -1 || bundles.indexOf(file) !== -1) }).map(function (file) { - file = path.resolve(folder, "node_modules", file) + file = path.resolve(folder, 'node_modules', file) return function (cb) { if (build._didBuild[file]) return cb() - log.verbose("rebuild bundle", file) + log.verbose('rebuild bundle', file) // if file is not a package dir, then don't do it. - fs.lstat(path.resolve(file, "package.json"), function (er) { + fs.lstat(path.resolve(file, 'package.json'), function (er) { if (er) return cb() build_(false)(file, cb) }) - }}), cb) + } + }), cb) }) } function linkBins (pkg, folder, parent, gtop, cb) { - if (!pkg.bin || !gtop && path.basename(parent) !== "node_modules") { + if (!pkg.bin || !gtop && path.basename(parent) !== 'node_modules') { return cb() } var binRoot = gtop ? npm.globalBin - : path.resolve(parent, ".bin") - log.verbose("link bins", [pkg.bin, binRoot, gtop]) + : path.resolve(parent, '.bin') + log.verbose('link bins', [pkg.bin, binRoot, gtop]) asyncMap(Object.keys(pkg.bin), function (b, cb) { - linkBin( path.resolve(folder, pkg.bin[b]) - , path.resolve(binRoot, b) - , gtop && folder - , function (er) { - if (er) return cb(er) - // bins should always be executable. - // XXX skip chmod on windows? - var src = path.resolve(folder, pkg.bin[b]) - fs.chmod(src, npm.modes.exec, function (er) { - if (er && er.code === "ENOENT" && npm.config.get("ignore-scripts")) { - return cb() - } - if (er || !gtop) return cb(er) - var dest = path.resolve(binRoot, b) - , out = npm.config.get("parseable") - ? dest + "::" + src + ":BINFILE" - : dest + " -> " + src - console.log(out) - cb() - }) - }) + linkBin( + path.resolve(folder, pkg.bin[b]), + path.resolve(binRoot, b), + gtop && folder, + function (er) { + if (er) return cb(er) + // bins should always be executable. + // XXX skip chmod on windows? + var src = path.resolve(folder, pkg.bin[b]) + fs.chmod(src, npm.modes.exec, function (er) { + if (er && er.code === 'ENOENT' && npm.config.get('ignore-scripts')) { + return cb() + } + if (er || !gtop) return cb(er) + var dest = path.resolve(binRoot, b) + var out = npm.config.get('parseable') + ? dest + '::' + src + ':BINFILE' + : dest + ' -> ' + src + log.clearProgress() + console.log(out) + log.showProgress() + cb() + }) + } + ) }, cb) } function linkBin (from, to, gently, cb) { - if (process.platform !== "win32") { + if (process.platform !== 'win32') { return linkIfExists(from, to, gently, cb) } else { return cmdShimIfExists(from, to, cb) @@ -215,10 +232,10 @@ function linkBin (from, to, gently, cb) { } function linkMans (pkg, folder, parent, gtop, cb) { - if (!pkg.man || !gtop || process.platform === "win32") return cb() + if (!pkg.man || !gtop || process.platform === 'win32') return cb() - var manRoot = path.resolve(npm.config.get("prefix"), "share", "man") - log.verbose("linkMans", "man files are", pkg.man, "in", manRoot) + var manRoot = path.resolve(npm.config.get('prefix'), 'share', 'man') + log.verbose('linkMans', 'man files are', pkg.man, 'in', manRoot) // make sure that the mans are unique. // otherwise, if there are dupes, it'll fail with EEXIST @@ -231,14 +248,14 @@ function linkMans (pkg, folder, parent, gtop, cb) { }) asyncMap(pkg.man, function (man, cb) { - if (typeof man !== "string") return cb() - log.silly("linkMans", "preparing to link", man) + if (typeof man !== 'string') return cb() + log.silly('linkMans', 'preparing to link', man) var parseMan = man.match(/(.*\.([0-9]+)(\.gz)?)$/) if (!parseMan) { return cb(new Error( - man+" is not a valid name for a man file. " + - "Man files must end with a number, " + - "and optionally a .gz suffix if they are compressed." + man + ' is not a valid name for a man file. ' + + 'Man files must end with a number, ' + + 'and optionally a .gz suffix if they are compressed.' )) } @@ -246,7 +263,7 @@ function linkMans (pkg, folder, parent, gtop, cb) { var sxn = parseMan[2] var bn = path.basename(stem) var manSrc = path.resolve(folder, man) - var manDest = path.join(manRoot, "man" + sxn, bn) + var manDest = path.join(manRoot, 'man' + sxn, bn) linkIfExists(manSrc, manDest, gtop && folder, cb) }, cb) diff --git a/deps/npm/lib/cache.js b/deps/npm/lib/cache.js index 2e11be32f862fab5194b700ef58a044401014c84..b4b04819c98b9e1fd125735594722379dfbf8ed1 100644 --- a/deps/npm/lib/cache.js +++ b/deps/npm/lib/cache.js @@ -60,54 +60,54 @@ cache.unpack = unpack cache.clean = clean cache.read = read -var npm = require("./npm.js") - , fs = require("graceful-fs") - , writeFileAtomic = require("write-file-atomic") - , assert = require("assert") - , rm = require("./utils/gently-rm.js") - , readJson = require("read-package-json") - , log = require("npmlog") - , path = require("path") - , asyncMap = require("slide").asyncMap - , tar = require("./utils/tar.js") - , fileCompletion = require("./utils/completion/file-completion.js") - , deprCheck = require("./utils/depr-check.js") - , addNamed = require("./cache/add-named.js") - , addLocal = require("./cache/add-local.js") - , addRemoteTarball = require("./cache/add-remote-tarball.js") - , addRemoteGit = require("./cache/add-remote-git.js") - , inflight = require("inflight") - , realizePackageSpecifier = require("realize-package-specifier") - , npa = require("npm-package-arg") - , getStat = require("./cache/get-stat.js") - , cachedPackageRoot = require("./cache/cached-package-root.js") - , mapToRegistry = require("./utils/map-to-registry.js") - -cache.usage = "npm cache add " - + "\nnpm cache add " - + "\nnpm cache add " - + "\nnpm cache add " - + "\nnpm cache add @" - + "\nnpm cache ls []" - + "\nnpm cache clean [[@]]" +var npm = require('./npm.js') +var fs = require('graceful-fs') +var writeFileAtomic = require('write-file-atomic') +var assert = require('assert') +var rm = require('./utils/gently-rm.js') +var readJson = require('read-package-json') +var log = require('npmlog') +var path = require('path') +var asyncMap = require('slide').asyncMap +var tar = require('./utils/tar.js') +var fileCompletion = require('./utils/completion/file-completion.js') +var deprCheck = require('./utils/depr-check.js') +var addNamed = require('./cache/add-named.js') +var addLocal = require('./cache/add-local.js') +var addRemoteTarball = require('./cache/add-remote-tarball.js') +var addRemoteGit = require('./cache/add-remote-git.js') +var inflight = require('inflight') +var realizePackageSpecifier = require('realize-package-specifier') +var npa = require('npm-package-arg') +var getStat = require('./cache/get-stat.js') +var cachedPackageRoot = require('./cache/cached-package-root.js') +var mapToRegistry = require('./utils/map-to-registry.js') + +cache.usage = 'npm cache add ' + + '\nnpm cache add ' + + '\nnpm cache add ' + + '\nnpm cache add ' + + '\nnpm cache add @' + + '\nnpm cache ls []' + + '\nnpm cache clean [[@]]' cache.completion = function (opts, cb) { var argv = opts.conf.argv.remain if (argv.length === 2) { - return cb(null, ["add", "ls", "clean"]) + return cb(null, ['add', 'ls', 'clean']) } switch (argv[2]) { - case "clean": - case "ls": + case 'clean': + case 'ls': // cache and ls are easy, because the completion is // what ls_ returns anyway. // just get the partial words, minus the last path part - var p = path.dirname(opts.partialWords.slice(3).join("/")) - if (p === ".") p = "" + var p = path.dirname(opts.partialWords.slice(3).join('/')) + if (p === '.') p = '' return ls_(p, 2, cb) - case "add": + case 'add': // Same semantics as install and publish. return npm.commands.install.completion(opts, cb) } @@ -116,10 +116,10 @@ cache.completion = function (opts, cb) { function cache (args, cb) { var cmd = args.shift() switch (cmd) { - case "rm": case "clear": case "clean": return clean(args, cb) - case "list": case "sl": case "ls": return ls(args, cb) - case "add": return add(args, npm.prefix, cb) - default: return cb("Usage: "+cache.usage) + case 'rm': case 'clear': case 'clean': return clean(args, cb) + case 'list': case 'sl': case 'ls': return ls(args, cb) + case 'add': return add(args, npm.prefix, cb) + default: return cb('Usage: ' + cache.usage) } } @@ -127,30 +127,30 @@ function cache (args, cb) { // just do a readJson and return. // if they're not, then fetch them from the registry. function read (name, ver, forceBypass, cb) { - assert(typeof name === "string", "must include name of module to install") - assert(typeof cb === "function", "must include callback") + assert(typeof name === 'string', 'must include name of module to install') + assert(typeof cb === 'function', 'must include callback') if (forceBypass === undefined || forceBypass === null) forceBypass = true - var root = cachedPackageRoot({name : name, version : ver}) + var root = cachedPackageRoot({name: name, version: ver}) function c (er, data) { - if (er) log.verbose("cache", "addNamed error for", name+"@"+ver, er) + if (er) log.verbose('cache', 'addNamed error for', name + '@' + ver, er) if (data) deprCheck(data) return cb(er, data) } - if (forceBypass && npm.config.get("force")) { - log.verbose("using force", "skipping cache") + if (forceBypass && npm.config.get('force')) { + log.verbose('using force', 'skipping cache') return addNamed(name, ver, null, c) } - readJson(path.join(root, "package", "package.json"), function (er, data) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) + readJson(path.join(root, 'package', 'package.json'), function (er, data) { + if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) if (data) { - if (!data.name) return cb(new Error("No name provided")) - if (!data.version) return cb(new Error("No version provided")) + if (!data.name) return cb(new Error('No name provided')) + if (!data.version) return cb(new Error('No version provided')) } if (er) return addNamed(name, ver, null, c) @@ -159,33 +159,33 @@ function read (name, ver, forceBypass, cb) { } function normalize (args) { - var normalized = "" + var normalized = '' if (args.length > 0) { var a = npa(args[0]) if (a.name) normalized = a.name - if (a.rawSpec) normalized = [normalized, a.rawSpec].join("/") - if (args.length > 1) normalized = [normalized].concat(args.slice(1)).join("/") + if (a.rawSpec) normalized = [normalized, a.rawSpec].join('/') + if (args.length > 1) normalized = [normalized].concat(args.slice(1)).join('/') } - if (normalized.substr(-1) === "/") { + if (normalized.substr(-1) === '/') { normalized = normalized.substr(0, normalized.length - 1) } normalized = path.normalize(normalized) - log.silly("ls", "normalized", normalized) + log.silly('ls', 'normalized', normalized) return normalized } // npm cache ls [] function ls (args, cb) { - var prefix = npm.config.get("cache") + var prefix = npm.config.get('cache') if (prefix.indexOf(process.env.HOME) === 0) { - prefix = "~" + prefix.substr(process.env.HOME.length) + prefix = '~' + prefix.substr(process.env.HOME.length) } - ls_(normalize(args), npm.config.get("depth"), function (er, files) { + ls_(normalize(args), npm.config.get('depth'), function (er, files) { console.log(files.map(function (f) { return path.join(prefix, f) - }).join("\n").trim()) + }).join('\n').trim()) cb(er, files) }) } @@ -197,7 +197,7 @@ function ls_ (req, depth, cb) { // npm cache clean [] function clean (args, cb) { - assert(typeof cb === "function", "must include callback") + assert(typeof cb === 'function', 'must include callback') if (!args) args = [] @@ -205,15 +205,17 @@ function clean (args, cb) { if (f === npm.cache) { fs.readdir(npm.cache, function (er, files) { if (er) return cb() - asyncMap( files.filter(function (f) { - return npm.config.get("force") || f !== "-" - }).map(function (f) { - return path.join(npm.cache, f) - }) - , rm, cb ) + asyncMap( + files.filter(function (f) { + return npm.config.get('force') || f !== '-' + }).map(function (f) { + return path.join(npm.cache, f) + }), + rm, + cb + ) }) - } - else { + } else { rm(f, cb) } } @@ -223,8 +225,8 @@ function clean (args, cb) { // npm cache add // npm cache add cache.add = function (pkg, ver, where, scrub, cb) { - assert(typeof pkg === "string", "must include name of package to install") - assert(typeof cb === "function", "must include callback") + assert(typeof pkg === 'string', 'must include name of package to install') + assert(typeof cb === 'function', 'must include callback') if (scrub) { return clean([], function (er) { @@ -235,67 +237,63 @@ cache.add = function (pkg, ver, where, scrub, cb) { return add([pkg, ver], where, cb) } - var adding = 0 function add (args, where, cb) { // this is hot code. almost everything passes through here. // the args can be any of: - // ["url"] - // ["pkg", "version"] - // ["pkg@version"] - // ["pkg", "url"] + // ['url'] + // ['pkg', 'version'] + // ['pkg@version'] + // ['pkg', 'url'] // This is tricky, because urls can contain @ // Also, in some cases we get [name, null] rather // that just a single argument. - var usage = "Usage:\n" - + " npm cache add \n" - + " npm cache add @\n" - + " npm cache add \n" - + " npm cache add \n" - , spec + var usage = 'Usage:\n' + + ' npm cache add \n' + + ' npm cache add @\n' + + ' npm cache add \n' + + ' npm cache add \n' + var spec - log.silly("cache add", "args", args) + log.silly('cache add', 'args', args) if (args[1] === undefined) args[1] = null // at this point the args length must ==2 if (args[1] !== null) { - spec = args[0]+"@"+args[1] + spec = args[0] + '@' + args[1] } else if (args.length === 2) { spec = args[0] } - log.verbose("cache add", "spec", spec) + log.verbose('cache add', 'spec', spec) if (!spec) return cb(usage) - if (adding <= 0) { - npm.spinner.start() - } adding++ cb = afterAdd(cb) realizePackageSpecifier(spec, where, function (err, p) { if (err) return cb(err) - log.silly("cache add", "parsed spec", p) + log.silly('cache add', 'parsed spec', p) switch (p.type) { - case "local": - case "directory": + case 'local': + case 'directory': addLocal(p, null, cb) break - case "remote": + case 'remote': // get auth, if possible mapToRegistry(spec, npm.config, function (err, uri, auth) { if (err) return cb(err) - addRemoteTarball(p.spec, {name : p.name}, null, auth, cb) + addRemoteTarball(p.spec, { name: p.name }, null, auth, cb) }) break - case "git": - case "hosted": + case 'git': + case 'hosted': addRemoteGit(p.rawSpec, cb) break default: @@ -307,47 +305,62 @@ function add (args, where, cb) { } function unpack (pkg, ver, unpackTarget, dMode, fMode, uid, gid, cb) { - if (typeof cb !== "function") cb = gid, gid = null - if (typeof cb !== "function") cb = uid, uid = null - if (typeof cb !== "function") cb = fMode, fMode = null - if (typeof cb !== "function") cb = dMode, dMode = null + if (typeof cb !== 'function') { + cb = gid + gid = null + } + if (typeof cb !== 'function') { + cb = uid + uid = null + } + if (typeof cb !== 'function') { + cb = fMode + fMode = null + } + if (typeof cb !== 'function') { + cb = dMode + dMode = null + } read(pkg, ver, false, function (er) { if (er) { - log.error("unpack", "Could not read data for %s", pkg + "@" + ver) + log.error('unpack', 'Could not read data for %s', pkg + '@' + ver) return cb(er) } npm.commands.unbuild([unpackTarget], true, function (er) { if (er) return cb(er) - tar.unpack( path.join(cachedPackageRoot({name : pkg, version : ver}), "package.tgz") - , unpackTarget - , dMode, fMode - , uid, gid - , cb ) + tar.unpack( + path.join(cachedPackageRoot({ name: pkg, version: ver }), 'package.tgz'), + unpackTarget, + dMode, fMode, + uid, gid, + cb + ) }) }) } -function afterAdd (cb) { return function (er, data) { - adding-- - if (adding <= 0) npm.spinner.stop() +function afterAdd (cb) { + return function (er, data) { + adding-- - if (er || !data || !data.name || !data.version) return cb(er, data) - log.silly("cache", "afterAdd", data.name+"@"+data.version) + if (er || !data || !data.name || !data.version) return cb(er, data) + log.silly('cache', 'afterAdd', data.name + '@' + data.version) - // Save the resolved, shasum, etc. into the data so that the next - // time we load from this cached data, we have all the same info. - var pj = path.join(cachedPackageRoot(data), "package", "package.json") + // Save the resolved, shasum, etc. into the data so that the next + // time we load from this cached data, we have all the same info. + var pj = path.join(cachedPackageRoot(data), 'package', 'package.json') - var done = inflight(pj, cb) - if (!done) return log.verbose("afterAdd", pj, "already in flight; not writing") - log.verbose("afterAdd", pj, "not in flight; writing") + var done = inflight(pj, cb) + if (!done) return log.verbose('afterAdd', pj, 'already in flight; not writing') + log.verbose('afterAdd', pj, 'not in flight; writing') - getStat(function (er, cs) { - if (er) return done(er) - writeFileAtomic(pj, JSON.stringify(data), {chown : cs}, function (er) { - if (!er) log.verbose("afterAdd", pj, "written") - return done(er, data) + getStat(function (er, cs) { + if (er) return done(er) + writeFileAtomic(pj, JSON.stringify(data), { chown: cs }, function (er) { + if (!er) log.verbose('afterAdd', pj, 'written') + return done(er, data) + }) }) - }) -}} + } +} diff --git a/deps/npm/lib/cache/add-local-tarball.js b/deps/npm/lib/cache/add-local-tarball.js index e84b66dd8dd51f77d440e2d344b2f6bf175bd027..1bcb4862321dd4366b567d87d38a383ce8d463df 100644 --- a/deps/npm/lib/cache/add-local-tarball.js +++ b/deps/npm/lib/cache/add-local-tarball.js @@ -1,26 +1,28 @@ -var mkdir = require("mkdirp") - , assert = require("assert") - , fs = require("graceful-fs") - , writeFileAtomic = require("write-file-atomic") - , path = require("path") - , sha = require("sha") - , npm = require("../npm.js") - , log = require("npmlog") - , tar = require("../utils/tar.js") - , pathIsInside = require("path-is-inside") - , getCacheStat = require("./get-stat.js") - , cachedPackageRoot = require("./cached-package-root.js") - , chownr = require("chownr") - , inflight = require("inflight") - , once = require("once") - , writeStream = require("fs-write-stream-atomic") - , randomBytes = require("crypto").pseudoRandomBytes // only need uniqueness +var mkdir = require('mkdirp') +var assert = require('assert') +var fs = require('graceful-fs') +var writeFileAtomic = require('write-file-atomic') +var path = require('path') +var sha = require('sha') +var npm = require('../npm.js') +var log = require('npmlog') +var tar = require('../utils/tar.js') +var pathIsInside = require('path-is-inside') +var getCacheStat = require('./get-stat.js') +var cachedPackageRoot = require('./cached-package-root.js') +var chownr = require('chownr') +var inflight = require('inflight') +var once = require('once') +var writeStream = require('fs-write-stream-atomic') +var tempFilename = require('../utils/temp-filename.js') +var rimraf = require('rimraf') +var getPackageId = require('../install/get-package-id.js') module.exports = addLocalTarball function addLocalTarball (p, pkgData, shasum, cb) { - assert(typeof p === "string", "must have path") - assert(typeof cb === "function", "must have callback") + assert(typeof p === 'string', 'must have path') + assert(typeof cb === 'function', 'must have callback') if (!pkgData) pkgData = {} @@ -28,16 +30,16 @@ function addLocalTarball (p, pkgData, shasum, cb) { if (!shasum) { return sha.get(p, function (er, shasum) { if (er) return cb(er) - log.silly("addLocalTarball", "shasum (computed)", shasum) + log.silly('addLocalTarball', 'shasum (computed)', shasum) addLocalTarball(p, pkgData, shasum, cb) }) } if (pathIsInside(p, npm.cache)) { - if (path.basename(p) !== "package.tgz") { - return cb(new Error("Not a valid cache tarball name: "+p)) + if (path.basename(p) !== 'package.tgz') { + return cb(new Error('Not a valid cache tarball name: ' + p)) } - log.verbose("addLocalTarball", "adding from inside cache", p) + log.verbose('addLocalTarball', 'adding from inside cache', p) return addPlacedTarball(p, pkgData, shasum, cb) } @@ -51,8 +53,8 @@ function addLocalTarball (p, pkgData, shasum, cb) { } function addPlacedTarball (p, pkgData, shasum, cb) { - assert(pkgData, "should have package data by now") - assert(typeof cb === "function", "cb function required") + assert(pkgData, 'should have package data by now') + assert(typeof cb === 'function', 'cb function required') getCacheStat(function (er, cs) { if (er) return cb(er) @@ -61,7 +63,7 @@ function addPlacedTarball (p, pkgData, shasum, cb) { } function addPlacedTarball_ (p, pkgData, uid, gid, resolvedSum, cb) { - var folder = path.join(cachedPackageRoot(pkgData), "package") + var folder = path.join(cachedPackageRoot(pkgData), 'package') // First, make sure we have the shasum, if we don't already. if (!resolvedSum) { @@ -74,7 +76,7 @@ function addPlacedTarball_ (p, pkgData, uid, gid, resolvedSum, cb) { mkdir(folder, function (er) { if (er) return cb(er) - var pj = path.join(folder, "package.json") + var pj = path.join(folder, 'package.json') var json = JSON.stringify(pkgData, null, 2) writeFileAtomic(pj, json, function (er) { cb(er, pkgData) @@ -83,19 +85,19 @@ function addPlacedTarball_ (p, pkgData, uid, gid, resolvedSum, cb) { } function addTmpTarball (tgz, pkgData, shasum, cb) { - assert(typeof cb === "function", "must have callback function") - assert(shasum, "must have shasum by now") + assert(typeof cb === 'function', 'must have callback function') + assert(shasum, 'must have shasum by now') - cb = inflight("addTmpTarball:" + tgz, cb) - if (!cb) return log.verbose("addTmpTarball", tgz, "already in flight; not adding") - log.verbose("addTmpTarball", tgz, "not in flight; adding") + cb = inflight('addTmpTarball:' + tgz, cb) + if (!cb) return log.verbose('addTmpTarball', tgz, 'already in flight; not adding') + log.verbose('addTmpTarball', tgz, 'not in flight; adding') // we already have the package info, so just move into place if (pkgData && pkgData.name && pkgData.version) { log.verbose( - "addTmpTarball", - "already have metadata; skipping unpack for", - pkgData.name + "@" + pkgData.version + 'addTmpTarball', + 'already have metadata; skipping unpack for', + getPackageId(pkgData) ) return addTmpTarball_(tgz, pkgData, shasum, cb) } @@ -107,34 +109,29 @@ function addTmpTarball (tgz, pkgData, shasum, cb) { // NOTE: we might not have any clue what we think it is, for example if the // user just did `npm install ./foo.tgz` - // generate a unique filename - randomBytes(6, function (er, random) { + var target = tempFilename('unpack') + getCacheStat(function (er, cs) { if (er) return cb(er) - var target = path.join(npm.tmp, "unpack-" + random.toString("hex")) - getCacheStat(function (er, cs) { - if (er) return cb(er) - - log.verbose("addTmpTarball", "validating metadata from", tgz) - tar.unpack(tgz, target, null, null, cs.uid, cs.gid, function (er, data) { - if (er) return cb(er) - + log.verbose('addTmpTarball', 'validating metadata from', tgz) + tar.unpack(tgz, target, null, null, cs.uid, cs.gid, function (unpackEr, data) { + // cleanup the extracted package and move on with the metadata + rimraf(target, function () { + if (unpackEr) return cb(unpackEr) // check that this is what we expected. if (!data.name) { - return cb(new Error("No name provided")) - } - else if (pkgData.name && data.name !== pkgData.name) { - return cb(new Error("Invalid Package: expected " + pkgData.name + - " but found " + data.name)) + return cb(new Error('No name provided')) + } else if (pkgData.name && data.name !== pkgData.name) { + return cb(new Error('Invalid Package: expected ' + pkgData.name + + ' but found ' + data.name)) } if (!data.version) { - return cb(new Error("No version provided")) - } - else if (pkgData.version && data.version !== pkgData.version) { - return cb(new Error("Invalid Package: expected " + - pkgData.name + "@" + pkgData.version + - " but found " + data.name + "@" + data.version)) + return cb(new Error('No version provided')) + } else if (pkgData.version && data.version !== pkgData.version) { + return cb(new Error('Invalid Package: expected ' + + getPackageId(pkgData) + + ' but found ' + getPackageId(data))) } addTmpTarball_(tgz, data, shasum, cb) @@ -144,15 +141,15 @@ function addTmpTarball (tgz, pkgData, shasum, cb) { } function addTmpTarball_ (tgz, data, shasum, cb) { - assert(typeof cb === "function", "must have callback function") + assert(typeof cb === 'function', 'must have callback function') cb = once(cb) - assert(data.name, "should have package name by now") - assert(data.version, "should have package version by now") + assert(data.name, 'should have package name by now') + assert(data.version, 'should have package version by now') var root = cachedPackageRoot(data) - var pkg = path.resolve(root, "package") - var target = path.resolve(root, "package.tgz") + var pkg = path.resolve(root, 'package') + var target = path.resolve(root, 'package.tgz') getCacheStat(function (er, cs) { if (er) return cb(er) mkdir(pkg, function (er, created) { @@ -168,12 +165,12 @@ function addTmpTarball_ (tgz, data, shasum, cb) { var read = fs.createReadStream(tgz) var write = writeStream(target, { mode: npm.modes.file }) var fin = cs.uid && cs.gid ? chown : done - read.on("error", cb).pipe(write).on("error", cb).on("close", fin) + read.on('error', cb).pipe(write).on('error', cb).on('close', fin) }) }) - function done() { + function done () { data._shasum = data._shasum || shasum cb(null, data) } diff --git a/deps/npm/lib/cache/add-local.js b/deps/npm/lib/cache/add-local.js index e7d286e4fb5d40053f5aba19792b0dd6da3276d4..075ca5fc61d8de3908f6365ca37b0238f22c1e37 100644 --- a/deps/npm/lib/cache/add-local.js +++ b/deps/npm/lib/cache/add-local.js @@ -1,44 +1,45 @@ -var assert = require("assert") - , path = require("path") - , mkdir = require("mkdirp") - , chownr = require("chownr") - , pathIsInside = require("path-is-inside") - , readJson = require("read-package-json") - , log = require("npmlog") - , npm = require("../npm.js") - , tar = require("../utils/tar.js") - , deprCheck = require("../utils/depr-check.js") - , getCacheStat = require("./get-stat.js") - , cachedPackageRoot = require("./cached-package-root.js") - , addLocalTarball = require("./add-local-tarball.js") - , sha = require("sha") - , inflight = require("inflight") +var assert = require('assert') +var path = require('path') +var mkdir = require('mkdirp') +var chownr = require('chownr') +var pathIsInside = require('path-is-inside') +var readJson = require('read-package-json') +var log = require('npmlog') +var npm = require('../npm.js') +var tar = require('../utils/tar.js') +var deprCheck = require('../utils/depr-check.js') +var getCacheStat = require('./get-stat.js') +var cachedPackageRoot = require('./cached-package-root.js') +var addLocalTarball = require('./add-local-tarball.js') +var sha = require('sha') +var inflight = require('inflight') +var lifecycle = require('../utils/lifecycle.js') +var iferr = require('iferr') module.exports = addLocal function addLocal (p, pkgData, cb_) { - assert(typeof p === "object", "must have spec info") - assert(typeof cb === "function", "must have callback") + assert(typeof p === 'object', 'must have spec info') + assert(typeof cb === 'function', 'must have callback') pkgData = pkgData || {} function cb (er, data) { if (er) { - log.error("addLocal", "Could not install %s", p.spec) + log.error('addLocal', 'Could not install %s', p.spec) return cb_(er) } - if (data && !data._fromGithub) { - data._from = path.relative(npm.prefix, p.spec) || "." + if (data && !data._fromHosted) { + data._from = path.relative(npm.prefix, p.spec) || '.' var resolved = path.relative(npm.prefix, p.spec) - if (resolved) data._resolved = "file:"+resolved + if (resolved) data._resolved = 'file:' + resolved } return cb_(er, data) } - if (p.type === "directory") { + if (p.type === 'directory') { addLocalDirectory(p.spec, pkgData, null, cb) - } - else { + } else { addLocalTarball(p.spec, pkgData, null, cb) } } @@ -46,33 +47,34 @@ function addLocal (p, pkgData, cb_) { // At this point, if shasum is set, it's something that we've already // read and checked. Just stashing it in the data at this point. function addLocalDirectory (p, pkgData, shasum, cb) { - assert(pkgData, "must pass package data") - assert(typeof cb === "function", "must have callback") + assert(pkgData, 'must pass package data') + assert(typeof cb === 'function', 'must have callback') // if it's a folder, then read the package.json, // tar it to the proper place, and add the cache tar - if (pathIsInside(p, npm.cache)) return cb(new Error( - "Adding a cache directory to the cache will make the world implode.")) + if (pathIsInside(p, npm.cache)) { + return cb(new Error( + 'Adding a cache directory to the cache will make the world implode.' + )) + } - readJson(path.join(p, "package.json"), false, function (er, data) { + readJson(path.join(p, 'package.json'), false, function (er, data) { if (er) return cb(er) if (!data.name) { - return cb(new Error("No name provided in package.json")) - } - else if (pkgData.name && pkgData.name !== data.name) { + return cb(new Error('No name provided in package.json')) + } else if (pkgData.name && pkgData.name !== data.name) { return cb(new Error( - "Invalid package: expected " + pkgData.name + " but found " + data.name + 'Invalid package: expected ' + pkgData.name + ' but found ' + data.name )) } if (!data.version) { - return cb(new Error("No version provided in package.json")) - } - else if (pkgData.version && pkgData.version !== data.version) { + return cb(new Error('No version provided in package.json')) + } else if (pkgData.version && pkgData.version !== data.version) { return cb(new Error( - "Invalid package: expected " + pkgData.name + "@" + pkgData.version + - " but found " + data.name + "@" + data.version + 'Invalid package: expected ' + pkgData.name + '@' + pkgData.version + + ' but found ' + data.name + '@' + data.version )) } @@ -80,27 +82,34 @@ function addLocalDirectory (p, pkgData, shasum, cb) { // pack to {cache}/name/ver/package.tgz var root = cachedPackageRoot(data) - var tgz = path.resolve(root, "package.tgz") - var pj = path.resolve(root, "package/package.json") + var tgz = path.resolve(root, 'package.tgz') + var pj = path.resolve(root, 'package/package.json') var wrapped = inflight(tgz, next) - if (!wrapped) return log.verbose("addLocalDirectory", tgz, "already in flight; waiting") - log.verbose("addLocalDirectory", tgz, "not in flight; packing") + if (!wrapped) return log.verbose('addLocalDirectory', tgz, 'already in flight; waiting') + log.verbose('addLocalDirectory', tgz, 'not in flight; packing') getCacheStat(function (er, cs) { mkdir(path.dirname(pj), function (er, made) { if (er) return cb(er) - var fancy = !pathIsInside(p, npm.tmp) - tar.pack(tgz, p, data, fancy, function (er) { - if (er) { - log.error("addLocalDirectory", "Could not pack", p, "to", tgz) - return cb(er) - } - - if (!cs || isNaN(cs.uid) || isNaN(cs.gid)) wrapped() - - chownr(made || tgz, cs.uid, cs.gid, wrapped) - }) + var doPrePublish = !pathIsInside(p, npm.tmp) + if (doPrePublish) { + lifecycle(data, 'prepublish', p, iferr(cb, thenPack)) + } else { + thenPack() + } + function thenPack () { + tar.pack(tgz, p, data, function (er) { + if (er) { + log.error('addLocalDirectory', 'Could not pack', p, 'to', tgz) + return cb(er) + } + + if (!cs || isNaN(cs.uid) || isNaN(cs.gid)) wrapped() + + chownr(made || tgz, cs.uid, cs.gid, wrapped) + }) + } }) }) diff --git a/deps/npm/lib/cache/add-named.js b/deps/npm/lib/cache/add-named.js index acc67bf9d26d4f4c522e626664050df85c3e76ba..b90d313984ad43a9e6ba3ece8932124229309d07 100644 --- a/deps/npm/lib/cache/add-named.js +++ b/deps/npm/lib/cache/add-named.js @@ -1,23 +1,24 @@ -var path = require("path") - , assert = require("assert") - , fs = require("graceful-fs") - , http = require("http") - , log = require("npmlog") - , semver = require("semver") - , readJson = require("read-package-json") - , url = require("url") - , npm = require("../npm.js") - , deprCheck = require("../utils/depr-check.js") - , inflight = require("inflight") - , addRemoteTarball = require("./add-remote-tarball.js") - , cachedPackageRoot = require("./cached-package-root.js") - , mapToRegistry = require("../utils/map-to-registry.js") - +var path = require('path') +var assert = require('assert') +var fs = require('graceful-fs') +var http = require('http') +var log = require('npmlog') +var semver = require('semver') +var readJson = require('read-package-json') +var url = require('url') +var npm = require('../npm.js') +var deprCheck = require('../utils/depr-check.js') +var inflight = require('inflight') +var addRemoteTarball = require('./add-remote-tarball.js') +var cachedPackageRoot = require('./cached-package-root.js') +var mapToRegistry = require('../utils/map-to-registry.js') +var pulseTillDone = require('../utils/pulse-till-done.js') +var getPackageId = require('../install/get-package-id.js') module.exports = addNamed function getOnceFromRegistry (name, from, next, done) { - function fixName(err, data, json, resp) { + function fixName (err, data, json, resp) { // this is only necessary until npm/npm-registry-client#80 is fixed if (err && err.pkgid && err.pkgid !== name) { err.message = err.message.replace( @@ -32,24 +33,24 @@ function getOnceFromRegistry (name, from, next, done) { mapToRegistry(name, npm.config, function (er, uri, auth) { if (er) return done(er) - var key = "registry:" + uri + var key = 'registry:' + uri next = inflight(key, next) - if (!next) return log.verbose(from, key, "already in flight; waiting") - else log.verbose(from, key, "not in flight; fetching") + if (!next) return log.verbose(from, key, 'already in flight; waiting') + else log.verbose(from, key, 'not in flight; fetching') - npm.registry.get(uri, { auth : auth }, fixName) + npm.registry.get(uri, { auth: auth }, pulseTillDone('fetchRegistry', fixName)) }) } function addNamed (name, version, data, cb_) { - assert(typeof name === "string", "must have module name") - assert(typeof cb_ === "function", "must have callback") + assert(typeof name === 'string', 'must have module name') + assert(typeof cb_ === 'function', 'must have callback') - var key = name + "@" + version - log.silly("addNamed", key) + var key = name + '@' + version + log.silly('addNamed', key) function cb (er, data) { - if (data && !data._fromGithub) data._from = key + if (data && !data._fromHosted) data._from = key cb_(er, data) } @@ -66,29 +67,29 @@ function addNamed (name, version, data, cb_) { } function addNameTag (name, tag, data, cb) { - log.info("addNameTag", [name, tag]) + log.info('addNameTag', [name, tag]) var explicit = true if (!tag) { explicit = false - tag = npm.config.get("tag") + tag = npm.config.get('tag') } - getOnceFromRegistry(name, "addNameTag", next, cb) + getOnceFromRegistry(name, 'addNameTag', next, cb) function next (er, data, json, resp) { if (!er) er = errorResponse(name, resp) if (er) return cb(er) - log.silly("addNameTag", "next cb for", name, "with tag", tag) + log.silly('addNameTag', 'next cb for', name, 'with tag', tag) engineFilter(data) - if (data["dist-tags"] && data["dist-tags"][tag] - && data.versions[data["dist-tags"][tag]]) { - var ver = data["dist-tags"][tag] + if (data['dist-tags'] && data['dist-tags'][tag] && + data.versions[data['dist-tags'][tag]]) { + var ver = data['dist-tags'][tag] return addNamed(name, ver, data.versions[ver], cb) } if (!explicit && Object.keys(data.versions).length) { - return addNamed(name, "*", data, cb) + return addNamed(name, '*', data, cb) } er = installTargetsError(tag, data) @@ -98,17 +99,17 @@ function addNameTag (name, tag, data, cb) { function engineFilter (data) { var npmv = npm.version - , nodev = npm.config.get("node-version") - , strict = npm.config.get("engine-strict") + var nodev = npm.config.get('node-version') + var strict = npm.config.get('engine-strict') - if (!nodev || npm.config.get("force")) return data + if (!nodev || npm.config.get('force')) return data Object.keys(data.versions || {}).forEach(function (v) { var eng = data.versions[v].engines if (!eng) return - if (!strict && !data.versions[v].engineStrict) return - if (eng.node && !semver.satisfies(nodev, eng.node, true) - || eng.npm && !semver.satisfies(npmv, eng.npm, true)) { + if (!strict) return + if (eng.node && !semver.satisfies(nodev, eng.node, true) || + eng.npm && !semver.satisfies(npmv, eng.npm, true)) { delete data.versions[v] } }) @@ -116,7 +117,7 @@ function engineFilter (data) { function addNameVersion (name, v, data, cb) { var ver = semver.valid(v, true) - if (!ver) return cb(new Error("Invalid version: "+v)) + if (!ver) return cb(new Error('Invalid version: ' + v)) var response @@ -125,7 +126,7 @@ function addNameVersion (name, v, data, cb) { return next() } - getOnceFromRegistry(name, "addNameVersion", setData, cb) + getOnceFromRegistry(name, 'addNameVersion', setData, cb) function setData (er, d, json, resp) { if (!er) { @@ -134,7 +135,7 @@ function addNameVersion (name, v, data, cb) { if (er) return cb(er) data = d && d.versions[ver] if (!data) { - er = new Error("version not found: "+name+"@"+ver) + er = new Error('version not found: ' + name + '@' + ver) er.package = name er.statusCode = 404 return cb(er) @@ -147,27 +148,30 @@ function addNameVersion (name, v, data, cb) { deprCheck(data) var dist = data.dist - if (!dist) return cb(new Error("No dist in "+data._id+" package")) + if (!dist) return cb(new Error('No dist in ' + getPackageId(data) + ' package')) - if (!dist.tarball) return cb(new Error( - "No dist.tarball in " + data._id + " package")) + if (!dist.tarball) { + return cb(new Error( + 'No dist.tarball in ' + getPackageId(data) + ' package' + )) + } - if ((response && response.statusCode !== 304) || npm.config.get("force")) { + if ((response && response.statusCode !== 304) || npm.config.get('force')) { return fetchit() } // we got cached data, so let's see if we have a tarball. - var pkgroot = cachedPackageRoot({name : name, version : ver}) - var pkgtgz = path.join(pkgroot, "package.tgz") - var pkgjson = path.join(pkgroot, "package", "package.json") + var pkgroot = cachedPackageRoot({ name: name, version: ver }) + var pkgtgz = path.join(pkgroot, 'package.tgz') + var pkgjson = path.join(pkgroot, 'package', 'package.json') fs.stat(pkgtgz, function (er) { if (!er) { readJson(pkgjson, function (er, data) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) + if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) if (data) { - if (!data.name) return cb(new Error("No name provided")) - if (!data.version) return cb(new Error("No version provided")) + if (!data.name) return cb(new Error('No name provided')) + if (!data.version) return cb(new Error('No version provided')) // check the SHA of the package we have, to ensure it wasn't installed // from somewhere other than the registry (eg, a fork) @@ -205,8 +209,8 @@ function addNameVersion (name, v, data, cb) { // Only add non-shasum'ed packages if --forced. Only ancient things // would lack this for good reasons nowadays. - if (!dist.shasum && !npm.config.get("force")) { - return cb(new Error("package lacks shasum: " + data._id)) + if (!dist.shasum && !npm.config.get('force')) { + return cb(new Error('package lacks shasum: ' + getPackageId(data))) } addRemoteTarball(tb, data, dist.shasum, auth, cb) @@ -217,15 +221,17 @@ function addNameVersion (name, v, data, cb) { function addNameRange (name, range, data, cb) { range = semver.validRange(range, true) - if (range === null) return cb(new Error( - "Invalid version range: " + range - )) + if (range === null) { + return cb(new Error( + 'Invalid version range: ' + range + )) + } - log.silly("addNameRange", {name:name, range:range, hasData:!!data}) + log.silly('addNameRange', { name: name, range: range, hasData: !!data }) if (data) return next() - getOnceFromRegistry(name, "addNameRange", setData, cb) + getOnceFromRegistry(name, 'addNameRange', setData, cb) function setData (er, d, json, resp) { if (!er) { @@ -237,18 +243,20 @@ function addNameRange (name, range, data, cb) { } function next () { - log.silly( "addNameRange", "number 2" - , {name:name, range:range, hasData:!!data}) + log.silly( + 'addNameRange', + 'number 2', { name: name, range: range, hasData: !!data } + ) engineFilter(data) - log.silly("addNameRange", "versions" + log.silly('addNameRange', 'versions' , [data.name, Object.keys(data.versions || {})]) // if the tagged version satisfies, then use that. - var tagged = data["dist-tags"][npm.config.get("tag")] - if (tagged - && data.versions[tagged] - && semver.satisfies(tagged, range, true)) { + var tagged = data['dist-tags'][npm.config.get('tag')] + if (tagged && + data.versions[tagged] && + semver.satisfies(tagged, range, true)) { return addNamed(name, tagged, data.versions[tagged], cb) } @@ -256,8 +264,8 @@ function addNameRange (name, range, data, cb) { var versions = Object.keys(data.versions || {}) var ms = semver.maxSatisfying(versions, range, true) if (!ms) { - if (range === "*" && versions.length) { - return addNameTag(name, "latest", data, cb) + if (range === '*' && versions.length) { + return addNameTag(name, 'latest', data, cb) } else { return cb(installTargetsError(range, data)) } @@ -270,20 +278,19 @@ function addNameRange (name, range, data, cb) { } function installTargetsError (requested, data) { - var targets = Object.keys(data["dist-tags"]).filter(function (f) { + var targets = Object.keys(data['dist-tags']).filter(function (f) { return (data.versions || {}).hasOwnProperty(f) }).concat(Object.keys(data.versions || {})) - requested = data.name + (requested ? "@'" + requested + "'" : "") + requested = data.name + (requested ? "@'" + requested + "'" : '') targets = targets.length - ? "Valid install targets:\n" + JSON.stringify(targets) + "\n" - : "No valid targets found.\n" - + "Perhaps not compatible with your version of node?" + ? 'Valid install targets:\n' + JSON.stringify(targets) + '\n' + : 'No valid targets found.\n' + + 'Perhaps not compatible with your version of node?' - var er = new Error( "No compatible version found: " - + requested + "\n" + targets) - er.code = "ETARGET" + var er = new Error('No compatible version found: ' + requested + '\n' + targets) + er.code = 'ETARGET' return er } @@ -292,7 +299,7 @@ function errorResponse (name, response) { if (response.statusCode >= 400) { er = new Error(http.STATUS_CODES[response.statusCode]) er.statusCode = response.statusCode - er.code = "E" + er.statusCode + er.code = 'E' + er.statusCode er.pkgid = name } return er diff --git a/deps/npm/lib/cache/add-remote-git.js b/deps/npm/lib/cache/add-remote-git.js index d3ecccdce9af81fa4d8faa8222254ffeeb579e13..09096f9badae957bdbcf791e8818a7e5d5836855 100644 --- a/deps/npm/lib/cache/add-remote-git.js +++ b/deps/npm/lib/cache/add-remote-git.js @@ -1,5 +1,4 @@ var assert = require('assert') -var crypto = require('crypto') var fs = require('graceful-fs') var path = require('path') var url = require('url') @@ -13,12 +12,14 @@ var mkdir = require('mkdirp') var normalizeGitUrl = require('normalize-git-url') var npa = require('npm-package-arg') var realizePackageSpecifier = require('realize-package-specifier') +var uniqueFilename = require('unique-filename') var addLocal = require('./add-local.js') var correctMkdir = require('../utils/correct-mkdir.js') var git = require('../utils/git.js') var npm = require('../npm.js') var rm = require('../utils/gently-rm.js') +var tempFilename = require('../utils/temp-filename.js') var remotes = path.resolve(npm.config.get('cache'), '_git-remotes') var templates = path.join(remotes, '_templates') @@ -47,7 +48,7 @@ function addRemoteGit (uri, _cb) { if (parsed) { // normalize GitHub syntax to org/repo (for now) var from - if (parsed.type === 'github' && parsed.default === 'shortcut') { + if (parsed.type === 'github' && parsed.getDefaultRepresentation() === 'shortcut') { from = parsed.path() } else { from = parsed.toString() @@ -56,7 +57,7 @@ function addRemoteGit (uri, _cb) { log.verbose('addRemoteGit', from, 'is a repository hosted by', parsed.type) // prefer explicit URLs to pushing everything through shortcuts - if (parsed.default !== 'shortcut') { + if (parsed.getDefaultRepresentation() !== 'shortcut') { return tryClone(from, parsed.toString(), false, cb) } @@ -75,7 +76,7 @@ function addRemoteGit (uri, _cb) { function tryGitProto (from, hostedInfo, cb) { var gitURL = hostedInfo.git() - if (!gitURL) return trySSH(from, hostedInfo, cb) + if (!gitURL) return tryHTTPS(from, hostedInfo, cb) log.silly('tryGitProto', 'attempting to clone', gitURL) tryClone(from, gitURL, true, function (er) { @@ -115,9 +116,9 @@ function tryClone (from, combinedURL, silent, cb) { var treeish = normalized.branch // ensure that similarly-named remotes don't collide - var repoID = cloneURL.replace(/[^a-zA-Z0-9]+/g, '-') + '-' + - crypto.createHash('sha1').update(combinedURL).digest('hex').slice(0, 8) - var cachedRemote = path.join(remotes, repoID) + var cachedRemote = uniqueFilename(remotes, combinedURL.replace(/[^a-zA-Z0-9]+/g, '-'), cloneURL) + var repoID = path.relative(remotes, cachedRemote) + cachedRemote = path.join(remotes, repoID) cb = inflight(repoID, cb) if (!cb) { @@ -297,11 +298,7 @@ function resolveHead (from, cloneURL, treeish, cachedRemote, cb) { log.verbose('resolveHead', from, 'resolved Git URL:', resolvedURL) // generate a unique filename - var tmpdir = path.join( - npm.tmp, - 'git-cache-' + crypto.pseudoRandomBytes(6).toString('hex'), - resolvedTreeish - ) + var tmpdir = path.join(tempFilename('git-cache'), resolvedTreeish) log.silly('resolveHead', 'Git working directory:', tmpdir) mkdir(tmpdir, function (er) { diff --git a/deps/npm/lib/cache/add-remote-tarball.js b/deps/npm/lib/cache/add-remote-tarball.js index 66d220096633074c5d4a2a1ecaf3072630a7c391..aaa768acbd07b9ced9c22b3905c387d1f9415e4d 100644 --- a/deps/npm/lib/cache/add-remote-tarball.js +++ b/deps/npm/lib/cache/add-remote-tarball.js @@ -1,20 +1,22 @@ -var mkdir = require("mkdirp") - , assert = require("assert") - , log = require("npmlog") - , path = require("path") - , sha = require("sha") - , retry = require("retry") - , createWriteStream = require("fs-write-stream-atomic") - , npm = require("../npm.js") - , inflight = require("inflight") - , addLocalTarball = require("./add-local-tarball.js") - , cacheFile = require("npm-cache-filename") +var mkdir = require('mkdirp') +var assert = require('assert') +var log = require('npmlog') +var path = require('path') +var sha = require('sha') +var retry = require('retry') +var createWriteStream = require('fs-write-stream-atomic') +var npm = require('../npm.js') +var inflight = require('inflight') +var addLocalTarball = require('./add-local-tarball.js') +var cacheFile = require('npm-cache-filename') +var rimraf = require('rimraf') +var pulseTillDone = require('../utils/pulse-till-done.js') module.exports = addRemoteTarball function addRemoteTarball (u, pkgData, shasum, auth, cb_) { - assert(typeof u === "string", "must have module URL") - assert(typeof cb_ === "function", "must have callback") + assert(typeof u === 'string', 'must have module URL') + assert(typeof cb_ === 'function', 'must have callback') function cb (er, data) { if (data) { @@ -26,8 +28,8 @@ function addRemoteTarball (u, pkgData, shasum, auth, cb_) { } cb_ = inflight(u, cb_) - if (!cb_) return log.verbose("addRemoteTarball", u, "already in flight; waiting") - log.verbose("addRemoteTarball", u, "not in flight; adding") + if (!cb_) return log.verbose('addRemoteTarball', u, 'already in flight; waiting') + log.verbose('addRemoteTarball', u, 'not in flight; adding') // XXX Fetch direct to cache location, store tarballs under // ${cache}/registry.npmjs.org/pkg/-/pkg-1.2.3.tgz @@ -35,10 +37,16 @@ function addRemoteTarball (u, pkgData, shasum, auth, cb_) { function next (er, resp, shasum) { if (er) return cb(er) - addLocalTarball(tmp, pkgData, shasum, cb) + addLocalTarball(tmp, pkgData, shasum, cleanup) + } + function cleanup (er, data) { + if (er) return cb(er) + rimraf(tmp, function () { + cb(er, data) + }) } - log.verbose("addRemoteTarball", [u, shasum]) + log.verbose('addRemoteTarball', [u, shasum]) mkdir(path.dirname(tmp), function (er) { if (er) return cb(er) addRemoteTarball_(u, tmp, shasum, auth, next) @@ -49,21 +57,24 @@ function addRemoteTarball_ (u, tmp, shasum, auth, cb) { // Tuned to spread 3 attempts over about a minute. // See formula at . var operation = retry.operation({ - retries: npm.config.get("fetch-retries") - , factor: npm.config.get("fetch-retry-factor") - , minTimeout: npm.config.get("fetch-retry-mintimeout") - , maxTimeout: npm.config.get("fetch-retry-maxtimeout") + retries: npm.config.get('fetch-retries'), + factor: npm.config.get('fetch-retry-factor'), + minTimeout: npm.config.get('fetch-retry-mintimeout'), + maxTimeout: npm.config.get('fetch-retry-maxtimeout') }) operation.attempt(function (currentAttempt) { - log.info("retry", "fetch attempt " + currentAttempt - + " at " + (new Date()).toLocaleTimeString()) + log.info( + 'retry', + 'fetch attempt', currentAttempt, + 'at', (new Date()).toLocaleTimeString() + ) fetchAndShaCheck(u, tmp, shasum, auth, function (er, response, shasum) { // Only retry on 408, 5xx or no `response`. var sc = response && response.statusCode var statusRetry = !sc || (sc === 408 || sc >= 500) if (er && statusRetry && operation.retry(er)) { - log.warn("retry", "will retry, error on last attempt: " + er) + log.warn('retry', 'will retry, error on last attempt: ' + er) return } cb(er, response, shasum) @@ -72,34 +83,35 @@ function addRemoteTarball_ (u, tmp, shasum, auth, cb) { } function fetchAndShaCheck (u, tmp, shasum, auth, cb) { - npm.registry.fetch(u, { auth : auth }, function (er, response) { + cb = pulseTillDone('fetchTarball', cb) + npm.registry.fetch(u, { auth: auth }, function (er, response) { if (er) { - log.error("fetch failed", u) + log.error('fetch failed', u) return cb(er, response) } - var tarball = createWriteStream(tmp, { mode : npm.modes.file }) - tarball.on("error", function (er) { + var tarball = createWriteStream(tmp, { mode: npm.modes.file }) + tarball.on('error', function (er) { cb(er) tarball.destroy() }) - tarball.on("finish", function () { + tarball.on('finish', function () { if (!shasum) { // Well, we weren't given a shasum, so at least sha what we have // in case we want to compare it to something else later return sha.get(tmp, function (er, shasum) { - log.silly("fetchAndShaCheck", "shasum", shasum) + log.silly('fetchAndShaCheck', 'shasum', shasum) cb(er, response, shasum) }) } // validate that the url we just downloaded matches the expected shasum. - log.silly("fetchAndShaCheck", "shasum", shasum) + log.silly('fetchAndShaCheck', 'shasum', shasum) sha.check(tmp, shasum, function (er) { if (er && er.message) { // add original filename for better debuggability - er.message = er.message + "\n" + "From: " + u + er.message = er.message + '\n' + 'From: ' + u } return cb(er, response, shasum) }) diff --git a/deps/npm/lib/cache/cached-package-root.js b/deps/npm/lib/cache/cached-package-root.js index 7163314a8ede62aa339ceefdd4fb1ab82aa3973c..b47fac6c9e2ea0631fe4adda345413e0a56f5f46 100644 --- a/deps/npm/lib/cache/cached-package-root.js +++ b/deps/npm/lib/cache/cached-package-root.js @@ -1,14 +1,14 @@ -var assert = require("assert") -var resolve = require("path").resolve +var assert = require('assert') +var resolve = require('path').resolve -var npm = require("../npm.js") +var npm = require('../npm.js') module.exports = getCacheRoot function getCacheRoot (data) { - assert(data, "must pass package metadata") - assert(data.name, "package metadata must include name") - assert(data.version, "package metadata must include version") + assert(data, 'must pass package metadata') + assert(data.name, 'package metadata must include name') + assert(data.version, 'package metadata must include version') return resolve(npm.cache, data.name, data.version) } diff --git a/deps/npm/lib/cache/caching-client.js b/deps/npm/lib/cache/caching-client.js index ec8eb8e16ce083cdf65e0070276115924f139b57..77d8d66cb248fa3c64d0987e64266fc7efbfb2de 100644 --- a/deps/npm/lib/cache/caching-client.js +++ b/deps/npm/lib/cache/caching-client.js @@ -1,30 +1,31 @@ module.exports = CachingRegistryClient -var path = require("path") - , fs = require("graceful-fs") - , url = require("url") - , assert = require("assert") - , inherits = require("util").inherits - -var RegistryClient = require("npm-registry-client") - , npm = require("../npm.js") - , log = require("npmlog") - , getCacheStat = require("./get-stat.js") - , cacheFile = require("npm-cache-filename") - , mkdirp = require("mkdirp") - , rimraf = require("rimraf") - , chownr = require("chownr") - , writeFile = require("write-file-atomic") +var path = require('path') +var fs = require('graceful-fs') +var url = require('url') +var assert = require('assert') +var inherits = require('util').inherits + +var RegistryClient = require('npm-registry-client') +var npm = require('../npm.js') +var log = require('npmlog') +var getCacheStat = require('./get-stat.js') +var cacheFile = require('npm-cache-filename') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var chownr = require('chownr') +var writeFile = require('write-file-atomic') +var parseJSON = require('../utils/parse-json') function CachingRegistryClient (config) { RegistryClient.call(this, adaptConfig(config)) - this._mapToCache = cacheFile(config.get("cache")) + this._mapToCache = cacheFile(config.get('cache')) // swizzle in our custom cache invalidation logic this._request = this.request - this.request = this._invalidatingRequest - this.get = get + this.request = this._invalidatingRequest + this.get = get } inherits(CachingRegistryClient, RegistryClient) @@ -34,7 +35,7 @@ CachingRegistryClient.prototype._invalidatingRequest = function (uri, params, cb var args = arguments var method = params.method - if (method !== "HEAD" && method !== "GET") { + if (method !== 'HEAD' && method !== 'GET') { var invalidated = client._mapToCache(uri) // invalidate cache // @@ -43,7 +44,7 @@ CachingRegistryClient.prototype._invalidatingRequest = function (uri, params, cb // thinking that it didn't work when it did. // Note that failure is an acceptable option here, since the only // result will be a stale cache for some helper commands. - log.verbose("request", "invalidating", invalidated, "on", method) + log.verbose('request', 'invalidating', invalidated, 'on', method) return rimraf(invalidated, function () { cb.apply(undefined, args) }) @@ -54,23 +55,23 @@ CachingRegistryClient.prototype._invalidatingRequest = function (uri, params, cb } function get (uri, params, cb) { - assert(typeof uri === "string", "must pass registry URI to get") - assert(params && typeof params === "object", "must pass params to get") - assert(typeof cb === "function", "must pass callback to get") + assert(typeof uri === 'string', 'must pass registry URI to get') + assert(params && typeof params === 'object', 'must pass params to get') + assert(typeof cb === 'function', 'must pass callback to get') var parsed = url.parse(uri) assert( - parsed.protocol === "http:" || parsed.protocol === "https:", - "must have a URL that starts with http: or https:" + parsed.protocol === 'http:' || parsed.protocol === 'https:', + 'must have a URL that starts with http: or https:' ) - var cacheBase = cacheFile(npm.config.get("cache"))(uri) - var cachePath = path.join(cacheBase, ".cache.json") + var cacheBase = cacheFile(npm.config.get('cache'))(uri) + var cachePath = path.join(cacheBase, '.cache.json') // If the GET is part of a write operation (PUT or DELETE), then // skip past the cache entirely, but still save the results. if (uri.match(/\?write=true$/)) { - log.verbose("get", "GET as part of write; not caching result") + log.verbose('get', 'GET as part of write; not caching result') return get_.call(this, uri, cachePath, params, cb) } @@ -78,20 +79,14 @@ function get (uri, params, cb) { fs.stat(cachePath, function (er, stat) { if (!er) { fs.readFile(cachePath, function (er, data) { - try { - data = JSON.parse(data) - } - catch (ex) { - data = null - } + data = parseJSON.noExceptions(data) params.stat = stat params.data = data get_.call(client, uri, cachePath, params, cb) }) - } - else { + } else { get_.call(client, uri, cachePath, params, cb) } }) @@ -99,16 +94,16 @@ function get (uri, params, cb) { function get_ (uri, cachePath, params, cb) { var staleOk = params.staleOk === undefined ? false : params.staleOk - , timeout = params.timeout === undefined ? -1 : params.timeout - , data = params.data - , stat = params.stat - , etag - , lastModified - - timeout = Math.min(timeout, npm.config.get("cache-max") || 0) - timeout = Math.max(timeout, npm.config.get("cache-min") || -Infinity) + var timeout = params.timeout === undefined ? -1 : params.timeout + var data = params.data + var stat = params.stat + var etag + var lastModified + + timeout = Math.min(timeout, npm.config.get('cache-max') || 0) + timeout = Math.max(timeout, npm.config.get('cache-min') || -Infinity) if (process.env.COMP_CWORD !== undefined && - process.env.COMP_LINE !== undefined && + process.env.COMP_LINE !== undefined && process.env.COMP_POINT !== undefined) { timeout = Math.max(timeout, 60000) } @@ -118,19 +113,19 @@ function get_ (uri, cachePath, params, cb) { if (data._lastModified) lastModified = data._lastModified if (stat && timeout && timeout > 0) { - if ((Date.now() - stat.mtime.getTime())/1000 < timeout) { - log.verbose("get", uri, "not expired, no request") + if ((Date.now() - stat.mtime.getTime()) / 1000 < timeout) { + log.verbose('get', uri, 'not expired, no request') delete data._etag delete data._lastModified - return cb(null, data, JSON.stringify(data), { statusCode : 304 }) + return cb(null, data, JSON.stringify(data), { statusCode: 304 }) } if (staleOk) { - log.verbose("get", uri, "staleOk, background update") + log.verbose('get', uri, 'staleOk, background update') delete data._etag delete data._lastModified process.nextTick( - cb.bind(null, null, data, JSON.stringify(data), { statusCode : 304 } ) + cb.bind(null, null, data, JSON.stringify(data), { statusCode: 304 }) ) cb = function () {} } @@ -138,10 +133,10 @@ function get_ (uri, cachePath, params, cb) { } var options = { - etag : etag, - lastModified : lastModified, - follow : params.follow, - auth : params.auth + etag: etag, + lastModified: lastModified, + follow: params.follow, + auth: params.auth } this.request(uri, options, function (er, remoteData, raw, response) { // if we get an error talking to the registry, but we have it @@ -152,15 +147,15 @@ function get_ (uri, cachePath, params, cb) { } if (response) { - log.silly("get", "cb", [response.statusCode, response.headers]) + log.silly('get', 'cb', [response.statusCode, response.headers]) if (response.statusCode === 304 && (etag || lastModified)) { remoteData = data - log.verbose(etag ? "etag" : "lastModified", uri+" from cache") + log.verbose(etag ? 'etag' : 'lastModified', uri + ' from cache') } } data = remoteData - if (!data) er = er || new Error("failed to fetch from registry: " + uri) + if (!data) er = er || new Error('failed to fetch from registry: ' + uri) if (er) return cb(er, data, raw, response) @@ -174,7 +169,7 @@ function get_ (uri, cachePath, params, cb) { } function saveToCache (cachePath, data, saved) { - log.verbose("get", "saving", data.name, "to", cachePath) + log.verbose('get', 'saving', data.name, 'to', cachePath) getCacheStat(function (er, st) { mkdirp(path.dirname(cachePath), function (er, made) { if (er) return saved() @@ -192,26 +187,26 @@ function get_ (uri, cachePath, params, cb) { function adaptConfig (config) { return { - proxy : { - http : config.get("proxy"), - https : config.get("https-proxy"), - localAddress : config.get("local-address") + proxy: { + http: config.get('proxy'), + https: config.get('https-proxy'), + localAddress: config.get('local-address') }, - ssl : { - certificate : config.get("cert"), - key : config.get("key"), - ca : config.get("ca"), - strict : config.get("strict-ssl") + ssl: { + certificate: config.get('cert'), + key: config.get('key'), + ca: config.get('ca'), + strict: config.get('strict-ssl') }, - retry : { - retries : config.get("fetch-retries"), - factor : config.get("fetch-retry-factor"), - minTimeout : config.get("fetch-retry-mintimeout"), - maxTimeout : config.get("fetch-retry-maxtimeout") + retry: { + retries: config.get('fetch-retries'), + factor: config.get('fetch-retry-factor'), + minTimeout: config.get('fetch-retry-mintimeout'), + maxTimeout: config.get('fetch-retry-maxtimeout') }, - userAgent : config.get("user-agent"), - log : log, - defaultTag : config.get("tag"), - couchToken : config.get("_token") + userAgent: config.get('user-agent'), + log: log, + defaultTag: config.get('tag'), + couchToken: config.get('_token') } } diff --git a/deps/npm/lib/cache/update-index.js b/deps/npm/lib/cache/update-index.js index ab1ede120b2d888488535d1600c6d35f5b403e65..a872b034908de53b865deec8834057d430ad012e 100644 --- a/deps/npm/lib/cache/update-index.js +++ b/deps/npm/lib/cache/update-index.js @@ -10,6 +10,8 @@ var log = require('npmlog') var cacheFile = require('npm-cache-filename') var getCacheStat = require('./get-stat.js') var mapToRegistry = require('../utils/map-to-registry.js') +var pulseTillDone = require('../utils/pulse-till-done.js') +var parseJSON = require('../utils/parse-json.js') /* /-/all is special. * It uses timestamp-based caching and partial updates, @@ -46,9 +48,8 @@ function updateIndex (staleness, cb) { chownr(made || cachePath, st.uid, st.gid, function (er) { if (er) return cb(er) - try { - data = JSON.parse(data) - } catch (ex) { + data = parseJSON.noExceptions(data) + if (!data) { fs.writeFile(cachePath, '{}', function (er) { if (er) return cb(new Error('Broken cache.')) @@ -80,7 +81,7 @@ function updateIndex (staleness, cb) { function updateIndex_ (all, params, data, cachePath, cb) { log.silly('update-index', 'fetching', all) - npm.registry.request(all, params, function (er, updates, _, res) { + npm.registry.request(all, params, pulseTillDone('updateIndex', function (er, updates, _, res) { if (er) return cb(er, data) var headers = res.headers @@ -100,5 +101,5 @@ function updateIndex_ (all, params, data, cachePath, cb) { }) }) }) - }) + })) } diff --git a/deps/npm/lib/completion.js b/deps/npm/lib/completion.js index 1d26ffcf8ac92d4137ab44a1fb146b9616ea8d1c..e9a838d484f508685b1879e3ef484d92b6d7768c 100644 --- a/deps/npm/lib/completion.js +++ b/deps/npm/lib/completion.js @@ -1,119 +1,114 @@ module.exports = completion -completion.usage = "npm completion >> ~/.bashrc\n" - + "npm completion >> ~/.zshrc\n" - + "source <(npm completion)" - -var npm = require("./npm.js") - , npmconf = require("./config/core.js") - , configDefs = npmconf.defs - , configTypes = configDefs.types - , shorthands = configDefs.shorthands - , nopt = require("nopt") - , configNames = Object.keys(configTypes).filter(function (e) { - return e.charAt(0) !== "_" +completion.usage = 'source <(npm completion)' + +var npm = require('./npm.js') +var npmconf = require('./config/core.js') +var configDefs = npmconf.defs +var configTypes = configDefs.types +var shorthands = configDefs.shorthands +var nopt = require('nopt') +var configNames = Object.keys(configTypes).filter(function (e) { + return e.charAt(0) !== '_' }) - , shorthandNames = Object.keys(shorthands) - , allConfs = configNames.concat(shorthandNames) - , once = require("once") - +var shorthandNames = Object.keys(shorthands) +var allConfs = configNames.concat(shorthandNames) +var once = require('once') completion.completion = function (opts, cb) { if (opts.w > 3) return cb() - var fs = require("graceful-fs") - , path = require("path") - , bashExists = null - , zshExists = null - fs.stat(path.resolve(process.env.HOME, ".bashrc"), function (er) { + var fs = require('graceful-fs') + var path = require('path') + var bashExists = null + var zshExists = null + fs.stat(path.resolve(process.env.HOME, '.bashrc'), function (er) { bashExists = !er next() }) - fs.stat(path.resolve(process.env.HOME, ".zshrc"), function (er) { + fs.stat(path.resolve(process.env.HOME, '.zshrc'), function (er) { zshExists = !er next() }) function next () { if (zshExists === null || bashExists === null) return var out = [] - if (zshExists) out.push("~/.zshrc") - if (bashExists) out.push("~/.bashrc") - if (opts.w === 2) out = out.map(function (m) { - return [">>", m] - }) + if (zshExists) out.push('~/.zshrc') + if (bashExists) out.push('~/.bashrc') + if (opts.w === 2) { + out = out.map(function (m) { + return ['>>', m] + }) + } cb(null, out) } } function completion (args, cb) { - if (process.platform === "win32") { - var e = new Error("npm completion not supported on windows") - e.code = "ENOTSUP" - e.errno = require("constants").ENOTSUP + if (process.platform === 'win32') { + var e = new Error('npm completion not supported on windows') + e.code = 'ENOTSUP' + e.errno = require('constants').ENOTSUP return cb(e) } // if the COMP_* isn't in the env, then just dump the script. - if (process.env.COMP_CWORD === undefined - ||process.env.COMP_LINE === undefined - ||process.env.COMP_POINT === undefined - ) return dumpScript(cb) + if (process.env.COMP_CWORD === undefined || + process.env.COMP_LINE === undefined || + process.env.COMP_POINT === undefined) { + return dumpScript(cb) + } console.error(process.env.COMP_CWORD) console.error(process.env.COMP_LINE) console.error(process.env.COMP_POINT) - //console.log("abracadabrasauce\nabracad cat monger") - //if (Math.random() * 3 < 1) console.log("man\\ bear\\ pig") - //else if (Math.random() * 3 < 1) - // console.log("porkchop\\ sandwiches\nporkman") - //else console.log("encephylophagy") - // get the partial line and partial word, // if the point isn't at the end. // ie, tabbing at: npm foo b|ar var w = +process.env.COMP_CWORD - , words = args.map(unescape) - , word = words[w] - , line = process.env.COMP_LINE - , point = +process.env.COMP_POINT - , partialLine = line.substr(0, point) - , partialWords = words.slice(0, w) + var words = args.map(unescape) + var word = words[w] + var line = process.env.COMP_LINE + var point = +process.env.COMP_POINT + var partialLine = line.substr(0, point) + var partialWords = words.slice(0, w) // figure out where in that last word the point is. var partialWord = args[w] - , i = partialWord.length - while (partialWord.substr(0, i) !== partialLine.substr(-1*i) && i > 0) { - i -- + var i = partialWord.length + while (partialWord.substr(0, i) !== partialLine.substr(-1 * i) && i > 0) { + i-- } partialWord = unescape(partialWord.substr(0, i)) partialWords.push(partialWord) - var opts = { words : words - , w : w - , word : word - , line : line - , lineLength : line.length - , point : point - , partialLine : partialLine - , partialWords : partialWords - , partialWord : partialWord - , raw: args - } + var opts = { + words: words, + w: w, + word: word, + line: line, + lineLength: line.length, + point: point, + partialLine: partialLine, + partialWords: partialWords, + partialWord: partialWord, + raw: args + } cb = wrapCb(cb, opts) console.error(opts) - if (partialWords.slice(0, -1).indexOf("--") === -1) { - if (word.charAt(0) === "-") return configCompl(opts, cb) - if (words[w - 1] - && words[w - 1].charAt(0) === "-" - && !isFlag(words[w - 1])) { + if (partialWords.slice(0, -1).indexOf('--') === -1) { + if (word.charAt(0) === '-') return configCompl(opts, cb) + if (words[w - 1] && + words[w - 1].charAt(0) === '-' && + !isFlag(words[w - 1])) { // awaiting a value for a non-bool config. // don't even try to do this for now - console.error("configValueCompl") + console.error('configValueCompl') return configValueCompl(opts, cb) } } @@ -145,20 +140,20 @@ function completion (args, cb) { } function dumpScript (cb) { - var fs = require("graceful-fs") - , path = require("path") - , p = path.resolve(__dirname, "utils/completion.sh") + var fs = require('graceful-fs') + var path = require('path') + var p = path.resolve(__dirname, 'utils/completion.sh') // The Darwin patch below results in callbacks first for the write and then // for the error handler, so make sure we only call our callback once. cb = once(cb) - fs.readFile(p, "utf8", function (er, d) { + fs.readFile(p, 'utf8', function (er, d) { if (er) return cb(er) - d = d.replace(/^\#\!.*?\n/, "") + d = d.replace(/^\#\!.*?\n/, '') process.stdout.write(d, function () { cb() }) - process.stdout.on("error", function (er) { + process.stdout.on('error', function (er) { // Darwin is a real dick sometimes. // // This is necessary because the "source" or "." program in @@ -169,7 +164,7 @@ function dumpScript (cb) { // Really, one should not be tossing away EPIPE errors, or any // errors, so casually. But, without this, `. <(npm completion)` // can never ever work on OS X. - if (er.errno === "EPIPE") er = null + if (er.errno === 'EPIPE') er = null cb(er) }) @@ -177,59 +172,65 @@ function dumpScript (cb) { } function unescape (w) { - if (w.charAt(0) === "\"") return w.replace(/^"|"$/g, "") - else return w.replace(/\\ /g, " ") + if (w.charAt(0) === '\'') return w.replace(/^'|'$/g, '') + else return w.replace(/\\ /g, ' ') } function escape (w) { if (!w.match(/\s+/)) return w - return "\"" + w + "\"" + return '\'' + w + '\'' } // The command should respond with an array. Loop over that, // wrapping quotes around any that have spaces, and writing // them to stdout. Use console.log, not the outfd config. // If any of the items are arrays, then join them with a space. -// Ie, returning ["a", "b c", ["d", "e"]] would allow it to expand -// to: "a", "b c", or "d" "e" -function wrapCb (cb, opts) { return function (er, compls) { - if (!Array.isArray(compls)) compls = compls ? [compls] : [] - compls = compls.map(function (c) { - if (Array.isArray(c)) c = c.map(escape).join(" ") - else c = escape(c) - return c - }) - if (opts.partialWord) compls = compls.filter(function (c) { - return c.indexOf(opts.partialWord) === 0 - }) - console.error([er && er.stack, compls, opts.partialWord]) - if (er || compls.length === 0) return cb(er) +// Ie, returning ['a', 'b c', ['d', 'e']] would allow it to expand +// to: 'a', 'b c', or 'd' 'e' +function wrapCb (cb, opts) { + return function (er, compls) { + if (!Array.isArray(compls)) compls = compls ? [compls] : [] + compls = compls.map(function (c) { + if (Array.isArray(c)) c = c.map(escape).join(' ') + else c = escape(c) + return c + }) - console.log(compls.join("\n")) - cb() -}} + if (opts.partialWord) { + compls = compls.filter(function (c) { + return c.indexOf(opts.partialWord) === 0 + }) + } + + console.error([er && er.stack, compls, opts.partialWord]) + if (er || compls.length === 0) return cb(er) + + console.log(compls.join('\n')) + cb() + } +} // the current word has a dash. Return the config names, // with the same number of dashes as the current word has. function configCompl (opts, cb) { var word = opts.word - , split = word.match(/^(-+)((?:no-)*)(.*)$/) - , dashes = split[1] - , no = split[2] - , flags = configNames.filter(isFlag) + var split = word.match(/^(-+)((?:no-)*)(.*)$/) + var dashes = split[1] + var no = split[2] + var flags = configNames.filter(isFlag) console.error(flags) return cb(null, allConfs.map(function (c) { return dashes + c }).concat(flags.map(function (f) { - return dashes + (no || "no-") + f + return dashes + (no || 'no-') + f }))) } // expand with the valid values of various config values. // not yet implemented. function configValueCompl (opts, cb) { - console.error("configValue", opts) + console.error('configValue', opts) return cb(null, []) } @@ -237,8 +238,8 @@ function configValueCompl (opts, cb) { function isFlag (word) { // shorthands never take args. var split = word.match(/^(-*)((?:no-)+)?(.*)$/) - , no = split[2] - , conf = split[3] + var no = split[2] + var conf = split[3] return no || configTypes[conf] === Boolean || shorthands[conf] } diff --git a/deps/npm/lib/config.js b/deps/npm/lib/config.js index c79cdc5b8b254fb8de423d3951d59bea7da08e3c..305e6bc8a5d3a7c25bedc40b6e18721ce5f95f7f 100644 --- a/deps/npm/lib/config.js +++ b/deps/npm/lib/config.js @@ -1,46 +1,47 @@ module.exports = config -config.usage = "npm config set " - + "\nnpm config get []" - + "\nnpm config delete " - + "\nnpm config list" - + "\nnpm config edit" - + "\nnpm set " - + "\nnpm get []" +config.usage = 'npm config set ' + + '\nnpm config get []' + + '\nnpm config delete ' + + '\nnpm config list' + + '\nnpm config edit' + + '\nnpm set ' + + '\nnpm get []' -var log = require("npmlog") - , npm = require("./npm.js") - , npmconf = require("./config/core.js") - , fs = require("graceful-fs") - , writeFileAtomic = require("write-file-atomic") - , types = npmconf.defs.types - , ini = require("ini") - , editor = require("editor") - , os = require("os") - , umask = require("./utils/umask") +var log = require('npmlog') +var npm = require('./npm.js') +var npmconf = require('./config/core.js') +var fs = require('graceful-fs') +var writeFileAtomic = require('write-file-atomic') +var types = npmconf.defs.types +var ini = require('ini') +var editor = require('editor') +var os = require('os') +var umask = require('./utils/umask') config.completion = function (opts, cb) { var argv = opts.conf.argv.remain - if (argv[1] !== "config") argv.unshift("config") + if (argv[1] !== 'config') argv.unshift('config') if (argv.length === 2) { - var cmds = ["get", "set", "delete", "ls", "rm", "edit"] - if (opts.partialWord !== "l") cmds.push("list") + var cmds = ['get', 'set', 'delete', 'ls', 'rm', 'edit'] + if (opts.partialWord !== 'l') cmds.push('list') return cb(null, cmds) } var action = argv[2] switch (action) { - case "set": + case 'set': // todo: complete with valid values, if possible. if (argv.length > 3) return cb(null, []) // fallthrough - case "get": - case "delete": - case "rm": + /*eslint no-fallthrough:0*/ + case 'get': + case 'delete': + case 'rm': return cb(null, Object.keys(types)) - case "edit": - case "list": case "ls": + case 'edit': + case 'list': case 'ls': return cb(null, []) default: return cb(null, []) } @@ -52,87 +53,87 @@ config.completion = function (opts, cb) { function config (args, cb) { var action = args.shift() switch (action) { - case "set": return set(args[0], args[1], cb) - case "get": return get(args[0], cb) - case "delete": case "rm": case "del": return del(args[0], cb) - case "list": case "ls": return list(cb) - case "edit": return edit(cb) + case 'set': return set(args[0], args[1], cb) + case 'get': return get(args[0], cb) + case 'delete': case 'rm': case 'del': return del(args[0], cb) + case 'list': case 'ls': return list(cb) + case 'edit': return edit(cb) default: return unknown(action, cb) } } function edit (cb) { - var e = npm.config.get("editor") - , which = npm.config.get("global") ? "global" : "user" - , f = npm.config.get(which + "config") - if (!e) return cb(new Error("No EDITOR config or environ set.")) + var e = npm.config.get('editor') + var which = npm.config.get('global') ? 'global' : 'user' + var f = npm.config.get(which + 'config') + if (!e) return cb(new Error('No EDITOR config or environ set.')) npm.config.save(which, function (er) { if (er) return cb(er) - fs.readFile(f, "utf8", function (er, data) { - if (er) data = "" - data = [ ";;;;" - , "; npm "+(npm.config.get("global") ? - "globalconfig" : "userconfig")+" file" - , "; this is a simple ini-formatted file" - , "; lines that start with semi-colons are comments." - , "; read `npm help config` for help on the various options" - , ";;;;" - , "" - , data - ].concat( [ ";;;;" - , "; all options with default values" - , ";;;;" - ] - ) - .concat(Object.keys(npmconf.defaults).reduce(function (arr, key) { + fs.readFile(f, 'utf8', function (er, data) { + if (er) data = '' + data = [ + ';;;;', + '; npm ' + (npm.config.get('global') ? + 'globalconfig' : 'userconfig') + ' file', + '; this is a simple ini-formatted file', + '; lines that start with semi-colons are comments.', + '; read `npm help config` for help on the various options', + ';;;;', + '', + data + ].concat([ + ';;;;', + '; all options with default values', + ';;;;' + ]).concat(Object.keys(npmconf.defaults).reduce(function (arr, key) { var obj = {} obj[key] = npmconf.defaults[key] - if (key === "logstream") return arr + if (key === 'logstream') return arr return arr.concat( ini.stringify(obj) - .replace(/\n$/m, "") - .replace(/^/g, "; ") - .replace(/\n/g, "\n; ") - .split("\n")) + .replace(/\n$/m, '') + .replace(/^/g, '; ') + .replace(/\n/g, '\n; ') + .split('\n')) }, [])) - .concat([""]) + .concat(['']) .join(os.EOL) - writeFileAtomic - ( f - , data - , function (er) { - if (er) return cb(er) - editor(f, { editor: e }, cb) - } - ) + writeFileAtomic( + f, + data, + function (er) { + if (er) return cb(er) + editor(f, { editor: e }, cb) + } + ) }) }) } function del (key, cb) { - if (!key) return cb(new Error("no key provided")) - var where = npm.config.get("global") ? "global" : "user" + if (!key) return cb(new Error('no key provided')) + var where = npm.config.get('global') ? 'global' : 'user' npm.config.del(key, where) npm.config.save(where, cb) } function set (key, val, cb) { if (key === undefined) { - return unknown("", cb) + return unknown('', cb) } if (val === undefined) { - if (key.indexOf("=") !== -1) { - var k = key.split("=") + if (key.indexOf('=') !== -1) { + var k = key.split('=') key = k.shift() - val = k.join("=") + val = k.join('=') } else { - val = "" + val = '' } } key = key.trim() val = val.trim() - log.info("config", "set %j %j", key, val) - var where = npm.config.get("global") ? "global" : "user" + log.info('config', 'set %j %j', key, val) + var where = npm.config.get('global') ? 'global' : 'user' if (key.match(/umask/)) val = umask.fromString(val) npm.config.set(key, val, where) npm.config.save(where, cb) @@ -140,8 +141,8 @@ function set (key, val, cb) { function get (key, cb) { if (!key) return list(cb) - if (!public(key)) { - return cb(new Error("---sekretz---")) + if (!publicVar(key)) { + return cb(new Error('---sekretz---')) } var val = npm.config.get(key) if (key.match(/umask/)) val = umask.toString(val) @@ -153,133 +154,129 @@ function sort (a, b) { return a > b ? 1 : -1 } -function public (k) { - return !(k.charAt(0) === "_" || - k.indexOf(":_") !== -1 || +function publicVar (k) { + return !(k.charAt(0) === '_' || + k.indexOf(':_') !== -1 || types[k] !== types[k]) } function getKeys (data) { - return Object.keys(data).filter(public).sort(sort) + return Object.keys(data).filter(publicVar).sort(sort) } function list (cb) { - var msg = "" - , long = npm.config.get("long") + var msg = '' + var long = npm.config.get('long') var cli = npm.config.sources.cli.data - , cliKeys = getKeys(cli) + var cliKeys = getKeys(cli) if (cliKeys.length) { - msg += "; cli configs\n" + msg += '; cli configs\n' cliKeys.forEach(function (k) { - if (cli[k] && typeof cli[k] === "object") return - if (k === "argv") return - msg += k + " = " + JSON.stringify(cli[k]) + "\n" + if (cli[k] && typeof cli[k] === 'object') return + if (k === 'argv') return + msg += k + ' = ' + JSON.stringify(cli[k]) + '\n' }) - msg += "\n" + msg += '\n' } // env configs var env = npm.config.sources.env.data - , envKeys = getKeys(env) + var envKeys = getKeys(env) if (envKeys.length) { - msg += "; environment configs\n" + msg += '; environment configs\n' envKeys.forEach(function (k) { if (env[k] !== npm.config.get(k)) { if (!long) return - msg += "; " + k + " = " + JSON.stringify(env[k]) - + " (overridden)\n" - } else msg += k + " = " + JSON.stringify(env[k]) + "\n" + msg += '; ' + k + ' = ' + + JSON.stringify(env[k]) + ' (overridden)\n' + } else msg += k + ' = ' + JSON.stringify(env[k]) + '\n' }) - msg += "\n" + msg += '\n' } // user config file var uconf = npm.config.sources.user.data - , uconfKeys = getKeys(uconf) + var uconfKeys = getKeys(uconf) if (uconfKeys.length) { - msg += "; userconfig " + npm.config.get("userconfig") + "\n" + msg += '; userconfig ' + npm.config.get('userconfig') + '\n' uconfKeys.forEach(function (k) { - var val = (k.charAt(0) === "_") - ? "---sekretz---" + var val = (k.charAt(0) === '_') + ? '---sekretz---' : JSON.stringify(uconf[k]) if (uconf[k] !== npm.config.get(k)) { if (!long) return - msg += "; " + k + " = " + val - + " (overridden)\n" - } else msg += k + " = " + val + "\n" + msg += '; ' + k + ' = ' + val + ' (overridden)\n' + } else msg += k + ' = ' + val + '\n' }) - msg += "\n" + msg += '\n' } // global config file var gconf = npm.config.sources.global.data - , gconfKeys = getKeys(gconf) + var gconfKeys = getKeys(gconf) if (gconfKeys.length) { - msg += "; globalconfig " + npm.config.get("globalconfig") + "\n" + msg += '; globalconfig ' + npm.config.get('globalconfig') + '\n' gconfKeys.forEach(function (k) { - var val = (k.charAt(0) === "_") - ? "---sekretz---" + var val = (k.charAt(0) === '_') + ? '---sekretz---' : JSON.stringify(gconf[k]) if (gconf[k] !== npm.config.get(k)) { if (!long) return - msg += "; " + k + " = " + val - + " (overridden)\n" - } else msg += k + " = " + val + "\n" + msg += '; ' + k + ' = ' + val + ' (overridden)\n' + } else msg += k + ' = ' + val + '\n' }) - msg += "\n" + msg += '\n' } // builtin config file var builtin = npm.config.sources.builtin || {} if (builtin && builtin.data) { var bconf = builtin.data - , bpath = builtin.path - , bconfKeys = getKeys(bconf) + var bpath = builtin.path + var bconfKeys = getKeys(bconf) if (bconfKeys.length) { - msg += "; builtin config " + bpath + "\n" + msg += '; builtin config ' + bpath + '\n' bconfKeys.forEach(function (k) { - var val = (k.charAt(0) === "_") - ? "---sekretz---" + var val = (k.charAt(0) === '_') + ? '---sekretz---' : JSON.stringify(bconf[k]) if (bconf[k] !== npm.config.get(k)) { if (!long) return - msg += "; " + k + " = " + val - + " (overridden)\n" - } else msg += k + " = " + val + "\n" + msg += '; ' + k + ' = ' + val + ' (overridden)\n' + } else msg += k + ' = ' + val + '\n' }) - msg += "\n" + msg += '\n' } } // only show defaults if --long if (!long) { - msg += "; node bin location = " + process.execPath + "\n" - + "; cwd = " + process.cwd() + "\n" - + "; HOME = " + process.env.HOME + "\n" - + "; 'npm config ls -l' to show all defaults.\n" + msg += '; node bin location = ' + process.execPath + '\n' + + '; cwd = ' + process.cwd() + '\n' + + '; HOME = ' + process.env.HOME + '\n' + + '; "npm config ls -l" to show all defaults.\n' console.log(msg) return cb() } var defaults = npmconf.defaults - , defKeys = getKeys(defaults) - msg += "; default values\n" + var defKeys = getKeys(defaults) + msg += '; default values\n' defKeys.forEach(function (k) { - if (defaults[k] && typeof defaults[k] === "object") return + if (defaults[k] && typeof defaults[k] === 'object') return var val = JSON.stringify(defaults[k]) if (defaults[k] !== npm.config.get(k)) { - msg += "; " + k + " = " + val - + " (overridden)\n" - } else msg += k + " = " + val + "\n" + msg += '; ' + k + ' = ' + val + ' (overridden)\n' + } else msg += k + ' = ' + val + '\n' }) - msg += "\n" + msg += '\n' console.log(msg) return cb() } function unknown (action, cb) { - cb("Usage:\n" + config.usage) + cb('Usage:\n' + config.usage) } diff --git a/deps/npm/lib/config/clear-credentials-by-uri.js b/deps/npm/lib/config/clear-credentials-by-uri.js index 88131f7adb5b91d045888dd4677751b9733692fa..13c356605f021003fdb23f0e4ba75335f51f3f68 100644 --- a/deps/npm/lib/config/clear-credentials-by-uri.js +++ b/deps/npm/lib/config/clear-credentials-by-uri.js @@ -1,16 +1,16 @@ -var assert = require("assert") +var assert = require('assert') -var toNerfDart = require("./nerf-dart.js") +var toNerfDart = require('./nerf-dart.js') module.exports = clearCredentialsByURI function clearCredentialsByURI (uri) { - assert(uri && typeof uri === "string", "registry URL is required") + assert(uri && typeof uri === 'string', 'registry URL is required') var nerfed = toNerfDart(uri) - this.del(nerfed + ":_authToken", "user") - this.del(nerfed + ":_password", "user") - this.del(nerfed + ":username", "user") - this.del(nerfed + ":email", "user") + this.del(nerfed + ':_authToken', 'user') + this.del(nerfed + ':_password', 'user') + this.del(nerfed + ':username', 'user') + this.del(nerfed + ':email', 'user') } diff --git a/deps/npm/lib/config/core.js b/deps/npm/lib/config/core.js index f11a98dfb88c629f4fdb91a923e48295c5b5eb35..0c6d3ecdb76b4320a6f1904a7b0a7c93e865b59a 100644 --- a/deps/npm/lib/config/core.js +++ b/deps/npm/lib/config/core.js @@ -1,16 +1,15 @@ - -var CC = require("config-chain").ConfigChain -var inherits = require("inherits") -var configDefs = require("./defaults.js") +var CC = require('config-chain').ConfigChain +var inherits = require('inherits') +var configDefs = require('./defaults.js') var types = configDefs.types -var once = require("once") -var fs = require("fs") -var path = require("path") -var nopt = require("nopt") -var ini = require("ini") +var once = require('once') +var fs = require('fs') +var path = require('path') +var nopt = require('nopt') +var ini = require('ini') var Umask = configDefs.Umask -var mkdirp = require("mkdirp") -var umask = require("../utils/umask") +var mkdirp = require('mkdirp') +var umask = require('../utils/umask') exports.load = load exports.Conf = Conf @@ -19,11 +18,11 @@ exports.rootConf = null exports.usingBuiltin = false exports.defs = configDefs -Object.defineProperty(exports, "defaults", { get: function () { +Object.defineProperty(exports, 'defaults', { get: function () { return configDefs.defaults }, enumerable: true }) -Object.defineProperty(exports, "types", { get: function () { +Object.defineProperty(exports, 'types', { get: function () { return configDefs.types }, enumerable: true }) @@ -34,20 +33,19 @@ var myUid = process.env.SUDO_UID !== undefined var myGid = process.env.SUDO_GID !== undefined ? process.env.SUDO_GID : (process.getgid && process.getgid()) - var loading = false var loadCbs = [] function load () { var cli, builtin, cb - for (var i = 0; i < arguments.length; i++) + for (var i = 0; i < arguments.length; i++) { switch (typeof arguments[i]) { - case "string": builtin = arguments[i]; break - case "object": cli = arguments[i]; break - case "function": cb = arguments[i]; break + case 'string': builtin = arguments[i]; break + case 'object': cli = arguments[i]; break + case 'function': cb = arguments[i]; break } + } - if (!cb) - cb = function () {} + if (!cb) cb = function () {} if (exports.loaded) { var ret = exports.loaded @@ -59,17 +57,17 @@ function load () { } // either a fresh object, or a clone of the passed in obj - if (!cli) + if (!cli) { cli = {} - else + } else { cli = Object.keys(cli).reduce(function (c, k) { c[k] = cli[k] return c }, {}) + } loadCbs.push(cb) - if (loading) - return + if (loading) return loading = true @@ -87,28 +85,28 @@ function load () { // check for a builtin if provided. exports.usingBuiltin = !!builtin var rc = exports.rootConf = new Conf() - if (builtin) - rc.addFile(builtin, "builtin") - else - rc.add({}, "builtin") + if (builtin) { + rc.addFile(builtin, 'builtin') + } else { + rc.add({}, 'builtin') + } - rc.on("load", function () { + rc.on('load', function () { load_(builtin, rc, cli, cb) }) - rc.on("error", cb) + rc.on('error', cb) } -function load_(builtin, rc, cli, cb) { +function load_ (builtin, rc, cli, cb) { var defaults = configDefs.defaults var conf = new Conf(rc) conf.usingBuiltin = !!builtin - conf.add(cli, "cli") + conf.add(cli, 'cli') conf.addEnv() - conf.loadPrefix(function(er) { - if (er) - return cb(er) + conf.loadPrefix(function (er) { + if (er) return cb(er) // If you're doing `npm --userconfig=~/foo.npmrc` then you'd expect // that ~/.npmrc won't override the stuff in ~/foo.npmrc (or, indeed @@ -126,24 +124,24 @@ function load_(builtin, rc, cli, cb) { // the default or resolved userconfig value. npm will log a "verbose" // message about this when it happens, but it is a rare enough edge case // that we don't have to be super concerned about it. - var projectConf = path.resolve(conf.localPrefix, ".npmrc") - var defaultUserConfig = rc.get("userconfig") - var resolvedUserConfig = conf.get("userconfig") - if (!conf.get("global") && + var projectConf = path.resolve(conf.localPrefix, '.npmrc') + var defaultUserConfig = rc.get('userconfig') + var resolvedUserConfig = conf.get('userconfig') + if (!conf.get('global') && projectConf !== defaultUserConfig && projectConf !== resolvedUserConfig) { - conf.addFile(projectConf, "project") - conf.once("load", afterPrefix) + conf.addFile(projectConf, 'project') + conf.once('load', afterPrefix) } else { - conf.add({}, "project") + conf.add({}, 'project') afterPrefix() } }) - function afterPrefix() { - conf.addFile(conf.get("userconfig"), "user") - conf.once("error", cb) - conf.once("load", afterUser) + function afterPrefix () { + conf.addFile(conf.get('userconfig'), 'user') + conf.once('error', cb) + conf.once('load', afterUser) } function afterUser () { @@ -152,11 +150,11 @@ function load_(builtin, rc, cli, cb) { // Eg, `npm config get globalconfig --prefix ~/local` should // return `~/local/etc/npmrc` // annoying humans and their expectations! - if (conf.get("prefix")) { - var etc = path.resolve(conf.get("prefix"), "etc") - mkdirp(etc, function (err) { - defaults.globalconfig = path.resolve(etc, "npmrc") - defaults.globalignorefile = path.resolve(etc, "npmignore") + if (conf.get('prefix')) { + var etc = path.resolve(conf.get('prefix'), 'etc') + mkdirp(etc, function () { + defaults.globalconfig = path.resolve(etc, 'npmrc') + defaults.globalignorefile = path.resolve(etc, 'npmignore') afterUserContinuation() }) } else { @@ -164,25 +162,24 @@ function load_(builtin, rc, cli, cb) { } } - function afterUserContinuation() { - conf.addFile(conf.get("globalconfig"), "global") + function afterUserContinuation () { + conf.addFile(conf.get('globalconfig'), 'global') // move the builtin into the conf stack now. conf.root = defaults - conf.add(rc.shift(), "builtin") - conf.once("load", function () { + conf.add(rc.shift(), 'builtin') + conf.once('load', function () { conf.loadExtras(afterExtras) }) } - function afterExtras(er) { - if (er) - return cb(er) + function afterExtras (er) { + if (er) return cb(er) // warn about invalid bits. validate(conf) - var cafile = conf.get("cafile") + var cafile = conf.get('cafile') if (cafile) { return conf.loadCAFile(cafile, finalize) @@ -191,7 +188,7 @@ function load_(builtin, rc, cli, cb) { finalize() } - function finalize(er) { + function finalize (er) { if (er) { return cb(er) } @@ -208,36 +205,35 @@ function load_(builtin, rc, cli, cb) { // 4. Can inherit from another Conf object, using it as the base. inherits(Conf, CC) function Conf (base) { - if (!(this instanceof Conf)) - return new Conf(base) + if (!(this instanceof Conf)) return new Conf(base) CC.apply(this) - if (base) - if (base instanceof Conf) + if (base) { + if (base instanceof Conf) { this.root = base.list[0] || base.root - else + } else { this.root = base - else + } + } else { this.root = configDefs.defaults + } } -Conf.prototype.loadPrefix = require("./load-prefix.js") -Conf.prototype.loadCAFile = require("./load-cafile.js") -Conf.prototype.loadUid = require("./load-uid.js") -Conf.prototype.setUser = require("./set-user.js") -Conf.prototype.findPrefix = require("./find-prefix.js") -Conf.prototype.getCredentialsByURI = require("./get-credentials-by-uri.js") -Conf.prototype.setCredentialsByURI = require("./set-credentials-by-uri.js") -Conf.prototype.clearCredentialsByURI = require("./clear-credentials-by-uri.js") - -Conf.prototype.loadExtras = function(cb) { - this.setUser(function(er) { - if (er) - return cb(er) - this.loadUid(function(er) { - if (er) - return cb(er) +Conf.prototype.loadPrefix = require('./load-prefix.js') +Conf.prototype.loadCAFile = require('./load-cafile.js') +Conf.prototype.loadUid = require('./load-uid.js') +Conf.prototype.setUser = require('./set-user.js') +Conf.prototype.findPrefix = require('./find-prefix.js') +Conf.prototype.getCredentialsByURI = require('./get-credentials-by-uri.js') +Conf.prototype.setCredentialsByURI = require('./set-credentials-by-uri.js') +Conf.prototype.clearCredentialsByURI = require('./clear-credentials-by-uri.js') + +Conf.prototype.loadExtras = function (cb) { + this.setUser(function (er) { + if (er) return cb(er) + this.loadUid(function (er) { + if (er) return cb(er) // Without prefix, nothing will ever work mkdirp(this.prefix, cb) }.bind(this)) @@ -247,17 +243,17 @@ Conf.prototype.loadExtras = function(cb) { Conf.prototype.save = function (where, cb) { var target = this.sources[where] if (!target || !(target.path || target.source) || !target.data) { - if (where !== "builtin") - var er = new Error("bad save target: " + where) + var er + if (where !== 'builtin') er = new Error('bad save target: ' + where) if (cb) { process.nextTick(cb.bind(null, er)) return this } - return this.emit("error", er) + return this.emit('error', er) } if (target.source) { - var pref = target.prefix || "" + var pref = target.prefix || '' Object.keys(target.data).forEach(function (k) { target.source[pref + k] = target.data[k] }) @@ -267,11 +263,29 @@ Conf.prototype.save = function (where, cb) { var data = ini.stringify(target.data) + var then = function then (er) { + if (er) return done(er) + + fs.chmod(target.path, mode, done) + } + + var done = function done (er) { + if (er) { + if (cb) return cb(er) + else return this.emit('error', er) + } + this._saving -- + if (this._saving === 0) { + if (cb) cb() + this.emit('save') + } + } + then = then.bind(this) done = done.bind(this) this._saving ++ - var mode = where === "user" ? "0600" : "0666" + var mode = where === 'user' ? '0600' : '0666' if (!data.trim()) { fs.unlink(target.path, function () { // ignore the possible error (e.g. the file doesn't exist) @@ -279,57 +293,40 @@ Conf.prototype.save = function (where, cb) { }) } else { mkdirp(path.dirname(target.path), function (er) { - if (er) - return then(er) - fs.writeFile(target.path, data, "utf8", function (er) { - if (er) - return then(er) - if (where === "user" && myUid && myGid) + if (er) return then(er) + fs.writeFile(target.path, data, 'utf8', function (er) { + if (er) return then(er) + if (where === 'user' && myUid && myGid) { + fs.chown(target.path, +myUid, +myGid, then) - else + } else { then() + } }) }) } - function then (er) { - if (er) - return done(er) - fs.chmod(target.path, mode, done) - } - - function done (er) { - if (er) { - if (cb) return cb(er) - else return this.emit("error", er) - } - this._saving -- - if (this._saving === 0) { - if (cb) cb() - this.emit("save") - } - } - return this } Conf.prototype.addFile = function (file, name) { name = name || file - var marker = {__source__:name} - this.sources[name] = { path: file, type: "ini" } + var marker = { __source__: name } + this.sources[name] = { path: file, type: 'ini' } this.push(marker) this._await() - fs.readFile(file, "utf8", function (er, data) { - if (er) // just ignore missing files. - return this.add({}, marker) - this.addString(data, file, "ini", marker) + fs.readFile(file, 'utf8', function (er, data) { + // just ignore missing files. + if (er) return this.add({}, marker) + + this.addString(data, file, 'ini', marker) }.bind(this)) return this } // always ini files. Conf.prototype.parse = function (content, file) { - return CC.prototype.parse.call(this, content, file, "ini") + return CC.prototype.parse.call(this, content, file, 'ini') } Conf.prototype.add = function (data, marker) { @@ -337,9 +334,8 @@ Conf.prototype.add = function (data, marker) { Object.keys(data).forEach(function (k) { data[k] = parseField(data[k], k) }) - } - catch (e) { - this.emit("error", e) + } catch (e) { + this.emit('error', e) return this } return CC.prototype.add.call(this, data, marker) @@ -351,82 +347,77 @@ Conf.prototype.addEnv = function (env) { Object.keys(env) .filter(function (k) { return k.match(/^npm_config_/i) }) .forEach(function (k) { - if (!env[k]) - return + if (!env[k]) return // leave first char untouched, even if - // it is a "_" - convert all other to "-" + // it is a '_' - convert all other to '-' var p = k.toLowerCase() - .replace(/^npm_config_/, "") - .replace(/(?!^)_/g, "-") + .replace(/^npm_config_/, '') + .replace(/(?!^)_/g, '-') conf[p] = env[k] }) - return CC.prototype.addEnv.call(this, "", conf, "env") + return CC.prototype.addEnv.call(this, '', conf, 'env') } function parseField (f, k) { - if (typeof f !== "string" && !(f instanceof String)) - return f + if (typeof f !== 'string' && !(f instanceof String)) return f // type can be an array or single thing. var typeList = [].concat(types[k]) - var isPath = -1 !== typeList.indexOf(path) - var isBool = -1 !== typeList.indexOf(Boolean) - var isString = -1 !== typeList.indexOf(String) - var isUmask = -1 !== typeList.indexOf(Umask) - var isNumber = -1 !== typeList.indexOf(Number) + var isPath = typeList.indexOf(path) !== -1 + var isBool = typeList.indexOf(Boolean) !== -1 + var isString = typeList.indexOf(String) !== -1 + var isUmask = typeList.indexOf(Umask) !== -1 + var isNumber = typeList.indexOf(Number) !== -1 - f = (""+f).trim() + f = ('' + f).trim() if (f.match(/^".*"$/)) { try { f = JSON.parse(f) - } - catch (e) { - throw new Error("Failed parsing JSON config key " + k + ": " + f) + } catch (e) { + throw new Error('Failed parsing JSON config key ' + k + ': ' + f) } } - if (isBool && !isString && f === "") - return true + if (isBool && !isString && f === '') return true switch (f) { - case "true": return true - case "false": return false - case "null": return null - case "undefined": return undefined + case 'true': return true + case 'false': return false + case 'null': return null + case 'undefined': return undefined } f = envReplace(f) if (isPath) { - var homePattern = process.platform === "win32" ? /^~(\/|\\)/ : /^~\// + var homePattern = process.platform === 'win32' ? /^~(\/|\\)/ : /^~\// if (f.match(homePattern) && process.env.HOME) { f = path.resolve(process.env.HOME, f.substr(2)) } f = path.resolve(f) } - if (isUmask) - f = umask.fromString(f) + if (isUmask) f = umask.fromString(f) - if (isNumber && !isNaN(f)) - f = +f + if (isNumber && !isNaN(f)) f = +f return f } function envReplace (f) { - if (typeof f !== "string" || !f) return f + if (typeof f !== 'string' || !f) return f // replace any ${ENV} values with the appropriate environ. var envExpr = /(\\*)\$\{([^}]+)\}/g return f.replace(envExpr, function (orig, esc, name) { esc = esc.length && esc.length % 2 - if (esc) - return orig - if (undefined === process.env[name]) - throw new Error("Failed to replace env in config: "+orig) + if (esc) return orig + if (undefined === process.env[name]) { + throw new Error('Failed to replace env in config: ' + orig) + } + return process.env[name] }) } diff --git a/deps/npm/lib/config/defaults.js b/deps/npm/lib/config/defaults.js index a90d4c22b0a87e87bf29f2d54047ffdf679c609e..ff56cb8e4e7bdac32ef5f614f44cee0b81d12bb7 100644 --- a/deps/npm/lib/config/defaults.js +++ b/deps/npm/lib/config/defaults.js @@ -1,23 +1,23 @@ // defaults, types, and shorthands. - -var path = require("path") - , url = require("url") - , Stream = require("stream").Stream - , semver = require("semver") - , stableFamily = semver.parse(process.version) - , nopt = require("nopt") - , os = require("os") - , osenv = require("osenv") - , umask = require("../utils/umask") +var path = require('path') +var url = require('url') +var Stream = require('stream').Stream +var semver = require('semver') +var stableFamily = semver.parse(process.version) +var nopt = require('nopt') +var os = require('os') +var osenv = require('osenv') +var umask = require('../utils/umask') +var hasUnicode = require('has-unicode') var log try { - log = require("npmlog") + log = require('npmlog') } catch (er) { - var util = require("util") + var util = require('util') log = { warn: function (m) { - console.warn(m + " " + util.format.apply(util, [].slice.call(arguments, 1))) + console.warn(m + ' ' + util.format.apply(util, [].slice.call(arguments, 1))) } } } @@ -42,7 +42,7 @@ nopt.typeDefs.Stream = { type: Stream, validate: validateStream } nopt.typeDefs.Umask = { type: Umask, validate: validateUmask } nopt.invalidHandler = function (k, val, type) { - log.warn("invalid config", k + "=" + JSON.stringify(val)) + log.warn('invalid config', k + '=' + JSON.stringify(val)) if (Array.isArray(type)) { if (type.indexOf(url) !== -1) type = url @@ -51,25 +51,25 @@ nopt.invalidHandler = function (k, val, type) { switch (type) { case Umask: - log.warn("invalid config", "Must be umask, octal number in range 0000..0777") + log.warn('invalid config', 'Must be umask, octal number in range 0000..0777') break case url: - log.warn("invalid config", "Must be a full url with 'http://'") + log.warn('invalid config', "Must be a full url with 'http://'") break case path: - log.warn("invalid config", "Must be a valid filesystem path") + log.warn('invalid config', 'Must be a valid filesystem path') break case Number: - log.warn("invalid config", "Must be a numeric value") + log.warn('invalid config', 'Must be a numeric value') break case Stream: - log.warn("invalid config", "Must be an instance of the Stream class") + log.warn('invalid config', 'Must be an instance of the Stream class') break } } if (!stableFamily || (+stableFamily.minor % 2)) stableFamily = null -else stableFamily = stableFamily.major + "." + stableFamily.minor +else stableFamily = stableFamily.major + '.' + stableFamily.minor var defaults @@ -79,20 +79,19 @@ var home = osenv.home() var uidOrPid = process.getuid ? process.getuid() : process.pid if (home) process.env.HOME = home -else home = path.resolve(temp, "npm-" + uidOrPid) +else home = path.resolve(temp, 'npm-' + uidOrPid) -var cacheExtra = process.platform === "win32" ? "npm-cache" : ".npm" -var cacheRoot = process.platform === "win32" && process.env.APPDATA || home +var cacheExtra = process.platform === 'win32' ? 'npm-cache' : '.npm' +var cacheRoot = process.platform === 'win32' && process.env.APPDATA || home var cache = path.resolve(cacheRoot, cacheExtra) - var globalPrefix -Object.defineProperty(exports, "defaults", {get: function () { +Object.defineProperty(exports, 'defaults', {get: function () { if (defaults) return defaults if (process.env.PREFIX) { globalPrefix = process.env.PREFIX - } else if (process.platform === "win32") { + } else if (process.platform === 'win32') { // c:\node\node.exe --> prefix=c:\node\ globalPrefix = path.dirname(process.execPath) } else { @@ -106,214 +105,222 @@ Object.defineProperty(exports, "defaults", {get: function () { } defaults = { - access : null - , "always-auth" : false - - , "bin-links" : true - , browser : null - - , ca: null - , cafile: null - - , cache : cache - - , "cache-lock-stale": 60000 - , "cache-lock-retries": 10 - , "cache-lock-wait": 10000 - - , "cache-max": Infinity - , "cache-min": 10 - - , cert: null - - , color : true - , depth: Infinity - , description : true - , dev : false - , editor : osenv.editor() - , "engine-strict": false - , force : false - - , "fetch-retries": 2 - , "fetch-retry-factor": 10 - , "fetch-retry-mintimeout": 10000 - , "fetch-retry-maxtimeout": 60000 - - , git: "git" - , "git-tag-version": true - - , global : false - , globalconfig : path.resolve(globalPrefix, "etc", "npmrc") - , group : process.platform === "win32" ? 0 - : process.env.SUDO_GID || (process.getgid && process.getgid()) - , heading: "npm" - , "if-present": false - , "ignore-scripts": false - , "init-module": path.resolve(home, ".npm-init.js") - , "init-author-name" : "" - , "init-author-email" : "" - , "init-author-url" : "" - , "init-version": "1.0.0" - , "init-license": "ISC" - , json: false - , key: null - , link: false - , "local-address" : undefined - , loglevel : "warn" - , logstream : process.stderr - , long : false - , message : "%s" - , "node-version" : process.version - , npat : false - , "onload-script" : false - , optional: true - , parseable : false - , prefix : globalPrefix - , production: process.env.NODE_ENV === "production" - , "proprietary-attribs": true - , proxy : null - , "https-proxy" : null - , "user-agent" : "npm/{npm-version} " - + "node/{node-version} " - + "{platform} " - + "{arch}" - , "rebuild-bundle" : true - , registry : "https://registry.npmjs.org/" - , rollback : true - , save : false - , "save-bundle": false - , "save-dev" : false - , "save-exact" : false - , "save-optional" : false - , "save-prefix": "^" - , scope : "" - , searchopts: "" - , searchexclude: null - , searchsort: "name" - , shell : osenv.shell() - , shrinkwrap: true - , "sign-git-tag": false - , spin: true - , "strict-ssl": true - , tag : "latest" - , "tag-version-prefix" : "v" - , tmp : temp - , unicode : true - , "unsafe-perm" : process.platform === "win32" - || process.platform === "cygwin" - || !( process.getuid && process.setuid - && process.getgid && process.setgid ) - || process.getuid() !== 0 - , usage : false - , user : process.platform === "win32" ? 0 : "nobody" - , userconfig : path.resolve(home, ".npmrc") - , umask: process.umask ? process.umask() : umask.fromString("022") - , version : false - , versions : false - , viewer: process.platform === "win32" ? "browser" : "man" - - , _exit : true + access: null, + 'always-auth': false, + also: null, + + 'bin-links': true, + browser: null, + + ca: null, + cafile: null, + + cache: cache, + + 'cache-lock-stale': 60000, + 'cache-lock-retries': 10, + 'cache-lock-wait': 10000, + + 'cache-max': Infinity, + 'cache-min': 10, + + cert: null, + + color: true, + depth: Infinity, + description: true, + dev: false, + 'dry-run': false, + editor: osenv.editor(), + 'engine-strict': false, + force: false, + + 'fetch-retries': 2, + 'fetch-retry-factor': 10, + 'fetch-retry-mintimeout': 10000, + 'fetch-retry-maxtimeout': 60000, + + git: 'git', + 'git-tag-version': true, + + global: false, + globalconfig: path.resolve(globalPrefix, 'etc', 'npmrc'), + group: process.platform === 'win32' ? 0 + : process.env.SUDO_GID || (process.getgid && process.getgid()), + heading: 'npm', + 'if-present': false, + 'ignore-scripts': false, + 'init-module': path.resolve(home, '.npm-init.js'), + 'init-author-name': '', + 'init-author-email': '', + 'init-author-url': '', + 'init-version': '1.0.0', + 'init-license': 'ISC', + json: false, + key: null, + link: false, + 'local-address': undefined, + loglevel: 'warn', + logstream: process.stderr, + long: false, + message: '%s', + 'node-version': process.version, + npat: false, + 'onload-script': false, + only: null, + optional: true, + parseable: false, + prefix: globalPrefix, + production: process.env.NODE_ENV === 'production', + 'progress': !process.env.TRAVIS && !process.env.CI, + 'proprietary-attribs': true, + proxy: null, + 'https-proxy': null, + 'user-agent': 'npm/{npm-version} ' + + 'node/{node-version} ' + + '{platform} ' + + '{arch}', + 'rebuild-bundle': true, + registry: 'https://registry.npmjs.org/', + rollback: true, + save: false, + 'save-bundle': false, + 'save-dev': false, + 'save-exact': false, + 'save-optional': false, + 'save-prefix': '^', + scope: '', + searchopts: '', + searchexclude: null, + searchsort: 'name', + shell: osenv.shell(), + shrinkwrap: true, + 'sign-git-tag': false, + 'strict-ssl': true, + tag: 'latest', + 'tag-version-prefix': 'v', + tmp: temp, + unicode: hasUnicode(), + 'unsafe-perm': process.platform === 'win32' || + process.platform === 'cygwin' || + !(process.getuid && process.setuid && + process.getgid && process.setgid) || + process.getuid() !== 0, + usage: false, + user: process.platform === 'win32' ? 0 : 'nobody', + userconfig: path.resolve(home, '.npmrc'), + umask: process.umask ? process.umask() : umask.fromString('022'), + version: false, + versions: false, + viewer: process.platform === 'win32' ? 'browser' : 'man', + + _exit: true } return defaults }}) -exports.types = - { access : [null, "restricted", "public"] - , "always-auth" : Boolean - , "bin-links": Boolean - , browser : [null, String] - , ca: [null, String, Array] - , cafile : path - , cache : path - , "cache-lock-stale": Number - , "cache-lock-retries": Number - , "cache-lock-wait": Number - , "cache-max": Number - , "cache-min": Number - , cert: [null, String] - , color : ["always", Boolean] - , depth : Number - , description : Boolean - , dev : Boolean - , editor : String - , "engine-strict": Boolean - , force : Boolean - , "fetch-retries": Number - , "fetch-retry-factor": Number - , "fetch-retry-mintimeout": Number - , "fetch-retry-maxtimeout": Number - , git: String - , "git-tag-version": Boolean - , global : Boolean - , globalconfig : path - , group : [Number, String] - , "https-proxy" : [null, url] - , "user-agent" : String - , "heading": String - , "if-present": Boolean - , "ignore-scripts": Boolean - , "init-module": path - , "init-author-name" : String - , "init-author-email" : String - , "init-author-url" : ["", url] - , "init-license": String - , "init-version": semver - , json: Boolean - , key: [null, String] - , link: Boolean +exports.types = { + access: [null, 'restricted', 'public'], + 'always-auth': Boolean, + also: [null, 'dev', 'development'], + 'bin-links': Boolean, + browser: [null, String], + ca: [null, String, Array], + cafile: path, + cache: path, + 'cache-lock-stale': Number, + 'cache-lock-retries': Number, + 'cache-lock-wait': Number, + 'cache-max': Number, + 'cache-min': Number, + cert: [null, String], + color: ['always', Boolean], + depth: Number, + description: Boolean, + dev: Boolean, + 'dry-run': Boolean, + editor: String, + 'engine-strict': Boolean, + force: Boolean, + 'fetch-retries': Number, + 'fetch-retry-factor': Number, + 'fetch-retry-mintimeout': Number, + 'fetch-retry-maxtimeout': Number, + git: String, + 'git-tag-version': Boolean, + global: Boolean, + globalconfig: path, + group: [Number, String], + 'https-proxy': [null, url], + 'user-agent': String, + 'heading': String, + 'if-present': Boolean, + 'ignore-scripts': Boolean, + 'init-module': path, + 'init-author-name': String, + 'init-author-email': String, + 'init-author-url': ['', url], + 'init-license': String, + 'init-version': semver, + json: Boolean, + key: [null, String], + link: Boolean, // local-address must be listed as an IP for a local network interface // must be IPv4 due to node bug - , "local-address" : getLocalAddresses() - , loglevel : ["silent", "error", "warn", "http", "info", "verbose", "silly"] - , logstream : Stream - , long : Boolean - , message: String - , "node-version" : [null, semver] - , npat : Boolean - , "onload-script" : [null, String] - , optional: Boolean - , parseable : Boolean - , prefix: path - , production: Boolean - , "proprietary-attribs": Boolean - , proxy : [null, false, url] // allow proxy to be disabled explicitly - , "rebuild-bundle" : Boolean - , registry : [null, url] - , rollback : Boolean - , save : Boolean - , "save-bundle": Boolean - , "save-dev" : Boolean - , "save-exact" : Boolean - , "save-optional" : Boolean - , "save-prefix": String - , scope : String - , searchopts : String - , searchexclude: [null, String] - , searchsort: [ "name", "-name" - , "description", "-description" - , "author", "-author" - , "date", "-date" - , "keywords", "-keywords" ] - , shell : String - , shrinkwrap: Boolean - , "sign-git-tag": Boolean - , spin: ["always", Boolean] - , "strict-ssl": Boolean - , tag : String - , tmp : path - , unicode : Boolean - , "unsafe-perm" : Boolean - , usage : Boolean - , user : [Number, String] - , userconfig : path - , umask: Umask - , version : Boolean - , "tag-version-prefix" : String - , versions : Boolean - , viewer: String - , _exit : Boolean - } + 'local-address': getLocalAddresses(), + loglevel: ['silent', 'error', 'warn', 'http', 'info', 'verbose', 'silly'], + logstream: Stream, + long: Boolean, + message: String, + 'node-version': [null, semver], + npat: Boolean, + 'onload-script': [null, String], + only: [null, 'dev', 'development', 'prod', 'production'], + optional: Boolean, + parseable: Boolean, + prefix: path, + production: Boolean, + progress: Boolean, + 'proprietary-attribs': Boolean, + proxy: [null, false, url], // allow proxy to be disabled explicitly + 'rebuild-bundle': Boolean, + registry: [null, url], + rollback: Boolean, + save: Boolean, + 'save-bundle': Boolean, + 'save-dev': Boolean, + 'save-exact': Boolean, + 'save-optional': Boolean, + 'save-prefix': String, + scope: String, + searchopts: String, + searchexclude: [null, String], + searchsort: [ + 'name', '-name', + 'description', '-description', + 'author', '-author', + 'date', '-date', + 'keywords', '-keywords' + ], + shell: String, + shrinkwrap: Boolean, + 'sign-git-tag': Boolean, + 'strict-ssl': Boolean, + tag: String, + tmp: path, + unicode: Boolean, + 'unsafe-perm': Boolean, + usage: Boolean, + user: [Number, String], + userconfig: path, + umask: Umask, + version: Boolean, + 'tag-version-prefix': String, + versions: Boolean, + viewer: String, + _exit: Boolean +} function getLocalAddresses () { var interfaces @@ -338,41 +345,41 @@ function getLocalAddresses () { }, []).concat(undefined) } -exports.shorthands = - { s : ["--loglevel", "silent"] - , d : ["--loglevel", "info"] - , dd : ["--loglevel", "verbose"] - , ddd : ["--loglevel", "silly"] - , noreg : ["--no-registry"] - , N : ["--no-registry"] - , reg : ["--registry"] - , "no-reg" : ["--no-registry"] - , silent : ["--loglevel", "silent"] - , verbose : ["--loglevel", "verbose"] - , quiet: ["--loglevel", "warn"] - , q: ["--loglevel", "warn"] - , h : ["--usage"] - , H : ["--usage"] - , "?" : ["--usage"] - , help : ["--usage"] - , v : ["--version"] - , f : ["--force"] - , gangster : ["--force"] - , gangsta : ["--force"] - , desc : ["--description"] - , "no-desc" : ["--no-description"] - , "local" : ["--no-global"] - , l : ["--long"] - , m : ["--message"] - , p : ["--parseable"] - , porcelain : ["--parseable"] - , g : ["--global"] - , S : ["--save"] - , D : ["--save-dev"] - , E : ["--save-exact"] - , O : ["--save-optional"] - , y : ["--yes"] - , n : ["--no-yes"] - , B : ["--save-bundle"] - , C : ["--prefix"] - } +exports.shorthands = { + s: ['--loglevel', 'silent'], + d: ['--loglevel', 'info'], + dd: ['--loglevel', 'verbose'], + ddd: ['--loglevel', 'silly'], + noreg: ['--no-registry'], + N: ['--no-registry'], + reg: ['--registry'], + 'no-reg': ['--no-registry'], + silent: ['--loglevel', 'silent'], + verbose: ['--loglevel', 'verbose'], + quiet: ['--loglevel', 'warn'], + q: ['--loglevel', 'warn'], + h: ['--usage'], + H: ['--usage'], + '?': ['--usage'], + help: ['--usage'], + v: ['--version'], + f: ['--force'], + gangster: ['--force'], + gangsta: ['--force'], + desc: ['--description'], + 'no-desc': ['--no-description'], + 'local': ['--no-global'], + l: ['--long'], + m: ['--message'], + p: ['--parseable'], + porcelain: ['--parseable'], + g: ['--global'], + S: ['--save'], + D: ['--save-dev'], + E: ['--save-exact'], + O: ['--save-optional'], + y: ['--yes'], + n: ['--no-yes'], + B: ['--save-bundle'], + C: ['--prefix'] +} diff --git a/deps/npm/lib/config/find-prefix.js b/deps/npm/lib/config/find-prefix.js index bb00cd6b10c2fe99ebaec826d4bfa5191c16f268..58f5cc8040b4d6b68560ec42e70e6c411a424dda 100644 --- a/deps/npm/lib/config/find-prefix.js +++ b/deps/npm/lib/config/find-prefix.js @@ -2,8 +2,8 @@ module.exports = findPrefix -var fs = require("fs") -var path = require("path") +var fs = require('fs') +var path = require('path') function findPrefix (p, cb_) { function cb (er, p) { @@ -17,7 +17,7 @@ function findPrefix (p, cb_) { // walk up until we hopefully find one. // if none anywhere, then use cwd. var walkedUp = false - while (path.basename(p) === "node_modules") { + while (path.basename(p) === 'node_modules') { p = path.dirname(p) walkedUp = true } @@ -27,8 +27,8 @@ function findPrefix (p, cb_) { } function findPrefix_ (p, original, cb) { - if (p === "/" - || (process.platform === "win32" && p.match(/^[a-zA-Z]:(\\|\/)?$/))) { + if (p === '/' || + (process.platform === 'win32' && p.match(/^[a-zA-Z]:(\\|\/)?$/))) { return cb(null, original) } fs.readdir(p, function (er, files) { @@ -36,15 +36,15 @@ function findPrefix_ (p, original, cb) { // unless the prefix was simply a non // existent directory. if (er && p === original) { - if (er.code === "ENOENT") return cb(null, original); + if (er.code === 'ENOENT') return cb(null, original) return cb(er) } // walked up too high or something. if (er) return cb(null, original) - if (files.indexOf("node_modules") !== -1 - || files.indexOf("package.json") !== -1) { + if (files.indexOf('node_modules') !== -1 || + files.indexOf('package.json') !== -1) { return cb(null, p) } diff --git a/deps/npm/lib/config/get-credentials-by-uri.js b/deps/npm/lib/config/get-credentials-by-uri.js index 26a7f4317c6a3a7bcc0d7fccb86803f294ec4b02..a073a594a5b681f25ed60ab1a9e037be43b98d49 100644 --- a/deps/npm/lib/config/get-credentials-by-uri.js +++ b/deps/npm/lib/config/get-credentials-by-uri.js @@ -1,27 +1,27 @@ -var assert = require("assert") +var assert = require('assert') -var toNerfDart = require("./nerf-dart.js") +var toNerfDart = require('./nerf-dart.js') module.exports = getCredentialsByURI function getCredentialsByURI (uri) { - assert(uri && typeof uri === "string", "registry URL is required") + assert(uri && typeof uri === 'string', 'registry URL is required') var nerfed = toNerfDart(uri) - var defnerf = toNerfDart(this.get("registry")) + var defnerf = toNerfDart(this.get('registry')) // hidden class micro-optimization var c = { - scope : nerfed, - token : undefined, - password : undefined, - username : undefined, - email : undefined, - auth : undefined, - alwaysAuth : undefined + scope: nerfed, + token: undefined, + password: undefined, + username: undefined, + email: undefined, + auth: undefined, + alwaysAuth: undefined } - if (this.get(nerfed + ":_authToken")) { - c.token = this.get(nerfed + ":_authToken") + if (this.get(nerfed + ':_authToken')) { + c.token = this.get(nerfed + ':_authToken') // the bearer token is enough, don't confuse things return c } @@ -30,43 +30,43 @@ function getCredentialsByURI (uri) { // registry, if set. // // XXX(isaacs): Remove when npm 1.4 is no longer relevant - var authDef = this.get("_auth") - var userDef = this.get("username") - var passDef = this.get("_password") + var authDef = this.get('_auth') + var userDef = this.get('username') + var passDef = this.get('_password') if (authDef && !(userDef && passDef)) { - authDef = new Buffer(authDef, "base64").toString() - authDef = authDef.split(":") + authDef = new Buffer(authDef, 'base64').toString() + authDef = authDef.split(':') userDef = authDef.shift() - passDef = authDef.join(":") + passDef = authDef.join(':') } - if (this.get(nerfed + ":_password")) { - c.password = new Buffer(this.get(nerfed + ":_password"), "base64").toString("utf8") + if (this.get(nerfed + ':_password')) { + c.password = new Buffer(this.get(nerfed + ':_password'), 'base64').toString('utf8') } else if (nerfed === defnerf && passDef) { c.password = passDef } - if (this.get(nerfed + ":username")) { - c.username = this.get(nerfed + ":username") + if (this.get(nerfed + ':username')) { + c.username = this.get(nerfed + ':username') } else if (nerfed === defnerf && userDef) { c.username = userDef } - if (this.get(nerfed + ":email")) { - c.email = this.get(nerfed + ":email") - } else if (this.get("email")) { - c.email = this.get("email") + if (this.get(nerfed + ':email')) { + c.email = this.get(nerfed + ':email') + } else if (this.get('email')) { + c.email = this.get('email') } - if (this.get(nerfed + ":always-auth") !== undefined) { - var val = this.get(nerfed + ":always-auth") - c.alwaysAuth = val === "false" ? false : !!val - } else if (this.get("always-auth") !== undefined) { - c.alwaysAuth = this.get("always-auth") + if (this.get(nerfed + ':always-auth') !== undefined) { + var val = this.get(nerfed + ':always-auth') + c.alwaysAuth = val === 'false' ? false : !!val + } else if (this.get('always-auth') !== undefined) { + c.alwaysAuth = this.get('always-auth') } if (c.username && c.password) { - c.auth = new Buffer(c.username + ":" + c.password).toString("base64") + c.auth = new Buffer(c.username + ':' + c.password).toString('base64') } return c diff --git a/deps/npm/lib/config/load-cafile.js b/deps/npm/lib/config/load-cafile.js index cc63615ff55532d9cc363e5163964646b46978bc..1bf9cc49005670f101385f5c73552f19462dc62d 100644 --- a/deps/npm/lib/config/load-cafile.js +++ b/deps/npm/lib/config/load-cafile.js @@ -1,14 +1,13 @@ module.exports = loadCAFile -var fs = require("fs") +var fs = require('fs') -function loadCAFile(cafilePath, cb) { - if (!cafilePath) - return process.nextTick(cb) +function loadCAFile (cafilePath, cb) { + if (!cafilePath) return process.nextTick(cb) - fs.readFile(cafilePath, "utf8", afterCARead.bind(this)) + fs.readFile(cafilePath, 'utf8', afterCARead.bind(this)) - function afterCARead(er, cadata) { + function afterCARead (er, cadata) { if (er) { // previous cafile no longer exists, so just continue on gracefully @@ -16,19 +15,19 @@ function loadCAFile(cafilePath, cb) { return cb(er) } - var delim = "-----END CERTIFICATE-----" + var delim = '-----END CERTIFICATE-----' var output output = cadata .split(delim) - .filter(function(xs) { + .filter(function (xs) { return !!xs.trim() }) - .map(function(xs) { + .map(function (xs) { return xs.trimLeft() + delim }) - this.set("ca", output) + this.set('ca', output) cb(null) } } diff --git a/deps/npm/lib/config/load-prefix.js b/deps/npm/lib/config/load-prefix.js index 39d076fb7d4434e5874b175f48d54e448d3196f6..01a9252803b74d6b8f01e118d98a7f5c380b60bd 100644 --- a/deps/npm/lib/config/load-prefix.js +++ b/deps/npm/lib/config/load-prefix.js @@ -1,43 +1,43 @@ module.exports = loadPrefix -var findPrefix = require("./find-prefix.js") -var path = require("path") +var findPrefix = require('./find-prefix.js') +var path = require('path') function loadPrefix (cb) { var cli = this.list[0] - Object.defineProperty(this, "prefix", - { set : function (prefix) { - var g = this.get("global") - this[g ? "globalPrefix" : "localPrefix"] = prefix - }.bind(this) - , get : function () { - var g = this.get("global") + Object.defineProperty(this, 'prefix', + { set: function (prefix) { + var g = this.get('global') + this[g ? 'globalPrefix' : 'localPrefix'] = prefix + }.bind(this), + get: function () { + var g = this.get('global') return g ? this.globalPrefix : this.localPrefix - }.bind(this) - , enumerable : true + }.bind(this), + enumerable: true }) - Object.defineProperty(this, "globalPrefix", - { set : function (prefix) { - this.set("prefix", prefix) - }.bind(this) - , get : function () { - return path.resolve(this.get("prefix")) - }.bind(this) - , enumerable : true + Object.defineProperty(this, 'globalPrefix', + { set: function (prefix) { + this.set('prefix', prefix) + }.bind(this), + get: function () { + return path.resolve(this.get('prefix')) + }.bind(this), + enumerable: true }) var p - Object.defineProperty(this, "localPrefix", - { set : function (prefix) { p = prefix }, - get : function () { return p } - , enumerable: true }) + Object.defineProperty(this, 'localPrefix', + { set: function (prefix) { p = prefix }, + get: function () { return p }, + enumerable: true }) // try to guess at a good node_modules location. // If we are *explicitly* given a prefix on the cli, then // always use that. otherwise, infer local prefix from cwd. - if (Object.prototype.hasOwnProperty.call(cli, "prefix")) { + if (Object.prototype.hasOwnProperty.call(cli, 'prefix')) { p = path.resolve(cli.prefix) process.nextTick(cb) } else { diff --git a/deps/npm/lib/config/load-uid.js b/deps/npm/lib/config/load-uid.js index 3ca79877353519e3f52bb7f07e1f68c29e95022b..859eac7494bc7e426676383376dc7584b89479b9 100644 --- a/deps/npm/lib/config/load-uid.js +++ b/deps/npm/lib/config/load-uid.js @@ -1,14 +1,14 @@ module.exports = loadUid -var getUid = require("uid-number") +var getUid = require('uid-number') // Call in the context of a npmconf object function loadUid (cb) { // if we're not in unsafe-perm mode, then figure out who // to run stuff as. Do this first, to support `npm update npm -g` - if (!this.get("unsafe-perm")) { - getUid(this.get("user"), this.get("group"), cb) + if (!this.get('unsafe-perm')) { + getUid(this.get('user'), this.get('group'), cb) } else { process.nextTick(cb) } diff --git a/deps/npm/lib/config/nerf-dart.js b/deps/npm/lib/config/nerf-dart.js index 07c817500f6fbedb715eae6845e78df58d32e657..8d2bdd26edf9ba89a49b8f0c698d307758787de9 100644 --- a/deps/npm/lib/config/nerf-dart.js +++ b/deps/npm/lib/config/nerf-dart.js @@ -1,4 +1,4 @@ -var url = require("url") +var url = require('url') module.exports = toNerfDart @@ -11,7 +11,7 @@ module.exports = toNerfDart * * @returns {String} A nerfed URL. */ -function toNerfDart(uri) { +function toNerfDart (uri) { var parsed = url.parse(uri) delete parsed.protocol delete parsed.auth @@ -19,5 +19,5 @@ function toNerfDart(uri) { delete parsed.search delete parsed.hash - return url.resolve(url.format(parsed), ".") + return url.resolve(url.format(parsed), '.') } diff --git a/deps/npm/lib/config/set-credentials-by-uri.js b/deps/npm/lib/config/set-credentials-by-uri.js index 31eab4479ede21c390e6b22bd352168ba2eef454..74211380d86b6f8b80b082af42f5fa6ed80880b0 100644 --- a/deps/npm/lib/config/set-credentials-by-uri.js +++ b/deps/npm/lib/config/set-credentials-by-uri.js @@ -1,42 +1,39 @@ -var assert = require("assert") +var assert = require('assert') -var toNerfDart = require("./nerf-dart.js") +var toNerfDart = require('./nerf-dart.js') module.exports = setCredentialsByURI function setCredentialsByURI (uri, c) { - assert(uri && typeof uri === "string", "registry URL is required") - assert(c && typeof c === "object", "credentials are required") + assert(uri && typeof uri === 'string', 'registry URL is required') + assert(c && typeof c === 'object', 'credentials are required') var nerfed = toNerfDart(uri) if (c.token) { - this.set(nerfed + ":_authToken", c.token, "user") - this.del(nerfed + ":_password", "user") - this.del(nerfed + ":username", "user") - this.del(nerfed + ":email", "user") - this.del(nerfed + ":always-auth", "user") - } - else if (c.username || c.password || c.email) { - assert(c.username, "must include username") - assert(c.password, "must include password") - assert(c.email, "must include email address") - - this.del(nerfed + ":_authToken", "user") - - var encoded = new Buffer(c.password, "utf8").toString("base64") - this.set(nerfed + ":_password", encoded, "user") - this.set(nerfed + ":username", c.username, "user") - this.set(nerfed + ":email", c.email, "user") + this.set(nerfed + ':_authToken', c.token, 'user') + this.del(nerfed + ':_password', 'user') + this.del(nerfed + ':username', 'user') + this.del(nerfed + ':email', 'user') + this.del(nerfed + ':always-auth', 'user') + } else if (c.username || c.password || c.email) { + assert(c.username, 'must include username') + assert(c.password, 'must include password') + assert(c.email, 'must include email address') + + this.del(nerfed + ':_authToken', 'user') + + var encoded = new Buffer(c.password, 'utf8').toString('base64') + this.set(nerfed + ':_password', encoded, 'user') + this.set(nerfed + ':username', c.username, 'user') + this.set(nerfed + ':email', c.email, 'user') if (c.alwaysAuth !== undefined) { - this.set(nerfed + ":always-auth", c.alwaysAuth, "user") + this.set(nerfed + ':always-auth', c.alwaysAuth, 'user') + } else { + this.del(nerfed + ':always-auth', 'user') } - else { - this.del(nerfed + ":always-auth", "user") - } - } - else { - throw new Error("No credentials to set.") + } else { + throw new Error('No credentials to set.') } } diff --git a/deps/npm/lib/config/set-user.js b/deps/npm/lib/config/set-user.js index 4c207a6792a6f42be9d1ac78873527de3e6c8ee5..14cc21d2ebd99827ac04d1ea1a6cb08ae23d2cde 100644 --- a/deps/npm/lib/config/set-user.js +++ b/deps/npm/lib/config/set-user.js @@ -1,9 +1,9 @@ module.exports = setUser -var assert = require("assert") -var path = require("path") -var fs = require("fs") -var mkdirp = require("mkdirp") +var assert = require('assert') +var path = require('path') +var fs = require('fs') +var mkdirp = require('mkdirp') function setUser (cb) { var defaultConf = this.root @@ -12,13 +12,13 @@ function setUser (cb) { // If global, leave it as-is. // If not global, then set the user to the owner of the prefix folder. // Just set the default, so it can be overridden. - if (this.get("global")) return cb() + if (this.get('global')) return cb() if (process.env.SUDO_UID) { defaultConf.user = +(process.env.SUDO_UID) return cb() } - var prefix = path.resolve(this.get("prefix")) + var prefix = path.resolve(this.get('prefix')) mkdirp(prefix, function (er) { if (er) return cb(er) fs.stat(prefix, function (er, st) { diff --git a/deps/npm/lib/dedupe.js b/deps/npm/lib/dedupe.js index c63705e18d6ea97380d4a1b72a8cd21618450640..2feaa9f8893f03660141cf671c6329ba8b9088d9 100644 --- a/deps/npm/lib/dedupe.js +++ b/deps/npm/lib/dedupe.js @@ -1,375 +1,160 @@ -// traverse the node_modules/package.json tree -// looking for duplicates. If any duplicates are found, -// then move them up to the highest level necessary -// in order to make them no longer duplicated. -// -// This is kind of ugly, and really highlights the need for -// much better "put pkg X at folder Y" abstraction. Oh well, -// whatever. Perfect enemy of the good, and all that. - -var fs = require("fs") -var asyncMap = require("slide").asyncMap -var path = require("path") -var readJson = require("read-package-json") -var semver = require("semver") -var rm = require("./utils/gently-rm.js") -var log = require("npmlog") -var npm = require("./npm.js") -var mapToRegistry = require("./utils/map-to-registry.js") +var util = require('util') +var path = require('path') +var validate = require('aproba') +var without = require('lodash.without') +var asyncMap = require('slide').asyncMap +var chain = require('slide').chain +var npa = require('npm-package-arg') +var log = require('npmlog') +var npm = require('./npm.js') +var Installer = require('./install.js').Installer +var findRequirement = require('./install/deps.js').findRequirement +var earliestInstallable = require('./install/deps.js').earliestInstallable +var checkPermissions = require('./install/check-permissions.js') +var decomposeActions = require('./install/decompose-actions.js') +var loadExtraneous = require('./install/deps.js').loadExtraneous +var filterInvalidActions = require('./install/filter-invalid-actions.js') +var recalculateMetadata = require('./install/deps.js').recalculateMetadata +var sortActions = require('./install/diff-trees.js').sortActions module.exports = dedupe +module.exports.Deduper = Deduper -dedupe.usage = "npm dedupe [pkg pkg...]" +dedupe.usage = 'npm dedupe [package names...]' -function dedupe (args, silent, cb) { - if (typeof silent === "function") cb = silent, silent = false +function dedupe (args, cb) { + validate('AF', arguments) + // the /path/to/node_modules/.. + var where = path.resolve(npm.dir, '..') var dryrun = false if (npm.command.match(/^find/)) dryrun = true - return dedupe_(npm.prefix, args, {}, dryrun, silent, cb) -} - -function dedupe_ (dir, filter, unavoidable, dryrun, silent, cb) { - readInstalled(path.resolve(dir), {}, null, function (er, data, counter) { - if (er) { - return cb(er) - } - - if (!data) { - return cb() - } - - // find out which things are dupes - var dupes = Object.keys(counter || {}).filter(function (k) { - if (filter.length && -1 === filter.indexOf(k)) return false - return counter[k] > 1 && !unavoidable[k] - }).reduce(function (s, k) { - s[k] = [] - return s - }, {}) - - // any that are unavoidable need to remain as they are. don't even - // try to touch them or figure it out. Maybe some day, we can do - // something a bit more clever here, but for now, just skip over it, - // and all its children. - ;(function U (obj) { - if (unavoidable[obj.name]) { - obj.unavoidable = true - } - if (obj.parent && obj.parent.unavoidable) { - obj.unavoidable = true - } - Object.keys(obj.children).forEach(function (k) { - U(obj.children[k]) - }) - })(data) - - // then collect them up and figure out who needs them - ;(function C (obj) { - if (dupes[obj.name] && !obj.unavoidable) { - dupes[obj.name].push(obj) - obj.duplicate = true - } - obj.dependents = whoDepends(obj) - Object.keys(obj.children).forEach(function (k) { - C(obj.children[k]) - }) - })(data) - - if (dryrun) { - var k = Object.keys(dupes) - if (!k.length) return cb() - return npm.commands.ls(k, silent, cb) - } - - var summary = Object.keys(dupes).map(function (n) { - return [n, dupes[n].filter(function (d) { - return d && d.parent && !d.parent.duplicate && !d.unavoidable - }).map(function M (d) { - return [d.path, d.version, d.dependents.map(function (k) { - return [k.path, k.version, k.dependencies[d.name] || ""] - })] - })] - }).map(function (item) { - var set = item[1] - - var ranges = set.map(function (i) { - return i[2].map(function (d) { - return d[2] - }) - }).reduce(function (l, r) { - return l.concat(r) - }, []).map(function (v, i, set) { - if (set.indexOf(v) !== i) return false - return v - }).filter(function (v) { - return v !== false - }) - - var locs = set.map(function (i) { - return i[0] - }) - - var versions = set.map(function (i) { - return i[1] - }).filter(function (v, i, set) { - return set.indexOf(v) === i - }) - - var has = set.map(function (i) { - return [i[0], i[1]] - }).reduce(function (set, kv) { - set[kv[0]] = kv[1] - return set - }, {}) + if (npm.config.get('dry-run')) dryrun = true - var loc = locs.length ? locs.reduce(function (a, b) { - // a=/path/to/node_modules/foo/node_modules/bar - // b=/path/to/node_modules/elk/node_modules/bar - // ==/path/to/node_modules/bar - var nmReg = new RegExp("\\" + path.sep + "node_modules\\" + path.sep) - a = a.split(nmReg) - b = b.split(nmReg) - var name = a.pop() - b.pop() - // find the longest chain that both A and B share. - // then push the name back on it, and join by /node_modules/ - for (var i = 0, al = a.length, bl = b.length; i < al && i < bl && a[i] === b[i]; i++); - return a.slice(0, i).concat(name).join(path.sep + "node_modules" + path.sep) - }) : undefined - - return [item[0], { item: item - , ranges: ranges - , locs: locs - , loc: loc - , has: has - , versions: versions - }] - }).filter(function (i) { - return i[1].loc - }) - - findVersions(npm, summary, function (er, set) { - if (er) return cb(er) - if (!set.length) return cb() - installAndRetest(set, filter, dir, unavoidable, silent, cb) - }) - }) + new Deduper(where, dryrun).run(cb) } -function installAndRetest (set, filter, dir, unavoidable, silent, cb) { - //return cb(null, set) - var remove = [] - - asyncMap(set, function (item, cb) { - // [name, has, loc, locMatch, regMatch, others] - var name = item[0] - var has = item[1] - var where = item[2] - var locMatch = item[3] - var regMatch = item[4] - var others = item[5] - - // nothing to be done here. oh well. just a conflict. - if (!locMatch && !regMatch) { - log.warn("unavoidable conflict", item[0], item[1]) - log.warn("unavoidable conflict", "Not de-duplicating") - unavoidable[item[0]] = true - return cb() - } - - // nothing to do except to clean up the extraneous deps - if (locMatch && has[where] === locMatch) { - remove.push.apply(remove, others) - return cb() - } - - if (regMatch) { - var what = name + "@" + regMatch - // where is /path/to/node_modules/foo/node_modules/bar - // for package "bar", but we need it to be just - // /path/to/node_modules/foo - var nmReg = new RegExp("\\" + path.sep + "node_modules\\" + path.sep) - where = where.split(nmReg) - where.pop() - where = where.join(path.sep + "node_modules" + path.sep) - remove.push.apply(remove, others) - - return npm.commands.install(where, what, cb) - } - - // hrm? - return cb(new Error("danger zone\n" + name + " " + - regMatch + " " + locMatch)) - - }, function (er) { - if (er) return cb(er) - asyncMap(remove, rm, function (er) { - if (er) return cb(er) - remove.forEach(function (r) { - log.info("rm", r) - }) - dedupe_(dir, filter, unavoidable, false, silent, cb) - }) - }) +function Deduper (where, dryrun) { + validate('SB', arguments) + Installer.call(this, where, dryrun, []) + this.noPackageJsonOk = true + this.topLevelLifecycles = false } - -function findVersions (npm, summary, cb) { - // now, for each item in the summary, try to find the maximum version - // that will satisfy all the ranges. next step is to install it at - // the specified location. - asyncMap(summary, function (item, cb) { - var name = item[0] - var data = item[1] - var loc = data.loc - var locs = data.locs.filter(function (l) { - return l !== loc +util.inherits(Deduper, Installer) + +Deduper.prototype.normalizeTree = function (log, cb) { + validate('OF', arguments) + log.silly('dedupe', 'normalizeTree') + // If we're looking globally only look at the one package we're operating on + if (npm.config.get('global')) { + var args = this.args + this.currentTree.children = this.currentTree.children.filter(function (child) { + return args.filter(function (arg) { return arg === child.package.name }).length }) + } + Installer.prototype.normalizeTree.call(this, log, cb) +} - // not actually a dupe, or perhaps all the other copies were - // children of a dupe, so this'll maybe be picked up later. - if (locs.length === 0) { - return cb(null, []) - } - - // { : } - var has = data.has - - // the versions that we already have. - // if one of these is ok, then prefer to use that. - // otherwise, try fetching from the registry. - var versions = data.versions - - var ranges = data.ranges - mapToRegistry(name, npm.config, function (er, uri, auth) { - if (er) return cb(er) - - npm.registry.get(uri, { auth : auth }, next) - }) +Deduper.prototype.loadIdealTree = function (cb) { + validate('F', arguments) + log.silly('install', 'loadIdealTree') - function next (er, data) { - var regVersions = er ? [] : Object.keys(data.versions) - var locMatch = bestMatch(versions, ranges) - var tag = npm.config.get("tag") - var distTag = data["dist-tags"] && data["dist-tags"][tag] + var self = this + chain([ + [this.newTracker(this.progress.loadIdealTree, 'cloneCurrentTree')], + [this, this.cloneCurrentTreeToIdealTree], + [this, this.finishTracker, 'cloneCurrentTree'], - var regMatch - if (distTag && data.versions[distTag] && matches(distTag, ranges)) { - regMatch = distTag - } else { - regMatch = bestMatch(regVersions, ranges) - } + [this.newTracker(this.progress.loadIdealTree, 'loadAllDepsIntoIdealTree', 10)], + [function (next) { + loadExtraneous(self.idealTree, self.progress.loadAllDepsIntoIdealTree, next) + }], + [this, this.finishTracker, 'loadAllDepsIntoIdealTree'], - cb(null, [[name, has, loc, locMatch, regMatch, locs]]) - } - }, cb) + [this, function (next) { recalculateMetadata(this.idealTree, log, next) }] + ], cb) } -function matches (version, ranges) { - return !ranges.some(function (r) { - return !semver.satisfies(version, r, true) - }) +Deduper.prototype.generateActionsToTake = function (cb) { + validate('F', arguments) + log.silly('dedupe', 'generateActionsToTake') + chain([ + [this.newTracker(log, 'hoist', 1)], + [hoistChildren, this.idealTree, this.differences], + [this, this.finishTracker, 'hoist'], + [this.newTracker(log, 'sort-actions', 1)], + [this, function (next) { + this.differences = sortActions(this.differences) + next() + }], + [this, this.finishTracker, 'sort-actions'], + [filterInvalidActions, this.where, this.differences], + [checkPermissions, this.differences], + [decomposeActions, this.differences, this.todo] + ], cb) } -function bestMatch (versions, ranges) { - return versions.filter(function (v) { - return matches(v, ranges) - }).sort(semver.compareLoose).pop() +function move (node, hoistTo, diff) { + node.parent.children = without(node.parent.children, node) + hoistTo.children.push(node) + node.fromPath = node.path + node.path = path.resolve(hoistTo.path, 'node_modules', node.package.name) + node.parent = hoistTo + if (!diff.filter(function (action) { return action[0] === 'move' && action[1] === node }).length) { + diff.push(['move', node]) + } } - -function readInstalled (dir, counter, parent, cb) { - var pkg, children, realpath - - fs.realpath(dir, function (er, rp) { - realpath = rp - next() +function moveRemainingChildren (node, diff) { + node.children.forEach(function (child) { + move(child, node, diff) + moveRemainingChildren(child, diff) }) +} - readJson(path.resolve(dir, "package.json"), function (er, data) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) - if (er) return cb() // not a package, probably. - counter[data.name] = counter[data.name] || 0 - counter[data.name]++ - pkg = - { _id: data._id - , name: data.name - , version: data.version - , dependencies: data.dependencies || {} - , optionalDependencies: data.optionalDependencies || {} - , devDependencies: data.devDependencies || {} - , bundledDependencies: data.bundledDependencies || [] - , path: dir - , realPath: dir - , children: {} - , parent: parent - , family: Object.create(parent ? parent.family : null) - , unavoidable: false - , duplicate: false - } - if (parent) { - parent.children[data.name] = pkg - parent.family[data.name] = pkg - } - next() - }) - - fs.readdir(path.resolve(dir, "node_modules"), function (er, c) { - children = children || [] // error is ok, just means no children. - // check if there are scoped packages. - asyncMap(c || [], function (child, cb) { - if (child.indexOf('@') === 0) { - fs.readdir(path.resolve(dir, "node_modules", child), function (er, scopedChildren) { - // error is ok, just means no children. - (scopedChildren || []).forEach(function (sc) { - children.push(path.join(child, sc)) - }) - cb() - }) - } else { - children.push(child) - cb() - } - }, function (er) { - if (er) return cb(er) - children = children.filter(function (p) { - return !p.match(/^[\._-]/) - }) - next(); - }); - }) - - function next () { - if (!children || !pkg || !realpath) return - - // ignore devDependencies. Just leave them where they are. - children = children.filter(function (c) { - return !pkg.devDependencies.hasOwnProperty(c) - }) +function remove (child, diff, done) { + remove_(child, diff, {}, done) +} - pkg.realPath = realpath - if (pkg.realPath !== pkg.path) children = [] - var d = path.resolve(dir, "node_modules") - asyncMap(children, function (child, cb) { - readInstalled(path.resolve(d, child), counter, pkg, cb) - }, function (er) { - cb(er, pkg, counter) - }) - } +function remove_ (child, diff, seen, done) { + if (seen[child.path]) return done() + seen[child.path] = true + diff.push(['remove', child]) + child.parent.children = without(child.parent.children, child) + asyncMap(child.children, function (child, next) { + remove_(child, diff, seen, next) + }, done) } -function whoDepends (pkg) { - var start = pkg.parent || pkg - return whoDepends_(pkg, [], start) +function hoistChildren (tree, diff, next) { + hoistChildren_(tree, diff, {}, next) } -function whoDepends_ (pkg, who, test) { - if (test !== pkg && - test.dependencies[pkg.name] && - test.family[pkg.name] === pkg) { - who.push(test) - } - Object.keys(test.children).forEach(function (n) { - whoDepends_(pkg, who, test.children[n]) - }) - return who +function hoistChildren_ (tree, diff, seen, next) { + validate('OAOF', arguments) + if (seen[tree.path]) return next() + seen[tree.path] = true + asyncMap(tree.children, function (child, done) { + if (!tree.parent) return hoistChildren_(child, diff, seen, done) + var better = findRequirement(tree.parent, child.package.name, child.package._requested || npa(child.package.name + '@' + child.package.version)) + if (better) { + return chain([ + [remove, child, diff], + [recalculateMetadata, tree, log] + ], done) + } + var hoistTo = earliestInstallable(tree, tree.parent, child.package) + if (hoistTo) { + move(child, hoistTo, diff) + chain([ + [recalculateMetadata, hoistTo, log], + [hoistChildren_, child, diff, seen], + [function (next) { + moveRemainingChildren(child, diff) + next() + }] + ], done) + } else { + done() + } + }, next) } diff --git a/deps/npm/lib/deprecate.js b/deps/npm/lib/deprecate.js index c90ad9027231c0cc08d88a2293444e190e5e9f42..ffc29c9c8b92e1f3188be9ed81adb7dddc540b0f 100644 --- a/deps/npm/lib/deprecate.js +++ b/deps/npm/lib/deprecate.js @@ -1,25 +1,25 @@ -var npm = require("./npm.js") - , mapToRegistry = require("./utils/map-to-registry.js") - , npa = require("npm-package-arg") +var npm = require('./npm.js') +var mapToRegistry = require('./utils/map-to-registry.js') +var npa = require('npm-package-arg') module.exports = deprecate -deprecate.usage = "npm deprecate [@] " +deprecate.usage = 'npm deprecate [@] ' deprecate.completion = function (opts, cb) { // first, get a list of remote packages this user owns. // once we have a user account, then don't complete anything. if (opts.conf.argv.remain.length > 2) return cb() // get the list of packages by user - var path = "/-/by-user/" + var path = '/-/by-user/' mapToRegistry(path, npm.config, function (er, uri, c) { if (er) return cb(er) if (!(c && c.username)) return cb() var params = { - timeout : 60000, - auth : c + timeout: 60000, + auth: c } npm.registry.get(uri + c.username, params, function (er, list) { if (er) return cb() @@ -31,8 +31,8 @@ deprecate.completion = function (opts, cb) { function deprecate (args, cb) { var pkg = args[0] - , msg = args[1] - if (msg === undefined) return cb("Usage: " + deprecate.usage) + var msg = args[1] + if (msg === undefined) return cb('Usage: ' + deprecate.usage) // fetch the data and make sure it exists. var p = npa(pkg) @@ -41,9 +41,9 @@ function deprecate (args, cb) { if (er) return cb(er) var params = { - version : p.spec, - message : msg, - auth : auth + version: p.spec, + message: msg, + auth: auth } npm.registry.deprecate(uri, params, cb) }) diff --git a/deps/npm/lib/dist-tag.js b/deps/npm/lib/dist-tag.js index 48b40202f9a142baec4295eac1b3663f92363f34..d0bae9ab4409c6cebee4d2c3fa006048512443c0 100644 --- a/deps/npm/lib/dist-tag.js +++ b/deps/npm/lib/dist-tag.js @@ -1,21 +1,21 @@ module.exports = distTag -var log = require("npmlog") -var npa = require("npm-package-arg") -var semver = require("semver") +var log = require('npmlog') +var npa = require('npm-package-arg') +var semver = require('semver') -var npm = require("./npm.js") -var mapToRegistry = require("./utils/map-to-registry.js") -var readLocalPkg = require("./utils/read-local-package.js") +var npm = require('./npm.js') +var mapToRegistry = require('./utils/map-to-registry.js') +var readLocalPkg = require('./utils/read-local-package.js') -distTag.usage = "npm dist-tag add @ []" - + "\nnpm dist-tag rm " - + "\nnpm dist-tag ls []" +distTag.usage = 'npm dist-tag add @ []' + + '\nnpm dist-tag rm ' + + '\nnpm dist-tag ls []' distTag.completion = function (opts, cb) { var argv = opts.conf.argv.remain if (argv.length === 2) { - return cb(null, ["add", "rm", "ls"]) + return cb(null, ['add', 'rm', 'ls']) } switch (argv[2]) { @@ -27,29 +27,29 @@ distTag.completion = function (opts, cb) { function distTag (args, cb) { var cmd = args.shift() switch (cmd) { - case "add": case "a": case "set": case "s": + case 'add': case 'a': case 'set': case 's': return add(args[0], args[1], cb) - case "rm": case "r": case "del": case "d": case "remove": + case 'rm': case 'r': case 'del': case 'd': case 'remove': return remove(args[1], args[0], cb) - case "ls": case "l": case "sl": case "list": + case 'ls': case 'l': case 'sl': case 'list': return list(args[0], cb) default: - return cb("Usage:\n"+distTag.usage) + return cb('Usage:\n' + distTag.usage) } } function add (spec, tag, cb) { - var thing = npa(spec || "") + var thing = npa(spec || '') var pkg = thing.name var version = thing.rawSpec - var t = (tag || npm.config.get("tag")).trim() + var t = (tag || npm.config.get('tag')).trim() - log.verbose("dist-tag add", t, "to", pkg+"@"+version) + log.verbose('dist-tag add', t, 'to', pkg + '@' + version) - if (!pkg || !version || !t) return cb("Usage:\n"+distTag.usage) + if (!pkg || !version || !t) return cb('Usage:\n' + distTag.usage) if (semver.validRange(t)) { - var er = new Error("Tag name must not be a valid SemVer range: " + t) + var er = new Error('Tag name must not be a valid SemVer range: ' + t) return cb(er) } @@ -57,23 +57,23 @@ function add (spec, tag, cb) { if (er) return cb(er) if (tags[t] === version) { - log.warn("dist-tag add", t, "is already set to version", version) + log.warn('dist-tag add', t, 'is already set to version', version) return cb() } tags[t] = version mapToRegistry(pkg, npm.config, function (er, uri, auth, base) { var params = { - package : pkg, - distTag : t, - version : version, - auth : auth + 'package': pkg, + distTag: t, + version: version, + auth: auth } npm.registry.distTags.add(base, params, function (er) { if (er) return cb(er) - console.log("+"+t+": "+pkg+"@"+version) + console.log('+' + t + ': ' + pkg + '@' + version) cb() }) }) @@ -81,14 +81,14 @@ function add (spec, tag, cb) { } function remove (tag, pkg, cb) { - log.verbose("dist-tag del", tag, "from", pkg) + log.verbose('dist-tag del', tag, 'from', pkg) fetchTags(pkg, function (er, tags) { if (er) return cb(er) if (!tags[tag]) { - log.info("dist-tag del", tag, "is not a dist-tag on", pkg) - return cb(new Error(tag+" is not a dist-tag on "+pkg)) + log.info('dist-tag del', tag, 'is not a dist-tag on', pkg) + return cb(new Error(tag + ' is not a dist-tag on ' + pkg)) } var version = tags[tag] @@ -96,15 +96,15 @@ function remove (tag, pkg, cb) { mapToRegistry(pkg, npm.config, function (er, uri, auth, base) { var params = { - package : pkg, - distTag : tag, - auth : auth + 'package': pkg, + distTag: tag, + auth: auth } npm.registry.distTags.rm(base, params, function (er) { if (er) return cb(er) - console.log("-"+tag+": "+pkg+"@"+version) + console.log('-' + tag + ': ' + pkg + '@' + version) cb() }) }) @@ -112,20 +112,22 @@ function remove (tag, pkg, cb) { } function list (pkg, cb) { - if (!pkg) return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(distTag.usage) - list(pkg, cb) - }) + if (!pkg) { + return readLocalPkg(function (er, pkg) { + if (er) return cb(er) + if (!pkg) return cb(distTag.usage) + list(pkg, cb) + }) + } fetchTags(pkg, function (er, tags) { if (er) { - log.error("dist-tag ls", "Couldn't get dist-tag data for", pkg) + log.error('dist-tag ls', "Couldn't get dist-tag data for", pkg) return cb(er) } var msg = Object.keys(tags).map(function (k) { - return k+": "+tags[k] - }).sort().join("\n") + return k + ': ' + tags[k] + }).sort().join('\n') console.log(msg) cb(er, tags) }) @@ -136,13 +138,13 @@ function fetchTags (pkg, cb) { if (er) return cb(er) var params = { - package : pkg, - auth : auth + 'package': pkg, + auth: auth } npm.registry.distTags.fetch(base, params, function (er, tags) { if (er) return cb(er) if (!tags || !Object.keys(tags).length) { - return cb(new Error("No dist-tags found for " + pkg)) + return cb(new Error('No dist-tags found for ' + pkg)) } cb(null, tags) diff --git a/deps/npm/lib/docs.js b/deps/npm/lib/docs.js index 0de2349ddc952cb0c93ce6bace52e47d9a1fdf5a..ea4bd561077e8696bd6582617f4ba96c0ddd4790 100644 --- a/deps/npm/lib/docs.js +++ b/deps/npm/lib/docs.js @@ -1,14 +1,12 @@ module.exports = docs -docs.usage = "npm docs " -docs.usage += "\n" -docs.usage += "npm docs ." +docs.usage = 'npm docs ' + + '\nnpm docs .' -var npm = require("./npm.js") - , opener = require("opener") - , path = require("path") - , log = require("npmlog") - , mapToRegistry = require("./utils/map-to-registry.js") +var npm = require('./npm.js') +var opener = require('opener') +var log = require('npmlog') +var fetchPackageMetadata = require('./fetch-package-metadata.js') docs.completion = function (opts, cb) { // FIXME: there used to be registry completion here, but it stopped making @@ -16,16 +14,12 @@ docs.completion = function (opts, cb) { cb() } -function url (json) { - return json.homepage ? json.homepage : "https://npmjs.org/package/" + json.name -} - function docs (args, cb) { - args = args || [] + if (!args || !args.length) args = ['.'] var pending = args.length - if (!pending) return getDoc(".", cb) - args.forEach(function(proj) { - getDoc(proj, function(err) { + log.silly('docs', args) + args.forEach(function (proj) { + getDoc(proj, function (err) { if (err) { return cb(err) } @@ -35,37 +29,11 @@ function docs (args, cb) { } function getDoc (project, cb) { - project = project || "." - var package = path.resolve(npm.localPrefix, "package.json") - - if (project === "." || project === "./") { - var json - try { - json = require(package) - if (!json.name) throw new Error('package.json does not have a valid "name" property') - project = json.name - } catch (e) { - log.error(e.message) - return cb(docs.usage) - } - - return opener(url(json), { command: npm.config.get("browser") }, cb) - } - - mapToRegistry(project, npm.config, function (er, uri, auth) { + log.silly('getDoc', project) + fetchPackageMetadata(project, '.', function (er, d) { if (er) return cb(er) - - npm.registry.get(uri + "/latest", { timeout : 3600, auth : auth }, next) + var url = d.homepage + if (!url) url = 'https://www.npmjs.org/package/' + d.name + return opener(url, {command: npm.config.get('browser')}, cb) }) - - function next (er, json) { - var github = "https://github.com/" + project + "#readme" - - if (er) { - if (project.split("/").length !== 2) return cb(er) - return opener(github, { command: npm.config.get("browser") }, cb) - } - - return opener(url(json), { command: npm.config.get("browser") }, cb) - } } diff --git a/deps/npm/lib/edit.js b/deps/npm/lib/edit.js index ddf501d54e56beea0f64e292d1d79bec827621f8..155db6fd97828ce143729315e58e4a6581ddb10d 100644 --- a/deps/npm/lib/edit.js +++ b/deps/npm/lib/edit.js @@ -1,25 +1,28 @@ -// npm edit [@] +// npm edit // open the package folder in the $EDITOR module.exports = edit -edit.usage = "npm edit " +edit.usage = 'npm edit [@]' -edit.completion = require("./utils/completion/installed-shallow.js") +edit.completion = require('./utils/completion/installed-shallow.js') -var npm = require("./npm.js") - , path = require("path") - , fs = require("graceful-fs") - , editor = require("editor") +var npm = require('./npm.js') +var path = require('path') +var fs = require('graceful-fs') +var editor = require('editor') function edit (args, cb) { var p = args[0] if (args.length !== 1 || !p) return cb(edit.usage) - var e = npm.config.get("editor") - if (!e) return cb(new Error( - "No editor set. Set the 'editor' config, or $EDITOR environ.")) - p = p.split("/") - .join("/node_modules/") - .replace(/(\/node_modules)+/, "/node_modules") + var e = npm.config.get('editor') + if (!e) { + return cb(new Error( + "No editor set. Set the 'editor' config, or $EDITOR environ." + )) + } + p = p.split('/') + .join('/node_modules/') + .replace(/(\/node_modules)+/, '/node_modules') var f = path.resolve(npm.dir, p) fs.lstat(f, function (er) { if (er) return cb(er) diff --git a/deps/npm/lib/explore.js b/deps/npm/lib/explore.js index 96475a0691f987318d50ef0dd93d4ce3926aa649..105ff84cc81301e82a9e770cd57c4bf55d8cedd2 100644 --- a/deps/npm/lib/explore.js +++ b/deps/npm/lib/explore.js @@ -2,33 +2,39 @@ // open a subshell to the package folder. module.exports = explore -explore.usage = "npm explore [ -- ]" -explore.completion = require("./utils/completion/installed-shallow.js") +explore.usage = 'npm explore [ -- ]' +explore.completion = require('./utils/completion/installed-shallow.js') -var npm = require("./npm.js") - , spawn = require("./utils/spawn") - , path = require("path") - , fs = require("graceful-fs") +var npm = require('./npm.js') +var spawn = require('./utils/spawn') +var path = require('path') +var fs = require('graceful-fs') function explore (args, cb) { if (args.length < 1 || !args[0]) return cb(explore.usage) var p = args.shift() - args = args.join(" ").trim() - if (args) args = ["-c", args] + args = args.join(' ').trim() + if (args) args = ['-c', args] else args = [] var cwd = path.resolve(npm.dir, p) - var sh = npm.config.get("shell") + var sh = npm.config.get('shell') fs.stat(cwd, function (er, s) { - if (er || !s.isDirectory()) return cb(new Error( - "It doesn't look like "+p+" is installed.")) - if (!args.length) console.log( - "\nExploring "+cwd+"\n"+ - "Type 'exit' or ^D when finished\n") + if (er || !s.isDirectory()) { + return cb(new Error( + "It doesn't look like " + p + ' is installed.' + )) + } - npm.spinner.stop() - var shell = spawn(sh, args, { cwd: cwd, stdio: "inherit" }) - shell.on("close", function (er) { + if (!args.length) { + console.log( + '\nExploring ' + cwd + '\n' + + "Type 'exit' or ^D when finished\n" + ) + } + + var shell = spawn(sh, args, { cwd: cwd, stdio: 'inherit' }) + shell.on('close', function (er) { // only fail if non-interactive. if (!args.length) return cb() cb(er) diff --git a/deps/npm/lib/faq.js b/deps/npm/lib/faq.js index 912db0072f21e1623db899553c39fa6822d4c878..c9d88d3012e564f1f33afcf2df5e5f69451bec1c 100644 --- a/deps/npm/lib/faq.js +++ b/deps/npm/lib/faq.js @@ -1,8 +1,7 @@ - module.exports = faq -faq.usage = "npm faq" +faq.usage = 'npm faq' -var npm = require("./npm.js") +var npm = require('./npm.js') -function faq (args, cb) { npm.commands.help(["faq"], cb) } +function faq (args, cb) { npm.commands.help(['faq'], cb) } diff --git a/deps/npm/lib/fetch-package-metadata.js b/deps/npm/lib/fetch-package-metadata.js new file mode 100644 index 0000000000000000000000000000000000000000..4efc37806e8b49e79b3fad4a6d569232dbd40025 --- /dev/null +++ b/deps/npm/lib/fetch-package-metadata.js @@ -0,0 +1,330 @@ +'use strict' +var fs = require('graceful-fs') +var path = require('path') +var zlib = require('zlib') + +var log = require('npmlog') +var realizePackageSpecifier = require('realize-package-specifier') +var tar = require('tar') +var once = require('once') +var semver = require('semver') +var readPackageTree = require('read-package-tree') +var readPackageJson = require('read-package-json') +var iferr = require('iferr') +var rimraf = require('rimraf') +var clone = require('lodash.clonedeep') +var validate = require('aproba') +var unpipe = require('unpipe') + +var npm = require('./npm.js') +var mapToRegistry = require('./utils/map-to-registry.js') +var cache = require('./cache.js') +var cachedPackageRoot = require('./cache/cached-package-root.js') +var tempFilename = require('./utils/temp-filename.js') +var getCacheStat = require('./cache/get-stat.js') +var unpack = require('./utils/tar.js').unpack +var pulseTillDone = require('./utils/pulse-till-done.js') +var parseJSON = require('./utils/parse-json.js') + +function andLogAndFinish (spec, tracker, done) { + validate('SF', [spec, done]) + return function (er, pkg) { + if (er) { + log.silly('fetchPackageMetaData', 'error for ' + spec, er) + if (tracker) tracker.finish() + } + return done(er, pkg) + } +} + +module.exports = function fetchPackageMetadata (spec, where, tracker, done) { + if (!done) { + done = tracker || where + tracker = null + if (done === where) where = null + } + if (typeof spec === 'object') { + var dep = spec + spec = dep.raw + } + var logAndFinish = andLogAndFinish(spec, tracker, done) + if (!dep) { + log.silly('fetchPackageMetaData', spec) + return realizePackageSpecifier(spec, where, iferr(logAndFinish, function (dep) { + fetchPackageMetadata(dep, where, tracker, done) + })) + } + if (dep.type === 'version' || dep.type === 'range' || dep.type === 'tag') { + fetchNamedPackageData(dep, addRequestedAndFinish) + } else if (dep.type === 'directory') { + fetchDirectoryPackageData(dep, where, addRequestedAndFinish) + } else { + fetchOtherPackageData(spec, dep, where, addRequestedAndFinish) + } + function addRequestedAndFinish (er, pkg) { + if (pkg) { + pkg._requested = dep + pkg._spec = spec + pkg._where = where + if (!pkg._args) pkg._args = [] + pkg._args.push([pkg._spec, pkg._where]) + } + logAndFinish(er, pkg) + } +} + +function fetchOtherPackageData (spec, dep, where, next) { + validate('SOSF', arguments) + log.silly('fetchOtherPackageData', spec) + cache.add(spec, null, where, false, iferr(next, function (pkg) { + var result = clone(pkg) + result._inCache = true + next(null, result) + })) +} + +function fetchDirectoryPackageData (dep, where, next) { + validate('OSF', arguments) + log.silly('fetchDirectoryPackageData', dep.name || dep.rawSpec) + readPackageJson(path.join(dep.spec, 'package.json'), false, next) +} + +var regCache = {} + +function fetchNamedPackageData (dep, next) { + validate('OF', arguments) + log.silly('fetchNamedPackageData', dep.name || dep.rawSpec) + mapToRegistry(dep.name || dep.rawSpec, npm.config, iferr(next, function (url, auth) { + if (regCache[url]) { + pickVersionFromRegistryDocument(clone(regCache[url])) + } else { + npm.registry.get(url, {auth: auth}, pulseTillDone('fetchMetadata', iferr(next, pickVersionFromRegistryDocument))) + } + function returnAndAddMetadata (pkg) { + delete pkg._from + delete pkg._resolved + delete pkg._shasum + next(null, pkg) + } + function pickVersionFromRegistryDocument (pkg) { + if (!regCache[url]) regCache[url] = pkg + var versions = Object.keys(pkg.versions).sort(semver.rcompare) + + if (dep.type === 'tag') { + var tagVersion = pkg['dist-tags'][dep.spec] + if (pkg.versions[tagVersion]) return returnAndAddMetadata(pkg.versions[tagVersion]) + } else { + var latestVersion = pkg['dist-tags'][npm.config.get('tag')] || versions[0] + + // Find the the most recent version less than or equal + // to latestVersion that satisfies our spec + for (var ii = 0; ii < versions.length; ++ii) { + if (semver.gt(versions[ii], latestVersion)) continue + if (semver.satisfies(versions[ii], dep.spec)) { + return returnAndAddMetadata(pkg.versions[versions[ii]]) + } + } + + // Failing that, try finding the most recent version that matches + // our spec + for (var jj = 0; jj < versions.length; ++jj) { + if (semver.satisfies(versions[jj], dep.spec)) { + return returnAndAddMetadata(pkg.versions[versions[jj]]) + } + } + + // Failing THAT, if the range was '*' uses latestVersion + if (dep.spec === '*') { + return returnAndAddMetadata(pkg.versions[latestVersion]) + } + } + + // And failing that, we error out + var targets = versions.length + ? 'Valid install targets:\n' + JSON.stringify(versions) + '\n' + : 'No valid targets found.' + var er = new Error('No compatible version found: ' + + dep.raw + '\n' + targets) + return next(er) + } + })) +} + +function retryWithCached (pkg, asserter, next) { + if (!pkg._inCache) { + cache.add(pkg._spec, null, pkg._where, false, iferr(next, function (newpkg) { + Object.keys(newpkg).forEach(function (key) { + if (key[0] !== '_') return + pkg[key] = newpkg[key] + }) + pkg._inCache = true + return asserter(pkg, next) + })) + } + return !pkg._inCache +} + +module.exports.addShrinkwrap = function addShrinkwrap (pkg, next) { + validate('OF', arguments) + if (pkg._shrinkwrap !== undefined) return next(null, pkg) + if (retryWithCached(pkg, addShrinkwrap, next)) return + pkg._shrinkwrap = null + // FIXME: cache the shrinkwrap directly + var pkgname = pkg.name + var ver = pkg.version + var tarball = path.join(cachedPackageRoot({name: pkgname, version: ver}), 'package.tgz') + untarStream(tarball, function (er, untar) { + if (er) { + if (er.code === 'ENOTTARBALL') { + pkg._shrinkwrap = null + return next() + } else { + return next(er) + } + } + if (er) return next(er) + var foundShrinkwrap = false + untar.on('entry', function (entry) { + if (!/^(?:[^\/]+[\/])npm-shrinkwrap.json$/.test(entry.path)) return + log.silly('addShrinkwrap', 'Found shrinkwrap in ' + pkgname + ' ' + entry.path) + foundShrinkwrap = true + var shrinkwrap = '' + entry.on('data', function (chunk) { + shrinkwrap += chunk + }) + entry.on('end', function () { + untar.close() + log.silly('addShrinkwrap', 'Completed reading shrinkwrap in ' + pkgname) + try { + pkg._shrinkwrap = parseJSON(shrinkwrap) + } catch (ex) { + var er = new Error('Error parsing ' + pkgname + '@' + ver + "'s npm-shrinkwrap.json: " + ex.message) + er.type = 'ESHRINKWRAP' + return next(er) + } + next(null, pkg) + }) + entry.resume() + }) + untar.on('end', function () { + if (!foundShrinkwrap) { + pkg._shrinkwrap = null + next(null, pkg) + } + }) + }) +} + +module.exports.addBundled = function addBundled (pkg, next) { + validate('OF', arguments) + if (pkg._bundled !== undefined) return next(null, pkg) + if (!pkg.bundleDependencies) return next(null, pkg) + if (retryWithCached(pkg, addBundled, next)) return + pkg._bundled = null + var pkgname = pkg.name + var ver = pkg.version + var tarball = path.join(cachedPackageRoot({name: pkgname, version: ver}), 'package.tgz') + var target = tempFilename('unpack') + getCacheStat(iferr(next, function (cs) { + log.verbose('addBundled', 'extract', tarball) + unpack(tarball, target, null, null, cs.uid, cs.gid, iferr(next, function () { + log.silly('addBundled', 'read tarball') + readPackageTree(target, function (er, tree) { + log.silly('cleanup', 'remove extracted module') + rimraf(target, function () { + if (tree) { + pkg._bundled = tree.children + } + next(null, pkg) + }) + }) + })) + })) +} + +// FIXME: hasGzipHeader / hasTarHeader / untarStream duplicate a lot +// of code from lib/utils/tar.js– these should be brought together. + +function hasGzipHeader (c) { + return c[0] === 0x1F && c[1] === 0x8B && c[2] === 0x08 +} + +function hasTarHeader (c) { + return c[257] === 0x75 && // tar archives have 7573746172 at position + c[258] === 0x73 && // 257 and 003030 or 202000 at position 262 + c[259] === 0x74 && + c[260] === 0x61 && + c[261] === 0x72 && + + ((c[262] === 0x00 && + c[263] === 0x30 && + c[264] === 0x30) || + + (c[262] === 0x20 && + c[263] === 0x20 && + c[264] === 0x00)) +} + +function untarStream (tarball, cb) { + validate('SF', arguments) + cb = once(cb) + + var stream + var file = stream = fs.createReadStream(tarball) + var tounpipe = [file] + file.on('error', function (er) { + er = new Error('Error extracting ' + tarball + ' archive: ' + er.message) + er.code = 'EREADFILE' + cb(er) + }) + file.on('data', function OD (c) { + if (hasGzipHeader(c)) { + doGunzip() + } else if (hasTarHeader(c)) { + doUntar() + } else { + file.close() + var er = new Error('Non-gzip/tarball ' + tarball) + er.code = 'ENOTTARBALL' + return cb(er) + } + file.removeListener('data', OD) + file.emit('data', c) + cb(null, stream) + }) + + function doGunzip () { + var gunzip = stream.pipe(zlib.createGunzip()) + gunzip.on('error', function (er) { + er = new Error('Error extracting ' + tarball + ' archive: ' + er.message) + er.code = 'EGUNZIP' + cb(er) + }) + tounpipe.push(gunzip) + stream = gunzip + doUntar() + } + + function doUntar () { + var untar = stream.pipe(tar.Parse()) + untar.on('error', function (er) { + er = new Error('Error extracting ' + tarball + ' archive: ' + er.message) + er.code = 'EUNTAR' + cb(er) + }) + tounpipe.push(untar) + stream = untar + addClose() + } + + function addClose () { + stream.close = function () { + tounpipe.forEach(function (stream) { + unpipe(stream) + }) + + if (file.close) file.close() + if (file.destroy) file.destroy() + } + } +} diff --git a/deps/npm/lib/fetch-package-metadata.md b/deps/npm/lib/fetch-package-metadata.md new file mode 100644 index 0000000000000000000000000000000000000000..6a7d4fc595de24fb02a4cc586f0540957035f03b --- /dev/null +++ b/deps/npm/lib/fetch-package-metadata.md @@ -0,0 +1,37 @@ +fetch-package-metadata +---------------------- + + var fetchPackageMetadata = require("npm/lib/fetch-package-metadata") + fetchPackageMetadata(spec, contextdir, callback) + +This will get package metadata (and if possible, ONLY package metadata) for +a specifer as passed to `npm install` et al, eg `npm@next` or `npm@^2.0.3` + +## fetchPackageMetadata(*spec*, *contextdir*, *tracker*, *callback*) + +* *spec* **string** | **object** -- The package specifier, can be anything npm can + understand (see [realize-package-specifier]), or it can be the result from + realize-package-specifier or npm-package-arg (for non-local deps). + +* *contextdir* **string** -- The directory from which relative paths to + local packages should be resolved. + +* *tracker* **object** -- **(optional)** An are-we-there-yet tracker group as + provided by `npm.log.newGroup()`. + +* *callback* **function (er, package)** -- Called when the package information + has been loaded. `package` is the object for of the `package.json` + matching the requested spec. In the case of named packages, it comes from + the registry and thus may not exactly match what's found in the associated + tarball. + +[realize-package-specifier]: (https://github.com/npm/realize-package-specifier) + +In the case of tarballs and git repos, it will use the cache to download +them in order to get the package metadata. For named packages, only the +metadata is downloaded (eg http://registry.npmjs.org/package). For local +directories, the package.json is read directly. For local tarballs, the +tarball is streamed in memory and just the package.json is extracted from +it. (Due to the nature of tars, having the package.json early in the file +will result in it being loaded faster– the extractor short-circuits the +uncompress/untar streams as best as it can.) diff --git a/deps/npm/lib/get.js b/deps/npm/lib/get.js index aa058002ec19a8ff87f7fd9bf628fe3a0f269c64..8dc805ec560c318b24c98637aeb3504552a7cdcf 100644 --- a/deps/npm/lib/get.js +++ b/deps/npm/lib/get.js @@ -1,12 +1,12 @@ module.exports = get -get.usage = "npm get (See `npm config`)" +get.usage = 'npm get (See `npm config`)' -var npm = require("./npm.js") +var npm = require('./npm.js') get.completion = npm.commands.config.completion function get (args, cb) { - npm.commands.config(["get"].concat(args), cb) + npm.commands.config(['get'].concat(args), cb) } diff --git a/deps/npm/lib/help-search.js b/deps/npm/lib/help-search.js index d8553453bc54df477827dec85aa7ce673fa13810..16f389027fa9d6bd27b098e09521fa2e358f5fec 100644 --- a/deps/npm/lib/help-search.js +++ b/deps/npm/lib/help-search.js @@ -1,29 +1,29 @@ module.exports = helpSearch -var fs = require("graceful-fs") - , path = require("path") - , asyncMap = require("slide").asyncMap - , npm = require("./npm.js") - , glob = require("glob") - , color = require("ansicolors") +var fs = require('graceful-fs') +var path = require('path') +var asyncMap = require('slide').asyncMap +var npm = require('./npm.js') +var glob = require('glob') +var color = require('ansicolors') -helpSearch.usage = "npm help-search " +helpSearch.usage = 'npm help-search ' function helpSearch (args, silent, cb) { - if (typeof cb !== "function") cb = silent, silent = false + if (typeof cb !== 'function') { + cb = silent + silent = false + } if (!args.length) return cb(helpSearch.usage) - var docPath = path.resolve(__dirname, "..", "doc") - return glob(docPath + "/*/*.md", function (er, files) { - if (er) - return cb(er) + var docPath = path.resolve(__dirname, '..', 'doc') + return glob(docPath + '/*/*.md', function (er, files) { + if (er) return cb(er) readFiles(files, function (er, data) { - if (er) - return cb(er) + if (er) return cb(er) searchFiles(args, data, function (er, results) { - if (er) - return cb(er) + if (er) return cb(er) formatResults(args, results, cb) }) }) @@ -52,8 +52,7 @@ function searchFiles (args, files, cb) { for (var a = 0, l = args.length; a < l && !match; a++) { match = data.toLowerCase().indexOf(args[a].toLowerCase()) !== -1 } - if (!match) - return + if (!match) return var lines = data.split(/\n+/) @@ -61,14 +60,14 @@ function searchFiles (args, files, cb) { // if the next line has a search term, then skip all 3 // otherwise, set the line to null. then remove the nulls. l = lines.length - for (var i = 0; i < l; i ++) { + for (var i = 0; i < l; i++) { var line = lines[i] - , nextLine = lines[i + 1] - , ll + var nextLine = lines[i + 1] + var ll match = false if (nextLine) { - for (a = 0, ll = args.length; a < ll && !match; a ++) { + for (a = 0, ll = args.length; a < ll && !match; a++) { match = nextLine.toLowerCase() .indexOf(args[a].toLowerCase()) !== -1 } @@ -80,12 +79,12 @@ function searchFiles (args, files, cb) { } match = false - for (a = 0, ll = args.length; a < ll && !match; a ++) { + for (a = 0, ll = args.length; a < ll && !match; a++) { match = line.toLowerCase().indexOf(args[a].toLowerCase()) !== -1 } if (match) { // skip over the next line - i ++ + i++ continue } @@ -94,7 +93,7 @@ function searchFiles (args, files, cb) { // now squish any string of nulls into a single null lines = lines.reduce(function (l, r) { - if (!(r === null && l[l.length-1] === null)) l.push(r) + if (!(r === null && l[l.length - 1] === null)) l.push(r) return l }, []) @@ -103,10 +102,10 @@ function searchFiles (args, files, cb) { // now see how many args were found at all. var found = {} - , totalHits = 0 + var totalHits = 0 lines.forEach(function (line) { args.forEach(function (arg) { - var hit = (line || "").toLowerCase() + var hit = (line || '').toLowerCase() .split(arg.toLowerCase()).length - 1 if (hit > 0) { found[arg] = (found[arg] || 0) + hit @@ -115,27 +114,28 @@ function searchFiles (args, files, cb) { }) }) - var cmd = "npm help " - if (path.basename(path.dirname(file)) === "api") { - cmd = "npm apihelp " + var cmd = 'npm help ' + if (path.basename(path.dirname(file)) === 'api') { + cmd = 'npm apihelp ' } - cmd += path.basename(file, ".md").replace(/^npm-/, "") - results.push({ file: file - , cmd: cmd - , lines: lines - , found: Object.keys(found) - , hits: found - , totalHits: totalHits - }) + cmd += path.basename(file, '.md').replace(/^npm-/, '') + results.push({ + file: file, + cmd: cmd, + lines: lines, + found: Object.keys(found), + hits: found, + totalHits: totalHits + }) }) // if only one result, then just show that help section. if (results.length === 1) { - return npm.commands.help([results[0].file.replace(/\.md$/, "")], cb) + return npm.commands.help([results[0].file.replace(/\.md$/, '')], cb) } if (results.length === 0) { - console.log("No results for " + args.map(JSON.stringify).join(" ")) + console.log('No results for ' + args.map(JSON.stringify).join(' ')) return cb() } @@ -161,25 +161,25 @@ function formatResults (args, results, cb) { var out = results.map(function (res) { var out = res.cmd - , r = Object.keys(res.hits).map(function (k) { - return k + ":" + res.hits[k] + var r = Object.keys(res.hits).map(function (k) { + return k + ':' + res.hits[k] }).sort(function (a, b) { return a > b ? 1 : -1 - }).join(" ") + }).join(' ') out += ((new Array(Math.max(1, cols - out.length - r.length))) - .join(" ")) + r + .join(' ')) + r - if (!npm.config.get("long")) return out + if (!npm.config.get('long')) return out - out = "\n\n" + out - + "\n" + (new Array(cols)).join("—") + "\n" - + res.lines.map(function (line, i) { - if (line === null || i > 3) return "" - for (var out = line, a = 0, l = args.length; a < l; a ++) { + out = '\n\n' + out + '\n' + + (new Array(cols)).join('—') + '\n' + + res.lines.map(function (line, i) { + if (line === null || i > 3) return '' + for (var out = line, a = 0, l = args.length; a < l; a++) { var finder = out.toLowerCase().split(args[a].toLowerCase()) - , newOut = "" - , p = 0 + var newOut = '' + var p = 0 finder.forEach(function (f) { newOut += out.substr(p, f.length) @@ -193,16 +193,16 @@ function formatResults (args, results, cb) { } return newOut - }).join("\n").trim() + }).join('\n').trim() return out - }).join("\n") - - if (results.length && !npm.config.get("long")) { - out = "Top hits for "+(args.map(JSON.stringify).join(" ")) - + "\n" + (new Array(cols)).join("—") + "\n" - + out - + "\n" + (new Array(cols)).join("—") + "\n" - + "(run with -l or --long to see more context)" + }).join('\n') + + if (results.length && !npm.config.get('long')) { + out = 'Top hits for ' + (args.map(JSON.stringify).join(' ')) + '\n' + + (new Array(cols)).join('—') + '\n' + + out + '\n' + + (new Array(cols)).join('—') + '\n' + + '(run with -l or --long to see more context)' } console.log(out.trim()) diff --git a/deps/npm/lib/help.js b/deps/npm/lib/help.js index 942d27b41e17b8bb2f8bfa5acaacaa84c2c5ac5c..a954ae814b7550b199c94685832da9fb446f0e15 100644 --- a/deps/npm/lib/help.js +++ b/deps/npm/lib/help.js @@ -6,16 +6,15 @@ help.completion = function (opts, cb) { getSections(cb) } -var path = require("path") - , spawn = require("./utils/spawn") - , npm = require("./npm.js") - , log = require("npmlog") - , opener = require("opener") - , glob = require("glob") +var path = require('path') +var spawn = require('./utils/spawn') +var npm = require('./npm.js') +var log = require('npmlog') +var opener = require('opener') +var glob = require('glob') function help (args, cb) { - npm.spinner.stop() - var argv = npm.config.get("argv").cooked + var argv = npm.config.get('argv').cooked var argnum = 0 if (args.length === 2 && ~~args[0]) { @@ -24,54 +23,53 @@ function help (args, cb) { // npm help foo bar baz: search topics if (args.length > 1 && args[0]) { - return npm.commands["help-search"](args, argnum, cb) + return npm.commands['help-search'](args, argnum, cb) } var section = npm.deref(args[0]) || args[0] // npm help : show basic usage if (!section) { - var valid = argv[0] === "help" ? 0 : 1 + var valid = argv[0] === 'help' ? 0 : 1 return npmUsage(valid, cb) } - // npm -h: show command usage - if ( npm.config.get("usage") - && npm.commands[section] - && npm.commands[section].usage - ) { - npm.config.set("loglevel", "silent") - log.level = "silent" + if (npm.config.get('usage') && + npm.commands[section] && + npm.commands[section].usage) { + npm.config.set('loglevel', 'silent') + log.level = 'silent' console.log(npm.commands[section].usage) return cb() } // npm apihelp
            : Prefer section 3 over section 1 - var apihelp = argv.length && -1 !== argv[0].indexOf("api") + var apihelp = argv.length && argv[0].indexOf('api') !== -1 var pref = apihelp ? [3, 1, 5, 7] : [1, 3, 5, 7] - if (argnum) + if (argnum) { pref = [ argnum ].concat(pref.filter(function (n) { return n !== argnum })) + } // npm help
            : Try to find the path - var manroot = path.resolve(__dirname, "..", "man") + var manroot = path.resolve(__dirname, '..', 'man') // legacy - if (section === "global") section = "folders" - else if (section === "json") section = "package.json" + if (section === 'global') section = 'folders' + else if (section === 'json') section = 'package.json' // find either /section.n or /npm-section.n // The glob is used in the glob. The regexp is used much // further down. Globs and regexps are different - var compextglob = ".+(gz|bz2|lzma|[FYzZ]|xz)" - var compextre = "\\.(gz|bz2|lzma|[FYzZ]|xz)$" - var f = "+(npm-" + section + "|" + section + ").[0-9]?(" + compextglob + ")" - return glob(manroot + "/*/" + f, function (er, mans) { + var compextglob = '.+(gz|bz2|lzma|[FYzZ]|xz)' + var compextre = '\\.(gz|bz2|lzma|[FYzZ]|xz)$' + var f = '+(npm-' + section + '|' + section + ').[0-9]?(' + compextglob + ')' + return glob(manroot + '/*/' + f, function (er, mans) { if (er) return cb(er) - if (!mans.length) return npm.commands["help-search"](args, cb) + if (!mans.length) return npm.commands['help-search'](args, cb) mans = mans.map(function (man) { var ext = path.extname(man) @@ -103,83 +101,83 @@ function pickMan (mans, pref_) { function viewMan (man, cb) { var nre = /([0-9]+)$/ var num = man.match(nre)[1] - var section = path.basename(man, "." + num) + var section = path.basename(man, '.' + num) // at this point, we know that the specified man page exists - var manpath = path.join(__dirname, "..", "man") - , env = {} + var manpath = path.join(__dirname, '..', 'man') + var env = {} Object.keys(process.env).forEach(function (i) { env[i] = process.env[i] }) env.MANPATH = manpath - var viewer = npm.config.get("viewer") + var viewer = npm.config.get('viewer') var conf switch (viewer) { - case "woman": - var a = ["-e", "(woman-find-file \"" + man + "\")"] - conf = { env: env, stdio: "inherit" } - var woman = spawn("emacsclient", a, conf) - woman.on("close", cb) + case 'woman': + var a = ['-e', '(woman-find-file \'' + man + '\')'] + conf = { env: env, stdio: 'inherit' } + var woman = spawn('emacsclient', a, conf) + woman.on('close', cb) break - case "browser": - opener(htmlMan(man), { command: npm.config.get("browser") }, cb) + case 'browser': + opener(htmlMan(man), { command: npm.config.get('browser') }, cb) break default: - conf = { env: env, stdio: "inherit" } - var manProcess = spawn("man", [num, section], conf) - manProcess.on("close", cb) + conf = { env: env, stdio: 'inherit' } + var manProcess = spawn('man', [num, section], conf) + manProcess.on('close', cb) break } } function htmlMan (man) { var sect = +man.match(/([0-9]+)$/)[1] - var f = path.basename(man).replace(/([0-9]+)$/, "html") + var f = path.basename(man).replace(/([0-9]+)$/, 'html') switch (sect) { case 1: - sect = "cli" + sect = 'cli' break case 3: - sect = "api" + sect = 'api' break case 5: - sect = "files" + sect = 'files' break case 7: - sect = "misc" + sect = 'misc' break default: - throw new Error("invalid man section: " + sect) + throw new Error('invalid man section: ' + sect) } - return path.resolve(__dirname, "..", "html", "doc", sect, f) + return path.resolve(__dirname, '..', 'html', 'doc', sect, f) } function npmUsage (valid, cb) { - npm.config.set("loglevel", "silent") - log.level = "silent" - console.log( - [ "\nUsage: npm " - , "" - , "where is one of:" - , npm.config.get("long") ? usages() - : " " + wrap(Object.keys(npm.commands)) - , "" - , "npm -h quick help on " - , "npm -l display full usage info" - , "npm faq commonly asked questions" - , "npm help search for help on " - , "npm help npm involved overview" - , "" - , "Specify configs in the ini-formatted file:" - , " " + npm.config.get("userconfig") - , "or on the command line via: npm --key value" - , "Config info can be viewed via: npm help config" - , "" - , "npm@" + npm.version + " " + path.dirname(__dirname) - ].join("\n")) + npm.config.set('loglevel', 'silent') + log.level = 'silent' + console.log([ + '\nUsage: npm ', + '', + 'where is one of:', + npm.config.get('long') ? usages() + : ' ' + wrap(Object.keys(npm.commands)), + '', + 'npm -h quick help on ', + 'npm -l display full usage info', + 'npm faq commonly asked questions', + 'npm help search for help on ', + 'npm help npm involved overview', + '', + 'Specify configs in the ini-formatted file:', + ' ' + npm.config.get('userconfig'), + 'or on the command line via: npm --key value', + 'Config info can be viewed via: npm help config', + '', + 'npm@' + npm.version + ' ' + path.dirname(__dirname) + ].join('\n')) cb(valid) } @@ -189,50 +187,50 @@ function usages () { return Object.keys(npm.commands).filter(function (c) { return c === npm.deref(c) }).reduce(function (set, c) { - set.push([c, npm.commands[c].usage || ""]) + set.push([c, npm.commands[c].usage || '']) maxLen = Math.max(maxLen, c.length) return set }, []).map(function (item) { var c = item[0] - , usage = item[1] - return "\n " + c + (new Array(maxLen - c.length + 2).join(" ")) - + (usage.split("\n") - .join("\n" + (new Array(maxLen + 6).join(" ")))) - }).join("\n") + var usage = item[1] + return '\n ' + + c + (new Array(maxLen - c.length + 2).join(' ')) + + (usage.split('\n').join('\n' + (new Array(maxLen + 6).join(' ')))) + }).join('\n') } - function wrap (arr) { - var out = [""] - , l = 0 - , line + var out = [''] + var l = 0 + var line line = process.stdout.columns - if (!line) + if (!line) { line = 60 - else + } else { line = Math.min(60, Math.max(line - 16, 24)) + } - arr.sort(function (a,b) { return a --save` afterwards to install a package and" - ,"save it as a dependency in the package.json file." - ,"" - ,"Press ^C at any time to quit." - ].join("\n")) + console.log([ + 'This utility will walk you through creating a package.json file.', + 'It only covers the most common items, and tries to guess sensible defaults.', + '', + 'See `npm help json` for definitive documentation on these fields', + 'and exactly what they do.', + '', + 'Use `npm install --save` afterwards to install a package and', + 'save it as a dependency in the package.json file.', + '', + 'Press ^C at any time to quit.' + ].join('\n')) } initJson(dir, initFile, npm.config, function (er, data) { log.resume() - log.silly("package data", data) - if (er && er.message === "canceled") { - log.warn("init", "canceled") + log.silly('package data', data) + if (er && er.message === 'canceled') { + log.warn('init', 'canceled') return cb(null, data) } - log.info("init", "written successfully") + log.info('init', 'written successfully') cb(er, data) }) } diff --git a/deps/npm/lib/install.js b/deps/npm/lib/install.js index 9cc6a46fc0ca06102b4948f9c0d2bec3c96d4130..3ebb3b3bb0259502a95ab26b07469faa818789c9 100644 --- a/deps/npm/lib/install.js +++ b/deps/npm/lib/install.js @@ -1,3 +1,4 @@ +'use strict' // npm install // // See doc/install.md for more description @@ -12,23 +13,23 @@ // added, and then that's passed to the next generation of installation. module.exports = install - -install.usage = "npm install" - + "\nnpm install " - + "\nnpm install @" - + "\nnpm install @" - + "\nnpm install @" - + "\nnpm install " - + "\nnpm install " - + "\nnpm install " - + "\nnpm install " - + "\nnpm install /" - + "\n\nCan specify one or more: npm install ./foo.tgz bar@stable /some/folder" - + "\nIf no argument is supplied and ./npm-shrinkwrap.json is " - + "\npresent, installs dependencies specified in the shrinkwrap." - + "\nOtherwise, installs dependencies from ./package.json." +module.exports.Installer = Installer + +install.usage = '\nnpm install (with no args, in package dir)' + + '\nnpm install [<@scope>/]' + + '\nnpm install [<@scope>/]@' + + '\nnpm install [<@scope>/]@' + + '\nnpm install [<@scope>/]@' + + '\nnpm install ' + + '\nnpm install ' + + '\nnpm install ' + + '\nnpm install ' + + '\nnpm install /' + + '\n\nalias: npm i' + + '\ncommon options: [--save|--save-dev|--save-optional] [--save-exact]' install.completion = function (opts, cb) { + validate('OF', arguments) // install can complete to a folder with a package.json, or any package. // if it has a slash, then it's gotta be a folder // if it starts with https?://, then just give up, because it's a url @@ -42,12 +43,12 @@ install.completion = function (opts, cb) { // is a folder containing a package.json file. If that is not the // case we return 0 matches, which will trigger the default bash // complete. - var lastSlashIdx = opts.partialWord.lastIndexOf("/") + var lastSlashIdx = opts.partialWord.lastIndexOf('/') var partialName = opts.partialWord.slice(lastSlashIdx + 1) var partialPath = opts.partialWord.slice(0, lastSlashIdx) - if (partialPath === "") partialPath = "/" + if (partialPath === '') partialPath = '/' - function annotatePackageDirMatch (sibling, cb) { + var annotatePackageDirMatch = function (sibling, cb) { var fullPath = path.join(partialPath, sibling) if (sibling.slice(0, partialName.length) !== partialName) { return cb(null, null) // not name match @@ -59,7 +60,7 @@ install.completion = function (opts, cb) { null, { fullPath: fullPath, - isPackage: contents.indexOf("package.json") !== -1 + isPackage: contents.indexOf('package.json') !== -1 } ) }) @@ -86,1111 +87,628 @@ install.completion = function (opts, cb) { cb() } -var npm = require("./npm.js") - , semver = require("semver") - , readJson = require("read-package-json") - , readInstalled = require("read-installed") - , log = require("npmlog") - , path = require("path") - , fs = require("graceful-fs") - , writeFileAtomic = require("write-file-atomic") - , cache = require("./cache.js") - , asyncMap = require("slide").asyncMap - , chain = require("slide").chain - , url = require("url") - , mkdir = require("mkdirp") - , lifecycle = require("./utils/lifecycle.js") - , archy = require("archy") - , npmInstallChecks = require("npm-install-checks") - , sortedObject = require("sorted-object") - , mapToRegistry = require("./utils/map-to-registry.js") - , npa = require("npm-package-arg") - , inflight = require("inflight") - , locker = require("./utils/locker.js") - , lock = locker.lock - , unlock = locker.unlock - , warnStrict = require("./utils/warn-deprecated.js")("engineStrict") - , warnPeers = require("./utils/warn-deprecated.js")("peerDependencies") - -function install (args, cb_) { - var hasArguments = !!args.length - - function cb (er, installed) { - if (er) return cb_(er) - - validateInstall(where, function (er, problem) { - if (er) return cb_(er) - - if (problem) { - var peerInvalidError = new Error("The package " + problem._id + - " does not satisfy its siblings' peerDependencies requirements!") - peerInvalidError.code = "EPEERINVALID" - peerInvalidError.packageName = problem.name - peerInvalidError.packageVersion = problem.version - peerInvalidError.peersDepending = problem.peersDepending - return cb(peerInvalidError) - } - - var tree = treeify(installed || []) - , pretty = prettify(tree, installed).trim() - - if (pretty) console.log(pretty) - save(where, installed, tree, pretty, hasArguments, cb_) - }) - } - - // the /path/to/node_modules/.. - var where = path.resolve(npm.dir, "..") - - // internal api: install(where, what, cb) - if (arguments.length === 3) { - where = args - args = [].concat(cb_) // pass in [] to do default dep-install - cb_ = arguments[2] - log.verbose("install", "where, what", [where, args]) - } - - if (!npm.config.get("global")) { - args = args.filter(function (a) { - return path.resolve(a) !== where - }) - } - - mkdir(where, function (er) { - if (er) return cb(er) - // install dependencies locally by default, - // or install current folder globally - if (!args.length) { - var opt = { dev: npm.config.get("dev") || !npm.config.get("production") } - - if (npm.config.get("global")) args = ["."] - else return readDependencies(null, where, opt, function (er, data) { - if (er) { - log.error("install", "Couldn't read dependencies") - return cb(er) - } - var deps = Object.keys(data.dependencies || {}) - log.verbose("install", "where, deps", [where, deps]) - - // FIXME: Install peerDependencies as direct dependencies, but only at - // the top level. Should only last until peerDependencies are nerfed to - // no longer implicitly install themselves. - var peers = [] - Object.keys(data.peerDependencies || {}).forEach(function (dep) { - if (!data.dependencies[dep]) { - log.verbose( - "install", - "peerDependency", dep, "wasn't going to be installed; adding" - ) - warnPeers([ - "The peer dependency "+dep+" included from "+data.name+" will no", - "longer be automatically installed to fulfill the peerDependency ", - "in npm 3+. Your application will need to depend on it explicitly." - ], dep+","+data.name) - peers.push(dep) - } - }) - log.verbose("install", "where, peers", [where, peers]) - - var context = { family: {} - , ancestors: {} - , explicit: false - , parent: data - , root: true - , wrap: null } - - if (data.name === path.basename(where) && - path.basename(path.dirname(where)) === "node_modules") { - // Only include in ancestry if it can actually be required. - // Otherwise, it does not count. - context.family[data.name] = - context.ancestors[data.name] = data.version - } - - installManyTop(deps.map(function (dep) { - var target = data.dependencies[dep] - return dep + "@" + target - }).concat(peers.map(function (dep) { - var target = data.peerDependencies[dep] - return dep + "@" + target - })), where, context, function(er, results) { - if (er || npm.config.get("production")) return cb(er, results) - lifecycle(data, "prepublish", where, function(er) { - return cb(er, results) - }) - }) +// system packages +var fs = require('fs') +var path = require('path') + +// dependencies +var log = require('npmlog') +var readPackageTree = require('read-package-tree') +var chain = require('slide').chain +var asyncMap = require('slide').asyncMap +var archy = require('archy') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var iferr = require('iferr') +var validate = require('aproba') + +// npm internal utils +var npm = require('./npm.js') +var locker = require('./utils/locker.js') +var lock = locker.lock +var unlock = locker.unlock +var ls = require('./ls.js') +var parseJSON = require('./utils/parse-json.js') + +// install specific libraries +var copyTree = require('./install/copy-tree.js') +var readShrinkwrap = require('./install/read-shrinkwrap.js') +var recalculateMetadata = require('./install/deps.js').recalculateMetadata +var loadDeps = require('./install/deps.js').loadDeps +var loadDevDeps = require('./install/deps.js').loadDevDeps +var getAllMetadata = require('./install/deps.js').getAllMetadata +var loadRequestedDeps = require('./install/deps.js').loadRequestedDeps +var loadExtraneous = require('./install/deps.js').loadExtraneous +var pruneTree = require('./install/prune-tree.js') +var diffTrees = require('./install/diff-trees.js') +var checkPermissions = require('./install/check-permissions.js') +var decomposeActions = require('./install/decompose-actions.js') +var filterInvalidActions = require('./install/filter-invalid-actions.js') +var validateTree = require('./install/validate-tree.js') +var validateArgs = require('./install/validate-args.js') +var saveRequested = require('./install/save.js').saveRequested +var getSaveType = require('./install/save.js').getSaveType +var doSerialActions = require('./install/actions.js').doSerial +var doReverseSerialActions = require('./install/actions.js').doReverseSerial +var doParallelActions = require('./install/actions.js').doParallel +var doOneAction = require('./install/actions.js').doOne +var getPackageId = require('./install/get-package-id.js') + +function unlockCB (lockPath, name, cb) { + validate('SSF', arguments) + return function (installEr) { + var args = arguments + try { + unlock(lockPath, name, reportErrorAndReturn) + } catch (unlockEx) { + process.nextTick(function () { + reportErrorAndReturn(unlockEx) }) } - - // initial "family" is the name:version of the root, if it's got - // a package.json file. - var jsonPath = path.resolve(where, "package.json") - log.verbose('install', 'initial load of', jsonPath) - readJson(jsonPath, log.warn, function (er, data) { - if (er - && er.code !== "ENOENT" - && er.code !== "ENOTDIR") return cb(er) - if (er) data = null - var context = { family: {} - , ancestors: {} - , explicit: true - , parent: data - , root: true - , wrap: null } - if (data && data.name === path.basename(where) && - path.basename(path.dirname(where)) === "node_modules") { - context.family[data.name] = context.ancestors[data.name] = data.version + function reportErrorAndReturn (unlockEr) { + if (installEr) { + if (unlockEr && unlockEr.code !== 'ENOTLOCKED') { + log.warn('unlock' + name, unlockEr) + } + return cb.apply(null, args) } - var fn = npm.config.get("global") ? installMany : installManyTop - fn(args, where, context, cb) - }) - }) -} - -function validateInstall (where, cb) { - var jsonPath = path.resolve(where, 'package.json') - log.verbose('validateInstall', 'loading', jsonPath, 'for validation') - readJson(jsonPath, log.warn, function (er, data) { - if (er - && er.code !== 'ENOENT' - && er.code !== 'ENOTDIR') return cb(er) - - if (data && data.engineStrict) { - warnStrict([ - "Per-package engineStrict (found in this package's package.json) ", - "won't be used in npm 3+. Use the config setting `engine-strict` instead." - ], data.name) + if (unlockEr) return cb(unlockEr) + return cb.apply(null, args) } - - readInstalled(where, { log: log.warn, dev: true }, function (er, data) { - if (er) return cb(er) - - cb(null, findPeerInvalid_(data.dependencies, [])) - }) - }) + } } -function findPeerInvalid_ (packageMap, fpiList) { - if (fpiList.indexOf(packageMap) !== -1) - return undefined - - fpiList.push(packageMap) - - for (var packageName in packageMap) { - var pkg = packageMap[packageName] +function install (where, args, cb) { + if (!cb) { + cb = args + args = where + where = null + } + var globalTop = path.resolve(npm.globalDir, '..') + if (!where) { + where = npm.config.get('global') + ? globalTop + : npm.prefix + } + validate('SAF', [where, args, cb]) + // the /path/to/node_modules/.. + var dryrun = !!npm.config.get('dry-run') - if (pkg.peerInvalid) { - var peersDepending = {} - for (var peerName in packageMap) { - var peer = packageMap[peerName] - if (peer.peerDependencies && peer.peerDependencies[packageName]) { - peersDepending[peer.name + "@" + peer.version] = - peer.peerDependencies[packageName] - } - } - return { name: pkg.name, peersDepending: peersDepending, version: pkg.version, _id: pkg._id } - } + if (npm.config.get('dev')) { + log.warn('install', 'Usage of the `--dev` option is deprecated. Use `--only=dev` instead.') + } - if (pkg.dependencies) { - var invalid = findPeerInvalid_(pkg.dependencies, fpiList) - if (invalid) - return invalid - } + if (where === globalTop && !args.length) { + args = ['.'] } + args = args.filter(function (a) { + return path.resolve(a) !== npm.prefix + }) - return null + new Installer(where, dryrun, args).run(cb) } -// reads dependencies for the package at "where". There are several cases, -// depending on our current state and the package's configuration: -// -// 1. If "context" is specified, then we examine the context to see if there's a -// shrinkwrap there. In that case, dependencies are read from the shrinkwrap. -// 2. Otherwise, if an npm-shrinkwrap.json file is present, dependencies are -// read from there. -// 3. Otherwise, dependencies come from package.json. -// -// Regardless of which case we fall into, "cb" is invoked with a first argument -// describing the full package (as though readJson had been used) but with -// "dependencies" read as described above. The second argument to "cb" is the -// shrinkwrap to use in processing this package's dependencies, which may be -// "wrap" (in case 1) or a new shrinkwrap (in case 2). -function readDependencies (context, where, opts, cb) { - var wrap = context ? context.wrap : null - - var jsonPath = path.resolve(where, 'package.json') - log.verbose('readDependencies', 'loading dependencies from', jsonPath) - readJson(jsonPath, log.warn, function (er, data) { - if (er && er.code === "ENOENT") er.code = "ENOPACKAGEJSON" - if (er) return cb(er) - - if (opts && opts.dev) { - if (!data.dependencies) data.dependencies = {} - Object.keys(data.devDependencies || {}).forEach(function (k) { - if (data.dependencies[k]) { - log.warn("package.json", "Dependency '%s' exists in both dependencies " + - "and devDependencies, using '%s@%s' from dependencies", - k, k, data.dependencies[k]) - } else { - data.dependencies[k] = data.devDependencies[k] - } - }) - } - - if (!npm.config.get("optional") && data.optionalDependencies) { - Object.keys(data.optionalDependencies).forEach(function (d) { - delete data.dependencies[d] - }) +function Installer (where, dryrun, args) { + validate('SBA', arguments) + this.where = where + this.dryrun = dryrun + this.args = args + this.currentTree = null + this.idealTree = null + this.differences = [] + this.todo = [] + this.progress = {} + this.noPackageJsonOk = !!args.length + this.topLevelLifecycles = !args.length + this.npat = npm.config.get('npat') + this.dev = npm.config.get('dev') || (!/^prod(uction)?$/.test(npm.config.get('only')) && !npm.config.get('production')) + this.prod = !/^dev(elopment)?$/.test(npm.config.get('only')) + this.rollback = npm.config.get('rollback') + this.link = npm.config.get('link') + this.global = this.where === path.resolve(npm.globalDir, '..') +} +Installer.prototype = {} + +Installer.prototype.run = function (cb) { + validate('F', arguments) + + // FIXME: This is bad and I should feel bad. + // lib/install needs to have some way of sharing _limited_ + // state with the things it calls. Passing the object is too + // much. The global config is WAY too much. =( =( + // But not having this is gonna break linked modules in + // subtle stupid ways, and refactoring all this code isn't + // the right thing to do just yet. + if (this.global) { + var prevGlobal = npm.config.get('global') + npm.config.set('global', true) + var next = cb + cb = function () { + npm.config.set('global', prevGlobal) + next.apply(null, arguments) } + } - // User has opted out of shrinkwraps entirely - if (npm.config.get("shrinkwrap") === false) - return cb(null, data, null) - - if (wrap) { - log.verbose("readDependencies: using existing wrap", [where, wrap]) - var rv = {} - Object.keys(data).forEach(function (key) { - rv[key] = data[key] - }) - rv.dependencies = {} - Object.keys(wrap).forEach(function (key) { - log.verbose("from wrap", [key, wrap[key]]) - rv.dependencies[key] = readWrap(wrap[key]) - }) - log.verbose("readDependencies returned deps", rv.dependencies) - return cb(null, rv, wrap) + var installSteps = [] + var postInstallSteps = [] + installSteps.push( + [this.newTracker(log, 'loadCurrentTree', 4)], + [this, this.loadCurrentTree], + [this, this.finishTracker, 'loadCurrentTree'], + + [this.newTracker(log, 'loadIdealTree', 12)], + [this, this.loadIdealTree], + [this, this.finishTracker, 'loadIdealTree'], + + [this, this.debugTree, 'currentTree', 'currentTree'], + [this, this.debugTree, 'idealTree', 'idealTree'], + + [this.newTracker(log, 'generateActionsToTake')], + [this, this.generateActionsToTake], + [this, this.finishTracker, 'generateActionsToTake'], + + [this, this.debugActions, 'diffTrees', 'differences'], + [this, this.debugActions, 'decomposeActions', 'todo']) + if (!this.dryrun) { + installSteps.push( + [this.newTracker(log, 'executeActions', 8)], + [this, this.executeActions], + [this, this.finishTracker, 'executeActions']) + var node_modules = path.resolve(this.where, 'node_modules') + var staging = path.resolve(node_modules, '.staging') + postInstallSteps.push( + [this.newTracker(log, 'rollbackFailedOptional', 1)], + [this, this.rollbackFailedOptional, staging, this.todo], + [this, this.finishTracker, 'rollbackFailedOptional'], + [this, this.commit, staging, this.todo], + [this.newTracker(log, 'runTopLevelLifecycles', 2)], + [this, this.runTopLevelLifecycles], + [this, this.finishTracker, 'runTopLevelLifecycles']) + + if (getSaveType(this.args)) { + postInstallSteps.push( + [this, this.saveToDependencies]) } - - var wrapfile = path.resolve(where, "npm-shrinkwrap.json") - - fs.readFile(wrapfile, "utf8", function (er, wrapjson) { - if (er) return cb(null, data, null) - - log.verbose("readDependencies", "npm-shrinkwrap.json is overriding dependencies") - var newwrap - try { - newwrap = JSON.parse(wrapjson) - } catch (ex) { - return cb(ex) - } - - log.info("shrinkwrap", "file %j", wrapfile) - var rv = {} - Object.keys(data).forEach(function (key) { - rv[key] = data[key] - }) - rv.dependencies = {} - Object.keys(newwrap.dependencies || {}).forEach(function (key) { - rv.dependencies[key] = readWrap(newwrap.dependencies[key]) - }) - - // fold in devDependencies if not already present, at top level - if (opts && opts.dev) { - Object.keys(data.devDependencies || {}).forEach(function (k) { - rv.dependencies[k] = rv.dependencies[k] || data.devDependencies[k] + } + postInstallSteps.push( + [this, this.printInstalled]) + + var self = this + chain(installSteps, function (installEr) { + if (installEr) self.failing = true + chain(postInstallSteps, function (postInstallEr) { + if (self.idealTree) { + self.idealTree.warnings.forEach(function (warning) { + if (warning.code === 'EPACKAGEJSON' && self.global) return + if (warning.code === 'ENOTDIR') return + log.warn(warning.code, warning.message) }) } - - log.verbose("readDependencies returned deps", rv.dependencies) - return cb(null, rv, newwrap.dependencies) + if (installEr && postInstallEr) { + log.warn('error', postInstallEr.message) + log.verbose('error', postInstallEr.stack) + } + cb(installEr || postInstallEr, self.getInstalledModules(), self.idealTree) }) }) } -function readWrap (w) { - return (w.resolved) ? w.resolved - : (w.from && url.parse(w.from).protocol) ? w.from - : w.version +Installer.prototype.loadArgMetadata = function (next) { + var self = this + getAllMetadata(this.args, this.currentTree, iferr(next, function (args) { + self.args = args + next() + })) } -// if the -S|--save option is specified, then write installed packages -// as dependencies to a package.json file. -function save (where, installed, tree, pretty, hasArguments, cb) { - if (!hasArguments || - !npm.config.get("save") && - !npm.config.get("save-dev") && - !npm.config.get("save-optional") || - npm.config.get("global")) { - return cb(null, installed, tree, pretty) +Installer.prototype.newTracker = function (tracker, name, size) { + validate('OS', [tracker, name]) + if (size) validate('N', [size]) + this.progress[name] = tracker.newGroup(name, size) + var self = this + return function (next) { + self.progress[name].silly(name, 'Starting') + next() } +} - var saveBundle = npm.config.get("save-bundle") - var savePrefix = npm.config.get("save-prefix") - - // each item in the tree is a top-level thing that should be saved - // to the package.json file. - // The relevant tree shape is { : {what:} } - var saveTarget = path.resolve(where, "package.json") +Installer.prototype.finishTracker = function (name, cb) { + validate('SF', arguments) + this.progress[name].silly(name, 'Finishing') + this.progress[name].finish() + cb() +} - asyncMap(Object.keys(tree), function (k, cb) { - // if "from" is remote, git, or hosted, then save that instead. - var t = tree[k] - , f = npa(t.from) - , a = npa(t.what) - , w = [a.name, a.spec] +Installer.prototype.loadCurrentTree = function (cb) { + validate('F', arguments) + log.silly('install', 'loadCurrentTree') + var todo = [] + if (this.global) { + todo.push([this, this.readGlobalPackageData]) + } else { + todo.push([this, this.readLocalPackageData]) + } + todo.push( + [this, this.normalizeTree, log.newGroup('normalizeTree')]) + chain(todo, cb) +} +Installer.prototype.loadIdealTree = function (cb) { + validate('F', arguments) + log.silly('install', 'loadIdealTree') - fs.stat(t.from, function (er){ - if (!er) { - w[1] = "file:" + t.from - } else if (['hosted', 'git', 'remote'].indexOf(f.type) !== -1) { - w[1] = t.from - } - cb(null, [w]) - }) - } - , function (er, arr) { - var things = arr.reduce(function (set, k) { - var rangeDescriptor = semver.valid(k[1], true) && - semver.gte(k[1], "0.1.0", true) && - !npm.config.get("save-exact") - ? savePrefix : "" - set[k[0]] = rangeDescriptor + k[1] - return set - }, {}) - - - // don't use readJson, because we don't want to do all the other - // tricky npm-specific stuff that's in there. - fs.readFile(saveTarget, function (er, data) { - // ignore errors here, just don't save it. - try { - data = JSON.parse(data.toString("utf8")) - } catch (ex) { - er = ex - } + chain([ + [this.newTracker(this.progress.loadIdealTree, 'cloneCurrentTree')], + [this, this.cloneCurrentTreeToIdealTree], + [this, this.finishTracker, 'cloneCurrentTree'], - if (er) { - return cb(null, installed, tree, pretty) - } + [this.newTracker(this.progress.loadIdealTree, 'loadShrinkwrap')], + [this, this.loadShrinkwrap], + [this, this.finishTracker, 'loadShrinkwrap'], - var deps = npm.config.get("save-optional") ? "optionalDependencies" - : npm.config.get("save-dev") ? "devDependencies" - : "dependencies" + [this.newTracker(this.progress.loadIdealTree, 'loadAllDepsIntoIdealTree', 10)], + [this, this.loadAllDepsIntoIdealTree], + [this, this.finishTracker, 'loadAllDepsIntoIdealTree'], - if (saveBundle) { - var bundle = data.bundleDependencies || data.bundledDependencies - delete data.bundledDependencies - if (!Array.isArray(bundle)) bundle = [] - data.bundleDependencies = bundle.sort() - } + [this, function (next) { recalculateMetadata(this.idealTree, log, next) } ], + [this, this.debugTree, 'idealTree:prePrune', 'idealTree'], + [this, function (next) { next(pruneTree(this.idealTree)) } ] + ], cb) +} - log.verbose("save", "saving", things) - data[deps] = data[deps] || {} - Object.keys(things).forEach(function (t) { - data[deps][t] = things[t] - if (saveBundle) { - var i = bundle.indexOf(t) - if (i === -1) bundle.push(t) - data.bundleDependencies = bundle.sort() - } - }) +Installer.prototype.loadAllDepsIntoIdealTree = function (cb) { + validate('F', arguments) + log.silly('install', 'loadAllDepsIntoIdealTree') + var saveDeps = getSaveType(this.args) + + var cg = this.progress.loadAllDepsIntoIdealTree + var installNewModules = !!this.args.length + var steps = [] + + if (installNewModules) { + steps.push([validateArgs, this.idealTree, this.args]) + steps.push([loadRequestedDeps, this.args, this.idealTree, saveDeps, cg.newGroup('loadRequestedDeps')]) + } else { + if (this.prod) { + steps.push( + [loadDeps, this.idealTree, cg.newGroup('loadDeps')]) + } + if (this.dev) { + steps.push( + [loadDevDeps, this.idealTree, cg.newGroup('loadDevDeps')]) + } + } + steps.push( + [loadExtraneous.andResolveDeps, this.idealTree, cg.newGroup('loadExtraneous')]) + chain(steps, cb) +} - data[deps] = sortedObject(data[deps]) +Installer.prototype.generateActionsToTake = function (cb) { + validate('F', arguments) + log.silly('install', 'generateActionsToTake') + var cg = this.progress.generateActionsToTake + chain([ + [validateTree, this.idealTree, cg.newGroup('validateTree')], + [diffTrees, this.currentTree, this.idealTree, this.differences, cg.newGroup('diffTrees')], + [this, this.computeLinked], + [filterInvalidActions, this.where, this.differences], + [checkPermissions, this.differences], + [decomposeActions, this.differences, this.todo] + ], cb) +} - log.silly("save", "writing", saveTarget) - data = JSON.stringify(data, null, 2) + "\n" - writeFileAtomic(saveTarget, data, function (er) { - cb(er, installed, tree, pretty) - }) +Installer.prototype.computeLinked = function (cb) { + validate('F', arguments) + if (!this.link || this.global) return cb() + var linkTodoList = [] + var self = this + asyncMap(this.differences, function (action, next) { + var cmd = action[0] + var pkg = action[1] + if (cmd !== 'add' && cmd !== 'update') return next() + var isReqByTop = pkg.package._requiredBy.filter(function (name) { return name === '/' }).length + var isReqByUser = pkg.package._requiredBy.filter(function (name) { return name === '#USER' }).length + var isExtraneous = pkg.package._requiredBy.length === 0 + if (!isReqByTop && !isReqByUser && !isExtraneous) return next() + isLinkable(pkg, function (install, link) { + if (install) linkTodoList.push(['global-install', pkg]) + if (link) linkTodoList.push(['global-link', pkg]) + if (install || link) { + pkg.parent.children = pkg.parent.children.filter(function (child) { return child !== pkg }) + } + next() }) + }, function () { + if (linkTodoList.length === 0) return cb() + pruneTree(self.idealTree) + self.differences.length = 0 + Array.prototype.push.apply(self.differences, linkTodoList) + diffTrees(self.currentTree, self.idealTree, self.differences, log.newGroup('d2'), cb) }) } - -// Outputting *all* the installed modules is a bit confusing, -// because the length of the path does not make it clear -// that the submodules are not immediately require()able. -// TODO: Show the complete tree, ls-style, but only if --long is provided -function prettify (tree, installed) { - function red (set, kv) { - set[kv[0]] = kv[1] - return set - } - - if (npm.config.get("json")) { - tree = Object.keys(tree).map(function (p) { - if (!tree[p]) return null - var what = npa(tree[p].what) - , name = what.name - , version = what.spec - , o = { name: name, version: version, from: tree[p].from } - o.dependencies = tree[p].children.map(function P (dep) { - var what = npa(dep.what) - , name = what.name - , version = what.spec - , o = { version: version, from: dep.from } - o.dependencies = dep.children.map(P).reduce(red, {}) - return [name, o] - }).reduce(red, {}) - return o +function isLinkable (pkg, cb) { + var globalPackage = path.resolve(npm.globalPrefix, 'lib', 'node_modules', pkg.package.name) + var globalPackageJson = path.resolve(globalPackage, 'package.json') + fs.stat(globalPackage, function (er) { + if (er) return cb(true, true) + fs.readFile(globalPackageJson, function (er, data) { + var json = parseJSON.noExceptions(data) + cb(false, json && json.version === pkg.package.version) }) - - return JSON.stringify(tree, null, 2) - } - if (npm.config.get("parseable")) return parseable(installed) - - return Object.keys(tree).map(function (p) { - return archy({ label: tree[p].what + " " + p - , nodes: (tree[p].children || []).map(function P (c) { - if (npm.config.get("long")) { - return { label: c.what, nodes: c.children.map(P) } - } - var g = c.children.map(function (g) { - return g.what - }).join(", ") - if (g) g = " (" + g + ")" - return c.what + g - }) - }, "", { unicode: npm.config.get("unicode") }) - }).join("\n") + }) } -function parseable (installed) { - var long = npm.config.get("long") - , cwd = process.cwd() - return installed.map(function (item) { - return path.resolve(cwd, item[1]) + - ( long ? ":" + item[0] : "" ) - }).join("\n") -} +Installer.prototype.executeActions = function (cb) { + validate('F', arguments) + log.silly('install', 'executeActions') + var todo = this.todo + var cg = this.progress.executeActions + + var node_modules = path.resolve(this.where, 'node_modules') + var staging = path.resolve(node_modules, '.staging') + var steps = [] + var trackLifecycle = cg.newGroup('lifecycle') + + cb = unlockCB(node_modules, '.staging', cb) + + steps.push( + [doSerialActions, 'global-install', staging, todo, trackLifecycle.newGroup('global-install')], + [doParallelActions, 'fetch', staging, todo, cg.newGroup('fetch', 10)], + [lock, node_modules, '.staging'], + [rimraf, staging], + [mkdirp, staging], + [doParallelActions, 'extract', staging, todo, cg.newGroup('extract', 10)], + [doParallelActions, 'preinstall', staging, todo, trackLifecycle.newGroup('preinstall')], + [doReverseSerialActions, 'remove', staging, todo, cg.newGroup('remove')], + // FIXME: We do this here to commit the removes prior to trying to move + // anything into place. Once we can rollback removes we should find + // a better solution for this. + // This is to protect against cruft in the node_modules folder (like dot files) + // that stop it from being removed. + [this, this.commit, staging, this.todo], + [doSerialActions, 'move', staging, todo, cg.newGroup('move')], + [doSerialActions, 'finalize', staging, todo, cg.newGroup('finalize')], + [doSerialActions, 'build', staging, todo, trackLifecycle.newGroup('build')], + [doSerialActions, 'global-link', staging, todo, trackLifecycle.newGroup('global-link')], + [doParallelActions, 'update-linked', staging, todo, trackLifecycle.newGroup('update-linked')], + [doSerialActions, 'install', staging, todo, trackLifecycle.newGroup('install')], + [doSerialActions, 'postinstall', staging, todo, trackLifecycle.newGroup('postinstall')]) + if (this.npat) { + steps.push( + [doParallelActions, 'test', staging, todo, trackLifecycle.newGroup('npat')]) + } -function treeify (installed) { - // each item is [what, where, parent, parentDir] - // If no parent, then report it. - // otherwise, tack it into the parent's children list. - // If the parent isn't a top-level then ignore it. - var whatWhere = installed.reduce(function (l, r) { - var parentDir = r[3] - , parent = r[2] - , where = r[1] - , what = r[0] - , from = r[4] - l[where] = { parentDir: parentDir - , parent: parent - , children: [] - , where: where - , what: what - , from: from } - return l - }, {}) - - // log.warn("install", whatWhere, "whatWhere") - return Object.keys(whatWhere).reduce(function (l, r) { - var ww = whatWhere[r] - //log.warn("r, ww", [r, ww]) - if (!ww.parent) { - l[r] = ww + var self = this + chain(steps, function (er) { + if (!er || self.rollback) { + rimraf(staging, function () { cb(er) }) } else { - var p = whatWhere[ww.parentDir] - if (p) p.children.push(ww) - else l[r] = ww + cb(er) } - return l - }, {}) + }) } +Installer.prototype.rollbackFailedOptional = function (staging, actionsToRun, cb) { + if (!this.rollback) return cb() + var failed = actionsToRun.map(function (action) { + return action[1] + }).filter(function (pkg) { + return pkg.failed && pkg.rollback + }) + asyncMap(failed, function (pkg, next) { + asyncMap(pkg.rollback, function (rollback, done) { + rollback(staging, pkg, done) + }, next) + }, cb) +} -// just like installMany, but also add the existing packages in -// where/node_modules to the family object. -function installManyTop (what, where, context, cb_) { - function cb (er, d) { - if (context.explicit || er) return cb_(er, d) - // since this wasn't an explicit install, let's build the top - // folder, so that `npm install` also runs the lifecycle scripts. - npm.commands.build([where], false, true, function (er) { - return cb_(er, d) +Installer.prototype.commit = function (staging, actionsToRun, cb) { + var toCommit = actionsToRun.map(function (action) { return action[1] }).filter(function (pkg) { return !pkg.failed && pkg.commit }) + asyncMap(toCommit, function (pkg, next) { + asyncMap(pkg.commit, function (commit, done) { + commit(staging, pkg, done) + }, function () { + pkg.commit = [] + next.apply(null, arguments) }) - } - - if (context.explicit) return next() + }, cb) +} - var jsonPath = path.join(where, 'package.json') - log.verbose('installManyTop', 'reading for lifecycle', jsonPath) - readJson(jsonPath, log.warn, function (er, data) { - if (er) return next(er) - lifecycle(data, "preinstall", where, next) - }) +Installer.prototype.runTopLevelLifecycles = function (cb) { + validate('F', arguments) + if (this.failing) return cb() + log.silly('install', 'runTopLevelLifecycles') + var steps = [] + var trackLifecycle = this.progress.runTopLevelLifecycles + if (!this.topLevelLifecycles) { + trackLifecycle.finish() + return cb() + } - function next (er) { - if (er) return cb(er) - installManyTop_(what, where, context, cb) + steps.push( + [doOneAction, 'preinstall', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('preinstall:.')], + [doOneAction, 'build', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('build:.')], + [doOneAction, 'install', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('install:.')], + [doOneAction, 'postinstall', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('postinstall:.')]) + if (this.npat) { + steps.push( + [doOneAction, 'test', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('npat:.')]) + } + if (this.dev) { + steps.push( + [doOneAction, 'prepublish', this.idealTree.path, this.idealTree, trackLifecycle.newGroup('prepublish')]) } + chain(steps, cb) } -function installManyTop_ (what, where, context, cb) { - var nm = path.resolve(where, "node_modules") - - fs.readdir(nm, function (er, pkgs) { - if (er) return installMany(what, where, context, cb) - - var scopes = [], unscoped = [] - pkgs.filter(function (p) { - return !p.match(/^[\._-]/) - }).forEach(function (p) { - // @names deserve deeper investigation - if (p[0] === "@") { - scopes.push(p) - } - else { - unscoped.push(p) - } - }) - - maybeScoped(scopes, nm, function (er, scoped) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) - // recombine unscoped with @scope/package packages - asyncMap(unscoped.concat(scoped).map(function (p) { - return path.resolve(nm, p, "package.json") - }), function (jsonPath, cb) { - log.verbose('installManyTop', 'reading scoped package data from', jsonPath) - readJson(jsonPath, log.info, function (er, data) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) - if (er) return cb(null, []) - cb(null, [[data.name, data.version]]) - }) - }, function (er, packages) { - // if there's nothing in node_modules, then don't freak out. - if (er) packages = [] - // add all the existing packages to the family list. - // however, do not add to the ancestors list. - packages.forEach(function (p) { - context.family[p[0]] = p[1] - }) - installMany(what, where, context, cb) - }) - }) - }) +Installer.prototype.saveToDependencies = function (cb) { + validate('F', arguments) + if (this.failing) return cb() + log.silly('install', 'saveToDependencies') + saveRequested(this.args, this.idealTree, cb) } -function maybeScoped (scopes, where, cb) { - // find packages in scopes - asyncMap(scopes, function (scope, cb) { - fs.readdir(path.resolve(where, scope), function (er, scoped) { - if (er) return cb(er) - var paths = scoped.map(function (p) { - return path.join(scope, p) +Installer.prototype.readGlobalPackageData = function (cb) { + validate('F', arguments) + log.silly('install', 'readGlobalPackageData') + var self = this + this.loadArgMetadata(iferr(cb, function () { + mkdirp(self.where, iferr(cb, function () { + var pkgs = {} + self.args.forEach(function (pkg) { + pkgs[pkg.name] = true }) - cb(null, paths) - }) - }, cb) + readPackageTree(self.where, function (ctx, kid) { return ctx.parent || pkgs[kid] }, iferr(cb, function (currentTree) { + self.currentTree = currentTree + return cb() + })) + })) + })) } -function installMany (what, where, context, cb) { - // readDependencies takes care of figuring out whether the list of - // dependencies we'll iterate below comes from an existing shrinkwrap from a - // parent level, a new shrinkwrap at this level, or package.json at this - // level, as well as which shrinkwrap (if any) our dependencies should use. - var opt = { dev: npm.config.get("dev") } - readDependencies(context, where, opt, function (er, data, wrap) { - if (er) data = {} - - var parent = data - - // if we're explicitly installing "what" into "where", then the shrinkwrap - // for "where" doesn't apply. This would be the case if someone were adding - // a new package to a shrinkwrapped package. (data.dependencies will not be - // used here except to indicate what packages are already present, so - // there's no harm in using that.) - if (context.explicit) wrap = null - - var deps = data.dependencies || {} - var devDeps = data.devDependencies || {} - - // what is a list of things. - // resolve each one. - asyncMap( what - , targetResolver(where, context, deps, devDeps) - , function (er, targets) { - - if (er) return cb(er) - - var bundled = data.bundleDependencies || data.bundledDependencies || [] - // only take the hit for readInstalled if there are probably bundled - // dependencies to read - if (bundled.length) { - readInstalled(where, { dev: true }, andBuildResolvedTree) - } else { - andBuildResolvedTree() +Installer.prototype.readLocalPackageData = function (cb) { + validate('F', arguments) + log.silly('install', 'readLocalPackageData') + var self = this + mkdirp(this.where, iferr(cb, function () { + readPackageTree(self.where, iferr(cb, function (currentTree) { + self.currentTree = currentTree + self.currentTree.warnings = [] + if (!self.noPackageJsonOk && !currentTree.package) { + log.error('install', "Couldn't read dependencies") + var er = new Error("ENOENT, open '" + path.join(self.where, 'package.json') + "'") + er.code = 'ENOPACKAGEJSON' + er.errno = 34 + return cb(er) } - - function andBuildResolvedTree (er, current) { - if (er) return cb(er) - - // each target will be a data object corresponding - // to a package, folder, or whatever that is in the cache now. - var newPrev = Object.create(context.family) - , newAnc = Object.create(context.ancestors) - - if (!context.root) { - newAnc[data.name] = data.version - } - bundled.forEach(function (bundle) { - var bundleData = current.dependencies[bundle] - if ((!bundleData || !bundleData.version) && current.devDependencies) { - log.verbose( - 'installMany', bundle, 'was bundled with', - data.name + '@' + data.version + - ", but wasn't found in dependencies. Trying devDependencies" - ) - bundleData = current.devDependencies[bundle] - } - - if (!bundleData || !bundleData.version) { - log.warn( - 'installMany', bundle, 'was bundled with', - data.name + '@' + data.version + - ", but bundled package wasn't found in unpacked tree" - ) - } else { - log.verbose( - 'installMany', bundle + '@' + bundleData.version, - 'was bundled with', data.name + '@' + data.version - ) - newPrev[bundle] = bundleData.version + if (!currentTree.package) currentTree.package = {} + self.loadArgMetadata(iferr(cb, function () { + if (currentTree.package._shrinkwrap) return cb() + fs.readFile(path.join(self.where, 'npm-shrinkwrap.json'), function (er, data) { + if (er) return cb() + try { + currentTree.package._shrinkwrap = parseJSON(data) + } catch (ex) { + return cb(ex) } + return cb() }) - targets.forEach(function (t) { - newPrev[t.name] = t.version - }) - log.silly("install resolved", targets) - targets.filter(function (t) { return t }).forEach(function (t) { - log.info("install", "%s into %s", t._id, where) - }) - asyncMap(targets, function (target, cb) { - log.info("installOne", target._id) - var wrapData = wrap ? wrap[target.name] : null - var newWrap = wrapData && wrapData.dependencies - ? wrap[target.name].dependencies || {} - : null - var newContext = { family: newPrev - , ancestors: newAnc - , parent: parent - , explicit: false - , wrap: newWrap } - installOne(target, where, newContext, cb) - }, cb) - } - }) - }) + })) + })) + })) } -function targetResolver (where, context, deps, devDeps) { - var alreadyInstalledManually = [] - , resolveLeft = 0 - , nm = path.resolve(where, "node_modules") - , parent = context.parent - , wrap = context.wrap - - if (!context.explicit) readdir(nm) - - function readdir(name) { - resolveLeft++ - fs.readdir(name, function (er, inst) { - if (er) return resolveLeft-- - - // don't even mess with non-package looking things - inst = inst.filter(function (p) { - if (!p.match(/^[@\._-]/)) return true - // scoped packages - readdir(path.join(name, p)) - }) - - asyncMap(inst, function (pkg, cb) { - var jsonPath = path.resolve(name, pkg, 'package.json') - log.verbose('targetResolver', 'reading package data from', jsonPath) - readJson(jsonPath, log.info, function (er, d) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) - // error means it's not a package, most likely. - if (er) return cb(null, []) - - // if it's a bundled dep, then assume that anything there is valid. - // otherwise, make sure that it's a semver match with what we want. - var bd = parent.bundleDependencies - var isBundled = bd && bd.indexOf(d.name) !== -1 - var expectedVersion = deps[d.name] || (devDeps && devDeps[d.name]) || "*" - var currentIsSatisfactory = semver.satisfies(d.version, expectedVersion, true) - if (isBundled || currentIsSatisfactory || deps[d.name] === d._resolved) { - return cb(null, d.name) - } - - // see if the package had been previously linked - fs.lstat(path.resolve(nm, pkg), function(err, s) { - if (err) return cb(null, []) - if (s.isSymbolicLink()) { - return cb(null, d.name) - } +Installer.prototype.cloneCurrentTreeToIdealTree = function (cb) { + validate('F', arguments) + log.silly('install', 'cloneCurrentTreeToIdealTree') + this.idealTree = copyTree(this.currentTree) + this.idealTree.warnings = [] + cb() +} - // something is there, but it's not satisfactory. Clobber it. - return cb(null, []) - }) - }) - }, function (er, inst) { - // this is the list of things that are valid and should be ignored. - alreadyInstalledManually = alreadyInstalledManually.concat(inst) - resolveLeft-- - }) - }) +Installer.prototype.loadShrinkwrap = function (cb) { + validate('F', arguments) + log.silly('install', 'loadShrinkwrap') + var installNewModules = !!this.args.length + if (installNewModules) { + readShrinkwrap(this.idealTree, cb) + } else { + readShrinkwrap.andInflate(this.idealTree, cb) } +} - var to = 0 - return function resolver (what, cb) { - if (resolveLeft) return setTimeout(function () { - resolver(what, cb) - }, to++) - - // now we know what's been installed here manually, - // or tampered with in some way that npm doesn't want to overwrite. - if (alreadyInstalledManually.indexOf(npa(what).name) !== -1) { - log.verbose("already installed", "skipping %s %s", what, where) - return cb(null, []) - } - - // check for a version installed higher in the tree. - // If installing from a shrinkwrap, it must match exactly. - if (context.family[what]) { - log.verbose('install', what, 'is installed as', context.family[what]) - if (wrap && wrap[what].version === context.family[what]) { - log.verbose("shrinkwrap", "use existing", what) - return cb(null, []) - } - } - - // if it's identical to its parent, then it's probably someone - // doing `npm install foo` inside of the foo project. Print - // a warning, and skip it. - if (parent && parent.name === what && !npm.config.get("force")) { - log.warn("install", "Refusing to install %s as a dependency of itself" - , what) - return cb(null, []) - } - - if (wrap) { - var name = npa(what).name - if (wrap[name]) { - var wrapTarget = readWrap(wrap[name]) - what = name + "@" + wrapTarget - } else { - log.verbose("shrinkwrap", "skipping %s (not in shrinkwrap)", what) - } - } else if (deps[what]) { - what = what + "@" + deps[what] - } - - // This is where we actually fetch the package, if it's not already - // in the cache. - // If it's a git repo, then we want to install it, even if the parent - // already has a matching copy. - // If it's not a git repo, and the parent already has that pkg, then - // we can skip installing it again. - var pkgroot = path.resolve(npm.prefix, (parent && parent._from) || "") - cache.add(what, null, pkgroot, false, function (er, data) { - if (er && parent && parent.optionalDependencies && - parent.optionalDependencies.hasOwnProperty(npa(what).name)) { - log.warn("optional dep failed, continuing", what) - log.verbose("optional dep failed, continuing", [what, er]) - return cb(null, []) - } - - var type = npa(what).type - var isGit = type === "git" || type === "hosted" - - if (!er && - data && - !context.explicit && - context.family[data.name] === data.version && - !npm.config.get("force") && - !isGit) { - log.info("already installed", data.name + "@" + data.version) - return cb(null, []) +Installer.prototype.normalizeTree = function (log, cb) { + validate('OF', arguments) + log.silly('install', 'normalizeTree') + recalculateMetadata(this.currentTree, log, iferr(cb, function (tree) { + tree.children.forEach(function (child) { + if (child.package._requiredBy.length === 0) { + child.package._requiredBy.push('#EXISTING') } - - - if (data && !data._from) data._from = what - if (er && parent && parent.name) er.parent = parent.name - return cb(er, data || []) }) - } + cb(null, tree) + })) } -// we've already decided to install this. if anything's in the way, -// then uninstall it first. -function installOne (target, where, context, cb) { - // the --link flag makes this a "link" command if it's at the - // the top level. - var isGit = false - var type = npa(target._from).type - if (target && target._from) isGit = type === 'git' || type === 'hosted' - - if (where === npm.prefix && npm.config.get("link") - && !npm.config.get("global") && !isGit) { - return localLink(target, where, context, cb) - } - installOne_(target, where, context, function (er, installedWhat) { - - // check if this one is optional to its parent. - if (er && context.parent && context.parent.optionalDependencies && - context.parent.optionalDependencies.hasOwnProperty(target.name)) { - log.warn("optional dep failed, continuing", target._id) - log.verbose("optional dep failed, continuing", [target._id, er]) - er = null - } - - cb(er, installedWhat) +Installer.prototype.getInstalledModules = function () { + return this.differences.filter(function (action) { + var mutation = action[0] + return (mutation === 'add' || mutation === 'update') + }).map(function (action) { + var child = action[1] + return [child.package._id, child.path] }) - } -function localLink (target, where, context, cb) { - log.verbose("localLink", target._id) - var jsonPath = path.resolve(npm.globalDir, target.name , 'package.json') - var parent = context.parent - - log.verbose('localLink', 'reading data to link', target.name, 'from', jsonPath) - readJson(jsonPath, log.warn, function (er, data) { - function thenLink () { - npm.commands.link([target.name], function (er, d) { - log.silly("localLink", "back from link", [er, d]) - cb(er, [resultList(target, where, parent && parent._id)]) - }) - } - - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) - if (er || data._id === target._id) { - if (er) { - install( path.resolve(npm.globalDir, "..") - , target._id - , function (er) { - if (er) return cb(er, []) - thenLink() - }) - } else thenLink() - } else { - log.verbose("localLink", "install locally (no link)", target._id) - installOne_(target, where, context, cb) +Installer.prototype.printInstalled = function (cb) { + validate('F', arguments) + log.silly('install', 'printInstalled') + var self = this + log.clearProgress() + this.differences.forEach(function (action) { + var mutation = action[0] + var child = action[1] + var name = getPackageId(child) + var where = path.relative(self.where, child.path) + if (mutation === 'remove') { + console.log('- ' + name + ' ' + where) + } else if (mutation === 'move') { + var oldWhere = path.relative(self.where, child.fromPath) + console.log(name + ' ' + oldWhere + ' -> ' + where) } }) -} - -function resultList (target, where, parentId) { - var nm = path.resolve(where, "node_modules") - , targetFolder = path.resolve(nm, target.name) - , prettyWhere = where - - if (!npm.config.get("global")) { - prettyWhere = path.relative(process.cwd(), where) - } - - if (prettyWhere === ".") prettyWhere = null - - if (!npm.config.get("global")) { - // print out the folder relative to where we are right now. - targetFolder = path.relative(process.cwd(), targetFolder) - } - - return [ target._id - , targetFolder - , prettyWhere && parentId - , parentId && prettyWhere - , target._from ] -} - -var installed = Object.create(null) - -function installOne_ (target, where, context, cb_) { - var nm = path.resolve(where, "node_modules") - , targetFolder = path.resolve(nm, target.name) - , prettyWhere = path.relative(process.cwd(), where) - , parent = context.parent - - if (prettyWhere === ".") prettyWhere = null - - cb_ = inflight(target.name + ":" + where, cb_) - if (!cb_) { - return log.verbose("installOne", "of", target.name, "to", where, "already in flight; waiting") - } - else { - log.verbose("installOne", "of", target.name, "to", where, "not in flight; installing") - } - - function cb(er, data) { - unlock(nm, target.name, function () { cb_(er, data) }) - } - - lock(nm, target.name, function (er) { - if (er) return cb(er) - - if (targetFolder in installed) { - log.error("install", "trying to install", target.version, "to", targetFolder) - log.error("install", "but already installed versions", installed[targetFolder]) - installed[targetFolder].push(target.version) - } - else { - installed[targetFolder] = [target.version] - } - - var force = npm.config.get("force") - , nodeVersion = npm.config.get("node-version") - , strict = npm.config.get("engine-strict") - , c = npmInstallChecks - - chain( - [ [c.checkEngine, target, npm.version, nodeVersion, force, strict] - , [c.checkPlatform, target, force] - , [c.checkCycle, target, context.ancestors] - , [c.checkGit, targetFolder] - , [write, target, targetFolder, context] ] - , function (er, d) { - if (er) return cb(er) - - d.push(resultList(target, where, parent && parent._id)) - cb(er, d) - } - ) + var addedOrMoved = this.differences.filter(function (action) { + var mutation = action[0] + var child = action[1] + return !child.failed && (mutation === 'add' || mutation === 'update') + }).map(function (action) { + var child = action[1] + return getPackageId(child) }) -} - -function write (target, targetFolder, context, cb_) { - var up = npm.config.get("unsafe-perm") - , user = up ? null : npm.config.get("user") - , group = up ? null : npm.config.get("group") - , family = context.family - - function cb (er, data) { - // cache.unpack returns the data object, and all we care about - // is the list of installed packages from that last thing. - if (!er) return cb_(er, data) - - if (npm.config.get("rollback") === false) return cb_(er) - npm.rollbacks.push(targetFolder) - cb_(er, data) - } - - var bundled = [] - - log.silly("install write", "writing", target.name, target.version, "to", targetFolder) - chain( - [ [ cache.unpack, target.name, target.version, targetFolder, null, null, user, group ], - function writePackageJSON (cb) { - var jsonPath = path.resolve(targetFolder, 'package.json') - log.verbose('write', 'writing to', jsonPath) - writeFileAtomic(jsonPath, JSON.stringify(target, null, 2) + '\n', cb) - }, - [ lifecycle, target, "preinstall", targetFolder ], - function collectBundled (cb) { - if (!target.bundleDependencies) return cb() - - var bd = path.resolve(targetFolder, "node_modules") - fs.readdir(bd, function (er, b) { - // nothing bundled, maybe - if (er) return cb() - bundled = b || [] - cb() - }) - } ] - - // nest the chain so that we can throw away the results returned - // up until this point, since we really don't care about it. - , function X (er) { - if (er) return cb(er) - - // before continuing to installing dependencies, check for a shrinkwrap. - var opt = { dev: npm.config.get("dev") } - readDependencies(context, targetFolder, opt, function (er, data, wrap) { - if (er) return cb(er); - var deps = prepareForInstallMany(data, "dependencies", bundled, wrap, - family) - var depsTargetFolder = targetFolder - var depsContext = { family: family - , ancestors: context.ancestors - , parent: target - , explicit: false - , wrap: wrap } - - var actions = - [ [ installManyAndBuild, deps, depsTargetFolder, depsContext ] ] - - // FIXME: This is an accident waiting to happen! - // - // 1. If multiple children at the same level of the tree share a - // peerDependency that's not in the parent's dependencies, because - // the peerDeps don't get added to the family, they will keep - // getting reinstalled (worked around by inflighting installOne). - // 2. The installer can't safely build at the parent level because - // that's already being done by the parent's installAndBuild. This - // runs the risk of the peerDependency never getting built. - // - // The fix: Don't install peerDependencies; require them to be - // included as explicit dependencies / devDependencies, and warn - // or error when they're missing. See #5080 for more arguments in - // favor of killing implicit peerDependency installs with fire. - var peerDeps = prepareForInstallMany(data, "peerDependencies", bundled, - wrap, family) - peerDeps.forEach(function (pd) { - warnPeers([ - "The peer dependency "+pd+" included from "+data.name+" will no", - "longer be automatically installed to fulfill the peerDependency ", - "in npm 3+. Your application will need to depend on it explicitly." - ], pd+","+data.name) - }) - - // Package scopes cause an addditional tree level which needs to be - // considered when resolving a peerDependency's target folder. - var pdTargetFolder - if (npa(target.name).scope) { - pdTargetFolder = path.resolve(targetFolder, '../../..') - } else { - pdTargetFolder = path.resolve(targetFolder, '../..') - } - - var pdContext = context - if (peerDeps.length > 0) { - actions.push( - [ installMany, peerDeps, pdTargetFolder, pdContext ] - ) - } - - chain(actions, cb) - }) + log.showProgress() + if (!addedOrMoved.length) return cb() + recalculateMetadata(this.idealTree, log, iferr(cb, function (tree) { + log.clearProgress() + ls.fromTree(self.where, tree, addedOrMoved, false, function () { + log.showProgress() + cb() }) + })) } -function installManyAndBuild (deps, targetFolder, context, cb) { - installMany(deps, targetFolder, context, function (er, d) { - log.verbose("about to build", targetFolder) - if (er) return cb(er) - npm.commands.build( [targetFolder] - , npm.config.get("global") - , true - , function (er) { return cb(er, d) }) +Installer.prototype.debugActions = function (name, actionListName, cb) { + validate('SSF', arguments) + var actionsToLog = this[actionListName] + log.silly(name, 'action count', actionsToLog.length) + actionsToLog.forEach(function (action) { + log.silly(name, action.map(function (value) { + return (value && value.package) ? getPackageId(value) : value + }).join(' ')) }) + cb() } -function prepareForInstallMany (packageData, depsKey, bundled, wrap, family) { - var deps = Object.keys(packageData[depsKey] || {}) +// This takes an object and a property name instead of a value to allow us +// to define the arguments for use by chain before the property exists yet. +Installer.prototype.debugTree = function (name, treeName, cb) { + validate('SSF', arguments) + log.silly(name, this.prettify(this[treeName]).trim()) + cb() +} - // don't install bundleDependencies, unless they're missing. - if (packageData.bundleDependencies) { - deps = deps.filter(function (d) { - return packageData.bundleDependencies.indexOf(d) === -1 || - bundled.indexOf(d) === -1 - }) +Installer.prototype.prettify = function (tree) { + validate('O', arguments) + var seen = {} + function byName (aa, bb) { + return getPackageId(aa).localeCompare(getPackageId(bb)) } - - return deps.filter(function (d) { - // 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 (semver.validRange(family[d], true)) { - return !semver.satisfies(family[d], packageData[depsKey][d], true) + function expandTree (tree) { + seen[tree.path] = true + return { + label: getPackageId(tree), + nodes: tree.children.filter(function (tree) { return !seen[tree.path] }).sort(byName).map(expandTree) } - return true - }).map(function (d) { - var v = packageData[depsKey][d] - var t = d + "@" + v - log.silly("prepareForInstallMany", "adding", t, "from", packageData.name, depsKey) - return t - }) + } + return archy(expandTree(tree), '', { unicode: npm.config.get('unicode') }) } diff --git a/deps/npm/lib/install/access-error.js b/deps/npm/lib/install/access-error.js new file mode 100644 index 0000000000000000000000000000000000000000..ff94be9857637913474196ab8e2adb4365efa5a0 --- /dev/null +++ b/deps/npm/lib/install/access-error.js @@ -0,0 +1,8 @@ +'use strict' +module.exports = function (dir, er) { + if (!er) return + var accessEr = new Error("EACCES, access '" + dir + "'", -13) + accessEr.code = 'EACCES' + accessEr.path = dir + return accessEr +} diff --git a/deps/npm/lib/install/action/build.js b/deps/npm/lib/install/action/build.js new file mode 100644 index 0000000000000000000000000000000000000000..0feb3a0fbf88fa6d8ce4c56b2b5e509189a72902 --- /dev/null +++ b/deps/npm/lib/install/action/build.js @@ -0,0 +1,12 @@ +'use strict' +var chain = require('slide').chain +var build = require('../../build.js') +var npm = require('../../npm.js') + +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('build', pkg.package.name) + chain([ + [build.linkStuff, pkg.package, pkg.path, npm.config.get('global'), false], + [build.writeBuiltinConf, pkg.package, pkg.path] + ], next) +} diff --git a/deps/npm/lib/install/action/extract.js b/deps/npm/lib/install/action/extract.js new file mode 100644 index 0000000000000000000000000000000000000000..f9a4f8b2fab4071d13420676608b76b29c9af25e --- /dev/null +++ b/deps/npm/lib/install/action/extract.js @@ -0,0 +1,17 @@ +'use strict' +var updatePackageJson = require('../update-package-json') +var npm = require('../../npm.js') +var cache = require('../../cache.js') + +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('extract', pkg.package.name) + var up = npm.config.get('unsafe-perm') + var user = up ? null : npm.config.get('user') + var group = up ? null : npm.config.get('group') + cache.unpack(pkg.package.name, pkg.package.version + , buildpath + , null, null, user, group, function (er) { + if (er) return next(er) + updatePackageJson(pkg, buildpath, next) + }) +} diff --git a/deps/npm/lib/install/action/fetch.js b/deps/npm/lib/install/action/fetch.js new file mode 100644 index 0000000000000000000000000000000000000000..16a94244b154964d512c70cf2a01dd9bf0b4dd05 --- /dev/null +++ b/deps/npm/lib/install/action/fetch.js @@ -0,0 +1,27 @@ +'use strict' +// var cache = require('../../cache.js') + +module.exports = function (top, buildpath, pkg, log, next) { + next() +/* +// FIXME: Unnecessary as long as we have to have the tarball to resolve all deps, which +// is progressively seeming to be likely for the indefinite future. +// ALSO fails for local deps specified with relative URLs outside of the top level. + + var name = pkg.package.name + var version + switch (pkg.package._requested.type) { + case 'version': + case 'range': + version = pkg.package.version + break + case 'hosted': + name = name + '@' + pkg.package._requested.spec + break + default: + name = pkg.package._requested.raw + } + log.silly('fetch', name, version) + cache.add(name, version, top, false, next) +*/ +} diff --git a/deps/npm/lib/install/action/finalize.js b/deps/npm/lib/install/action/finalize.js new file mode 100644 index 0000000000000000000000000000000000000000..62e21cc47db89cf992d27f8bfc1d0ba1a7b84f5b --- /dev/null +++ b/deps/npm/lib/install/action/finalize.js @@ -0,0 +1,93 @@ +'use strict' +var path = require('path') +var rimraf = require('rimraf') +var fs = require('graceful-fs') +var mkdirp = require('mkdirp') +var asyncMap = require('slide').asyncMap +var andIgnoreErrors = require('../and-ignore-errors.js') + +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('finalize', pkg.path) + + var delpath = path.join(path.dirname(pkg.path), '.' + path.basename(pkg.path) + '.DELETE') + + mkdirp(path.resolve(pkg.path, '..'), whenParentExists) + + function whenParentExists (mkdirEr) { + if (mkdirEr) return next(mkdirEr) + // We stat first, because we can't rely on ENOTEMPTY from Windows. + // Windows, by contrast, gives the generic EPERM of a folder already exists. + fs.lstat(pkg.path, destStated) + } + + function destStated (doesNotExist) { + if (doesNotExist) { + fs.rename(buildpath, pkg.path, whenMoved) + } else { + moveAway() + } + } + + function whenMoved (renameEr) { + if (!renameEr) return next() + if (renameEr.code !== 'ENOTEMPTY') return next(renameEr) + moveAway() + } + + function moveAway () { + fs.rename(pkg.path, delpath, whenOldMovedAway) + } + + function whenOldMovedAway (renameEr) { + if (renameEr) return next(renameEr) + fs.rename(buildpath, pkg.path, whenConflictMoved) + } + + function whenConflictMoved (renameEr) { + // if we got an error we'll try to put back the original module back, + // succeed or fail though we want the original error that caused this + if (renameEr) return fs.rename(delpath, pkg.path, function () { next(renameEr) }) + fs.readdir(path.join(delpath, 'node_modules'), makeTarget) + } + + function makeTarget (readdirEr, files) { + if (readdirEr) return cleanup() + if (!files.length) return cleanup() + mkdirp(path.join(pkg.path, 'node_modules'), function (mkdirEr) { moveModules(mkdirEr, files) }) + } + + function moveModules (mkdirEr, files) { + if (mkdirEr) return next(mkdirEr) + asyncMap(files, function (file, done) { + var from = path.join(delpath, 'node_modules', file) + var to = path.join(pkg.path, 'node_modules', file) + // we ignore errors here, because they can legitimately happen, for instance, + // bundled modules will be in both node_modules folders + fs.rename(from, to, andIgnoreErrors(done)) + }, cleanup) + } + + function cleanup () { + rimraf(delpath, afterCleanup) + } + + function afterCleanup (rimrafEr) { + if (rimrafEr) log.warn('finalize', rimrafEr) + next() + } +} + +module.exports.rollback = function (buildpath, pkg, next) { + var top = path.resolve(buildpath, '..') + rimraf(pkg.path, function () { + removeEmptyParents(pkg.path) + }) + function removeEmptyParents (pkgdir) { + if (path.relative(top, pkgdir)[0] === '.') return next() + fs.rmdir(pkgdir, function (er) { + // FIXME: Make sure windows does what we want here + if (er && er.code !== 'ENOENT') return next() + removeEmptyParents(path.resolve(pkgdir, '..')) + }) + } +} diff --git a/deps/npm/lib/install/action/global-install.js b/deps/npm/lib/install/action/global-install.js new file mode 100644 index 0000000000000000000000000000000000000000..25c61aebd8bf1126144e737ff5c38b15a7383b0c --- /dev/null +++ b/deps/npm/lib/install/action/global-install.js @@ -0,0 +1,16 @@ +'use strict' +var path = require('path') +var npm = require('../../npm.js') +var Installer = require('../../install.js').Installer + +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('global-install', pkg.package.name) + var globalRoot = path.resolve(npm.globalDir, '..') + npm.config.set('global', true) + var install = new Installer(globalRoot, false, [pkg.package.name + '@' + pkg.package._requested.spec]) + install.link = false + install.run(function () { + npm.config.set('global', false) + next.apply(null, arguments) + }) +} diff --git a/deps/npm/lib/install/action/global-link.js b/deps/npm/lib/install/action/global-link.js new file mode 100644 index 0000000000000000000000000000000000000000..80eb46b95ad5cbde3cfd0d35ae97ec428ae548db --- /dev/null +++ b/deps/npm/lib/install/action/global-link.js @@ -0,0 +1,7 @@ +'use strict' +var npm = require('../../npm.js') + +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('global-link', pkg.package.name) + npm.link(pkg.package.name, next) +} diff --git a/deps/npm/lib/install/action/install.js b/deps/npm/lib/install/action/install.js new file mode 100644 index 0000000000000000000000000000000000000000..f6c8d56e086a29f7e8302ba63c487a6e8e40b77a --- /dev/null +++ b/deps/npm/lib/install/action/install.js @@ -0,0 +1,7 @@ +'use strict' +var lifecycle = require('../../utils/lifecycle.js') + +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('install', pkg.package.name, buildpath) + lifecycle(pkg.package, 'install', pkg.path, false, false, next) +} diff --git a/deps/npm/lib/install/action/move.js b/deps/npm/lib/install/action/move.js new file mode 100644 index 0000000000000000000000000000000000000000..9bdfbc7bf255773c212926783058b7f829aa5dc1 --- /dev/null +++ b/deps/npm/lib/install/action/move.js @@ -0,0 +1,59 @@ +'use strict' +var fs = require('graceful-fs') +var path = require('path') +var chain = require('slide').chain +var iferr = require('iferr') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var rmStuff = require('../../unbuild.js').rmStuff +var lifecycle = require('../../utils/lifecycle.js') +var updatePackageJson = require('../update-package-json') + +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('move', pkg.fromPath, pkg.path) + chain([ + [lifecycle, pkg.package, 'preuninstall', pkg.fromPath, false, true], + [lifecycle, pkg.package, 'uninstall', pkg.fromPath, false, true], + [rmStuff, pkg.package, pkg.fromPath], + [lifecycle, pkg.package, 'postuninstall', pkg.fromPath, false, true], + [moveModuleOnly, pkg.fromPath, pkg.path], + [lifecycle, pkg.package, 'preinstall', pkg.path, false, true], + [removeEmptyParents, path.resolve(pkg.fromPath, '..')], + [updatePackageJson, pkg, pkg.path] + ], next) +} + +function removeEmptyParents (pkgdir, next) { + fs.rmdir(pkgdir, function (er) { + // FIXME: Make sure windows does what we want here + if (er && er.code !== 'ENOENT') return next() + removeEmptyParents(path.resolve(pkgdir, '..'), next) + }) +} + +function moveModuleOnly (from, to, done) { + var from_modules = path.join(from, 'node_modules') + var temp_modules = from + '.node_modules' + + rimraf(to, iferr(done, makeDestination)) + + function makeDestination () { + mkdirp(path.resolve(to, '..'), iferr(done, moveNodeModules)) + } + + function moveNodeModules () { + fs.rename(from_modules, temp_modules, function (er) { + doMove(er ? done : moveNodeModulesBack) + }) + } + + function doMove (next) { + fs.rename(from, to, iferr(done, next)) + } + + function moveNodeModulesBack () { + mkdirp(from, iferr(done, function () { + fs.rename(temp_modules, from_modules, done) + })) + } +} diff --git a/deps/npm/lib/install/action/postinstall.js b/deps/npm/lib/install/action/postinstall.js new file mode 100644 index 0000000000000000000000000000000000000000..5460c8364d572a474b66755279dad2015ee7e586 --- /dev/null +++ b/deps/npm/lib/install/action/postinstall.js @@ -0,0 +1,7 @@ +'use strict' +var lifecycle = require('../../utils/lifecycle.js') + +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('postinstall', pkg.package.name, buildpath) + lifecycle(pkg.package, 'postinstall', pkg.path, false, false, next) +} diff --git a/deps/npm/lib/install/action/preinstall.js b/deps/npm/lib/install/action/preinstall.js new file mode 100644 index 0000000000000000000000000000000000000000..989519c26f86da7fb6aaa8e4d46a7d10bcbb0d6b --- /dev/null +++ b/deps/npm/lib/install/action/preinstall.js @@ -0,0 +1,7 @@ +'use strict' +var lifecycle = require('../../utils/lifecycle.js') + +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('preinstall', pkg.package.name, buildpath) + lifecycle(pkg.package, 'preinstall', buildpath, false, false, next) +} diff --git a/deps/npm/lib/install/action/prepublish.js b/deps/npm/lib/install/action/prepublish.js new file mode 100644 index 0000000000000000000000000000000000000000..95ff22b66edd8afba32fbafc7e3f6362db9a3bb1 --- /dev/null +++ b/deps/npm/lib/install/action/prepublish.js @@ -0,0 +1,7 @@ +'use strict' +var lifecycle = require('../../utils/lifecycle.js') + +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('prepublish', pkg.package.name, buildpath) + lifecycle(pkg.package, 'prepublish', buildpath, false, false, next) +} diff --git a/deps/npm/lib/install/action/remove.js b/deps/npm/lib/install/action/remove.js new file mode 100644 index 0000000000000000000000000000000000000000..b3126a58005394d4314026392eb612fde6b7a162 --- /dev/null +++ b/deps/npm/lib/install/action/remove.js @@ -0,0 +1,82 @@ +'use strict' +var path = require('path') +var fs = require('graceful-fs') +var rimraf = require('rimraf') +var asyncMap = require('slide').asyncMap +var mkdirp = require('mkdirp') +var npm = require('../../npm.js') +var andIgnoreErrors = require('../and-ignore-errors.js') + +// This is weird because we want to remove the module but not it's node_modules folder +// allowing for this allows us to not worry about the order of operations +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('remove', pkg.path) + if (pkg.target) { + removeLink(pkg, next) + } else { + removeDir(pkg, log, next) + } +} + +function removeLink (pkg, next) { + npm.commands.unbuild(pkg.path, true, next) +} + +function removeDir (pkg, log, next) { + var modpath = path.join(path.dirname(pkg.path), '.' + path.basename(pkg.path) + '.MODULES') + + fs.rename(path.join(pkg.path, 'node_modules'), modpath, unbuildPackage) + + function unbuildPackage (renameEr) { + npm.commands.unbuild(pkg.path, true, renameEr ? andRemoveEmptyParents(pkg.path) : moveModulesBack) + } + + function andRemoveEmptyParents (path) { + return function (er) { + if (er) return next(er) + removeEmptyParents(pkg.path) + } + } + + function moveModulesBack () { + fs.readdir(modpath, makeTarget) + } + + function makeTarget (readdirEr, files) { + if (readdirEr) return cleanup() + if (!files.length) return cleanup() + mkdirp(path.join(pkg.path, 'node_modules'), function (mkdirEr) { moveModules(mkdirEr, files) }) + } + + function moveModules (mkdirEr, files) { + if (mkdirEr) return next(mkdirEr) + asyncMap(files, function (file, done) { + var from = path.join(modpath, file) + var to = path.join(pkg.path, 'node_modules', file) + // we ignore errors here, because they can legitimately happen, for instance, + // bundled modules will be in both node_modules folders + fs.rename(from, to, andIgnoreErrors(done)) + }, cleanup) + } + + function cleanup () { + rimraf(modpath, afterCleanup) + } + + function afterCleanup (rimrafEr) { + if (rimrafEr) log.warn('finalize', rimrafEr) + removeEmptyParents(path.resolve(pkg.path, '..')) + } + + function removeEmptyParents (pkgdir) { + fs.rmdir(pkgdir, function (er) { + // FIXME: Make sure windows does what we want here + if (er && er.code !== 'ENOENT') return next() + removeEmptyParents(path.resolve(pkgdir, '..')) + }) + } +} + +module.exports.commit = function (staging, pkg, next) { + rimraf(pkg.path, next) +} diff --git a/deps/npm/lib/install/action/test.js b/deps/npm/lib/install/action/test.js new file mode 100644 index 0000000000000000000000000000000000000000..354519d06fd042d07959d0e96fd0566a845e7c7d --- /dev/null +++ b/deps/npm/lib/install/action/test.js @@ -0,0 +1,7 @@ +'use strict' +var lifecycle = require('../../utils/lifecycle.js') + +module.exports = function (top, buildpath, pkg, log, next) { + log.silly('test', pkg.package.name, buildpath) + lifecycle(pkg.package, 'test', buildpath, false, false, next) +} diff --git a/deps/npm/lib/install/action/update-linked.js b/deps/npm/lib/install/action/update-linked.js new file mode 100644 index 0000000000000000000000000000000000000000..46c4cdfadd1509bcb5244fa529efc0594134e882 --- /dev/null +++ b/deps/npm/lib/install/action/update-linked.js @@ -0,0 +1,8 @@ +'use strict' +var path = require('path') + +module.exports = function (top, buildpath, pkg, log, next) { + log.warn('update-linked', path.relative(top, pkg.path), 'needs updating to', pkg.package.version, + 'from', pkg.oldPkg.package.version, "but we can't, as it's a symlink") + next() +} diff --git a/deps/npm/lib/install/actions.js b/deps/npm/lib/install/actions.js new file mode 100644 index 0000000000000000000000000000000000000000..84d987faf0a0d92b0651e2c1f842154ef13c1743 --- /dev/null +++ b/deps/npm/lib/install/actions.js @@ -0,0 +1,127 @@ +'use strict' +var path = require('path') +var validate = require('aproba') +var chain = require('slide').chain +var asyncMap = require('slide').asyncMap +var uniqueFilename = require('unique-filename') +var log = require('npmlog') +var andFinishTracker = require('./and-finish-tracker.js') +var andAddParentToErrors = require('./and-add-parent-to-errors.js') +var failedDependency = require('./deps.js').failedDependency + +var actions = {} + +actions.fetch = require('./action/fetch.js') +actions.extract = require('./action/extract.js') +actions.build = require('./action/build.js') +actions.test = require('./action/test.js') +actions.preinstall = require('./action/preinstall.js') +actions.install = require('./action/install.js') +actions.postinstall = require('./action/postinstall.js') +actions.prepublish = require('./action/prepublish.js') +actions.finalize = require('./action/finalize.js') +actions.remove = require('./action/remove.js') +actions.move = require('./action/move.js') +actions['update-linked'] = require('./action/update-linked.js') +actions['global-install'] = require('./action/global-install.js') +actions['global-link'] = require('./action/global-link.js') + +// FIXME: We wrap actions like three ways to sunday here. +// Rewrite this to only work one way. + +Object.keys(actions).forEach(function (actionName) { + var action = actions[actionName] + actions[actionName] = function (top, buildpath, pkg, log, next) { + validate('SSOOF', arguments) + // refuse to run actions for failed packages + if (pkg.failed) return next() + if (action.rollback) { + if (!pkg.rollback) pkg.rollback = [] + pkg.rollback.unshift(action.rollback) + } + if (action.commit) { + if (!pkg.commit) pkg.commit = [] + pkg.commit.push(action.commit) + } + return action(top, buildpath, pkg, log, andFinishTracker(log, andAddParentToErrors(pkg.parent, andHandleOptionalDepErrors(pkg, next)))) + } +}) + +function markAsFailed (pkg) { + pkg.failed = true + pkg.requires.forEach(function (req) { + req.requiredBy = req.requiredBy.filter(function (reqReqBy) { return reqReqBy !== pkg }) + if (req.requiredBy.length === 0 && !req.userRequired && !req.existing) { + markAsFailed(req) + } + }) +} + +function andHandleOptionalDepErrors (pkg, next) { + return function (er) { + if (!er) return next.apply(null, arguments) + markAsFailed(pkg) + var anyFatal = pkg.directlyRequested || !pkg.parent + for (var ii = 0; ii < pkg.requiredBy.length; ++ii) { + var parent = pkg.requiredBy[ii] + var isFatal = failedDependency(parent, pkg) + if (isFatal) anyFatal = true + } + if (anyFatal) return next.apply(null, arguments) + log.warn('install:' + pkg.package.name, er.message) + log.verbose('install:' + pkg.package.name, er.stack) + next() + } +} + +function prepareAction (staging, log) { + validate('SO', arguments) + return function (action) { + validate('SO', action) + var cmd = action[0] + var pkg = action[1] + if (!actions[cmd]) throw new Error('Unknown decomposed command "' + cmd + '" (is it new?)') + var buildpath = uniqueFilename(staging, pkg.package.name, pkg.realpath) + var top = path.resolve(staging, '../..') + return [actions[cmd], top, buildpath, pkg, log.newGroup(cmd + ':' + pkg.package.name)] + } +} + +exports.actions = actions + +function execAction (todo, done) { + validate('AF', arguments) + var cmd = todo.shift() + todo.push(done) + cmd.apply(null, todo) +} + +exports.doOne = function (cmd, staging, pkg, log, next) { + validate('SSOOF', arguments) + execAction(prepareAction(staging, log)([cmd, pkg]), next) +} + +exports.doSerial = function (type, staging, actionsToRun, log, next) { + validate('SSAOF', arguments) + actionsToRun = actionsToRun + .filter(function (value) { return value[0] === type }) + log.silly('doSerial', '%s %d', type, actionsToRun.length) + chain(actionsToRun.map(prepareAction(staging, log)), andFinishTracker(log, next)) +} + +exports.doReverseSerial = function (type, staging, actionsToRun, log, next) { + validate('SSAOF', arguments) + actionsToRun = actionsToRun + .filter(function (value) { return value[0] === type }) + .reverse() + log.silly('doReverseSerial', '%s %d', type, actionsToRun.length) + chain(actionsToRun.map(prepareAction(staging, log)), andFinishTracker(log, next)) +} + +exports.doParallel = function (type, staging, actionsToRun, log, next) { + validate('SSAOF', arguments) + actionsToRun = actionsToRun.filter(function (value) { return value[0] === type }) + log.silly('doParallel', type + ' ' + actionsToRun.length) + + asyncMap(actionsToRun.map(prepareAction(staging, log)), execAction, andFinishTracker(log, next)) +} diff --git a/deps/npm/lib/install/and-add-parent-to-errors.js b/deps/npm/lib/install/and-add-parent-to-errors.js new file mode 100644 index 0000000000000000000000000000000000000000..62a86bd4a6c36090c7457955d5cedf1dd05b35de --- /dev/null +++ b/deps/npm/lib/install/and-add-parent-to-errors.js @@ -0,0 +1,13 @@ +'use strict' +var validate = require('aproba') + +module.exports = function (parent, cb) { + validate('F', [cb]) + return function (er) { + if (!er) return cb.apply(null, arguments) + if (er instanceof Error && parent && parent.package && parent.package.name) { + er.parent = parent.package.name + } + cb(er) + } +} diff --git a/deps/npm/lib/install/and-finish-tracker.js b/deps/npm/lib/install/and-finish-tracker.js new file mode 100644 index 0000000000000000000000000000000000000000..2bab60ddc40080aa810231cbf4185cc9b743b908 --- /dev/null +++ b/deps/npm/lib/install/and-finish-tracker.js @@ -0,0 +1,16 @@ +'use strict' +var validate = require('aproba') + +module.exports = function (tracker, cb) { + validate('OF', [tracker, cb]) + return function () { + tracker.finish() + cb.apply(null, arguments) + } +} + +module.exports.now = function (tracker, cb) { + validate('OF', [tracker, cb]) + tracker.finish() + cb.apply(null, Array.prototype.slice.call(arguments, 2)) +} diff --git a/deps/npm/lib/install/and-ignore-errors.js b/deps/npm/lib/install/and-ignore-errors.js new file mode 100644 index 0000000000000000000000000000000000000000..cf46ad82155b5ccedf0c827c3f1accd5c980b06b --- /dev/null +++ b/deps/npm/lib/install/and-ignore-errors.js @@ -0,0 +1,9 @@ +'use strict' + +module.exports = function (cb) { + return function () { + var args = Array.prototype.slice.call(arguments, 1) + if (args.length) args.unshift(null) + return cb.apply(null, args) + } +} diff --git a/deps/npm/lib/install/check-permissions.js b/deps/npm/lib/install/check-permissions.js new file mode 100644 index 0000000000000000000000000000000000000000..7806fcff993e19046ef0db05e32b71eeb73d94e3 --- /dev/null +++ b/deps/npm/lib/install/check-permissions.js @@ -0,0 +1,69 @@ +'use strict' +var path = require('path') +var log = require('npmlog') +var validate = require('aproba') +var uniq = require('lodash.uniq') +var asyncMap = require('slide').asyncMap +var npm = require('../npm.js') +var exists = require('./exists.js') +var writable = require('./writable.js') + +module.exports = function (actions, next) { + validate('AF', arguments) + var errors = [] + asyncMap(actions, function (action, done) { + var cmd = action[0] + var pkg = action[1] + switch (cmd) { + case 'add': + hasAnyWriteAccess(path.resolve(pkg.path, '..'), errors, done) + break + case 'update': + case 'remove': + hasWriteAccess(pkg.path, errors, andHasWriteAccess(path.resolve(pkg.path, '..'), errors, done)) + break + case 'move': + hasAnyWriteAccess(pkg.path, errors, andHasWriteAccess(path.resolve(pkg.fromPath, '..'), errors, done)) + break + default: + done() + } + }, function () { + if (!errors.length) return next() + uniq(errors.map(function (er) { return 'Missing write access to ' + er.path })).forEach(function (er) { + log.warn('checkPermissions', er) + }) + npm.config.get('force') ? next() : next(errors[0]) + }) +} + +function andHasWriteAccess (dir, errors, done) { + validate('SAF', arguments) + return function () { + hasWriteAccess(dir, errors, done) + } +} + +function hasAnyWriteAccess (dir, errors, done) { + validate('SAF', arguments) + findNearestDir() + function findNearestDir () { + var nextDir = path.resolve(dir, '..') + exists(dir, function (dirDoesntExist) { + if (!dirDoesntExist || nextDir === dir) { + return hasWriteAccess(dir, errors, done) + } else { + dir = nextDir + findNearestDir() + } + }) + } +} + +function hasWriteAccess (dir, errors, done) { + validate('SAF', arguments) + writable(dir, function (er) { + if (er) errors.push(er) + done() + }) +} diff --git a/deps/npm/lib/install/copy-tree.js b/deps/npm/lib/install/copy-tree.js new file mode 100644 index 0000000000000000000000000000000000000000..67a9c687a22d2596f72476a4fc18c7b80f6341da --- /dev/null +++ b/deps/npm/lib/install/copy-tree.js @@ -0,0 +1,25 @@ +'use strict' + +module.exports = function (tree) { + return copyTree(tree, {}) +} + +function copyTree (tree, cache) { + if (cache[tree.path]) return cache[tree.path] + var newTree = cache[tree.path] = Object.create(tree) + copyModuleList(newTree, 'children', cache) + newTree.children.forEach(function (child) { + child.parent = newTree + }) + copyModuleList(newTree, 'requires', cache) + copyModuleList(newTree, 'requiredBy', cache) + return newTree +} + +function copyModuleList (tree, key, cache) { + var newList = [] + tree[key].forEach(function (child) { + newList.push(copyTree(child, cache)) + }) + tree[key] = newList +} diff --git a/deps/npm/lib/install/decompose-actions.js b/deps/npm/lib/install/decompose-actions.js new file mode 100644 index 0000000000000000000000000000000000000000..b345ba5d09ea103871d451d973769cd7bd0e5f70 --- /dev/null +++ b/deps/npm/lib/install/decompose-actions.js @@ -0,0 +1,50 @@ +'use strict' +var validate = require('aproba') +var asyncMap = require('slide').asyncMap + +module.exports = function (differences, decomposed, next) { + validate('AAF', arguments) + asyncMap(differences, function (action, done) { + var cmd = action[0] + var pkg = action[1] + switch (cmd) { + case 'add': + case 'update': + addSteps(decomposed, pkg, done) + break + case 'move': + moveSteps(decomposed, pkg, done) + break + case 'remove': + case 'update-linked': + default: + defaultSteps(decomposed, cmd, pkg, done) + } + }, next) +} + +function addSteps (decomposed, pkg, done) { + decomposed.push(['fetch', pkg]) + decomposed.push(['extract', pkg]) + decomposed.push(['preinstall', pkg]) + decomposed.push(['build', pkg]) + decomposed.push(['install', pkg]) + decomposed.push(['postinstall', pkg]) + decomposed.push(['test', pkg]) + decomposed.push(['finalize', pkg]) + done() +} + +function moveSteps (decomposed, pkg, done) { + decomposed.push(['move', pkg]) + decomposed.push(['build', pkg]) + decomposed.push(['install', pkg]) + decomposed.push(['postinstall', pkg]) + decomposed.push(['test', pkg]) + done() +} + +function defaultSteps (decomposed, cmd, pkg, done) { + decomposed.push([cmd, pkg]) + done() +} diff --git a/deps/npm/lib/install/deps.js b/deps/npm/lib/install/deps.js new file mode 100644 index 0000000000000000000000000000000000000000..ab16208740710298fa29dc4034ab9b271d89fb4f --- /dev/null +++ b/deps/npm/lib/install/deps.js @@ -0,0 +1,534 @@ +'use strict' +var assert = require('assert') +var path = require('path') +var url = require('url') +var semver = require('semver') +var asyncMap = require('slide').asyncMap +var chain = require('slide').chain +var union = require('lodash.union') +var iferr = require('iferr') +var npa = require('npm-package-arg') +var validate = require('aproba') +var realizePackageSpecifier = require('realize-package-specifier') +var dezalgo = require('dezalgo') +var fetchPackageMetadata = require('../fetch-package-metadata.js') +var andAddParentToErrors = require('./and-add-parent-to-errors.js') +var addShrinkwrap = require('../fetch-package-metadata.js').addShrinkwrap +var addBundled = require('../fetch-package-metadata.js').addBundled +var readShrinkwrap = require('./read-shrinkwrap.js') +var inflateShrinkwrap = require('./inflate-shrinkwrap.js') +var inflateBundled = require('./inflate-bundled.js') +var andFinishTracker = require('./and-finish-tracker.js') +var npm = require('../npm.js') +var flatName = require('./flatten-tree.js').flatName +var createChild = require('./node.js').create +var resetMetadata = require('./node.js').reset +var andIgnoreErrors = require('./and-ignore-errors.js') +var isInstallable = require('./validate-args.js').isInstallable +var getPackageId = require('./get-package-id.js') + +// The export functions in this module mutate a dependency tree, adding +// items to them. + +function isDep (tree, child) { + if (child.fromShrinkwrap) return true + var requested = isProdDep(tree, child.package.name) + var matches + if (requested) matches = doesChildVersionMatch(child, requested) + if (matches) return matches + requested = isDevDep(tree, child.package.name) + if (!requested) return + return doesChildVersionMatch(child, requested) +} + +function isDevDep (tree, name) { + var devDeps = tree.package.devDependencies || {} + var reqVer = devDeps[name] + if (reqVer == null) return + return npa(name + '@' + reqVer) +} + +function isProdDep (tree, name) { + var deps = tree.package.dependencies || {} + var reqVer = deps[name] + if (reqVer == null) return false + return npa(name + '@' + reqVer) +} + +var registryTypes = { range: true, version: true } + +function doesChildVersionMatch (child, requested) { + // we always consider deps provided by a shrinkwrap as "correct" or else + // we'll subvert them if they're intentionally "invalid" + if (child.fromShrinkwrap) return true + // ranges of * ALWAYS count as a match, because when downloading we allow + // prereleases to match * if there are ONLY prereleases + if (requested.spec === '*') return true + + var childReq = child.package._requested + if (childReq) { + if (childReq.rawSpec === requested.rawSpec) return true + if (childReq.type === requested.type && childReq.spec === requested.spec) return true + } + if (!registryTypes[requested.type]) return requested.rawSpec === child.package._from + return semver.satisfies(child.package.version, requested.spec) +} + +exports.recalculateMetadata = function (tree, log, next) { + recalculateMetadata(tree, log, {}, next) +} + +function recalculateMetadata (tree, log, seen, next) { + validate('OOOF', arguments) + if (seen[tree.path]) return next() + seen[tree.path] = true + if (tree.parent == null) resetMetadata(tree) + function markDeps (spec, done) { + validate('SF', arguments) + realizePackageSpecifier(spec, packageRelativePath(tree), function (er, req) { + if (er) return done() + var child = findRequirement(tree, req.name, req) + if (child) { + resolveWithExistingModule(child, tree, log, andIgnoreErrors(done)) + } else if (tree.package.dependencies[req.name] != null) { + tree.missingDeps[req.name] = req.rawSpec + done() + } else if (tree.package.devDependencies[req.name] != null) { + tree.missingDevDeps[req.name] = req.rawSpec + done() + } else { + done() + } + }) + } + function specs (deps) { + return Object.keys(deps).map(function (depname) { return depname + '@' + deps[depname] }) + } + var tomark = specs(tree.package.dependencies) + if (!tree.parent && (npm.config.get('dev') || !npm.config.get('production'))) { + tomark = union(tomark, specs(tree.package.devDependencies)) + } + tree.children = tree.children.filter(function (child) { return !child.failed }) + chain([ + [asyncMap, tomark, markDeps], + [asyncMap, tree.children, function (child, done) { recalculateMetadata(child, log, seen, done) }] + ], function () { + tree.userRequired = tree.package._requiredBy.some(function (req) { req === '#USER' }) + tree.existing = tree.package._requiredBy.some(function (req) { req === '#EXISTING' }) + tree.package._location = flatNameFromTree(tree) + next(null, tree) + }) +} + +function addRequiredDep (tree, child) { + if (!isDep(tree, child)) return false + var name = isProdDep(tree, child.package.name) ? flatNameFromTree(tree) : '#DEV:' + flatNameFromTree(tree) + child.package._requiredBy = union(child.package._requiredBy || [], [name]) + child.requiredBy = union(child.requiredBy || [], [tree]) + tree.requires = union(tree.requires || [], [child]) + return true +} + +function matchingDep (tree, name) { + if (tree.package.dependencies && tree.package.dependencies[name]) return tree.package.dependencies[name] + if (tree.package.devDependencies && tree.package.devDependencies[name]) return tree.package.devDependencies[name] + return +} + +function packageRelativePath (tree) { + if (!tree) return '' + var requested = tree.package._requested || {} + var isLocal = requested.type === 'directory' || requested.type === 'local' + return isLocal ? requested.spec : tree.path +} + +function getShrinkwrap (tree, name) { + return tree.package._shrinkwrap && tree.package._shrinkwrap.dependencies && tree.package._shrinkwrap.dependencies[name] +} + +exports.getAllMetadata = function (args, tree, next) { + asyncMap(args, function (spec, done) { + if (tree && spec.lastIndexOf('@') <= 0) { + var sw = getShrinkwrap(tree, spec) + if (sw) { + // FIXME: This is duplicated in inflate-shrinkwrap and should be factoed + // into a shared function + spec = sw.resolved + ? spec + '@' + sw.resolved + : (sw.from && url.parse(sw.from).protocol) + ? spec + '@' + sw.from + : spec + '@' + sw.version + } else { + var version = matchingDep(tree, spec) + if (version != null) { + spec += '@' + version + } + } + } + fetchPackageMetadata(spec, packageRelativePath(tree), done) + }, next) +} + +// Add a list of args to tree's top level dependencies +exports.loadRequestedDeps = function (args, tree, saveToDependencies, log, next) { + validate('AOOF', [args, tree, log, next]) + asyncMap(args, function (pkg, done) { + var depLoaded = andAddParentToErrors(tree, done) + tree.children = tree.children.filter(function (child) { + return child.package.name !== pkg.name + }) + resolveWithNewModule(pkg, tree, log.newGroup('loadRequestedDeps'), iferr(depLoaded, function (child, tracker) { + validate('OO', arguments) + if (npm.config.get('global')) { + child.isGlobal = true + } + if (saveToDependencies) { + tree.package[saveToDependencies][child.package.name] = + child.package._requested.rawSpec || child.package._requested.spec + } + if (saveToDependencies && saveToDependencies !== 'devDependencies') { + tree.package.dependencies[child.package.name] = + child.package._requested.rawSpec || child.package._requested.spec + } + child.directlyRequested = true + child.save = saveToDependencies + + // For things the user asked to install, that aren't a dependency (or + // won't be when we're done), flag it as "depending" on the user + // themselves, so we don't remove it as a dep that no longer exists + if (!addRequiredDep(tree, child)) { + child.package._requiredBy = union(child.package._requiredBy, ['#USER']) + child.directlyRequested = true + } + depLoaded(null, child, tracker) + })) + }, andForEachChild(loadDeps, andFinishTracker(log, next))) +} + +// while this implementation does not require async calling, doing so +// gives this a consistent interface with loadDeps et al +exports.removeDeps = function (args, tree, saveToDependencies, log, next) { + validate('AOOF', [args, tree, log, next]) + args.forEach(function (pkg) { + if (saveToDependencies) { + var toRemove = tree.children.filter(function (child) { return child.package.name === pkg.name }) + tree.removed = union(tree.removed || [], toRemove) + toRemove.forEach(function (parent) { + parent.save = saveToDependencies + }) + } + tree.children = tree.children.filter(function (child) { return child.package.name !== pkg.name }) + }) + log.finish() + next() +} + +function andForEachChild (load, next) { + validate('F', [next]) + next = dezalgo(next) + return function (er, children, logs) { + // when children is empty, logs won't be passed in at all (asyncMap is weird) + // so shortcircuit before arg validation + if (!er && (!children || children.length === 0)) return next() + validate('EAA', arguments) + if (er) return next(er) + assert(children.length === logs.length) + var cmds = [] + for (var ii = 0; ii < children.length; ++ii) { + cmds.push([load, children[ii], logs[ii]]) + } + var sortedCmds = cmds.sort(function installOrder (aa, bb) { + return aa[1].package.name.localeCompare(bb[1].package.name) + }) + chain(sortedCmds, next) + } +} + +function isDepOptional (tree, name) { + if (!tree.package.optionalDependencies) return false + if (tree.package.optionalDependencies[name] != null) return true + return false +} + +var failedDependency = exports.failedDependency = function (tree, name_pkg) { + var name, pkg + if (typeof name_pkg === 'string') { + name = name_pkg + } else { + pkg = name_pkg + name = pkg.name || pkg.package.name + } + + tree.children = tree.children.filter(function (child) { return child.package.name !== name }) + + if (isDepOptional(tree, name)) { + return false + } + + tree.failed = true + + if (!tree.parent) return true + + for (var ii = 0; ii < tree.requiredBy.length; ++ii) { + var requireParent = tree.requiredBy[ii] + if (failedDependency(requireParent, tree.package)) { + return true + } + } + return false +} + +function andHandleOptionalErrors (log, tree, name, done) { + validate('OOSF', arguments) + return function (er, child, childLog) { + if (!er) validate('OO', [child, childLog]) + if (!er) return done(er, child, childLog) + var isFatal = failedDependency(tree, name) + if (er && !isFatal) { + tree.children = tree.children.filter(function (child) { return child.package.name !== name }) + log.warn('install', "Couldn't install optional dependency:", er.message) + log.verbose('install', er.stack) + return done() + } else { + return done(er, child, childLog) + } + } +} + +// Load any missing dependencies in the given tree +exports.loadDeps = loadDeps +function loadDeps (tree, log, next) { + validate('OOF', arguments) + if (tree.loaded || (tree.parent && tree.parent.failed)) return andFinishTracker.now(log, next) + if (tree.parent) tree.loaded = true + if (!tree.package.dependencies) tree.package.dependencies = {} + asyncMap(Object.keys(tree.package.dependencies), function (dep, done) { + var version = tree.package.dependencies[dep] + if (tree.package.optionalDependencies && + tree.package.optionalDependencies[dep] && + !npm.config.get('optional')) { + return done() + } + + addDependency(dep, version, tree, log.newGroup('loadDep:' + dep), andHandleOptionalErrors(log, tree, dep, done)) + }, andForEachChild(loadDeps, andFinishTracker(log, next))) +} + +// Load development dependencies into the given tree +exports.loadDevDeps = function (tree, log, next) { + validate('OOF', arguments) + if (!tree.package.devDependencies) return andFinishTracker.now(log, next) + asyncMap(Object.keys(tree.package.devDependencies), function (dep, done) { + // things defined as both dev dependencies and regular dependencies are treated + // as the former + if (tree.package.dependencies[dep]) return done() + + var logGroup = log.newGroup('loadDevDep:' + dep) + addDependency(dep, tree.package.devDependencies[dep], tree, logGroup, done) + }, andForEachChild(loadDeps, andFinishTracker(log, next))) +} + +exports.loadExtraneous = function loadExtraneous (tree, log, next) { + var seen = {} + function loadExtraneous (tree, log, next) { + validate('OOF', arguments) + if (seen[tree.path]) return next() + seen[tree.path] = true + asyncMap(tree.children.filter(function (child) { return !child.loaded }), function (child, done) { + resolveWithExistingModule(child, tree, log, done) + }, andForEachChild(loadExtraneous, andFinishTracker(log, next))) + } + loadExtraneous(tree, log, next) +} + +exports.loadExtraneous.andResolveDeps = function (tree, log, next) { + validate('OOF', arguments) + asyncMap(tree.children.filter(function (child) { return !child.loaded }), function (child, done) { + resolveWithExistingModule(child, tree, log, done) + }, andForEachChild(loadDeps, andFinishTracker(log, next))) +} + +function addDependency (name, versionSpec, tree, log, done) { + validate('SSOOF', arguments) + var next = andAddParentToErrors(tree, done) + var spec = name + '@' + versionSpec + realizePackageSpecifier(spec, packageRelativePath(tree), iferr(done, function (req) { + var child = findRequirement(tree, name, req) + if (child) { + resolveWithExistingModule(child, tree, log, iferr(next, function (child, log) { + if (child.package._shrinkwrap === undefined) { + readShrinkwrap.andInflate(child, function (er) { next(er, child, log) }) + } else { + next(null, child, log) + } + })) + } else { + resolveWithNewModule(req, tree, log, next) + } + })) +} + +function resolveWithExistingModule (child, tree, log, next) { + validate('OOOF', arguments) + addRequiredDep(tree, child) + + if (tree.parent && child.parent !== tree) updatePhantomChildren(tree.parent, child) + + next(null, child, log) +} + +var updatePhantomChildren = exports.updatePhantomChildren = function (current, child) { + validate('OO', arguments) + while (current && current !== child.parent) { + // FIXME: phantomChildren doesn't actually belong in the package.json + if (!current.package._phantomChildren) current.package._phantomChildren = {} + current.package._phantomChildren[child.package.name] = child.package.version + current = current.parent + } +} + +function flatNameFromTree (tree) { + validate('O', arguments) + if (!tree.parent) return '/' + var path = flatNameFromTree(tree.parent) + if (path !== '/') path += '/' + return flatName(path, tree) +} + +function resolveWithNewModule (pkg, tree, log, next) { + validate('OOOF', arguments) + if (pkg.type) { + return fetchPackageMetadata(pkg, packageRelativePath(tree), log.newItem('fetchMetadata'), iferr(next, function (pkg) { + resolveWithNewModule(pkg, tree, log, next) + })) + } + + if (!pkg.installable) { + log.silly('resolveWithNewModule', getPackageId(pkg), 'checking installable status') + return isInstallable(pkg, iferr(next, function () { + pkg.installable = true + resolveWithNewModule(pkg, tree, log, next) + })) + } + + if (!pkg._from) { + pkg._from = pkg._requested.name + '@' + pkg._requested.spec + } + addShrinkwrap(pkg, iferr(next, function () { + addBundled(pkg, iferr(next, function () { + var parent = earliestInstallable(tree, tree, pkg) || tree + var child = createChild({ + package: pkg, + parent: parent, + path: path.join(parent.path, 'node_modules', pkg.name), + realpath: path.resolve(parent.realpath, 'node_modules', pkg.name), + children: pkg._bundled || [], + isLink: tree.isLink + }) + + parent.children = parent.children.filter(function (pkg) { return pkg.package.name !== child.package.name }) + parent.children.push(child) + addRequiredDep(tree, child) + pkg._location = flatNameFromTree(child) + + if (tree.parent && parent !== tree) updatePhantomChildren(tree.parent, child) + + if (pkg._bundled) { + inflateBundled(child, child.children) + } + + if (pkg._shrinkwrap && pkg._shrinkwrap.dependencies) { + return inflateShrinkwrap(child, pkg._shrinkwrap.dependencies, function (er) { + next(er, child, log) + }) + } + + next(null, child, log) + })) + })) +} + +var validatePeerDeps = exports.validatePeerDeps = function (tree, onInvalid) { + if (!tree.package.peerDependencies) return + Object.keys(tree.package.peerDependencies).forEach(function (pkgname) { + var version = tree.package.peerDependencies[pkgname] + var match = findRequirement(tree.parent || tree, pkgname, npa(pkgname + '@' + version)) + if (!match) onInvalid(tree, pkgname, version) + }) +} + +exports.validateAllPeerDeps = function (tree, onInvalid) { + validateAllPeerDeps(tree, onInvalid, {}) +} + +function validateAllPeerDeps (tree, onInvalid, seen) { + validate('OFO', arguments) + if (seen[tree.path]) return + seen[tree.path] = true + validatePeerDeps(tree, onInvalid) + tree.children.forEach(function (child) { validateAllPeerDeps(child, onInvalid, seen) }) +} + +// Determine if a module requirement is already met by the tree at or above +// our current location in the tree. +var findRequirement = exports.findRequirement = function (tree, name, requested) { + validate('OSO', arguments) + var nameMatch = function (child) { + return child.package.name === name && child.parent + } + var versionMatch = function (child) { + return doesChildVersionMatch(child, requested) + } + if (nameMatch(tree)) { + // this *is* the module, but it doesn't match the version, so a + // new copy will have to be installed + return versionMatch(tree) ? tree : null + } + + var matches = tree.children.filter(nameMatch) + if (matches.length) { + matches = matches.filter(versionMatch) + // the module exists as a dependent, but the version doesn't match, so + // a new copy will have to be installed above here + if (matches.length) return matches[0] + return null + } + if (!tree.parent) return null + return findRequirement(tree.parent, name, requested) +} + +// Find the highest level in the tree that we can install this module in. +// If the module isn't installed above us yet, that'd be the very top. +// If it is, then it's the level below where its installed. +var earliestInstallable = exports.earliestInstallable = function (requiredBy, tree, pkg) { + validate('OOO', arguments) + var nameMatch = function (child) { + return child.package.name === pkg.name + } + + if (tree.children.some(nameMatch)) return null + + // If any of the children of this tree have conflicting + // binaries then we need to decline to install this package here. + var binaryMatches = tree.children.some(function (child) { + return Object.keys(child.package.bin || {}).some(function (bin) { + return pkg.bin && pkg.bin[bin] + }) + }) + if (binaryMatches) return null + + // if this tree location requested the same module then we KNOW it + // isn't compatible because if it were findRequirement would have + // found that version. + if (requiredBy !== tree && tree.package.dependencies && tree.package.dependencies[pkg.name]) { + return null + } + + // FIXME: phantomChildren doesn't actually belong in the package.json + if (tree.package._phantomChildren && tree.package._phantomChildren[pkg.name]) return null + + if (!tree.parent) return tree + if (tree.isGlobal) return tree + + return (earliestInstallable(requiredBy, tree.parent, pkg) || tree) +} diff --git a/deps/npm/lib/install/diff-trees.js b/deps/npm/lib/install/diff-trees.js new file mode 100644 index 0000000000000000000000000000000000000000..768bcde55f0fd37b45831b6596ce488ce2291d95 --- /dev/null +++ b/deps/npm/lib/install/diff-trees.js @@ -0,0 +1,159 @@ +'use strict' +var validate = require('aproba') +var npa = require('npm-package-arg') +var flattenTree = require('./flatten-tree.js') + +function nonRegistrySource (pkg) { + validate('O', arguments) + var requested = pkg._requested || (pkg._from && npa(pkg._from)) + if (!requested) return false + + if (requested.type === 'hosted') return true + if (requested.type === 'local') return true + return false +} + +function pkgAreEquiv (aa, bb) { + var aaSha = (aa.dist && aa.dist.shasum) || aa._shasum + var bbSha = (bb.dist && bb.dist.shasum) || bb._shasum + if (aaSha === bbSha) return true + if (aaSha || bbSha) return false + if (nonRegistrySource(aa) || nonRegistrySource(bb)) return false + if (aa.version === bb.version) return true + return false +} + +function getNameAndVersion (pkg) { + var versionspec = pkg._shasum + + if (!versionspec && nonRegistrySource(pkg)) { + if (pkg._requested) { + versionspec = pkg._requested.spec + } else if (pkg._from) { + versionspec = npa(pkg._from).spec + } + } + if (!versionspec) { + versionspec = pkg.version + } + return pkg.name + '@' + versionspec +} + +function pushAll (aa, bb) { + Array.prototype.push.apply(aa, bb) +} + +module.exports = function (oldTree, newTree, differences, log, next) { + validate('OOAOF', arguments) + pushAll(differences, sortActions(diffTrees(oldTree, newTree))) + log.finish() + next() +} + +function isLink (node) { + return node && node.isLink +} + +function requiredByAllLinked (node) { + if (!node.requiredBy.length) return false + return node.requiredBy.filter(isLink).length === node.requiredBy.length +} + +function isNotReqByTop (req) { + return req !== '/' && // '/' is the top level itself + req !== '#USER' && // #USER + req !== '#EXTRANEOUS' +} + +var sortActions = module.exports.sortActions = function (differences) { + var actions = {} + differences.forEach(function (action) { + var child = action[1] + actions[child.package._location] = action + }) + + var sorted = [] + var added = {} + + var sortedlocs = Object.keys(actions).sort(sortByLocation) + + // Do top level deps first, this stops the sorting by required order from + // unsorting these deps. + var toplocs = sortedlocs.filter(function (location) { + var mod = actions[location][1] + if (!mod.package._requiredBy) return true + // If the module is required by ANY non-top level package + // then we don't want to include this. + return !mod.package._requiredBy.some(isNotReqByTop) + }) + + toplocs.concat(sortedlocs).forEach(function (location) { + sortByDeps(actions[location]) + }) + + function sortByLocation (aa, bb) { + return bb.localeCompare(aa) + } + function sortByDeps (action) { + var mod = action[1] + if (added[mod.package._location]) return + added[mod.package._location] = action + mod.package._requiredBy.sort().forEach(function (location) { + if (actions[location]) sortByDeps(actions[location]) + }) + sorted.unshift(action) + } + + return sorted +} + +function diffTrees (oldTree, newTree) { + validate('OO', arguments) + var differences = [] + var flatOldTree = flattenTree(oldTree) + var flatNewTree = flattenTree(newTree) + var toRemove = {} + var toRemoveByNameAndVer = {} + // find differences + Object.keys(flatOldTree).forEach(function (flatname) { + if (flatNewTree[flatname]) return + var pkg = flatOldTree[flatname] + toRemove[flatname] = pkg + var namever = getNameAndVersion(pkg.package) + if (!toRemoveByNameAndVer[namever]) toRemoveByNameAndVer[namever] = [] + toRemoveByNameAndVer[namever].push(flatname) + }) + Object.keys(flatNewTree).forEach(function (path) { + var pkg = flatNewTree[path] + pkg.oldPkg = flatOldTree[path] + pkg.isInLink = (pkg.oldPkg && isLink(pkg.oldPkg.parent)) || + (pkg.parent && isLink(pkg.parent)) || + requiredByAllLinked(pkg) + if (pkg.fromBundle) return + if (pkg.oldPkg) { + if (!pkg.directlyRequested && pkgAreEquiv(pkg.oldPkg.package, pkg.package)) return + if (!pkg.isInLink && (isLink(pkg.oldPkg) || isLink(pkg))) { + differences.push(['update-linked', pkg]) + } else { + differences.push(['update', pkg]) + } + } else { + var vername = getNameAndVersion(pkg.package) + if (toRemoveByNameAndVer[vername] && toRemoveByNameAndVer[vername].length) { + var flatname = toRemoveByNameAndVer[vername].shift() + pkg.fromPath = toRemove[flatname].path + differences.push(['move', pkg]) + delete toRemove[flatname] + } else { + differences.push(['add', pkg]) + } + } + }) + Object + .keys(toRemove) + .map(function (path) { return toRemove[path] }) + .forEach(function (pkg) { + differences.push(['remove', pkg]) + }) + return differences +} diff --git a/deps/npm/lib/install/exists.js b/deps/npm/lib/install/exists.js new file mode 100644 index 0000000000000000000000000000000000000000..59100d63ba0d942e9fb819befe98b362918ee044 --- /dev/null +++ b/deps/npm/lib/install/exists.js @@ -0,0 +1,27 @@ +'use strict' +var fs = require('fs') +var inflight = require('inflight') +var accessError = require('./access-error.js') +var isFsAccessAvailable = require('./is-fs-access-available.js') + +if (isFsAccessAvailable) { + module.exports = fsAccessImplementation +} else { + module.exports = fsStatImplementation +} + +// exposed only for testing purposes +module.exports.fsAccessImplementation = fsAccessImplementation +module.exports.fsStatImplementation = fsStatImplementation + +function fsAccessImplementation (dir, done) { + done = inflight('exists:' + dir, done) + if (!done) return + fs.access(dir, fs.F_OK, done) +} + +function fsStatImplementation (dir, done) { + done = inflight('exists:' + dir, done) + if (!done) return + fs.stat(dir, function (er) { done(accessError(dir, er)) }) +} diff --git a/deps/npm/lib/install/filter-invalid-actions.js b/deps/npm/lib/install/filter-invalid-actions.js new file mode 100644 index 0000000000000000000000000000000000000000..55278ed829d2dde6add0845ca69106fe8325dc61 --- /dev/null +++ b/deps/npm/lib/install/filter-invalid-actions.js @@ -0,0 +1,36 @@ +'use strict' +var path = require('path') +var validate = require('aproba') +var log = require('npmlog') +var getPackageId = require('./get-package-id.js') + +module.exports = function (top, differences, next) { + validate('SAF', arguments) + var action + var keep = [] + + differences.forEach(function (action) { + var cmd = action[0] + var pkg = action[1] + if (cmd === 'remove') { + pkg.removing = true + } + }) + + /*eslint no-cond-assign:0*/ + while (action = differences.shift()) { + var cmd = action[0] + var pkg = action[1] + if (pkg.isInLink || pkg.parent.target || pkg.parent.isLink) { + // we want to skip warning if this is a child of another module that we're removing + if (!pkg.parent.removing) { + log.warn('skippingAction', 'Module is inside a symlinked module: not running ' + + cmd + ' ' + getPackageId(pkg) + ' ' + path.relative(top, pkg.path)) + } + } else { + keep.push(action) + } + } + differences.push.apply(differences, keep) + next() +} diff --git a/deps/npm/lib/install/flatten-tree.js b/deps/npm/lib/install/flatten-tree.js new file mode 100644 index 0000000000000000000000000000000000000000..a0c6b7a79d1508e4def1becb56d10e9b7da220d2 --- /dev/null +++ b/deps/npm/lib/install/flatten-tree.js @@ -0,0 +1,29 @@ +'use strict' +var validate = require('aproba') + +module.exports = function (tree) { + validate('O', arguments) + var seen = {} + var flat = {} + var todo = [[tree, '/']] + while (todo.length) { + var next = todo.shift() + var pkg = next[0] + seen[pkg.path] = true + var path = next[1] + flat[path] = pkg + if (path !== '/') path += '/' + for (var ii = 0; ii < pkg.children.length; ++ii) { + var child = pkg.children[ii] + if (!seen[child.path]) { + todo.push([child, flatName(path, child)]) + } + } + } + return flat +} + +var flatName = module.exports.flatName = function (path, child) { + validate('SO', arguments) + return path + (child.package.name || 'TOP') +} diff --git a/deps/npm/lib/install/get-package-id.js b/deps/npm/lib/install/get-package-id.js new file mode 100644 index 0000000000000000000000000000000000000000..076eb1423a2fd571b1c15eaa576baa50e6dfd358 --- /dev/null +++ b/deps/npm/lib/install/get-package-id.js @@ -0,0 +1,19 @@ +'use strict' +var path = require('path') + +module.exports = function (tree) { + var pkg = tree.package || tree + // FIXME: Excluding the '@' here is cleaning up after the mess that + // read-package-json makes. =( + if (pkg._id && pkg._id !== '@') return pkg._id + var name = pkg.name || (tree && tree.logical && path.basename(tree.logical)) + if (name && pkg.version) { + return name + '@' + pkg.version + } else if (tree) { + return tree.path + } else if (name) { + return name + } else { + return '' + } +} diff --git a/deps/npm/lib/install/inflate-bundled.js b/deps/npm/lib/install/inflate-bundled.js new file mode 100644 index 0000000000000000000000000000000000000000..c27acd1dc0f4c4f023f72693d19f5103a2fe99b1 --- /dev/null +++ b/deps/npm/lib/install/inflate-bundled.js @@ -0,0 +1,15 @@ +'use strict' +var path = require('path') +var validate = require('aproba') + +module.exports = function inflateBundled (parent, children) { + validate('OA', arguments) + children.forEach(function (child) { + child.fromBundle = true + child.parent = parent + child.path = path.join(parent.path, child.package.name) + child.realpath = path.resolve(parent.realpath, child.package.name) + child.isLink = child.isLink || parent.isLink || parent.target + inflateBundled(child, child.children) + }) +} diff --git a/deps/npm/lib/install/inflate-shrinkwrap.js b/deps/npm/lib/install/inflate-shrinkwrap.js new file mode 100644 index 0000000000000000000000000000000000000000..dd32583f6da829d7f26fcbfa05b51495754bdd28 --- /dev/null +++ b/deps/npm/lib/install/inflate-shrinkwrap.js @@ -0,0 +1,58 @@ +'use strict' +var path = require('path') +var url = require('url') +var asyncMap = require('slide').asyncMap +var validate = require('aproba') +var iferr = require('iferr') +var fetchPackageMetadata = require('../fetch-package-metadata.js') +var addShrinkwrap = require('../fetch-package-metadata.js').addShrinkwrap +var addBundled = require('../fetch-package-metadata.js').addBundled +var inflateBundled = require('./inflate-bundled.js') +var npm = require('../npm.js') +var createChild = require('./node.js').create + +var inflateShrinkwrap = module.exports = function (tree, swdeps, finishInflating) { + validate('OOF', arguments) + if (!npm.config.get('shrinkwrap')) return finishInflating() + var onDisk = {} + tree.children.forEach(function (child) { onDisk[child.package.name] = child }) + tree.children = [] + asyncMap(Object.keys(swdeps), function (name, next) { + var sw = swdeps[name] + var spec = sw.resolved + ? name + '@' + sw.resolved + : (sw.from && url.parse(sw.from).protocol) + ? name + '@' + sw.from + : name + '@' + sw.version + var child = onDisk[name] + if (child && (child.fromShrinkwrap || + (sw.resolved && child.package._resolved === sw.resolved) || + (sw.from && url.parse(sw.from).protocol && child.package._from === sw.from) || + child.package.version === sw.version)) { + if (!child.fromShrinkwrap) child.fromShrinkwrap = spec + tree.children.push(child) + return next() + } + fetchPackageMetadata(spec, tree.path, iferr(next, function (pkg) { + pkg._from = sw.from || spec + addShrinkwrap(pkg, iferr(next, function () { + addBundled(pkg, iferr(next, function () { + var child = createChild({ + package: pkg, + loaded: false, + parent: tree, + fromShrinkwrap: spec, + path: path.join(tree.path, 'node_modules', pkg.name), + realpath: path.resolve(tree.realpath, 'node_modules', pkg.name), + children: pkg._bundled || [] + }) + tree.children.push(child) + if (pkg._bundled) { + inflateBundled(child, child.children) + } + inflateShrinkwrap(child, sw.dependencies || {}, next) + })) + })) + })) + }, finishInflating) +} diff --git a/deps/npm/lib/install/is-dev.js b/deps/npm/lib/install/is-dev.js new file mode 100644 index 0000000000000000000000000000000000000000..b1f2c4b6614975a18bbc4ca8810591746d45b9fe --- /dev/null +++ b/deps/npm/lib/install/is-dev.js @@ -0,0 +1,7 @@ +'use strict' +var isDev = exports.isDev = function (node) { + return node.package._requiredBy.some(function (req) { return req === '#DEV:/' }) +} +exports.isOnlyDev = function (node) { + return node.package._requiredBy.length === 1 && isDev(node) +} diff --git a/deps/npm/lib/install/is-extraneous.js b/deps/npm/lib/install/is-extraneous.js new file mode 100644 index 0000000000000000000000000000000000000000..cd4d954668426a66e2feef48dd8f95624c9695e1 --- /dev/null +++ b/deps/npm/lib/install/is-extraneous.js @@ -0,0 +1,14 @@ +'use strict' +var path = require('path') +var isDev = require('./is-dev.js').isDev +var npm = require('../npm.js') + +module.exports = function (tree) { + var pkg = tree.package + var requiredBy = pkg._requiredBy.filter(function (req) { return req[0] !== '#' }) + var isTopLevel = tree.parent == null + var isChildOfTop = !isTopLevel && tree.parent.parent == null + var isTopGlobal = isChildOfTop && tree.parent.path === path.resolve(npm.globalDir, '..') + var topHasNoPackageJson = isChildOfTop && tree.parent.error + return !isTopLevel && (!isChildOfTop || !topHasNoPackageJson) && !isTopGlobal && requiredBy.length === 0 && !isDev(tree) +} diff --git a/deps/npm/lib/install/is-fs-access-available.js b/deps/npm/lib/install/is-fs-access-available.js new file mode 100644 index 0000000000000000000000000000000000000000..a7d2640d794b5d72d0d9e6f8ac00450eb08306ac --- /dev/null +++ b/deps/npm/lib/install/is-fs-access-available.js @@ -0,0 +1,22 @@ +'use strict' +var fs = require('fs') +var semver = require('semver') +var isWindows = process.platform === 'win32' + +// fs.access first introduced in node 0.12 / io.js +if (!fs.access) { + module.exports = false +} else if (!isWindows) { + // fs.access always works on non-Windows OSes + module.exports = true +} else { + // The Windows implementation of `fs.access` has a bug where it will + // sometimes return access errors all the time for directories, even + // when access is available. As all we actually test ARE directories, this + // is a bit of a problem. + // This was fixed in io.js version 1.5.0 + // As of 2015-07-20, it is still unfixed in node: + // https://github.com/joyent/node/issues/25657 + + module.exports = semver.gte(process.version, '1.5.0') +} diff --git a/deps/npm/lib/install/mutate-into-logical-tree.js b/deps/npm/lib/install/mutate-into-logical-tree.js new file mode 100644 index 0000000000000000000000000000000000000000..0fbedcb9d27fe8ac13bf1584191fce8faa80a946 --- /dev/null +++ b/deps/npm/lib/install/mutate-into-logical-tree.js @@ -0,0 +1,112 @@ +'use strict' +var union = require('lodash.union') +var without = require('lodash.without') +var validate = require('aproba') +var flattenTree = require('./flatten-tree.js') +var isExtraneous = require('./is-extraneous.js') +var validateAllPeerDeps = require('./deps.js').validateAllPeerDeps +var getPackageId = require('./get-package-id.js') + +var mutateIntoLogicalTree = module.exports = function (tree) { + validate('O', arguments) + + validateAllPeerDeps(tree, function (tree, pkgname, version) { + if (!tree.missingPeers) tree.missingPeers = {} + tree.missingPeers[pkgname] = version + }) + + var flat = flattenTree(tree) + + function getNode (flatname) { + return flatname.substr(0, 5) === '#DEV:' ? + flat[flatname.substr(5)] : + flat[flatname] + } + + Object.keys(flat).sort().forEach(function (flatname) { + var node = flat[flatname] + var requiredBy = node.package._requiredBy || [] + var requiredByNames = requiredBy.filter(function (parentFlatname) { + var parentNode = getNode(parentFlatname) + if (!parentNode) return false + return parentNode.package.dependencies[node.package.name] || + (parentNode.package.devDependencies && parentNode.package.devDependencies[node.package.name]) + }) + requiredBy = requiredByNames.map(getNode) + + node.requiredBy = requiredBy + + if (!requiredBy.length) return + + if (node.parent) node.parent.children = without(node.parent.children, node) + + requiredBy.forEach(function (parentNode) { + parentNode.children = union(parentNode.children, [node]) + }) + if (node.package._requiredBy.some(function (nodename) { return nodename[0] === '#' })) { + tree.children = union(tree.children, [node]) + } + }) + return tree +} + +module.exports.asReadInstalled = function (tree) { + mutateIntoLogicalTree(tree) + return translateTree(tree) +} + +function translateTree (tree) { + return translateTree_(tree, {}) +} + +function translateTree_ (tree, seen) { + var pkg = tree.package + if (seen[tree.path]) return pkg + seen[tree.path] = pkg + if (pkg._dependencies) return pkg + pkg._dependencies = pkg.dependencies + pkg.dependencies = {} + tree.children.forEach(function (child) { + pkg.dependencies[child.package.name] = translateTree_(child, seen) + }) + Object.keys(tree.missingDeps).forEach(function (name) { + if (pkg.dependencies[name]) { + pkg.dependencies[name].invalid = true + pkg.dependencies[name].realName = name + pkg.dependencies[name].extraneous = false + } else { + pkg.dependencies[name] = { + requiredBy: tree.missingDeps[name], + missing: true, + optional: !!pkg.optionalDependencies[name] + } + } + }) + var checkForMissingPeers = (tree.parent ? [] : [tree]).concat(tree.children) + checkForMissingPeers.filter(function (child) { + return child.missingPeers + }).forEach(function (child) { + Object.keys(child.missingPeers).forEach(function (pkgname) { + var version = child.missingPeers[pkgname] + var peerPkg = pkg.dependencies[pkgname] + if (!peerPkg) { + peerPkg = pkg.dependencies[pkgname] = { + _id: pkgname + '@' + version, + name: pkgname, + version: version + } + } + if (!peerPkg.peerMissing) peerPkg.peerMissing = [] + peerPkg.peerMissing.push({ + requiredBy: getPackageId(child), + requires: pkgname + '@' + version + }) + }) + }) + pkg.path = tree.path + + pkg.error = tree.error + pkg.extraneous = isExtraneous(tree) + if (tree.target && tree.parent && !tree.parent.target) pkg.link = tree.realpath + return pkg +} diff --git a/deps/npm/lib/install/node.js b/deps/npm/lib/install/node.js new file mode 100644 index 0000000000000000000000000000000000000000..c76dc765ba493c15092f3d267e8720222d8abaa0 --- /dev/null +++ b/deps/npm/lib/install/node.js @@ -0,0 +1,61 @@ +'use strict' + +var defaultTemplate = { + package: { + dependencies: {}, + devDependencies: {}, + optionalDependencies: {}, + _requiredBy: [], + _phantomChildren: {} + }, + loaded: false, + children: [], + requiredBy: [], + requires: [], + missingDeps: {}, + missingDevDeps: {}, + path: null, + realpath: null, + userRequired: false, + existing: false +} + +function isLink (node) { + return node && node.isLink +} + +var create = exports.create = function (node, template) { + if (!template) template = defaultTemplate + Object.keys(template).forEach(function (key) { + if (template[key] != null && typeof template[key] === 'object' && !(template[key] instanceof Array)) { + if (!node[key]) node[key] = {} + return create(node[key], template[key]) + } + if (node[key] != null) return + node[key] = template[key] + }) + if (isLink(node) || isLink(node.parent)) { + node.isLink = true + } + return node +} + +exports.reset = function (node) { + reset(node, {}) +} + +function reset (node, seen) { + if (seen[node.path]) return + seen[node.path] = true + var child = create(node) + child.package._requiredBy = child.package._requiredBy.filter(function (req) { + return req[0] === '#' + }) + child.requiredBy = [] + child.package._phantomChildren = {} + // FIXME: cleaning up after read-package-json's mess =( + if (child.package._id === '@') delete child.package._id + child.missingDeps = {} + child.children.forEach(function (child) { reset(child, seen) }) + if (!child.package.version) child.package.version = '' +} diff --git a/deps/npm/lib/install/prune-tree.js b/deps/npm/lib/install/prune-tree.js new file mode 100644 index 0000000000000000000000000000000000000000..eb3edf4f75bafc2666d2aad3a922be833d12fd96 --- /dev/null +++ b/deps/npm/lib/install/prune-tree.js @@ -0,0 +1,36 @@ +'use strict' +var validate = require('aproba') +var flattenTree = require('./flatten-tree.js') + +function isNotPackage (mod) { + return function (parentMod) { return mod !== parentMod } +} + +module.exports = function pruneTree (tree) { + validate('O', arguments) + var flat = flattenTree(tree) + // we just do this repeatedly until there are no more orphaned packages + // which isn't as effecient as it could be on a REALLY big tree + // but we'll face that if it proves to be an issue + var removedPackage + do { + removedPackage = false + Object.keys(flat).forEach(function (flatname) { + var child = flat[flatname] + if (!child.parent) return + child.package._requiredBy = (child.package._requiredBy || []).filter(function (req) { + var isDev = req.substr(0, 4) === '#DEV' + if (req[0] === '#' && !isDev) return true + if (flat[req]) return true + if (!isDev) return false + var reqChildAsDevDep = flat[req.substr(5)] + return reqChildAsDevDep && !reqChildAsDevDep.parent + }) + if (!child.package._requiredBy.length) { + removedPackage = true + delete flat[flatname] + child.parent.children = child.parent.children.filter(isNotPackage(child)) + } + }) + } while (removedPackage) +} diff --git a/deps/npm/lib/install/read-shrinkwrap.js b/deps/npm/lib/install/read-shrinkwrap.js new file mode 100644 index 0000000000000000000000000000000000000000..35180b688dbadc0643605a59207ad6c12cfecea1 --- /dev/null +++ b/deps/npm/lib/install/read-shrinkwrap.js @@ -0,0 +1,32 @@ +'use strict' +var path = require('path') +var fs = require('graceful-fs') +var iferr = require('iferr') +var inflateShrinkwrap = require('./inflate-shrinkwrap.js') +var parseJSON = require('../utils/parse-json.js') + +var readShrinkwrap = module.exports = function (child, next) { + fs.readFile(path.join(child.path, 'npm-shrinkwrap.json'), function (er, data) { + if (er) { + child.package._shrinkwrap = null + return next() + } + try { + child.package._shrinkwrap = parseJSON(data) + } catch (ex) { + child.package._shrinkwrap = null + return next(ex) + } + return next() + }) +} + +module.exports.andInflate = function (child, next) { + readShrinkwrap(child, iferr(next, function () { + if (child.package._shrinkwrap) { + return inflateShrinkwrap(child, child.package._shrinkwrap.dependencies || {}, next) + } else { + return next() + } + })) +} diff --git a/deps/npm/lib/install/save.js b/deps/npm/lib/install/save.js new file mode 100644 index 0000000000000000000000000000000000000000..dffd3a0cd5d17655074179d03d52db3d0af3533c --- /dev/null +++ b/deps/npm/lib/install/save.js @@ -0,0 +1,199 @@ +'use strict' +var fs = require('graceful-fs') +var path = require('path') +var url = require('url') +var writeFileAtomic = require('write-file-atomic') +var log = require('npmlog') +var semver = require('semver') +var iferr = require('iferr') +var validate = require('aproba') +var without = require('lodash.without') +var npm = require('../npm.js') +var deepSortObject = require('../utils/deep-sort-object.js') +var parseJSON = require('../utils/parse-json.js') + +// if the -S|--save option is specified, then write installed packages +// as dependencies to a package.json file. + +exports.saveRequested = function (args, tree, andReturn) { + validate('AOF', arguments) + savePackageJson(args, tree, andWarnErrors(andSaveShrinkwrap(tree, andReturn))) +} + +function andSaveShrinkwrap (tree, andReturn) { + validate('OF', arguments) + return function (er) { + validate('E', arguments) + saveShrinkwrap(tree, andWarnErrors(andReturn)) + } +} + +function andWarnErrors (cb) { + validate('F', arguments) + return function (er) { + if (er) log.warn('saveError', er.message) + arguments[0] = null + cb.apply(null, arguments) + } +} + +function saveShrinkwrap (tree, next) { + validate('OF', arguments) + var saveTarget = path.resolve(tree.path, 'npm-shrinkwrap.json') + fs.stat(saveTarget, function (er, stat) { + if (er) return next() + var save = npm.config.get('save') + var saveDev = npm.config.get('save-dev') + var saveOptional = npm.config.get('save-optional') + if (!saveOptional && saveDev) return next() + if (saveOptional || !save) return next() + npm.commands.shrinkwrap([], true, next) + }) +} + +function savePackageJson (args, tree, next) { + validate('AOF', arguments) + var saveBundle = npm.config.get('save-bundle') + + // each item in the tree is a top-level thing that should be saved + // to the package.json file. + // The relevant tree shape is { : {what:} } + var saveTarget = path.resolve(tree.path, 'package.json') + // don't use readJson, because we don't want to do all the other + // tricky npm-specific stuff that's in there. + fs.readFile(saveTarget, iferr(next, function (packagejson) { + try { + packagejson = parseJSON(packagejson) + } catch (ex) { + return next(ex) + } + + // If we're saving bundled deps, normalize the key before we start + if (saveBundle) { + var bundle = packagejson.bundleDependencies || packagejson.bundledDependencies + delete packagejson.bundledDependencies + if (!Array.isArray(bundle)) bundle = [] + } + + var toSave = getThingsToSave(tree) + var toRemove = getThingsToRemove(args, tree) + var savingTo = {} + toSave.forEach(function (pkg) { savingTo[pkg.save] = true }) + toRemove.forEach(function (pkg) { savingTo[pkg.save] = true }) + + Object.keys(savingTo).forEach(function (save) { + if (!packagejson[save]) packagejson[save] = {} + }) + + log.verbose('saving', toSave) + toSave.forEach(function (pkg) { + packagejson[pkg.save][pkg.name] = pkg.spec + if (saveBundle) { + var ii = bundle.indexOf(pkg.name) + if (ii === -1) bundle.push(pkg.name) + } + }) + + toRemove.forEach(function (pkg) { + delete packagejson[pkg.save][pkg.name] + if (saveBundle) { + bundle = without(bundle, pkg.name) + } + }) + + Object.keys(savingTo).forEach(function (key) { + packagejson[key] = deepSortObject(packagejson[key]) + }) + if (saveBundle) { + packagejson.bundledDependencies = deepSortObject(bundle) + } + + var json = JSON.stringify(packagejson, null, 2) + '\n' + writeFileAtomic(saveTarget, json, next) + })) +} + +var getSaveType = exports.getSaveType = function (args) { + validate('A', arguments) + var nothingToSave = !args.length + var globalInstall = npm.config.get('global') + var noSaveFlags = !npm.config.get('save') && + !npm.config.get('save-dev') && + !npm.config.get('save-optional') + if (nothingToSave || globalInstall || noSaveFlags) return null + + if (npm.config.get('save-optional')) return 'optionalDependencies' + else if (npm.config.get('save-dev')) return 'devDependencies' + else return 'dependencies' +} + +function computeVersionSpec (child) { + validate('O', arguments) + var requested = child.package._requested + if (!requested || requested.type === 'tag') { + requested = { + type: 'version', + spec: child.package.version + } + } + if (requested.type === 'version' || requested.type === 'range') { + var version = child.package.version + var rangeDescriptor = '' + if (semver.valid(version, true) && + semver.gte(version, '0.1.0', true) && + !npm.config.get('save-exact')) { + rangeDescriptor = npm.config.get('save-prefix') + } + return rangeDescriptor + version + } else if (requested.type === 'directory' || requested.type === 'local') { + var relativePath = path.relative(child.parent.path, requested.spec) + if (/^[.][.]/.test(relativePath)) { + return url.format({ + protocol: 'file', + slashes: true, + pathname: requested.spec + }) + } else { + return url.format({ + protocol: 'file', + slashes: false, + pathname: relativePath + }) + } + } else { + return requested.spec + } +} + +function getThingsToSave (tree) { + validate('O', arguments) + var toSave = tree.children.filter(function (child) { + return child.save + }).map(function (child) { + return { + name: child.package.name, + spec: computeVersionSpec(child), + save: child.save + } + }) + return toSave +} + +function getThingsToRemove (args, tree) { + validate('AO', arguments) + if (!tree.removed) return [] + var toRemove = tree.removed.map(function (child) { + return { + name: child.package.name, + save: child.save + } + }) + var saveType = getSaveType(args) + args.forEach(function (arg) { + toRemove.push({ + name: arg, + save: saveType + }) + }) + return toRemove +} diff --git a/deps/npm/lib/install/update-package-json.js b/deps/npm/lib/install/update-package-json.js new file mode 100644 index 0000000000000000000000000000000000000000..97b2f05bb0fa97dc6f6cc8a480d57c2d30db73b9 --- /dev/null +++ b/deps/npm/lib/install/update-package-json.js @@ -0,0 +1,18 @@ +'use strict' +var path = require('path') +var writeFileAtomic = require('write-file-atomic') +var deepSortObject = require('../utils/deep-sort-object.js') + +module.exports = function (pkg, buildpath, next) { + // FIXME: This bundled dance is because we're sticking a big tree of bundled + // deps into the parsed package.json– it probably doesn't belong there =/ + // But the real reason we don't just dump it out is that it's the result + // of npm-read-tree, which produces circular data structures, due to the + // parent and children keys. + var bundled = pkg.package._bundled + delete pkg.package._bundled // FIXME + var packagejson = deepSortObject(pkg.package) + var data = JSON.stringify(packagejson, null, 2) + '\n' + pkg.package._bundled = bundled + writeFileAtomic(path.resolve(buildpath, 'package.json'), data, next) +} diff --git a/deps/npm/lib/install/validate-args.js b/deps/npm/lib/install/validate-args.js new file mode 100644 index 0000000000000000000000000000000000000000..75ae3e362ad036dfe0738b70a73894093bd70c92 --- /dev/null +++ b/deps/npm/lib/install/validate-args.js @@ -0,0 +1,44 @@ +'use strict' +var validate = require('aproba') +var asyncMap = require('slide').asyncMap +var chain = require('slide').chain +var npmInstallChecks = require('npm-install-checks') +var checkEngine = npmInstallChecks.checkEngine +var checkPlatform = npmInstallChecks.checkPlatform +var npm = require('../npm.js') + +module.exports = function (idealTree, args, next) { + validate('OAF', arguments) + var force = npm.config.get('force') + + asyncMap(args, function (pkg, done) { + chain([ + [checkSelf, idealTree, pkg, force], + [isInstallable, pkg] + ], done) + }, next) +} + +var isInstallable = module.exports.isInstallable = function (pkg, next) { + var force = npm.config.get('force') + var nodeVersion = npm.config.get('node-version') + var strict = npm.config.get('engine-strict') + chain([ + [checkEngine, pkg, npm.version, nodeVersion, force, strict], + [checkPlatform, pkg, force] + ], next) +} + +function checkSelf (idealTree, pkg, force, next) { + if (idealTree.package.name !== pkg.name) return next() + if (force) { + var warn = new Error("Wouldn't install " + pkg.name + ' as a dependency of itself, but being forced') + warn.code = 'ENOSELF' + idealTree.warnings.push(warn) + next() + } else { + var er = new Error('Refusing to install ' + pkg.name + ' as a dependency of itself') + er.code = 'ENOSELF' + next(er) + } +} diff --git a/deps/npm/lib/install/validate-tree.js b/deps/npm/lib/install/validate-tree.js new file mode 100644 index 0000000000000000000000000000000000000000..f09abedcbee6e0955634d651259f3bc43544129f --- /dev/null +++ b/deps/npm/lib/install/validate-tree.js @@ -0,0 +1,69 @@ +'use strict' +var path = require('path') +var validate = require('aproba') +var asyncMap = require('slide').asyncMap +var chain = require('slide').chain +var npmInstallChecks = require('npm-install-checks') +var checkGit = npmInstallChecks.checkGit +var clone = require('lodash.clonedeep') +var normalizePackageData = require('normalize-package-data') +var npm = require('../npm.js') +var andFinishTracker = require('./and-finish-tracker.js') +var flattenTree = require('./flatten-tree.js') +var validateAllPeerDeps = require('./deps.js').validateAllPeerDeps +var getPackageId = require('./get-package-id.js') + +module.exports = function (idealTree, log, next) { + validate('OOF', arguments) + var moduleMap = flattenTree(idealTree) + var modules = Object.keys(moduleMap).map(function (name) { return moduleMap[name] }) + + chain([ + [asyncMap, modules, function (mod, done) { + chain([ + mod.parent && !mod.isLink && [checkGit, mod.realpath], + [checkErrors, mod, idealTree] + ], done) + }], + [thenValidateAllPeerDeps, idealTree], + [thenCheckTop, idealTree] + ], andFinishTracker(log, next)) +} + +function checkErrors (mod, idealTree, next) { + if (mod.error && (mod.parent || path.resolve(npm.globalDir, '..') !== mod.path)) idealTree.warnings.push(mod.error) + next() +} + +function thenValidateAllPeerDeps (idealTree, next) { + validate('OF', arguments) + validateAllPeerDeps(idealTree, function (tree, pkgname, version) { + var warn = new Error(getPackageId(tree) + ' requires a peer of ' + pkgname + '@' + + version + ' but none was installed.') + warn.code = 'EPEERINVALID' + idealTree.warnings.push(warn) + }) + next() +} + +function thenCheckTop (idealTree, next) { + validate('OF', arguments) + if (idealTree.package.error) return next() + + // FIXME: when we replace read-package-json with something less magic, + // this should done elsewhere. + // As it is, the package has already been normalized and thus some + // errors are suppressed. + var pkg = clone(idealTree.package) + try { + normalizePackageData(pkg, function (warn) { + var warnObj = new Error(getPackageId(idealTree) + ' ' + warn) + warnObj.code = 'EPACKAGEJSON' + idealTree.warnings.push(warnObj) + }, false) + } catch (er) { + er.code = 'EPACKAGEJSON' + idealTree.warnings.push(er) + } + next() +} diff --git a/deps/npm/lib/install/writable.js b/deps/npm/lib/install/writable.js new file mode 100644 index 0000000000000000000000000000000000000000..199b48f597068835a4c4b2524092f287c164148f --- /dev/null +++ b/deps/npm/lib/install/writable.js @@ -0,0 +1,35 @@ +'use strict' +var path = require('path') +var fs = require('fs') +var inflight = require('inflight') +var accessError = require('./access-error.js') +var andIgnoreErrors = require('./and-ignore-errors.js') +var isFsAccessAvailable = require('./is-fs-access-available.js') + +if (isFsAccessAvailable) { + module.exports = fsAccessImplementation +} else { + module.exports = fsOpenImplementation +} + +// exposed only for testing purposes +module.exports.fsAccessImplementation = fsAccessImplementation +module.exports.fsOpenImplementation = fsOpenImplementation + +function fsAccessImplementation (dir, done) { + done = inflight('writable:' + dir, done) + if (!done) return + fs.access(dir, fs.W_OK, done) +} + +function fsOpenImplementation (dir, done) { + done = inflight('writable:' + dir, done) + if (!done) return + var tmp = path.join(dir, '.npm.check.permissions') + fs.open(tmp, 'w', function (er, fd) { + if (er) return done(accessError(dir, er)) + fs.close(fd, function () { + fs.unlink(tmp, andIgnoreErrors(done)) + }) + }) +} diff --git a/deps/npm/lib/link.js b/deps/npm/lib/link.js index 19c5dd062906e68556a05022acbde2e8cc750bbf..9a62b063384b7eb34f1e1ba2fd7ae2402880b95e 100644 --- a/deps/npm/lib/link.js +++ b/deps/npm/lib/link.js @@ -1,20 +1,21 @@ // link with no args: symlink the folder to the global location // link with package arg: symlink the global to the local -var npm = require("./npm.js") - , symlink = require("./utils/link.js") - , fs = require("graceful-fs") - , log = require("npmlog") - , asyncMap = require("slide").asyncMap - , chain = require("slide").chain - , path = require("path") - , build = require("./build.js") - , npa = require("npm-package-arg") +var npm = require('./npm.js') +var symlink = require('./utils/link.js') +var fs = require('graceful-fs') +var log = require('npmlog') +var asyncMap = require('slide').asyncMap +var chain = require('slide').chain +var path = require('path') +var build = require('./build.js') +var npa = require('npm-package-arg') module.exports = link -link.usage = "npm link (in package dir)" - + "\nnpm link (link global into local)" +link.usage = 'npm link (in package dir)' + + '\nnpm link [<@scope>/][@]' + + '\n\nalias: npm ln' link.completion = function (opts, cb) { var dir = npm.globalDir @@ -37,30 +38,44 @@ function link (args, cb) { } } - if (npm.config.get("global")) { - return cb(new Error("link should never be --global.\n" - +"Please re-run this command with --local")) + if (npm.config.get('global')) { + return cb(new Error( + 'link should never be --global.\n' + + 'Please re-run this command with --local' + )) } - if (args.length === 1 && args[0] === ".") args = [] + if (args.length === 1 && args[0] === '.') args = [] if (args.length) return linkInstall(args, cb) linkPkg(npm.prefix, cb) } +function parentFolder (id, folder) { + if (id[0] === '@') { + return path.resolve(folder, '..', '..') + } else { + return path.resolve(folder, '..') + } +} + function linkInstall (pkgs, cb) { asyncMap(pkgs, function (pkg, cb) { - var t = path.resolve(npm.globalDir, "..") - , pp = path.resolve(npm.globalDir, pkg) - , rp = null - , target = path.resolve(npm.dir, pkg) + var t = path.resolve(npm.globalDir, '..') + var pp = path.resolve(npm.globalDir, pkg) + var rp = null + var target = path.resolve(npm.dir, pkg) function n (er, data) { if (er) return cb(er, data) - // install returns [ [folder, pkgId], ... ] - // but we definitely installed just one thing. - var d = data.filter(function (d) { return !d[3] }) - var what = npa(d[0][0]) - pp = d[0][1] + // we want the ONE thing that was installed into the global dir + var installed = data.filter(function (info) { + var id = info[0] + var folder = info[1] + return parentFolder(id, folder) === npm.globalDir + }) + var id = installed[0][0] + pp = installed[0][1] + var what = npa(id) pkg = what.name target = path.resolve(npm.dir, pkg) next() @@ -68,7 +83,7 @@ function linkInstall (pkgs, cb) { // if it's a folder, a random not-installed thing, or not a scoped package, // then link or install it first - if (pkg[0] !== "@" && (pkg.indexOf("/") !== -1 || pkg.indexOf("\\") !== -1)) { + if (pkg[0] !== '@' && (pkg.indexOf('/') !== -1 || pkg.indexOf('\\') !== -1)) { return fs.lstat(path.resolve(pkg), function (er, st) { if (er || !st.isDirectory()) { npm.commands.install(t, pkg, n) @@ -82,13 +97,13 @@ function linkInstall (pkgs, cb) { fs.lstat(pp, function (er, st) { if (er) { rp = pp - return npm.commands.install(t, pkg, n) + return npm.commands.install(t, [pkg], n) } else if (!st.isSymbolicLink()) { rp = pp next() } else { return fs.realpath(pp, function (er, real) { - if (er) log.warn("invalid symbolic link", pkg) + if (er) log.warn('invalid symbolic link', pkg) else rp = real next() }) @@ -96,39 +111,44 @@ function linkInstall (pkgs, cb) { }) function next () { - chain - ( [ [function (cb) { - log.verbose("link", "symlinking %s to %s", pp, target) - cb() - }] - , [symlink, pp, target] + if (npm.config.get('dry-run')) return resultPrinter(pkg, pp, target, rp, cb) + chain( + [ + [function (cb) { + log.verbose('link', 'symlinking %s to %s', pp, target) + cb() + }], + [symlink, pp, target], // do not run any scripts - , rp && [build, [target], npm.config.get("global"), build._noLC, true] - , [ resultPrinter, pkg, pp, target, rp ] ] - , cb ) + rp && [build, [target], npm.config.get('global'), build._noLC, true], + [resultPrinter, pkg, pp, target, rp ] + ], + cb + ) } }, cb) } function linkPkg (folder, cb_) { var me = folder || npm.prefix - , readJson = require("read-package-json") + var readJson = require('read-package-json') - log.verbose("linkPkg", folder) + log.verbose('linkPkg', folder) - readJson(path.resolve(me, "package.json"), function (er, d) { + readJson(path.resolve(me, 'package.json'), function (er, d) { function cb (er) { return cb_(er, [[d && d._id, target, null, null]]) } if (er) return cb(er) if (!d.name) { - er = new Error("Package must have a name field to be linked") + er = new Error('Package must have a name field to be linked') return cb(er) } + if (npm.config.get('dry-run')) return resultPrinter(path.basename(me), me, target, cb) var target = path.resolve(npm.globalDir, d.name) symlink(me, target, false, true, function (er) { if (er) return cb(er) - log.verbose("link", "build target", target) + log.verbose('link', 'build target', target) // also install missing dependencies. npm.commands.install(me, [], function (er) { if (er) return cb(er) @@ -144,16 +164,21 @@ function linkPkg (folder, cb_) { } function resultPrinter (pkg, src, dest, rp, cb) { - if (typeof cb !== "function") cb = rp, rp = null + if (typeof cb !== 'function') { + cb = rp + rp = null + } var where = dest - rp = (rp || "").trim() - src = (src || "").trim() + rp = (rp || '').trim() + src = (src || '').trim() // XXX If --json is set, then look up the data from the package.json - if (npm.config.get("parseable")) { + if (npm.config.get('parseable')) { return parseableOutput(dest, rp || src, cb) } if (rp === src) rp = null - console.log(where + " -> " + src + (rp ? " -> " + rp: "")) + log.clearProgress() + console.log(where + ' -> ' + src + (rp ? ' -> ' + rp : '')) + log.showProgress() cb() } @@ -161,10 +186,12 @@ function parseableOutput (dest, rp, cb) { // XXX this should match ls --parseable and install --parseable // look up the data from package.json, format it the same way. // - // link is always effectively "long", since it doesn't help much to + // link is always effectively 'long', since it doesn't help much to // *just* print the target folder. // However, we don't actually ever read the version number, so // the second field is always blank. - console.log(dest + "::" + rp) + log.clearProgress() + console.log(dest + '::' + rp) + log.showProgress() cb() } diff --git a/deps/npm/lib/logout.js b/deps/npm/lib/logout.js index 64635be4decc4c0c7acc57ae9054dd026d0ef91e..c1ac2818ef1837654857fefaae1b10e4f568311b 100644 --- a/deps/npm/lib/logout.js +++ b/deps/npm/lib/logout.js @@ -1,39 +1,34 @@ module.exports = logout -var dezalgo = require("dezalgo") -var log = require("npmlog") +var dezalgo = require('dezalgo') +var log = require('npmlog') -var npm = require("./npm.js") -var mapToRegistry = require("./utils/map-to-registry.js") +var npm = require('./npm.js') +var mapToRegistry = require('./utils/map-to-registry.js') -logout.usage = "npm logout [--registry] [--scope]" +logout.usage = 'npm logout [--registry=] [--scope=<@scope>]' function logout (args, cb) { - npm.spinner.start() cb = dezalgo(cb) - mapToRegistry("/", npm.config, function (err, uri, auth, normalized) { + mapToRegistry('/', npm.config, function (err, uri, auth, normalized) { if (err) return cb(err) if (auth.token) { - log.verbose("logout", "clearing session token for", normalized) + log.verbose('logout', 'clearing session token for', normalized) npm.registry.logout(normalized, { auth: auth }, function (err) { if (err) return cb(err) npm.config.clearCredentialsByURI(normalized) - npm.spinner.stop() - npm.config.save("user", cb) + npm.config.save('user', cb) }) - } - else if (auth.username || auth.password) { - log.verbose("logout", "clearing user credentials for", normalized) + } else if (auth.username || auth.password) { + log.verbose('logout', 'clearing user credentials for', normalized) npm.config.clearCredentialsByURI(normalized) - npm.spinner.stop() - npm.config.save("user", cb) - } - else { + npm.config.save('user', cb) + } else { cb(new Error( - "Not logged in to", normalized + ",", "so can't log out." + 'Not logged in to', normalized + ',', "so can't log out." )) } }) diff --git a/deps/npm/lib/ls.js b/deps/npm/lib/ls.js index c7877b925e6be76efdc86b77027da86ac4266cfa..1854938eb6919a970f2ba9498050460231d0f203 100644 --- a/deps/npm/lib/ls.js +++ b/deps/npm/lib/ls.js @@ -1,4 +1,3 @@ - // show the installed versions of packages // // --parseable creates output like this: @@ -7,74 +6,99 @@ module.exports = exports = ls -var npm = require("./npm.js") - , readInstalled = require("read-installed") - , log = require("npmlog") - , path = require("path") - , archy = require("archy") - , semver = require("semver") - , url = require("url") - , color = require("ansicolors") - , npa = require("npm-package-arg") - -ls.usage = "npm ls" - -ls.completion = require("./utils/completion/installed-deep.js") +var path = require('path') +var url = require('url') +var readPackageTree = require('read-package-tree') +var log = require('npmlog') +var archy = require('archy') +var semver = require('semver') +var color = require('ansicolors') +var npa = require('npm-package-arg') +var iferr = require('iferr') +var npm = require('./npm.js') +var mutateIntoLogicalTree = require('./install/mutate-into-logical-tree.js') +var recalculateMetadata = require('./install/deps.js').recalculateMetadata +var getPackageId = require('./install/get-package-id.js') + +ls.usage = 'npm ls [[<@scope>/] ...]' + + '\n\naliases: list, la, ll' + +ls.completion = require('./utils/completion/installed-deep.js') function ls (args, silent, cb) { - if (typeof cb !== "function") cb = silent, silent = false + if (typeof cb !== 'function') { + cb = silent + silent = false + } + var dir = path.resolve(npm.dir, '..') + readPackageTree(dir, andRecalculateMetadata(iferr(cb, function (physicalTree) { + lsFromTree(dir, physicalTree, args, silent, cb) + }))) +} - var dir = path.resolve(npm.dir, "..") +function andRecalculateMetadata (next) { + return function (er, tree) { + recalculateMetadata(tree || {}, log, next) + } +} - // npm ls 'foo@~1.3' bar 'baz@<2' - if (!args) args = [] - else args = args.map(function (a) { - var p = npa(a) - , name = p.name - , ver = semver.validRange(p.rawSpec) || "" +var lsFromTree = ls.fromTree = function (dir, physicalTree, args, silent, cb) { + if (typeof cb !== 'function') { + cb = silent + silent = false + } - return [ name, ver ] - }) + // npm ls 'foo@~1.3' bar 'baz@<2' + if (!args) { + args = [] + } else { + args = args.map(function (a) { + var p = npa(a) + var name = p.name + var ver = semver.validRange(p.rawSpec) || '' + + return [ name, ver ] + }) + } - var depth = npm.config.get("depth") - var opt = { depth: depth, log: log.warn, dev: true } - readInstalled(dir, opt, function (er, data) { - pruneNestedExtraneous(data) - filterByEnv(data) - var bfs = bfsify(data, args) - , lite = getLite(bfs) - - if (er || silent) return cb(er, data, lite) - - var long = npm.config.get("long") - , json = npm.config.get("json") - , out - if (json) { - var seen = [] - var d = long ? bfs : lite - // the raw data can be circular - out = JSON.stringify(d, function (k, o) { - if (typeof o === "object") { - if (-1 !== seen.indexOf(o)) return "[Circular]" - seen.push(o) - } - return o - }, 2) - } else if (npm.config.get("parseable")) { - out = makeParseable(bfs, long, dir) - } else if (data) { - out = makeArchy(bfs, long, dir) - } - console.log(out) + var data = mutateIntoLogicalTree.asReadInstalled(physicalTree) + + pruneNestedExtraneous(data) + filterByEnv(data) + var bfs = filterFound(bfsify(data), args) + var lite = getLite(bfs) + + if (silent) return cb(null, data, lite) + + var long = npm.config.get('long') + var json = npm.config.get('json') + var out + if (json) { + var seen = [] + var d = long ? bfs : lite + // the raw data can be circular + out = JSON.stringify(d, function (k, o) { + if (typeof o === 'object') { + if (seen.indexOf(o) !== -1) return '[Circular]' + seen.push(o) + } + return o + }, 2) + } else if (npm.config.get('parseable')) { + out = makeParseable(bfs, long, dir) + } else if (data) { + out = makeArchy(bfs, long, dir) + } + console.log(out) - if (args.length && !data._found) process.exitCode = 1 + if (args.length && !data._found) process.exitCode = 1 - // if any errors were found, then complain and exit status 1 - if (lite.problems && lite.problems.length) { - er = lite.problems.join("\n") - } - cb(er, data, lite) - }) + var er + // if any errors were found, then complain and exit status 1 + if (lite.problems && lite.problems.length) { + er = lite.problems.join('\n') + } + cb(er, data, lite) } function pruneNestedExtraneous (data, visited) { @@ -90,15 +114,15 @@ function pruneNestedExtraneous (data, visited) { } function filterByEnv (data) { - var dev = npm.config.get("dev") - var production = npm.config.get("production") - if (dev === production) return + var dev = npm.config.get('dev') || /^dev(elopment)?$/.test(npm.config.get('only')) + var production = npm.config.get('production') || /^prod(uction)?$/.test(npm.config.get('only')) var dependencies = {} var devDependencies = data.devDependencies || [] Object.keys(data.dependencies).forEach(function (name) { var keys = Object.keys(devDependencies) - if (production && keys.indexOf(name) !== -1) return - if (dev && keys.indexOf(name) === -1) return + if (production && !dev && keys.indexOf(name) !== -1) return + if (dev && !production && keys.indexOf(name) === -1) return + if (!dev && keys.indexOf(name) !== -1 && data.dependencies[name].missing) return dependencies[name] = data.dependencies[name] }) data.dependencies = dependencies @@ -111,59 +135,84 @@ function alphasort (a, b) { : a < b ? -1 : 0 } +function isCruft (data) { + return data.extraneous && data.error && data.error.code === 'ENOTDIR' +} + function getLite (data, noname) { var lite = {} - , maxDepth = npm.config.get("depth") + + if (isCruft(data)) return lite + + var maxDepth = npm.config.get('depth') if (!noname && data.name) lite.name = data.name if (data.version) lite.version = data.version if (data.extraneous) { lite.extraneous = true lite.problems = lite.problems || [] - lite.problems.push( "extraneous: " - + data.name + "@" + data.version - + " " + (data.path || "") ) + lite.problems.push('extraneous: ' + getPackageId(data) + ' ' + (data.path || '')) } - if (data._from) + if (data.error && data.path !== path.resolve(npm.globalDir, '..') && + (data.error.code !== 'ENOENT' || noname)) { + lite.invalid = true + lite.problems = lite.problems || [] + var message = data.error.message + lite.problems.push('error in ' + data.path + ': ' + message) + } + + if (data._from) { lite.from = data._from + } - if (data._resolved) + if (data._resolved) { lite.resolved = data._resolved + } if (data.invalid) { lite.invalid = true lite.problems = lite.problems || [] - lite.problems.push( "invalid: " - + data.name + "@" + data.version - + " " + (data.path || "") ) + lite.problems.push('invalid: ' + + getPackageId(data) + + ' ' + (data.path || '')) } if (data.peerInvalid) { lite.peerInvalid = true lite.problems = lite.problems || [] - lite.problems.push( "peer invalid: " - + data.name + "@" + data.version - + " " + (data.path || "") ) + lite.problems.push('peer dep not met: ' + + getPackageId(data) + + ' ' + (data.path || '')) } - if (data.dependencies) { - var deps = Object.keys(data.dependencies) - if (deps.length) lite.dependencies = deps.map(function (d) { + var deps = (data.dependencies && Object.keys(data.dependencies)) || [] + if (deps.length) { + lite.dependencies = deps.map(function (d) { var dep = data.dependencies[d] - if (typeof dep === "string") { + if (dep.missing && !dep.optional) { lite.problems = lite.problems || [] var p if (data.depth > maxDepth) { - p = "max depth reached: " + p = 'max depth reached: ' } else { - p = "missing: " + p = 'missing: ' } - p += d + "@" + dep - + ", required by " - + data.name + "@" + data.version + p += d + '@' + dep.requiredBy + + ', required by ' + + getPackageId(data) lite.problems.push(p) - return [d, { required: dep, missing: true }] + return [d, { required: dep.requiredBy, missing: true }] + } else if (dep.peerMissing) { + lite.problems = lite.problems || [] + dep.peerMissing.forEach(function (missing) { + var pdm = 'peer dep missing: ' + + missing.requires + + ', required by ' + + missing.requiredBy + lite.problems.push(pdm) + }) + return [d, { required: dep, peerMissing: true }] } return [d, getLite(dep, true)] }).reduce(function (deps, d) { @@ -178,7 +227,7 @@ function getLite (data, noname) { return lite } -function bfsify (root, args, current, queue, seen) { +function bfsify (root) { // walk over the data, and turn it from this: // +-- a // | `-- b @@ -188,137 +237,162 @@ function bfsify (root, args, current, queue, seen) { // +-- a // `-- b // which looks nicer - args = args || [] - current = current || root - queue = queue || [] - seen = seen || [root] - var deps = current.dependencies = current.dependencies || {} - Object.keys(deps).forEach(function (d) { - var dep = deps[d] - if (typeof dep !== "object") return - if (seen.indexOf(dep) !== -1) { - if (npm.config.get("parseable") || !npm.config.get("long")) { - delete deps[d] - return - } else { - dep = deps[d] = Object.create(dep) - dep.dependencies = {} + var queue = [root] + var seen = [root] + + while (queue.length) { + var current = queue.shift() + var deps = current.dependencies = current.dependencies || {} + Object.keys(deps).forEach(function (d) { + var dep = deps[d] + if (dep.missing) return + if (seen.indexOf(dep) !== -1) { + if (npm.config.get('parseable') || !npm.config.get('long')) { + delete deps[d] + return + } else { + dep = deps[d] = Object.create(dep) + dep.dependencies = {} + } } - } - queue.push(dep) - seen.push(dep) - }) - - if (!queue.length) { - // if there were args, then only show the paths to found nodes. - return filterFound(root, args) + queue.push(dep) + seen.push(dep) + }) } - return bfsify(root, args, queue.shift(), queue, seen) + + return root } function filterFound (root, args) { if (!args.length) return root var deps = root.dependencies - if (deps) Object.keys(deps).forEach(function (d) { - var dep = filterFound(deps[d], args) - - // see if this one itself matches - var found = false - for (var i = 0; !found && i < args.length; i ++) { - if (d === args[i][0]) { - found = semver.satisfies(dep.version, args[i][1], true) + if (deps) { + Object.keys(deps).forEach(function (d) { + var dep = filterFound(deps[d], args) + if (dep.peerMissing) return + + // see if this one itself matches + var found = false + for (var i = 0; !found && i < args.length; i++) { + if (d === args[i][0]) { + found = semver.satisfies(dep.version, args[i][1], true) + } } - } - // included explicitly - if (found) dep._found = true - // included because a child was included - if (dep._found && !root._found) root._found = 1 - // not included - if (!dep._found) delete deps[d] - }) + // included explicitly + if (found) dep._found = true + // included because a child was included + if (dep._found && !root._found) root._found = 1 + // not included + if (!dep._found) delete deps[d] + }) + } if (!root._found) root._found = false return root } function makeArchy (data, long, dir) { var out = makeArchy_(data, long, dir, 0) - return archy(out, "", { unicode: npm.config.get("unicode") }) + return archy(out, '', { unicode: npm.config.get('unicode') }) } function makeArchy_ (data, long, dir, depth, parent, d) { - if (typeof data === "string") { - if (depth -1 <= npm.config.get("depth")) { + if (data.missing) { + if (depth - 1 <= npm.config.get('depth')) { // just missing - var unmet = "UNMET DEPENDENCY" + var unmet = 'UNMET ' + (data.optional ? 'OPTIONAL ' : '') + 'DEPENDENCY' if (npm.color) { - unmet = color.bgBlack(color.red(unmet)) + if (data.optional) { + unmet = color.bgBlack(color.yellow(unmet)) + } else { + unmet = color.bgBlack(color.red(unmet)) + } } - data = unmet + " " + d + "@" + data + data = unmet + ' ' + d + '@' + data.requiredBy } else { - data = d+"@"+ data + data = d + '@' + data.requiredBy } return data } var out = {} // the top level is a bit special. - out.label = data._id || "" + out.label = data._id || '' if (data._found === true && data._id) { if (npm.color) { - out.label = color.bgBlack(color.yellow(out.label.trim())) + " " + out.label = color.bgBlack(color.yellow(out.label.trim())) + ' ' } else { - out.label = out.label.trim() + " " + out.label = out.label.trim() + ' ' } } - if (data.link) out.label += " -> " + data.link + if (data.link) out.label += ' -> ' + data.link if (data.invalid) { - if (data.realName !== data.name) out.label += " ("+data.realName+")" - var invalid = "invalid" + if (data.realName !== data.name) out.label += ' (' + data.realName + ')' + var invalid = 'invalid' if (npm.color) invalid = color.bgBlack(color.red(invalid)) - out.label += " " + invalid + out.label += ' ' + invalid } if (data.peerInvalid) { - var peerInvalid = "peer invalid" + var peerInvalid = 'peer invalid' if (npm.color) peerInvalid = color.bgBlack(color.red(peerInvalid)) - out.label += " " + peerInvalid + out.label += ' ' + peerInvalid + } + + if (data.peerMissing) { + var peerMissing = 'UNMET PEER DEPENDENCY' + if (npm.color) peerMissing = color.bgBlack(color.red(peerMissing)) + out.label = peerMissing + ' ' + out.label } if (data.extraneous && data.path !== dir) { - var extraneous = "extraneous" + var extraneous = 'extraneous' if (npm.color) extraneous = color.bgBlack(color.green(extraneous)) - out.label += " " + extraneous + out.label += ' ' + extraneous + } + + if (data.error && depth) { + var message = data.error.message + if (message.indexOf('\n')) message = message.slice(0, message.indexOf('\n')) + var error = 'error: ' + message + if (npm.color) error = color.bgRed(color.brightWhite(error)) + out.label += ' ' + error } // add giturl to name@version if (data._resolved) { - var type = npa(data._resolved).type - var isGit = type === 'git' || type === 'hosted' - if (isGit) { - out.label += ' (' + data._resolved + ')' + try { + var type = npa(data._resolved).type + var isGit = type === 'git' || type === 'hosted' + if (isGit) { + out.label += ' (' + data._resolved + ')' + } + } catch (ex) { + // npa threw an exception then it ain't git so whatev } } if (long) { - if (dir === data.path) out.label += "\n" + dir - out.label += "\n" + getExtras(data, dir) + if (dir === data.path) out.label += '\n' + dir + out.label += '\n' + getExtras(data, dir) } else if (dir === data.path) { - if (out.label) out.label += " " + if (out.label) out.label += ' ' out.label += dir } // now all the children. out.nodes = [] - if (depth <= npm.config.get("depth")) { + if (depth <= npm.config.get('depth')) { out.nodes = Object.keys(data.dependencies || {}) - .sort(alphasort).map(function (d) { + .sort(alphasort).filter(function (d) { + return !isCruft(data.dependencies[d]) + }).map(function (d) { return makeArchy_(data.dependencies[d], long, dir, depth + 1, data, d) }) } if (out.nodes.length === 0 && data.path === dir) { - out.nodes = ["(empty)"] + out.nodes = ['(empty)'] } return out @@ -332,16 +406,15 @@ function getExtras (data) { if (data.homepage) extras.push(data.homepage) if (data._from) { var from = data._from - if (from.indexOf(data.name + "@") === 0) { + if (from.indexOf(data.name + '@') === 0) { from = from.substr(data.name.length + 1) } var u = url.parse(from) if (u.protocol) extras.push(from) } - return extras.join("\n") + return extras.join('\n') } - function makeParseable (data, long, dir, depth, parent, d) { depth = depth || 0 @@ -351,36 +424,38 @@ function makeParseable (data, long, dir, depth, parent, d) { return makeParseable(data.dependencies[d], long, dir, depth + 1, data, d) })) .filter(function (x) { return x }) - .join("\n") + .join('\n') } function makeParseable_ (data, long, dir, depth, parent, d) { - if (data.hasOwnProperty("_found") && data._found !== true) return "" - - if (typeof data === "string") { - if (data.depth < npm.config.get("depth")) { - data = npm.config.get("long") - ? path.resolve(parent.path, "node_modules", d) - + ":"+d+"@"+JSON.stringify(data)+":INVALID:MISSING" - : "" + if (data.hasOwnProperty('_found') && data._found !== true) return '' + + if (data.missing) { + if (depth < npm.config.get('depth')) { + data = npm.config.get('long') + ? path.resolve(parent.path, 'node_modules', d) + + ':' + d + '@' + JSON.stringify(data.requiredBy) + ':INVALID:MISSING' + : '' } else { - data = path.resolve(data.path || "", "node_modules", d || "") - + (npm.config.get("long") - ? ":" + d + "@" + JSON.stringify(data) - + ":" // no realpath resolved - + ":MAXDEPTH" - : "") + data = path.resolve(dir || '', 'node_modules', d || '') + + (npm.config.get('long') + ? ':' + d + '@' + JSON.stringify(data.requiredBy) + + ':' + // no realpath resolved + ':MAXDEPTH' + : '') } return data } - if (!npm.config.get("long")) return data.path + if (!npm.config.get('long')) return data.path - return data.path - + ":" + (data._id || "") - + ":" + (data.realPath !== data.path ? data.realPath : "") - + (data.extraneous ? ":EXTRANEOUS" : "") - + (data.invalid ? ":INVALID" : "") - + (data.peerInvalid ? ":PEERINVALID" : "") + return data.path + + ':' + (data._id || '') + + ':' + (data.realPath !== data.path ? data.realPath : '') + + (data.extraneous ? ':EXTRANEOUS' : '') + + (data.error && data.path !== path.resolve(npm.globalDir, '..') ? ':ERROR' : '') + + (data.invalid ? ':INVALID' : '') + + (data.peerInvalid ? ':PEERINVALID' : '') + + (data.peerMissing ? ':PEERINVALID:MISSING' : '') } diff --git a/deps/npm/lib/npm.js b/deps/npm/lib/npm.js index c049d95ba6e24be00638f4c10c7b40fdd022814e..264ad3636e580672b79d0a985301b755d6527d8e 100644 --- a/deps/npm/lib/npm.js +++ b/deps/npm/lib/npm.js @@ -1,469 +1,477 @@ -;(function(){ -// windows: running "npm blah" in this folder will invoke WSH, not node. -if (typeof WScript !== "undefined") { - WScript.echo("npm does not work when run\n" - +"with the Windows Scripting Host\n\n" - +"'cd' to a different directory,\n" - +"or type 'npm.cmd ',\n" - +"or type 'node npm '.") - WScript.quit(1) - return -} - - -var EventEmitter = require("events").EventEmitter - , npm = module.exports = new EventEmitter() - , npmconf = require("./config/core.js") - , log = require("npmlog") - , gfs = require('graceful-fs') - , fs = gfs.gracefulify(require('fs')) - , path = require("path") - , abbrev = require("abbrev") - , which = require("which") - , CachingRegClient = require("./cache/caching-client.js") - , charSpin = require("char-spinner") - -npm.config = { - loaded: false, - get: function() { - throw new Error('npm.load() required') - }, - set: function() { - throw new Error('npm.load() required') +;(function () { + // windows: running 'npm blah' in this folder will invoke WSH, not node. + /*globals WScript*/ + if (typeof WScript !== 'undefined') { + WScript.echo( + 'npm does not work when run\n' + + 'with the Windows Scripting Host\n\n' + + '"cd" to a different directory,\n' + + 'or type "npm.cmd ",\n' + + 'or type "node npm ".' + ) + WScript.quit(1) + return } -} -npm.commands = {} + var gfs = require('graceful-fs') + // Patch the global fs module here at the app level + var fs = gfs.gracefulify(require('fs')) + + var EventEmitter = require('events').EventEmitter + var npm = module.exports = new EventEmitter() + var npmconf = require('./config/core.js') + var log = require('npmlog') + + var path = require('path') + var abbrev = require('abbrev') + var which = require('which') + var CachingRegClient = require('./cache/caching-client.js') + var parseJSON = require('./utils/parse-json.js') + + npm.config = { + loaded: false, + get: function () { + throw new Error('npm.load() required') + }, + set: function () { + throw new Error('npm.load() required') + } + } -npm.rollbacks = [] + npm.commands = {} + + npm.rollbacks = [] -try { - // startup, ok to do this synchronously - var j = JSON.parse(fs.readFileSync( - path.join(__dirname, "../package.json"))+"") - npm.version = j.version -} catch (ex) { try { - log.info("error reading version", ex) - } catch (er) {} - npm.version = ex -} + // startup, ok to do this synchronously + var j = parseJSON(fs.readFileSync( + path.join(__dirname, '../package.json')) + '') + npm.version = j.version + } catch (ex) { + try { + log.info('error reading version', ex) + } catch (er) {} + npm.version = ex + } + + var commandCache = {} -var commandCache = {} // short names for common things - , aliases = { "rm" : "uninstall" - , "r" : "uninstall" - , "un" : "uninstall" - , "unlink" : "uninstall" - , "remove" : "uninstall" - , "rb" : "rebuild" - , "list" : "ls" - , "la" : "ls" - , "ll" : "ls" - , "ln" : "link" - , "i" : "install" - , "isntall" : "install" - , "up" : "update" - , "upgrade" : "update" - , "c" : "config" - , "dist-tags" : "dist-tag" - , "info" : "view" - , "show" : "view" - , "find" : "search" - , "s" : "search" - , "se" : "search" - , "author" : "owner" - , "home" : "docs" - , "issues": "bugs" - , "unstar": "star" // same function - , "apihelp" : "help" - , "login": "adduser" - , "add-user": "adduser" - , "tst": "test" - , "t": "test" - , "find-dupes": "dedupe" - , "ddp": "dedupe" - , "v": "view" - , "verison": "version" - } - - , aliasNames = Object.keys(aliases) - // these are filenames in . - , cmdList = [ "install" - , "uninstall" - , "cache" - , "config" - , "set" - , "get" - , "update" - , "outdated" - , "prune" - , "pack" - , "dedupe" - - , "rebuild" - , "link" - - , "publish" - , "star" - , "stars" - , "tag" - , "adduser" - , "logout" - , "unpublish" - , "owner" - , "access" - , "team" - , "deprecate" - , "shrinkwrap" - - , "help" - , "help-search" - , "ls" - , "search" - , "view" - , "init" - , "version" - , "edit" - , "explore" - , "docs" - , "repo" - , "bugs" - , "faq" - , "root" - , "prefix" - , "bin" - , "whoami" - , "dist-tag" - , "ping" - - , "test" - , "stop" - , "start" - , "restart" - , "run-script" - , "completion" - ] - , plumbing = [ "build" - , "unbuild" - , "xmas" - , "substack" - , "visnup" - ] - , littleGuys = [ "isntall" ] - , fullList = cmdList.concat(aliasNames).filter(function (c) { - return plumbing.indexOf(c) === -1 - }) - , abbrevs = abbrev(fullList) - -// we have our reasons -fullList = npm.fullList = fullList.filter(function (c) { - return littleGuys.indexOf(c) === -1 -}) - -npm.spinner = - { int: null - , started: false - , start: function () { - if (npm.spinner.int) return - var c = npm.config.get("spin") - if (!c) return - var stream = npm.config.get("logstream") - var opt = { tty: c !== "always", stream: stream } - opt.cleanup = !npm.spinner.started - npm.spinner.int = charSpin(opt) - npm.spinner.started = true - } - , stop: function () { - clearInterval(npm.spinner.int) - npm.spinner.int = null - } + var aliases = { + 'rm': 'uninstall', + 'r': 'uninstall', + 'un': 'uninstall', + 'unlink': 'uninstall', + 'remove': 'uninstall', + 'rb': 'rebuild', + 'list': 'ls', + 'la': 'ls', + 'll': 'ls', + 'ln': 'link', + 'i': 'install', + 'isntall': 'install', + 'up': 'update', + 'upgrade': 'update', + 'c': 'config', + 'dist-tags': 'dist-tag', + 'info': 'view', + 'show': 'view', + 'find': 'search', + 's': 'search', + 'se': 'search', + 'author': 'owner', + 'home': 'docs', + 'issues': 'bugs', + 'unstar': 'star', // same function + 'apihelp': 'help', + 'login': 'adduser', + 'add-user': 'adduser', + 'tst': 'test', + 't': 'test', + 'find-dupes': 'dedupe', + 'ddp': 'dedupe', + 'v': 'view', + 'verison': 'version' } -Object.keys(abbrevs).concat(plumbing).forEach(function addCommand (c) { - Object.defineProperty(npm.commands, c, { get : function () { - if (!loaded) throw new Error( - "Call npm.load(config, cb) before using this command.\n"+ - "See the README.md or cli.js for example usage.") - var a = npm.deref(c) - if (c === "la" || c === "ll") { - npm.config.set("long", true) - } - - npm.command = c - if (commandCache[a]) return commandCache[a] + var aliasNames = Object.keys(aliases) - var cmd = require(__dirname+"/"+a+".js") + // these are filenames in . + var cmdList = [ + 'install', + 'uninstall', + 'cache', + 'config', + 'set', + 'get', + 'update', + 'outdated', + 'prune', + 'pack', + 'dedupe', + + 'rebuild', + 'link', + + 'publish', + 'star', + 'stars', + 'tag', + 'adduser', + 'logout', + 'unpublish', + 'owner', + 'access', + 'team', + 'deprecate', + 'shrinkwrap', + + 'help', + 'help-search', + 'ls', + 'search', + 'view', + 'init', + 'version', + 'edit', + 'explore', + 'docs', + 'repo', + 'bugs', + 'faq', + 'root', + 'prefix', + 'bin', + 'whoami', + 'dist-tag', + 'ping', + + 'test', + 'stop', + 'start', + 'restart', + 'run-script', + 'completion' + ] + var plumbing = [ + 'build', + 'unbuild', + 'xmas', + 'substack', + 'visnup' + ] + var littleGuys = [ 'isntall' ] + var fullList = cmdList.concat(aliasNames).filter(function (c) { + return plumbing.indexOf(c) === -1 + }) + var abbrevs = abbrev(fullList) + + // we have our reasons + fullList = npm.fullList = fullList.filter(function (c) { + return littleGuys.indexOf(c) === -1 + }) - commandCache[a] = function () { - var args = Array.prototype.slice.call(arguments, 0) - if (typeof args[args.length - 1] !== "function") { - args.push(defaultCb) + Object.keys(abbrevs).concat(plumbing).forEach(function addCommand (c) { + Object.defineProperty(npm.commands, c, { get: function () { + if (!loaded) { + throw new Error( + 'Call npm.load(config, cb) before using this command.\n' + + 'See the README.md or cli.js for example usage.' + ) } - if (args.length === 1) args.unshift([]) - - npm.registry.version = npm.version - if (!npm.registry.refer) { - npm.registry.refer = [a].concat(args[0]).map(function (arg) { - // exclude anything that might be a URL, path, or private module - // Those things will always have a slash in them somewhere - if (arg && arg.match && arg.match(/\/|\\/)) { - return "[REDACTED]" - } else { - return arg - } - }).filter(function (arg) { - return arg && arg.match - }).join(" ") + var a = npm.deref(c) + if (c === 'la' || c === 'll') { + npm.config.set('long', true) } - cmd.apply(npm, args) - } + npm.command = c + if (commandCache[a]) return commandCache[a] + + var cmd = require(__dirname + '/' + a + '.js') + + commandCache[a] = function () { + var args = Array.prototype.slice.call(arguments, 0) + if (typeof args[args.length - 1] !== 'function') { + args.push(defaultCb) + } + if (args.length === 1) args.unshift([]) + + npm.registry.version = npm.version + if (!npm.registry.refer) { + npm.registry.refer = [a].concat(args[0]).map(function (arg) { + // exclude anything that might be a URL, path, or private module + // Those things will always have a slash in them somewhere + if (arg && arg.match && arg.match(/\/|\\/)) { + return '[REDACTED]' + } else { + return arg + } + }).filter(function (arg) { + return arg && arg.match + }).join(' ') + } + + cmd.apply(npm, args) + } - Object.keys(cmd).forEach(function (k) { - commandCache[a][k] = cmd[k] - }) + Object.keys(cmd).forEach(function (k) { + commandCache[a][k] = cmd[k] + }) - return commandCache[a] - }, enumerable: fullList.indexOf(c) !== -1, configurable: true }) + return commandCache[a] + }, enumerable: fullList.indexOf(c) !== -1, configurable: true }) - // make css-case commands callable via camelCase as well - if (c.match(/\-([a-z])/)) { - addCommand(c.replace(/\-([a-z])/g, function (a, b) { - return b.toUpperCase() - })) - } -}) + // make css-case commands callable via camelCase as well + if (c.match(/\-([a-z])/)) { + addCommand(c.replace(/\-([a-z])/g, function (a, b) { + return b.toUpperCase() + })) + } + }) -function defaultCb (er, data) { - if (er) console.error(er.stack || er.message) - else console.log(data) -} + function defaultCb (er, data) { + log.disableProgress() + if (er) console.error(er.stack || er.message) + else console.log(data) + } -npm.deref = function (c) { - if (!c) return "" - if (c.match(/[A-Z]/)) c = c.replace(/([A-Z])/g, function (m) { - return "-" + m.toLowerCase() - }) - if (plumbing.indexOf(c) !== -1) return c - var a = abbrevs[c] - if (aliases[a]) a = aliases[a] - return a -} - -var loaded = false - , loading = false - , loadErr = null - , loadListeners = [] - -function loadCb (er) { - loadListeners.forEach(function (cb) { - process.nextTick(cb.bind(npm, er, npm)) - }) - loadListeners.length = 0 -} - -npm.load = function (cli, cb_) { - if (!cb_ && typeof cli === "function") cb_ = cli , cli = {} - if (!cb_) cb_ = function () {} - if (!cli) cli = {} - loadListeners.push(cb_) - if (loaded || loadErr) return cb(loadErr) - if (loading) return - loading = true - var onload = true - - function cb (er) { - if (loadErr) return - loadErr = er - if (er) return cb_(er) - if (npm.config.get("force")) { - log.warn("using --force", "I sure hope you know what you are doing.") - } - npm.config.loaded = true - loaded = true - loadCb(loadErr = er) - if (onload = onload && npm.config.get("onload-script")) { - require(onload) - onload = false + npm.deref = function (c) { + if (!c) return '' + if (c.match(/[A-Z]/)) { + c = c.replace(/([A-Z])/g, function (m) { + return '-' + m.toLowerCase() + }) } + if (plumbing.indexOf(c) !== -1) return c + var a = abbrevs[c] + if (aliases[a]) a = aliases[a] + return a } - log.pause() + var loaded = false + var loading = false + var loadErr = null + var loadListeners = [] - load(npm, cli, cb) -} + function loadCb (er) { + loadListeners.forEach(function (cb) { + process.nextTick(cb.bind(npm, er, npm)) + }) + loadListeners.length = 0 + } -function load (npm, cli, cb) { - which(process.argv[0], function (er, node) { - if (!er && node.toUpperCase() !== process.execPath.toUpperCase()) { - log.verbose("node symlink", node) - process.execPath = node - process.installPrefix = path.resolve(node, "..", "..") + npm.load = function (cli, cb_) { + if (!cb_ && typeof cli === 'function') { + cb_ = cli + cli = {} } - - // look up configs - //console.error("about to look up configs") - - var builtin = path.resolve(__dirname, "..", "npmrc") - npmconf.load(cli, builtin, function (er, config) { - if (er === config) er = null - - npm.config = config - if (er) return cb(er) - - // if the "project" config is not a filename, and we're - // not in global mode, then that means that it collided - // with either the default or effective userland config - if (!config.get("global") - && config.sources.project - && config.sources.project.type !== "ini") { - log.verbose("config" - , "Skipping project config: %s. " - + "(matches userconfig)" - , config.localPrefix + "/.npmrc") + if (!cb_) cb_ = function () {} + if (!cli) cli = {} + loadListeners.push(cb_) + if (loaded || loadErr) return cb(loadErr) + if (loading) return + loading = true + var onload = true + + function cb (er) { + if (loadErr) return + loadErr = er + if (er) return cb_(er) + if (npm.config.get('force')) { + log.warn('using --force', 'I sure hope you know what you are doing.') } - - // Include npm-version and node-version in user-agent - var ua = config.get("user-agent") || "" - ua = ua.replace(/\{node-version\}/gi, process.version) - ua = ua.replace(/\{npm-version\}/gi, npm.version) - ua = ua.replace(/\{platform\}/gi, process.platform) - ua = ua.replace(/\{arch\}/gi, process.arch) - config.set("user-agent", ua) - - var color = config.get("color") - - log.level = config.get("loglevel") - log.heading = config.get("heading") || "npm" - log.stream = config.get("logstream") - - switch (color) { - case "always": - log.enableColor() - npm.color = true - break - case false: - log.disableColor() - npm.color = false - break - default: - var tty = require("tty") - if (process.stdout.isTTY) npm.color = true - else if (!tty.isatty) npm.color = true - else if (tty.isatty(1)) npm.color = true - else npm.color = false - break + npm.config.loaded = true + loaded = true + loadCb(loadErr = er) + onload = onload && npm.config.get('onload-script') + if (onload) { + require(onload) + onload = false } + } - log.resume() - - // at this point the configs are all set. - // go ahead and spin up the registry client. - npm.registry = new CachingRegClient(npm.config) - - var umask = npm.config.get("umask") - npm.modes = { exec: 0777 & (~umask) - , file: 0666 & (~umask) - , umask: umask } + log.pause() - var gp = Object.getOwnPropertyDescriptor(config, "globalPrefix") - Object.defineProperty(npm, "globalPrefix", gp) + load(npm, cli, cb) + } - var lp = Object.getOwnPropertyDescriptor(config, "localPrefix") - Object.defineProperty(npm, "localPrefix", lp) + function load (npm, cli, cb) { + which(process.argv[0], function (er, node) { + if (!er && node.toUpperCase() !== process.execPath.toUpperCase()) { + log.verbose('node symlink', node) + process.execPath = node + process.installPrefix = path.resolve(node, '..', '..') + } - return cb(null, npm) + // look up configs + var builtin = path.resolve(__dirname, '..', 'npmrc') + npmconf.load(cli, builtin, function (er, config) { + if (er === config) er = null + + npm.config = config + if (er) return cb(er) + + // if the 'project' config is not a filename, and we're + // not in global mode, then that means that it collided + // with either the default or effective userland config + if (!config.get('global') && + config.sources.project && + config.sources.project.type !== 'ini') { + log.verbose( + 'config', + 'Skipping project config: %s. (matches userconfig)', + config.localPrefix + '/.npmrc' + ) + } + + // Include npm-version and node-version in user-agent + var ua = config.get('user-agent') || '' + ua = ua.replace(/\{node-version\}/gi, process.version) + ua = ua.replace(/\{npm-version\}/gi, npm.version) + ua = ua.replace(/\{platform\}/gi, process.platform) + ua = ua.replace(/\{arch\}/gi, process.arch) + config.set('user-agent', ua) + + var color = config.get('color') + + log.level = config.get('loglevel') + log.heading = config.get('heading') || 'npm' + log.stream = config.get('logstream') + + switch (color) { + case 'always': + log.enableColor() + npm.color = true + break + case false: + log.disableColor() + npm.color = false + break + default: + var tty = require('tty') + if (process.stdout.isTTY) npm.color = true + else if (!tty.isatty) npm.color = true + else if (tty.isatty(1)) npm.color = true + else npm.color = false + break + } + + log.resume() + + if (config.get('progress')) { + log.enableProgress() + } else { + log.disableProgress() + } + + // at this point the configs are all set. + // go ahead and spin up the registry client. + npm.registry = new CachingRegClient(npm.config) + + var umask = npm.config.get('umask') + npm.modes = { + exec: parseInt('0777', 8) & (~umask), + file: parseInt('0666', 8) & (~umask), + umask: umask + } + + var gp = Object.getOwnPropertyDescriptor(config, 'globalPrefix') + Object.defineProperty(npm, 'globalPrefix', gp) + + var lp = Object.getOwnPropertyDescriptor(config, 'localPrefix') + Object.defineProperty(npm, 'localPrefix', lp) + + return cb(null, npm) + }) }) - }) -} + } -Object.defineProperty(npm, "prefix", - { get : function () { - return npm.config.get("global") ? npm.globalPrefix : npm.localPrefix - } - , set : function (r) { - var k = npm.config.get("global") ? "globalPrefix" : "localPrefix" - return npm[k] = r - } - , enumerable : true - }) + Object.defineProperty(npm, 'prefix', + { get: function () { + return npm.config.get('global') ? npm.globalPrefix : npm.localPrefix + }, + set: function (r) { + var k = npm.config.get('global') ? 'globalPrefix' : 'localPrefix' + npm[k] = r + return r + }, + enumerable: true + }) -Object.defineProperty(npm, "bin", - { get : function () { - if (npm.config.get("global")) return npm.globalBin - return path.resolve(npm.root, ".bin") - } - , enumerable : true - }) + Object.defineProperty(npm, 'bin', + { get: function () { + if (npm.config.get('global')) return npm.globalBin + return path.resolve(npm.root, '.bin') + }, + enumerable: true + }) -Object.defineProperty(npm, "globalBin", - { get : function () { - var b = npm.globalPrefix - if (process.platform !== "win32") b = path.resolve(b, "bin") - return b - } - }) + Object.defineProperty(npm, 'globalBin', + { get: function () { + var b = npm.globalPrefix + if (process.platform !== 'win32') b = path.resolve(b, 'bin') + return b + } + }) -Object.defineProperty(npm, "dir", - { get : function () { - if (npm.config.get("global")) return npm.globalDir - return path.resolve(npm.prefix, "node_modules") - } - , enumerable : true - }) + Object.defineProperty(npm, 'dir', + { get: function () { + if (npm.config.get('global')) return npm.globalDir + return path.resolve(npm.prefix, 'node_modules') + }, + enumerable: true + }) -Object.defineProperty(npm, "globalDir", - { get : function () { - return (process.platform !== "win32") - ? path.resolve(npm.globalPrefix, "lib", "node_modules") - : path.resolve(npm.globalPrefix, "node_modules") - } - , enumerable : true - }) + Object.defineProperty(npm, 'globalDir', + { get: function () { + return (process.platform !== 'win32') + ? path.resolve(npm.globalPrefix, 'lib', 'node_modules') + : path.resolve(npm.globalPrefix, 'node_modules') + }, + enumerable: true + }) -Object.defineProperty(npm, "root", - { get : function () { return npm.dir } }) + Object.defineProperty(npm, 'root', + { get: function () { return npm.dir } }) -Object.defineProperty(npm, "cache", - { get : function () { return npm.config.get("cache") } - , set : function (r) { return npm.config.set("cache", r) } - , enumerable : true - }) + Object.defineProperty(npm, 'cache', + { get: function () { return npm.config.get('cache') }, + set: function (r) { return npm.config.set('cache', r) }, + enumerable: true + }) -var tmpFolder -var rand = require("crypto").randomBytes(4).toString("hex") -Object.defineProperty(npm, "tmp", - { get : function () { - if (!tmpFolder) tmpFolder = "npm-" + process.pid + "-" + rand - return path.resolve(npm.config.get("tmp"), tmpFolder) - } - , enumerable : true - }) + var tmpFolder + var rand = require('crypto').randomBytes(4).toString('hex') + Object.defineProperty(npm, 'tmp', + { get: function () { + if (!tmpFolder) tmpFolder = 'npm-' + process.pid + '-' + rand + return path.resolve(npm.config.get('tmp'), tmpFolder) + }, + enumerable: true + }) -// the better to repl you with -Object.getOwnPropertyNames(npm.commands).forEach(function (n) { - if (npm.hasOwnProperty(n) || n === "config") return + // the better to repl you with + Object.getOwnPropertyNames(npm.commands).forEach(function (n) { + if (npm.hasOwnProperty(n) || n === 'config') return - Object.defineProperty(npm, n, { get: function () { - return function () { - var args = Array.prototype.slice.call(arguments, 0) - , cb = defaultCb + Object.defineProperty(npm, n, { get: function () { + return function () { + var args = Array.prototype.slice.call(arguments, 0) + var cb = defaultCb - if (args.length === 1 && Array.isArray(args[0])) { - args = args[0] - } + if (args.length === 1 && Array.isArray(args[0])) { + args = args[0] + } - if (typeof args[args.length - 1] === "function") { - cb = args.pop() + if (typeof args[args.length - 1] === 'function') { + cb = args.pop() + } + npm.commands[n](args, cb) } + }, enumerable: false, configurable: true }) + }) - npm.commands[n](args, cb) - } - }, enumerable: false, configurable: true }) -}) - -if (require.main === module) { - require("../bin/npm-cli.js") -} + if (require.main === module) { + require('../bin/npm-cli.js') + } })() diff --git a/deps/npm/lib/outdated.js b/deps/npm/lib/outdated.js index ab49d109690ee671f7989e6d9e463962795f7ae1..61eb3beb9a3151c712b882f51276ae92ef0e4945 100644 --- a/deps/npm/lib/outdated.js +++ b/deps/npm/lib/outdated.js @@ -16,97 +16,129 @@ packages. module.exports = outdated -outdated.usage = "npm outdated [ [ ...]]" - -outdated.completion = require("./utils/completion/installed-deep.js") - - -var path = require("path") - , readJson = require("read-package-json") - , cache = require("./cache.js") - , asyncMap = require("slide").asyncMap - , npm = require("./npm.js") - , url = require("url") - , color = require("ansicolors") - , styles = require("ansistyles") - , table = require("text-table") - , semver = require("semver") - , os = require("os") - , mapToRegistry = require("./utils/map-to-registry.js") - , npa = require("npm-package-arg") - , readInstalled = require("read-installed") - , long = npm.config.get("long") - , log = require("npmlog") +outdated.usage = 'npm outdated [[<@scope>/] ...]' + +outdated.completion = require('./utils/completion/installed-deep.js') + +var os = require('os') +var url = require('url') +var path = require('path') +var log = require('npmlog') +var readPackageTree = require('read-package-tree') +var readJson = require('read-package-json') +var asyncMap = require('slide').asyncMap +var color = require('ansicolors') +var styles = require('ansistyles') +var table = require('text-table') +var semver = require('semver') +var npa = require('npm-package-arg') +var mutateIntoLogicalTree = require('./install/mutate-into-logical-tree.js') +var cache = require('./cache.js') +var npm = require('./npm.js') +var long = npm.config.get('long') +var mapToRegistry = require('./utils/map-to-registry.js') +var isExtraneous = require('./install/is-extraneous.js') +var recalculateMetadata = require('./install/deps.js').recalculateMetadata + +function uniqName (item) { + return item[0].path + '|' + item[1] + '|' + item[7] +} + +function uniq (list) { + var uniqed = [] + var seen = {} + list.forEach(function (item) { + var name = uniqName(item) + if (seen[name]) return + seen[name] = true + uniqed.push(item) + }) + return uniqed +} + +function andRecalculateMetadata (next) { + return function (er, tree) { + if (er) return next(er) + recalculateMetadata(tree, log, next) + } +} function outdated (args, silent, cb) { - if (typeof cb !== "function") cb = silent, silent = false - var dir = path.resolve(npm.dir, "..") + if (typeof cb !== 'function') { + cb = silent + silent = false + } + var dir = path.resolve(npm.dir, '..') // default depth for `outdated` is 0 (cf. `ls`) - if (npm.config.get("depth") === Infinity) npm.config.set("depth", 0) - - outdated_(args, dir, {}, 0, function (er, list) { - if (!list) list = [] - if (er || silent || list.length === 0) return cb(er, list) - list.sort(function(a, b) { - var aa = a[1].toLowerCase() - , bb = b[1].toLowerCase() - return aa === bb ? 0 - : aa < bb ? -1 : 1 - }) - if (npm.config.get("json")) { - console.log(makeJSON(list)) - } else if (npm.config.get("parseable")) { - console.log(makeParseable(list)) - } else { - var outList = list.map(makePretty) - var outHead = [ "Package" - , "Current" - , "Wanted" - , "Latest" - , "Location" - ] - if (long) outHead.push("Package Type") - var outTable = [outHead].concat(outList) - - if (npm.color) { - outTable[0] = outTable[0].map(function(heading) { - return styles.underline(heading) - }) - } + if (npm.config.get('depth') === Infinity) npm.config.set('depth', 0) + + readPackageTree(dir, andRecalculateMetadata(function (er, tree) { + mutateIntoLogicalTree(tree) + outdated_(args, '', tree, {}, 0, function (er, list) { + list = uniq(list || []).sort(function (aa, bb) { + return aa[0].path.localeCompare(bb[0].path) || + aa[1].localeCompare(bb[1]) + }) + if (er || silent || list.length === 0) return cb(er, list) + log.disableProgress() + if (npm.config.get('json')) { + console.log(makeJSON(list)) + } else if (npm.config.get('parseable')) { + console.log(makeParseable(list)) + } else { + var outList = list.map(makePretty) + var outHead = [ 'Package', + 'Current', + 'Wanted', + 'Latest', + 'Location' + ] + if (long) outHead.push('Package Type') + var outTable = [outHead].concat(outList) + + if (npm.color) { + outTable[0] = outTable[0].map(function (heading) { + return styles.underline(heading) + }) + } - var tableOpts = { align: ["l", "r", "r", "r", "l"] - , stringLength: function(s) { return ansiTrim(s).length } - } - console.log(table(outTable, tableOpts)) - } - cb(null, list) - }) + var tableOpts = { + align: ['l', 'r', 'r', 'r', 'l'], + stringLength: function (s) { return ansiTrim(s).length } + } + console.log(table(outTable, tableOpts)) + } + cb(null, list.map(function (item) { return [item[0].parent.path].concat(item.slice(1, 7)) })) + }) + })) } // [[ dir, dep, has, want, latest, type ]] function makePretty (p) { - var dep = p[1] - , dir = path.resolve(p[0], "node_modules", dep) - , has = p[2] - , want = p[3] - , latest = p[4] - , type = p[6] - - if (!npm.config.get("global")) { + var dep = p[0] + var depname = p[1] + var dir = dep.path + var has = p[2] + var want = p[3] + var latest = p[4] + var type = p[6] + var deppath = p[7] + + if (!npm.config.get('global')) { dir = path.relative(process.cwd(), dir) } - var columns = [ dep - , has || "MISSING" - , want - , latest - , dirToPrettyLocation(dir) + var columns = [ depname, + has || 'MISSING', + want, + latest, + deppath ] if (long) columns[5] = type if (npm.color) { - columns[0] = color[has === want ? "yellow" : "red"](columns[0]) // dep + columns[0] = color[has === want ? 'yellow' : 'red'](columns[0]) // dep columns[2] = color.green(columns[2]) // want columns[3] = color.magenta(columns[3]) // latest columns[4] = color.brightBlack(columns[4]) // dir @@ -117,171 +149,162 @@ function makePretty (p) { } function ansiTrim (str) { - var r = new RegExp("\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|" + - "\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)", "g") - return str.replace(r, "") -} - -function dirToPrettyLocation (dir) { - return dir.replace(/^node_modules[/\\]/, "") - .replace(/[[/\\]node_modules[/\\]/g, " > ") + var r = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' + + '\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g') + return str.replace(r, '') } function makeParseable (list) { return list.map(function (p) { - - var dep = p[1] - , dir = path.resolve(p[0], "node_modules", dep) - , has = p[2] - , want = p[3] - , latest = p[4] - , type = p[6] - - var out = [ dir - , dep + "@" + want - , (has ? (dep + "@" + has) : "MISSING") - , dep + "@" + latest - ] - if (long) out.push(type) - - return out.join(":") + var dep = p[0] + var depname = p[1] + var dir = dep.path + var has = p[2] + var want = p[3] + var latest = p[4] + var type = p[6] + + var out = [ + dir, + depname + '@' + want, + (has ? (depname + '@' + has) : 'MISSING'), + depname + '@' + latest + ] + if (long) out.push(type) + + return out.join(':') }).join(os.EOL) } function makeJSON (list) { var out = {} list.forEach(function (p) { - var dir = path.resolve(p[0], "node_modules", p[1]) - if (!npm.config.get("global")) { + var dep = p[0] + var depname = p[1] + var dir = dep.path + var has = p[2] + var want = p[3] + var latest = p[4] + var type = p[6] + if (!npm.config.get('global')) { dir = path.relative(process.cwd(), dir) } - out[p[1]] = { current: p[2] - , wanted: p[3] - , latest: p[4] - , location: dir + out[depname] = { current: has, + wanted: want, + latest: latest, + location: dir } - if (long) out[p[1]].type = p[6] + if (long) out[depname].type = type }) return JSON.stringify(out, null, 2) } -function outdated_ (args, dir, parentHas, depth, cb) { - // get the deps from package.json, or {:"*"} - // asyncMap over deps: - // shouldHave = cache.add(dep, req).version - // if has === shouldHave then - // return outdated(args, dir/node_modules/dep, parentHas + has) - // else if dep in args or args is empty - // return [dir, dep, has, shouldHave] - - if (depth > npm.config.get("depth")) { +function outdated_ (args, path, tree, parentHas, depth, cb) { + if (!tree.package) tree.package = {} + if (path && tree.package.name) path += ' > ' + tree.package.name + if (!path && tree.package.name) path = tree.package.name + if (depth > npm.config.get('depth')) { return cb(null, []) } - var deps = null var types = {} - readJson(path.resolve(dir, "package.json"), function (er, d) { - d = d || {} - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) - deps = (er) ? true : (d.dependencies || {}) - if (!er) { - Object.keys(deps).forEach(function (k) { - types[k] = "dependencies" - }) - } - - if (npm.config.get("save-dev")) { - deps = d.devDependencies || {} - Object.keys(deps).forEach(function (k) { - types[k] = "devDependencies" - }) + var pkg = tree.package - return next() - } - - if (npm.config.get("save")) { - // remove optional dependencies from dependencies during --save. - Object.keys(d.optionalDependencies || {}).forEach(function (k) { - delete deps[k] - }) - return next() - } + var deps = tree.children.filter(function (child) { return !isExtraneous(child) }) || [] - if (npm.config.get("save-optional")) { - deps = d.optionalDependencies || {} - Object.keys(deps).forEach(function (k) { - types[k] = "optionalDependencies" - }) - return next() - } - - var doUpdate = npm.config.get("dev") || - (!npm.config.get("production") && - !Object.keys(parentHas).length && - !npm.config.get("global")) - - if (!er && d && doUpdate) { - Object.keys(d.devDependencies || {}).forEach(function (k) { - if (!(k in parentHas)) { - deps[k] = d.devDependencies[k] - types[k] = "devDependencies" - } - }) - } - return next() + deps.forEach(function (dep) { + types[dep.package.name] = 'dependencies' }) - var has = null - readInstalled(path.resolve(dir), { dev : true }, function (er, data) { - if (er) { - has = Object.create(parentHas) - return next() - } - var pkgs = Object.keys(data.dependencies) - pkgs = pkgs.filter(function (p) { - return !p.match(/^[\._-]/) + Object.keys(tree.missingDeps).forEach(function (name) { + deps.push({ + package: { name: name }, + path: tree.path, + parent: tree, + isMissing: true }) - asyncMap(pkgs, function (pkg, cb) { - var jsonFile = path.resolve(dir, "node_modules", pkg, "package.json") - readJson(jsonFile, function (er, d) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) - if (d && d.name && d.private) delete deps[d.name] - cb(null, er ? [] : [[d.name, d.version, d._from]]) - }) - }, function (er, pvs) { - if (er) return cb(er) - has = Object.create(parentHas) - pvs.forEach(function (pv) { - has[pv[0]] = { - version: pv[1], - from: pv[2] - } + types[name] = 'dependencies' + }) + + // If we explicitly asked for dev deps OR we didn't ask for production deps + // AND we asked to save dev-deps OR we didn't ask to save anything that's NOT + // dev deps then… + // (All the save checking here is because this gets called from npm-update currently + // and that requires this logic around dev deps.) + // FIXME: Refactor npm update to not be in terms of outdated. + var dev = npm.config.get('dev') || /^dev(elopment)?$/.test(npm.config.get('also')) + var prod = npm.config.get('production') || /^prod(uction)?$/.test(npm.config.get('only')) + if ((dev || !prod) && + (npm.config.get('save-dev') || ( + !npm.config.get('save') && !npm.config.get('save-optional')))) { + Object.keys(tree.missingDevDeps).forEach(function (name) { + deps.push({ + package: { name: name }, + path: tree.path, + parent: tree, + isMissing: true }) + if (!types[name]) { + types[name] = 'devDependencies' + } + }) + } - next() + if (npm.config.get('save-dev')) { + deps = deps.filter(function (dep) { return pkg.devDependencies[dep.package.name] }) + deps.forEach(function (dep) { + types[dep.package.name] = 'devDependencies' }) - }) + } else if (npm.config.get('save')) { + // remove optional dependencies from dependencies during --save. + deps = deps.filter(function (dep) { return !pkg.optionalDependencies[dep.package.name] }) + } else if (npm.config.get('save-optional')) { + deps = deps.filter(function (dep) { return pkg.optionalDependencies[dep.package.name] }) + deps.forEach(function (dep) { + types[dep.package.name] = 'optionalDependencies' + }) + } + var doUpdate = dev || ( + !prod && + !Object.keys(parentHas).length && + !npm.config.get('global') + ) + if (doUpdate) { + Object.keys(pkg.devDependencies).forEach(function (k) { + if (!(k in parentHas)) { + deps[k] = pkg.devDependencies[k] + types[k] = 'devDependencies' + } + }) + } - function next () { - if (!has || !deps) return - if (deps === true) { - deps = Object.keys(has).reduce(function (l, r) { - l[r] = "latest" - return l - }, {}) + var has = Object.create(parentHas) + tree.children.forEach(function (child) { + if (child.package.name && child.package.private) { + deps = deps.filter(function (dep) { return dep !== child }) } + has[child.package.name] = { + version: child.package.version, + from: child.package._from + } + }) - // now get what we should have, based on the dep. - // if has[dep] !== shouldHave[dep], then cb with the data - // otherwise dive into the folder - asyncMap(Object.keys(deps), function (dep, cb) { - if (!long) return shouldUpdate(args, dir, dep, has, deps[dep], depth, cb) - - shouldUpdate(args, dir, dep, has, deps[dep], depth, cb, types[dep]) - }, cb) - } + // now get what we should have, based on the dep. + // if has[dep] !== shouldHave[dep], then cb with the data + // otherwise dive into the folder + asyncMap(deps, function (dep, cb) { + var name = dep.package.name + var required = (tree.package.dependencies)[name] || + (tree.package.optionalDependencies)[name] || + (tree.package.devDependencies)[name] || + dep.package._requested && dep.package._requested.spec || + '*' + if (!long) return shouldUpdate(args, dep, name, has, required, depth, path, cb) + + shouldUpdate(args, dep, name, has, required, depth, path, cb, types[name]) + }, cb) } -function shouldUpdate (args, dir, dep, has, req, depth, cb, type) { +function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, cb, type) { // look up the most recent version. // if that's what we already have, or if it's not on the args list, // then dive into it. Otherwise, cb() with the data. @@ -292,31 +315,32 @@ function shouldUpdate (args, dir, dep, has, req, depth, cb, type) { function skip (er) { // show user that no viable version can be found if (er) return cb(er) - outdated_( args - , path.resolve(dir, "node_modules", dep) - , has - , depth + 1 - , cb ) + outdated_(args, + pkgpath, + tree, + has, + depth + 1, + cb) } function doIt (wanted, latest) { if (!long) { - return cb(null, [[ dir, dep, curr && curr.version, wanted, latest, req]]) + return cb(null, [[ tree, dep, curr && curr.version, wanted, latest, req, null, pkgpath]]) } - cb(null, [[ dir, dep, curr && curr.version, wanted, latest, req, type]]) + cb(null, [[ tree, dep, curr && curr.version, wanted, latest, req, type, pkgpath]]) } if (args.length && args.indexOf(dep) === -1) return skip() var parsed = npa(dep + '@' + req) - if (parsed.type === "git" || (parsed.hosted && parsed.hosted.type === "github")) { - return doIt("git", "git") + if (parsed.type === 'git' || parsed.type === 'hosted') { + return doIt('git', 'git') } // search for the latest package mapToRegistry(dep, npm.config, function (er, uri, auth) { if (er) return cb(er) - npm.registry.get(uri, { auth : auth }, updateDeps) + npm.registry.get(uri, { auth: auth }, updateDeps) }) function updateLocalDeps (latestRegistryVersion) { @@ -348,13 +372,14 @@ function shouldUpdate (args, dir, dep, has, req, depth, cb, type) { return updateLocalDeps() } - if (!d || !d["dist-tags"] || !d.versions) return cb() - var l = d.versions[d["dist-tags"].latest] + if (!d || !d['dist-tags'] || !d.versions) return cb() + var l = d.versions[d['dist-tags'].latest] if (!l) return cb() var r = req - if (d["dist-tags"][req]) - r = d["dist-tags"][req] + if (d['dist-tags'][req]) { + r = d['dist-tags'][req] + } if (semver.validRange(r, true)) { // some kind of semver range. @@ -369,11 +394,11 @@ function shouldUpdate (args, dir, dep, has, req, depth, cb, type) { // We didn't find the version in the doc. See if cache can find it. cache.add(dep, req, null, false, onCacheAdd) - function onCacheAdd(er, d) { + function onCacheAdd (er, d) { // if this fails, then it means we can't update this thing. // it's probably a thing that isn't published. if (er) { - if (er.code && er.code === "ETARGET") { + if (er.code && er.code === 'ETARGET') { // no viable version found return skip(er) } @@ -385,14 +410,14 @@ function shouldUpdate (args, dir, dep, has, req, depth, cb, type) { var dFromUrl = d._from && url.parse(d._from).protocol var cFromUrl = curr && curr.from && url.parse(curr.from).protocol - if (!curr || dFromUrl && cFromUrl && d._from !== curr.from - || d.version !== curr.version - || d.version !== l.version) { + if (!curr || + dFromUrl && cFromUrl && d._from !== curr.from || + d.version !== curr.version || + d.version !== l.version) { if (parsed.type === 'local') return updateLocalDeps(l.version) doIt(d.version, l.version) - } - else { + } else { skip() } } diff --git a/deps/npm/lib/owner.js b/deps/npm/lib/owner.js index c9adb792249d75fb8be1ed1a2a830900d8af089e..f32f405dd19e64c7965b10e5c2b2af183bac9417 100644 --- a/deps/npm/lib/owner.js +++ b/deps/npm/lib/owner.js @@ -1,21 +1,21 @@ module.exports = owner -owner.usage = "npm owner add " - + "\nnpm owner rm " - + "\nnpm owner ls " +owner.usage = 'npm owner add [<@scope>/]' + + '\nnpm owner rm [<@scope>/]' + + '\nnpm owner ls [<@scope>/]' -var npm = require("./npm.js") - , log = require("npmlog") - , mapToRegistry = require("./utils/map-to-registry.js") - , readLocalPkg = require("./utils/read-local-package.js") +var npm = require('./npm.js') +var log = require('npmlog') +var mapToRegistry = require('./utils/map-to-registry.js') +var readLocalPkg = require('./utils/read-local-package.js') owner.completion = function (opts, cb) { var argv = opts.conf.argv.remain if (argv.length > 4) return cb() if (argv.length <= 2) { - var subs = ["add", "rm"] - if (opts.partialWord === "l") subs.push("ls") - else subs.push("ls", "list") + var subs = ['add', 'rm'] + if (opts.partialWord === 'l') subs.push('ls') + else subs.push('ls', 'list') return cb(null, subs) } @@ -25,44 +25,45 @@ owner.completion = function (opts, cb) { var un = encodeURIComponent(username) var byUser, theUser switch (argv[2]) { - case "ls": + case 'ls': // FIXME: there used to be registry completion here, but it stopped // making sense somewhere around 50,000 packages on the registry return cb() - case "rm": + case 'rm': if (argv.length > 3) { theUser = encodeURIComponent(argv[3]) - byUser = "-/by-user/" + theUser + "|" + un + byUser = '-/by-user/' + theUser + '|' + un return mapToRegistry(byUser, npm.config, function (er, uri, auth) { if (er) return cb(er) console.error(uri) - npm.registry.get(uri, { auth : auth }, function (er, d) { + npm.registry.get(uri, { auth: auth }, function (er, d) { if (er) return cb(er) // return the intersection return cb(null, d[theUser].filter(function (p) { // kludge for server adminery. - return un === "isaacs" || d[un].indexOf(p) === -1 + return un === 'isaacs' || d[un].indexOf(p) === -1 })) }) }) } // else fallthrough - case "add": + /*eslint no-fallthrough:0*/ + case 'add': if (argv.length > 3) { theUser = encodeURIComponent(argv[3]) - byUser = "-/by-user/" + theUser + "|" + un + byUser = '-/by-user/' + theUser + '|' + un return mapToRegistry(byUser, npm.config, function (er, uri, auth) { if (er) return cb(er) console.error(uri) - npm.registry.get(uri, { auth : auth }, function (er, d) { + npm.registry.get(uri, { auth: auth }, function (er, d) { console.error(uri, er || d) // return mine that they're not already on. if (er) return cb(er) var mine = d[un] || [] - , theirs = d[theUser] || [] + var theirs = d[theUser] || [] return cb(null, mine.filter(function (p) { return theirs.indexOf(p) === -1 })) @@ -70,10 +71,10 @@ owner.completion = function (opts, cb) { }) } // just list all users who aren't me. - return mapToRegistry("-/users", npm.config, function (er, uri, auth) { + return mapToRegistry('-/users', npm.config, function (er, uri, auth) { if (er) return cb(er) - npm.registry.get(uri, { auth : auth }, function (er, list) { + npm.registry.get(uri, { auth: auth }, function (er, list) { if (er) return cb() return cb(null, Object.keys(list).filter(function (n) { return n !== un @@ -90,34 +91,39 @@ owner.completion = function (opts, cb) { function owner (args, cb) { var action = args.shift() switch (action) { - case "ls": case "list": return ls(args[0], cb) - case "add": return add(args[0], args[1], cb) - case "rm": case "remove": return rm(args[0], args[1], cb) + case 'ls': case 'list': return ls(args[0], cb) + case 'add': return add(args[0], args[1], cb) + case 'rm': case 'remove': return rm(args[0], args[1], cb) default: return unknown(action, cb) } } function ls (pkg, cb) { - if (!pkg) return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(owner.usage) - ls(pkg, cb) - }) + if (!pkg) { + return readLocalPkg(function (er, pkg) { + if (er) return cb(er) + if (!pkg) return cb(owner.usage) + ls(pkg, cb) + }) + } mapToRegistry(pkg, npm.config, function (er, uri, auth) { if (er) return cb(er) - npm.registry.get(uri, { auth : auth }, function (er, data) { - var msg = "" + npm.registry.get(uri, { auth: auth }, function (er, data) { + var msg = '' if (er) { - log.error("owner ls", "Couldn't get owner data", pkg) + log.error('owner ls', "Couldn't get owner data", pkg) return cb(er) } var owners = data.maintainers - if (!owners || !owners.length) msg = "admin party!" - else msg = owners.map(function (o) { - return o.name + " <" + o.email + ">" - }).join("\n") + if (!owners || !owners.length) { + msg = 'admin party!' + } else { + msg = owners.map(function (o) { + return o.name + ' <' + o.email + '>' + }).join('\n') + } console.log(msg) cb(er, owners) }) @@ -126,20 +132,24 @@ function ls (pkg, cb) { function add (user, pkg, cb) { if (!user) return cb(owner.usage) - if (!pkg) return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(new Error(owner.usage)) - add(user, pkg, cb) - }) + if (!pkg) { + return readLocalPkg(function (er, pkg) { + if (er) return cb(er) + if (!pkg) return cb(new Error(owner.usage)) + add(user, pkg, cb) + }) + } - log.verbose("owner add", "%s to %s", user, pkg) + log.verbose('owner add', '%s to %s', user, pkg) mutate(pkg, user, function (u, owners) { if (!owners) owners = [] - for (var i = 0, l = owners.length; i < l; i ++) { + for (var i = 0, l = owners.length; i < l; i++) { var o = owners[i] if (o.name === u.name) { - log.info( "owner add" - , "Already a package owner: " + o.name + " <" + o.email + ">") + log.info( + 'owner add', + 'Already a package owner: ' + o.name + ' <' + o.email + '>' + ) return false } } @@ -149,58 +159,69 @@ function add (user, pkg, cb) { } function rm (user, pkg, cb) { - if (!pkg) return readLocalPkg(function (er, pkg) { - if (er) return cb(er) - if (!pkg) return cb(new Error(owner.usage)) - rm(user, pkg, cb) - }) + if (!pkg) { + return readLocalPkg(function (er, pkg) { + if (er) return cb(er) + if (!pkg) return cb(new Error(owner.usage)) + rm(user, pkg, cb) + }) + } - log.verbose("owner rm", "%s from %s", user, pkg) + log.verbose('owner rm', '%s from %s', user, pkg) mutate(pkg, user, function (u, owners) { var found = false - , m = owners.filter(function (o) { - var match = (o.name === user) - found = found || match - return !match - }) + var m = owners.filter(function (o) { + var match = (o.name === user) + found = found || match + return !match + }) + if (!found) { - log.info("owner rm", "Not a package owner: " + user) + log.info('owner rm', 'Not a package owner: ' + user) return false } - if (!m.length) return new Error( - "Cannot remove all owners of a package. Add someone else first.") + + if (!m.length) { + return new Error( + 'Cannot remove all owners of a package. Add someone else first.' + ) + } + return m }, cb) } function mutate (pkg, user, mutation, cb) { if (user) { - var byUser = "-/user/org.couchdb.user:" + user + var byUser = '-/user/org.couchdb.user:' + user mapToRegistry(byUser, npm.config, function (er, uri, auth) { if (er) return cb(er) - npm.registry.get(uri, { auth : auth }, mutate_) + npm.registry.get(uri, { auth: auth }, mutate_) }) } else { mutate_(null, null) } function mutate_ (er, u) { - if (!er && user && (!u || u.error)) er = new Error( - "Couldn't get user data for " + user + ": " + JSON.stringify(u)) + if (!er && user && (!u || u.error)) { + er = new Error( + "Couldn't get user data for " + user + ': ' + JSON.stringify(u) + ) + } if (er) { - log.error("owner mutate", "Error getting user data for %s", user) + log.error('owner mutate', 'Error getting user data for %s', user) return cb(er) } - if (u) u = { "name" : u.name, "email" : u.email } + if (u) u = { name: u.name, email: u.email } mapToRegistry(pkg, npm.config, function (er, uri, auth) { if (er) return cb(er) - npm.registry.get(uri, { auth : auth }, function (er, data) { + npm.registry.get(uri, { auth: auth }, function (er, data) { if (er) { - log.error("owner mutate", "Error getting package data for %s", pkg) + log.error('owner mutate', 'Error getting package data for %s', pkg) return cb(er) } @@ -213,32 +234,30 @@ function mutate (pkg, user, mutation, cb) { if (m instanceof Error) return cb(m) // error data = { - _id : data._id, - _rev : data._rev, - maintainers : m + _id: data._id, + _rev: data._rev, + maintainers: m } - var dataPath = pkg.replace("/", "%2f") + "/-rev/" + data._rev + var dataPath = pkg.replace('/', '%2f') + '/-rev/' + data._rev mapToRegistry(dataPath, npm.config, function (er, uri, auth) { if (er) return cb(er) var params = { - method : "PUT", - body : data, - auth : auth + method: 'PUT', + body: data, + auth: auth } npm.registry.request(uri, params, function (er, data) { if (!er && data.error) { - er = new Error("Failed to update package metadata: "+JSON.stringify(data)) + er = new Error('Failed to update package metadata: ' + JSON.stringify(data)) } if (er) { - log.error("owner mutate", "Failed to update package metadata") - } - else if (m.length > beforeMutation) { - console.log("+ %s (%s)", user, pkg) - } - else if (m.length < beforeMutation) { - console.log("- %s (%s)", user, pkg) + log.error('owner mutate', 'Failed to update package metadata') + } else if (m.length > beforeMutation) { + console.log('+ %s (%s)', user, pkg) + } else if (m.length < beforeMutation) { + console.log('- %s (%s)', user, pkg) } cb(er, data) @@ -250,5 +269,5 @@ function mutate (pkg, user, mutation, cb) { } function unknown (action, cb) { - cb("Usage: \n" + owner.usage) + cb('Usage: \n' + owner.usage) } diff --git a/deps/npm/lib/pack.js b/deps/npm/lib/pack.js index a5ce90094f6a3ae31494adac6b3ea8f623bc8be3..d596dd034b9b39f1b613bfa6b4e319189ce218a5 100644 --- a/deps/npm/lib/pack.js +++ b/deps/npm/lib/pack.js @@ -4,39 +4,42 @@ module.exports = pack -var npm = require("./npm.js") - , install = require("./install.js") - , cache = require("./cache.js") - , fs = require("graceful-fs") - , chain = require("slide").chain - , path = require("path") - , cwd = process.cwd() - , writeStream = require('fs-write-stream-atomic') - , cachedPackageRoot = require("./cache/cached-package-root.js") +var install = require('./install.js') +var cache = require('./cache.js') +var fs = require('graceful-fs') +var chain = require('slide').chain +var path = require('path') +var cwd = process.cwd() +var writeStream = require('fs-write-stream-atomic') +var cachedPackageRoot = require('./cache/cached-package-root.js') -pack.usage = "npm pack " +pack.usage = 'npm pack [[<@scope>/]...]' // if it can be installed, it can be packed. pack.completion = install.completion function pack (args, silent, cb) { - if (typeof cb !== "function") cb = silent, silent = false + if (typeof cb !== 'function') { + cb = silent + silent = false + } - if (args.length === 0) args = ["."] + if (args.length === 0) args = ['.'] - chain(args.map(function (arg) { return function (cb) { - pack_(arg, cb) - }}), function (er, files) { - if (er || silent) return cb(er, files) - printFiles(files, cb) - }) + chain( + args.map(function (arg) { return function (cb) { pack_(arg, cb) } }), + function (er, files) { + if (er || silent) return cb(er, files) + printFiles(files, cb) + } + ) } function printFiles (files, cb) { files = files.map(function (file) { return path.relative(cwd, file) }) - console.log(files.join("\n")) + console.log(files.join('\n')) cb() } @@ -47,17 +50,17 @@ function pack_ (pkg, cb) { // scoped packages get special treatment var name = data.name - if (name[0] === "@") name = name.substr(1).replace(/\//g, "-") - var fname = name + "-" + data.version + ".tgz" + if (name[0] === '@') name = name.substr(1).replace(/\//g, '-') + var fname = name + '-' + data.version + '.tgz' - var cached = path.join(cachedPackageRoot(data), "package.tgz") - , from = fs.createReadStream(cached) - , to = writeStream(fname) - , errState = null + var cached = path.join(cachedPackageRoot(data), 'package.tgz') + var from = fs.createReadStream(cached) + var to = writeStream(fname) + var errState = null - from.on("error", cb_) - to.on("error", cb_) - to.on("close", cb_) + from.on('error', cb_) + to.on('error', cb_) + to.on('close', cb_) from.pipe(to) function cb_ (er) { diff --git a/deps/npm/lib/prefix.js b/deps/npm/lib/prefix.js index e002edea155d12f43031a653b5611b0255607cbf..42f61103f64a2e52e3da459c8a6268878a43eb0f 100644 --- a/deps/npm/lib/prefix.js +++ b/deps/npm/lib/prefix.js @@ -1,11 +1,14 @@ module.exports = prefix -var npm = require("./npm.js") +var npm = require('./npm.js') -prefix.usage = "npm prefix\nnpm prefix -g\n(just prints the prefix folder)" +prefix.usage = 'npm prefix [-g]' function prefix (args, silent, cb) { - if (typeof cb !== "function") cb = silent, silent = false + if (typeof cb !== 'function') { + cb = silent + silent = false + } if (!silent) console.log(npm.prefix) process.nextTick(cb.bind(this, null, npm.prefix)) } diff --git a/deps/npm/lib/prune.js b/deps/npm/lib/prune.js index edba876013580b43e36c3440c225aad57125cbd6..46373742f59afd336b0e827bc7c1dd08dc1948d1 100644 --- a/deps/npm/lib/prune.js +++ b/deps/npm/lib/prune.js @@ -2,28 +2,28 @@ module.exports = prune -prune.usage = "npm prune" +prune.usage = 'npm prune [[<@scope>/]...] [--production]' -var readInstalled = require("read-installed") - , npm = require("./npm.js") - , path = require("path") - , readJson = require("read-package-json") - , log = require("npmlog") +var readInstalled = require('read-installed') +var npm = require('./npm.js') +var path = require('path') +var readJson = require('read-package-json') +var log = require('npmlog') -prune.completion = require("./utils/completion/installed-deep.js") +prune.completion = require('./utils/completion/installed-deep.js') function prune (args, cb) { - //check if is a valid package.json file - var jsonFile = path.resolve(npm.dir, "..", "package.json" ) + // check if is a valid package.json file + var jsonFile = path.resolve(npm.dir, '..', 'package.json') readJson(jsonFile, log.warn, function (er) { if (er) return cb(er) next() }) - function next() { + function next () { var opt = { - depth: npm.config.get("depth"), - dev: !npm.config.get("production") || npm.config.get("dev") + depth: npm.config.get('depth'), + dev: !npm.config.get('production') || npm.config.get('dev') } readInstalled(npm.prefix, opt, function (er, data) { if (er) return cb(er) @@ -39,11 +39,9 @@ function prune_ (args, data, cb) { function prunables (args, data, seen) { var deps = data.dependencies || {} return Object.keys(deps).map(function (d) { - if (typeof deps[d] !== "object" - || seen.indexOf(deps[d]) !== -1) return null + if (typeof deps[d] !== 'object' || seen.indexOf(deps[d]) !== -1) return null seen.push(deps[d]) - if (deps[d].extraneous - && (args.length === 0 || args.indexOf(d) !== -1)) { + if (deps[d].extraneous && (args.length === 0 || args.indexOf(d) !== -1)) { var extra = deps[d] delete deps[d] return extra.path @@ -51,6 +49,6 @@ function prunables (args, data, seen) { return prunables(args, deps[d], seen) }).filter(function (d) { return d !== null }) .reduce(function FLAT (l, r) { - return l.concat(Array.isArray(r) ? r.reduce(FLAT,[]) : r) + return l.concat(Array.isArray(r) ? r.reduce(FLAT, []) : r) }, []) } diff --git a/deps/npm/lib/publish.js b/deps/npm/lib/publish.js index 8f1c73c3c98fe59b2d925d51ad683f3e4559b32a..45de4f24b40ef989ce0023732c45c6d87dab7c7e 100644 --- a/deps/npm/lib/publish.js +++ b/deps/npm/lib/publish.js @@ -1,23 +1,22 @@ module.exports = publish -var npm = require("./npm.js") - , log = require("npmlog") - , path = require("path") - , readJson = require("read-package-json") - , lifecycle = require("./utils/lifecycle.js") - , chain = require("slide").chain - , mapToRegistry = require("./utils/map-to-registry.js") - , cachedPackageRoot = require("./cache/cached-package-root.js") - , createReadStream = require("graceful-fs").createReadStream - , npa = require("npm-package-arg") - , semver = require('semver') - , getPublishConfig = require("./utils/get-publish-config.js") - -publish.usage = "npm publish [--tag ]" - + "\nnpm publish [--tag ]" - + "\n\nPublishes '.' if no argument supplied" - + "\n\nSets tag `latest` if no --tag specified" +var npm = require('./npm.js') +var log = require('npmlog') +var path = require('path') +var readJson = require('read-package-json') +var lifecycle = require('./utils/lifecycle.js') +var chain = require('slide').chain +var mapToRegistry = require('./utils/map-to-registry.js') +var cachedPackageRoot = require('./cache/cached-package-root.js') +var createReadStream = require('graceful-fs').createReadStream +var npa = require('npm-package-arg') +var semver = require('semver') +var getPublishConfig = require('./utils/get-publish-config.js') + +publish.usage = 'npm publish [|] [--tag ] [--access ]' + + "\n\nPublishes '.' if no argument supplied" + + '\n\nSets tag `latest` if no --tag specified' publish.completion = function (opts, cb) { // publish can complete to a folder with a package.json @@ -27,29 +26,29 @@ publish.completion = function (opts, cb) { } function publish (args, isRetry, cb) { - if (typeof cb !== "function") { + if (typeof cb !== 'function') { cb = isRetry isRetry = false } - if (args.length === 0) args = ["."] + if (args.length === 0) args = ['.'] if (args.length !== 1) return cb(publish.usage) - log.verbose("publish", args) + log.verbose('publish', args) var t = npm.config.get('tag').trim() if (semver.validRange(t)) { - var er = new Error("Tag name must not be a valid SemVer range: " + t) + var er = new Error('Tag name must not be a valid SemVer range: ' + t) return cb(er) } var arg = args[0] // if it's a local folder, then run the prepublish there, first. - readJson(path.resolve(arg, "package.json"), function (er, data) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) + readJson(path.resolve(arg, 'package.json'), function (er, data) { + if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) if (data) { - if (!data.name) return cb(new Error("No name provided")) - if (!data.version) return cb(new Error("No version provided")) + if (!data.name) return cb(new Error('No name provided')) + if (!data.version) return cb(new Error('No version provided')) } // Error is OK. Could be publishing a URL or tarball, however, that means @@ -61,26 +60,29 @@ function publish (args, isRetry, cb) { } // didPre in this case means that we already ran the prepublish script, -// and that the "dir" is an actual directory, and not something silly +// and that the 'dir' is an actual directory, and not something silly // like a tarball or name@version thing. // That means that we can run publish/postpublish in the dir, rather than // in the cache dir. function cacheAddPublish (dir, didPre, isRetry, cb) { npm.commands.cache.add(dir, null, null, false, function (er, data) { if (er) return cb(er) - log.silly("publish", data) - var cachedir = path.resolve(cachedPackageRoot(data), "package") - chain([ !didPre && - [lifecycle, data, "prepublish", cachedir] - , [publish_, dir, data, isRetry, cachedir] - , [lifecycle, data, "publish", didPre ? dir : cachedir] - , [lifecycle, data, "postpublish", didPre ? dir : cachedir] ] - , cb ) + log.silly('publish', data) + var cachedir = path.resolve(cachedPackageRoot(data), 'package') + chain( + [ + !didPre && [lifecycle, data, 'prepublish', cachedir], + [publish_, dir, data, isRetry, cachedir], + [lifecycle, data, 'publish', didPre ? dir : cachedir], + [lifecycle, data, 'postpublish', didPre ? dir : cachedir] + ], + cb + ) }) } function publish_ (arg, data, isRetry, cachedir, cb) { - if (!data) return cb(new Error("no package.json file found")) + if (!data) return cb(new Error('no package.json file found')) var mappedConfig = getPublishConfig( data.publishConfig, @@ -90,51 +92,52 @@ function publish_ (arg, data, isRetry, cachedir, cb) { var config = mappedConfig.config var registry = mappedConfig.client - data._npmVersion = npm.version + data._npmVersion = npm.version data._nodeVersion = process.versions.node delete data.modules - if (data.private) return cb( - new Error( - "This package has been marked as private\n" + + if (data.private) { + return cb(new Error( + 'This package has been marked as private\n' + "Remove the 'private' field from the package.json to publish it." - ) - ) + )) + } mapToRegistry(data.name, config, function (er, registryURI, auth, registryBase) { if (er) return cb(er) - var tarballPath = cachedir + ".tgz" + var tarballPath = cachedir + '.tgz' // we just want the base registry URL in this case - log.verbose("publish", "registryBase", registryBase) - log.silly("publish", "uploading", tarballPath) + log.verbose('publish', 'registryBase', registryBase) + log.silly('publish', 'uploading', tarballPath) data._npmUser = { - name : auth.username, - email : auth.email + name: auth.username, + email: auth.email } var params = { - metadata : data, - body : createReadStream(tarballPath), - auth : auth + metadata: data, + body: createReadStream(tarballPath), + auth: auth } // registry-frontdoor cares about the access level, which is only // configurable for scoped packages - if (config.get("access")) { - if (!npa(data.name).scope && config.get("access") === "restricted") { + if (config.get('access')) { + if (!npa(data.name).scope && config.get('access') === 'restricted') { return cb(new Error("Can't restrict access to unscoped packages.")) } - params.access = config.get("access") + params.access = config.get('access') } + log.showProgress('publish:' + data._id) registry.publish(registryBase, params, function (er) { - if (er && er.code === "EPUBLISHCONFLICT" && - npm.config.get("force") && !isRetry) { - log.warn("publish", "Forced publish over " + data._id) + if (er && er.code === 'EPUBLISHCONFLICT' && + npm.config.get('force') && !isRetry) { + log.warn('publish', 'Forced publish over ' + data._id) return npm.commands.unpublish([data._id], function (er) { // ignore errors. Use the force. Reach out with your feelings. // but if it fails again, then report the first error. @@ -144,7 +147,8 @@ function publish_ (arg, data, isRetry, cachedir, cb) { // report the unpublish error if this was a retry and unpublish failed if (er && isRetry && isRetry !== true) return cb(isRetry) if (er) return cb(er) - console.log("+ " + data._id) + log.clearProgress() + console.log('+ ' + data._id) cb() }) }) diff --git a/deps/npm/lib/rebuild.js b/deps/npm/lib/rebuild.js index ab372c6ec07c7e7b252c5e81844813721d8db986..0e36c6361efef0ef2aaa3629a9fe4ad701a17125 100644 --- a/deps/npm/lib/rebuild.js +++ b/deps/npm/lib/rebuild.js @@ -1,27 +1,27 @@ module.exports = rebuild -var readInstalled = require("read-installed") - , semver = require("semver") - , log = require("npmlog") - , npm = require("./npm.js") - , npa = require("npm-package-arg") +var readInstalled = require('read-installed') +var semver = require('semver') +var log = require('npmlog') +var npm = require('./npm.js') +var npa = require('npm-package-arg') -rebuild.usage = "npm rebuild [[@] [name[@] ...]]" +rebuild.usage = 'npm rebuild [[<@scope>/]...]' -rebuild.completion = require("./utils/completion/installed-deep.js") +rebuild.completion = require('./utils/completion/installed-deep.js') function rebuild (args, cb) { - var opt = { depth: npm.config.get("depth"), dev: true } + var opt = { depth: npm.config.get('depth'), dev: true } readInstalled(npm.prefix, opt, function (er, data) { - log.info("readInstalled", typeof data) + log.info('readInstalled', typeof data) if (er) return cb(er) var set = filter(data, args) - , folders = Object.keys(set).filter(function (f) { - return f !== npm.prefix - }) + var folders = Object.keys(set).filter(function (f) { + return f !== npm.prefix + }) if (!folders.length) return cb() - log.silly("rebuild set", folders) + log.silly('rebuild set', folders) cleanBuild(folders, set, cb) }) } @@ -29,9 +29,11 @@ function rebuild (args, cb) { function cleanBuild (folders, set, cb) { npm.commands.build(folders, function (er) { if (er) return cb(er) + log.clearProgress() console.log(folders.map(function (f) { - return set[f] + " " + f - }).join("\n")) + return set[f] + ' ' + f + }).join('\n')) + log.showProgress() cb() }) } @@ -45,11 +47,11 @@ function filter (data, args, set, seen) { var pass if (!args.length) pass = true // rebuild everything else if (data.name && data._id) { - for (var i = 0, l = args.length; i < l; i ++) { + for (var i = 0, l = args.length; i < l; i++) { var arg = args[i] - , nv = npa(arg) - , n = nv.name - , v = nv.rawSpec + var nv = npa(arg) + var n = nv.name + var v = nv.rawSpec if (n !== data.name) continue if (!semver.satisfies(data.version, v, true)) continue pass = true @@ -57,7 +59,7 @@ function filter (data, args, set, seen) { } } if (pass && data._id) { - log.verbose("rebuild", "path, id", [data.path, data._id]) + log.verbose('rebuild', 'path, id', [data.path, data._id]) set[data.path] = data._id } // need to also dive through kids, always. @@ -66,7 +68,7 @@ function filter (data, args, set, seen) { Object.keys(data.dependencies || {}).forEach(function (d) { // return var dep = data.dependencies[d] - if (typeof dep === "string") return + if (typeof dep === 'string') return filter(dep, args, set, seen) }) return set diff --git a/deps/npm/lib/repo.js b/deps/npm/lib/repo.js index 1b0454773d74d77190bf2e5d27d47bba94f90f80..4bd200aff91832774ecba529aa89285307d7bfa3 100644 --- a/deps/npm/lib/repo.js +++ b/deps/npm/lib/repo.js @@ -1,18 +1,12 @@ - module.exports = repo -repo.usage = "npm repo " +repo.usage = 'npm repo []' -var npm = require("./npm.js") - , opener = require("opener") - , github = require("github-url-from-git") - , githubUserRepo = require("github-url-from-username-repo") - , path = require("path") - , readJson = require("read-package-json") - , fs = require("fs") - , url_ = require("url") - , mapToRegistry = require("./utils/map-to-registry.js") - , npa = require("npm-package-arg") +var npm = require('./npm.js') +var opener = require('opener') +var hostedGitInfo = require('hosted-git-info') +var url_ = require('url') +var fetchPackageMetadata = require('./fetch-package-metadata.js') repo.completion = function (opts, cb) { // FIXME: there used to be registry completion here, but it stopped making @@ -21,58 +15,37 @@ repo.completion = function (opts, cb) { } function repo (args, cb) { - var n = args.length && npa(args[0]).name || "." - fs.stat(n, function (er, s) { - if (er && er.code === "ENOENT") return callRegistry(n, cb) - else if (er) return cb(er) - if (!s.isDirectory()) return callRegistry(n, cb) - readJson(path.resolve(n, "package.json"), function (er, d) { - if (er) return cb(er) - getUrlAndOpen(d, cb) - }) + var n = args.length ? args[0] : '.' + fetchPackageMetadata(n, '.', function (er, d) { + if (er) return cb(er) + getUrlAndOpen(d, cb) }) } function getUrlAndOpen (d, cb) { var r = d.repository - if (!r) return cb(new Error("no repository")) + if (!r) return cb(new Error('no repository')) // XXX remove this when npm@v1.3.10 from node 0.10 is deprecated // from https://github.com/npm/npm-www/issues/418 - if (githubUserRepo(r.url)) - r.url = githubUserRepo(r.url) + var info = hostedGitInfo.fromUrl(r.url) + var url = info ? info.browse() : unknownHostedUrl(r.url) - var url = (r.url && ~r.url.indexOf("github")) - ? github(r.url) - : nonGithubUrl(r.url) - - if (!url) - return cb(new Error("no repository: could not get url")) - opener(url, { command: npm.config.get("browser") }, cb) -} + if (!url) return cb(new Error('no repository: could not get url')) -function callRegistry (n, cb) { - mapToRegistry(n, npm.config, function (er, uri) { - if (er) return cb(er) - - npm.registry.get(uri + "/latest", { timeout : 3600 }, function (er, d) { - if (er) return cb(er) - getUrlAndOpen(d, cb) - }) - }) + opener(url, { command: npm.config.get('browser') }, cb) } -function nonGithubUrl (url) { +function unknownHostedUrl (url) { try { - var idx = url.indexOf("@") + var idx = url.indexOf('@') if (idx !== -1) { - url = url.slice(idx+1).replace(/:([^\d]+)/, "/$1") + url = url.slice(idx + 1).replace(/:([^\d]+)/, '/$1') } url = url_.parse(url) - var protocol = url.protocol === "https:" - ? "https:" - : "http:" - return protocol + "//" + (url.host || "") + - url.path.replace(/\.git$/, "") - } - catch(e) {} + var protocol = url.protocol === 'https:' + ? 'https:' + : 'http:' + return protocol + '//' + (url.host || '') + + url.path.replace(/\.git$/, '') + } catch(e) {} } diff --git a/deps/npm/lib/restart.js b/deps/npm/lib/restart.js index 69c4b913db62db59f3e568ece97f38e39b946d6d..601249fd6b36b0dd1f780ba62d5a57a8f0e2d001 100644 --- a/deps/npm/lib/restart.js +++ b/deps/npm/lib/restart.js @@ -1 +1 @@ -module.exports = require("./utils/lifecycle.js").cmd("restart") +module.exports = require('./utils/lifecycle.js').cmd('restart') diff --git a/deps/npm/lib/root.js b/deps/npm/lib/root.js index b2f731ed55ae99caced0bc8b0ef90e3372e1ec33..958361d351a4b02183d783b6d22379d4e4a52cfb 100644 --- a/deps/npm/lib/root.js +++ b/deps/npm/lib/root.js @@ -1,11 +1,14 @@ module.exports = root -var npm = require("./npm.js") +var npm = require('./npm.js') -root.usage = "npm root\nnpm root -g\n(just prints the root folder)" +root.usage = 'npm root [-g]' function root (args, silent, cb) { - if (typeof cb !== "function") cb = silent, silent = false + if (typeof cb !== 'function') { + cb = silent + silent = false + } if (!silent) console.log(npm.dir) process.nextTick(cb.bind(this, null, npm.dir)) } diff --git a/deps/npm/lib/run-script.js b/deps/npm/lib/run-script.js index 2c805615a42e3a5f1c5dad74d91f88890f9e019c..8c99c29b82a6d293e9fe976bc8afa39159ada1d7 100644 --- a/deps/npm/lib/run-script.js +++ b/deps/npm/lib/run-script.js @@ -1,13 +1,14 @@ module.exports = runScript -var lifecycle = require("./utils/lifecycle.js") - , npm = require("./npm.js") - , path = require("path") - , readJson = require("read-package-json") - , log = require("npmlog") - , chain = require("slide").chain +var lifecycle = require('./utils/lifecycle.js') +var npm = require('./npm.js') +var path = require('path') +var readJson = require('read-package-json') +var log = require('npmlog') +var chain = require('slide').chain -runScript.usage = "npm run-script [-- ]" +runScript.usage = 'npm run-script [-- ...]' + + '\n\nalias: npm run' runScript.completion = function (opts, cb) { @@ -19,20 +20,19 @@ runScript.completion = function (opts, cb) { if (argv.length === 3) { // either specified a script locally, in which case, done, // or a package, in which case, complete against its scripts - var json = path.join(npm.localPrefix, "package.json") + var json = path.join(npm.localPrefix, 'package.json') return readJson(json, function (er, d) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) + if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) if (er) d = {} var scripts = Object.keys(d.scripts || {}) - console.error("local scripts", scripts) + console.error('local scripts', scripts) if (scripts.indexOf(argv[2]) !== -1) return cb() // ok, try to find out which package it was, then - var pref = npm.config.get("global") ? npm.config.get("prefix") + var pref = npm.config.get('global') ? npm.config.get('prefix') : npm.localPrefix - var pkgDir = path.resolve( pref, "node_modules" - , argv[2], "package.json" ) + var pkgDir = path.resolve(pref, 'node_modules', argv[2], 'package.json') readJson(pkgDir, function (er, d) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) + if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) if (er) d = {} var scripts = Object.keys(d.scripts || {}) return cb(null, scripts) @@ -40,8 +40,8 @@ runScript.completion = function (opts, cb) { }) } - readJson(path.join(npm.localPrefix, "package.json"), function (er, d) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) + readJson(path.join(npm.localPrefix, 'package.json'), function (er, d) { + if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) d = d || {} cb(null, Object.keys(d.scripts || {})) }) @@ -51,23 +51,30 @@ function runScript (args, cb) { if (!args.length) return list(cb) var pkgdir = npm.localPrefix - , cmd = args.shift() + var cmd = args.shift() - readJson(path.resolve(pkgdir, "package.json"), function (er, d) { + readJson(path.resolve(pkgdir, 'package.json'), function (er, d) { if (er) return cb(er) run(d, pkgdir, cmd, args, cb) }) } -function list(cb) { - var json = path.join(npm.localPrefix, "package.json") - var cmdList = [ "publish", "install", "uninstall" - , "test", "stop", "start", "restart", "version" - ].reduce(function (l, p) { - return l.concat(["pre" + p, p, "post" + p]) - }, []) - return readJson(json, function(er, d) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) +function list (cb) { + var json = path.join(npm.localPrefix, 'package.json') + var cmdList = [ + 'publish', + 'install', + 'uninstall', + 'test', + 'stop', + 'start', + 'restart', + 'version' + ].reduce(function (l, p) { + return l.concat(['pre' + p, p, 'post' + p]) + }, []) + return readJson(json, function (er, d) { + if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) if (er) d = {} var allScripts = Object.keys(d.scripts || {}) var scripts = [] @@ -77,37 +84,36 @@ function list(cb) { else runScripts.push(script) }) - if (log.level === "silent") { + if (log.level === 'silent') { return cb(null, allScripts) } - if (npm.config.get("json")) { + if (npm.config.get('json')) { console.log(JSON.stringify(d.scripts || {}, null, 2)) return cb(null, allScripts) } - if (npm.config.get("parseable")) { - allScripts.forEach(function(script) { - console.log(script + ":" + d.scripts[script]) + if (npm.config.get('parseable')) { + allScripts.forEach(function (script) { + console.log(script + ':' + d.scripts[script]) }) return cb(null, allScripts) } - var s = "\n " - var prefix = " " + var s = '\n ' + var prefix = ' ' if (scripts.length) { - console.log("Lifecycle scripts included in %s:", d.name) + console.log('Lifecycle scripts included in %s:', d.name) } - scripts.forEach(function(script) { + scripts.forEach(function (script) { console.log(prefix + script + s + d.scripts[script]) }) if (!scripts.length && runScripts.length) { - console.log("Scripts available in %s via `npm run-script`:", d.name) + console.log('Scripts available in %s via `npm run-script`:', d.name) + } else if (runScripts.length) { + console.log('\navailable via `npm run-script`:') } - else if (runScripts.length) { - console.log("\navailable via `npm run-script`:") - } - runScripts.forEach(function(script) { + runScripts.forEach(function (script) { console.log(prefix + script + s + d.scripts[script]) }) return cb(null, allScripts) @@ -118,38 +124,38 @@ function run (pkg, wd, cmd, args, cb) { if (!pkg.scripts) pkg.scripts = {} var cmds - if (cmd === "restart" && !pkg.scripts.restart) { + if (cmd === 'restart' && !pkg.scripts.restart) { cmds = [ - "prestop", "stop", "poststop", - "restart", - "prestart", "start", "poststart" + 'prestop', 'stop', 'poststop', + 'restart', + 'prestart', 'start', 'poststart' ] } else { if (!pkg.scripts[cmd]) { - if (cmd === "test") { - pkg.scripts.test = "echo \"Error: no test specified\"" - } else if (cmd === "env") { - if (process.platform === "win32") { - log.verbose("run-script using default platform env: SET (Windows)") - pkg.scripts[cmd] = "SET" + if (cmd === 'test') { + pkg.scripts.test = 'echo \'Error: no test specified\'' + } else if (cmd === 'env') { + if (process.platform === 'win32') { + log.verbose('run-script using default platform env: SET (Windows)') + pkg.scripts[cmd] = 'SET' } else { - log.verbose("run-script using default platform env: env (Unix)") - pkg.scripts[cmd] = "env" + log.verbose('run-script using default platform env: env (Unix)') + pkg.scripts[cmd] = 'env' } - } else if (npm.config.get("if-present")) { - return cb(null); + } else if (npm.config.get('if-present')) { + return cb(null) } else { - return cb(new Error("missing script: " + cmd)) + return cb(new Error('missing script: ' + cmd)) } } cmds = [cmd] } if (!cmd.match(/^(pre|post)/)) { - cmds = ["pre"+cmd].concat(cmds).concat("post"+cmd) + cmds = ['pre' + cmd].concat(cmds).concat('post' + cmd) } - log.verbose("run-script", cmds) + log.verbose('run-script', cmds) chain(cmds.map(function (c) { // pass cli arguments after -- to script. if (pkg.scripts[c] && c === cmd) { @@ -164,8 +170,8 @@ function run (pkg, wd, cmd, args, cb) { // join arguments after '--' and pass them to script, // handle special characters such as ', ", ' '. function joinArgs (args) { - var joinedArgs = "" - args.forEach(function(arg) { + var joinedArgs = '' + args.forEach(function (arg) { joinedArgs += ' "' + arg.replace(/"/g, '\\"') + '"' }) return joinedArgs diff --git a/deps/npm/lib/search.js b/deps/npm/lib/search.js index 840bc2f6b785dfb2e233d3e7808fba74bb36a722..a029d62eb18d256bc5d7f2391f3c692ee165112b 100644 --- a/deps/npm/lib/search.js +++ b/deps/npm/lib/search.js @@ -1,17 +1,18 @@ module.exports = exports = search -var npm = require("./npm.js") - , columnify = require("columnify") - , updateIndex = require("./cache/update-index.js") +var npm = require('./npm.js') +var columnify = require('columnify') +var updateIndex = require('./cache/update-index.js') -search.usage = "npm search [some search terms ...]" +search.usage = 'npm search [--long] [search terms ...]' + + '\n\naliases: s, se' search.completion = function (opts, cb) { var compl = {} - , partial = opts.partialWord - , ipartial = partial.toLowerCase() - , plen = partial.length + var partial = opts.partialWord + var ipartial = partial.toLowerCase() + var plen = partial.length // get the batch of data that matches so far. // this is an example of using npm.commands.search programmatically @@ -19,7 +20,7 @@ search.completion = function (opts, cb) { search(opts.conf.argv.remain.slice(2), true, function (er, data) { if (er) return cb(er) Object.keys(data).forEach(function (name) { - data[name].words.split(" ").forEach(function (w) { + data[name].words.split(' ').forEach(function (w) { if (w.toLowerCase().indexOf(ipartial) === 0) { compl[partial + w.substr(plen)] = true } @@ -30,19 +31,25 @@ search.completion = function (opts, cb) { } function search (args, silent, staleness, cb) { - if (typeof cb !== "function") cb = staleness, staleness = 600 - if (typeof cb !== "function") cb = silent, silent = false + if (typeof cb !== 'function') { + cb = staleness + staleness = 600 + } + if (typeof cb !== 'function') { + cb = silent + silent = false + } - var searchopts = npm.config.get("searchopts") - var searchexclude = npm.config.get("searchexclude") + var searchopts = npm.config.get('searchopts') + var searchexclude = npm.config.get('searchexclude') - if (typeof searchopts !== "string") searchopts = "" + if (typeof searchopts !== 'string') searchopts = '' searchopts = searchopts.split(/\s+/) var opts = searchopts.concat(args).map(function (s) { return s.toLowerCase() }).filter(function (s) { return s }) - if (typeof searchexclude === "string") { + if (typeof searchexclude === 'string') { searchexclude = searchexclude.split(/\s+/) } else { searchexclude = [] @@ -73,7 +80,7 @@ function filter (data, args, notArgs) { return Object.keys(data).map(function (d) { return data[d] }).filter(function (d) { - return typeof d === "object" + return typeof d === 'object' }).map(stripData).map(getWords).filter(function (data) { return filterWords(data, args, notArgs) }).reduce(function (l, r) { @@ -83,51 +90,52 @@ function filter (data, args, notArgs) { } function stripData (data) { - return { name: data.name - , description: npm.config.get("description") ? data.description : "" - , maintainers: (data.maintainers || []).map(function (m) { - return "=" + m.name - }) - , url: !Object.keys(data.versions || {}).length ? data.url : null - , keywords: data.keywords || [] - , version: Object.keys(data.versions || {})[0] || [] - , time: data.time - && data.time.modified - && (new Date(data.time.modified).toISOString() - .split("T").join(" ") - .replace(/:[0-9]{2}\.[0-9]{3}Z$/, "")) - .slice(0, -5) // remove time - || "prehistoric" - } + return { + name: data.name, + description: npm.config.get('description') ? data.description : '', + maintainers: (data.maintainers || []).map(function (m) { + return '=' + m.name + }), + url: !Object.keys(data.versions || {}).length ? data.url : null, + keywords: data.keywords || [], + version: Object.keys(data.versions || {})[0] || [], + time: data.time && + data.time.modified && + (new Date(data.time.modified).toISOString() // remove time + .split('T').join(' ') + .replace(/:[0-9]{2}\.[0-9]{3}Z$/, '')) + .slice(0, -5) || + 'prehistoric' + } } function getWords (data) { data.words = [ data.name ] .concat(data.description) .concat(data.maintainers) - .concat(data.url && ("<" + data.url + ">")) + .concat(data.url && ('<' + data.url + '>')) .concat(data.keywords) .map(function (f) { return f && f.trim && f.trim() }) .filter(function (f) { return f }) - .join(" ") + .join(' ') .toLowerCase() return data } function filterWords (data, args, notArgs) { var words = data.words - for (var i = 0, l = args.length; i < l; i ++) { + for (var i = 0, l = args.length; i < l; i++) { if (!match(words, args[i])) return false } - for (i = 0, l = notArgs.length; i < l; i ++) { + for (i = 0, l = notArgs.length; i < l; i++) { if (match(words, notArgs[i])) return false } return true } function match (words, arg) { - if (arg.charAt(0) === "/") { - arg = arg.replace(/\/$/, "") + if (arg.charAt(0) === '/') { + arg = arg.replace(/\/$/, '') arg = new RegExp(arg.substr(1, arg.length - 1)) return words.match(arg) } @@ -135,68 +143,71 @@ function match (words, arg) { } function prettify (data, args) { - var searchsort = (npm.config.get("searchsort") || "NAME").toLowerCase() - , sortField = searchsort.replace(/^\-+/, "") - , searchRev = searchsort.charAt(0) === "-" - , truncate = !npm.config.get("long") + var searchsort = (npm.config.get('searchsort') || 'NAME').toLowerCase() + var sortField = searchsort.replace(/^\-+/, '') + var searchRev = searchsort.charAt(0) === '-' + var truncate = !npm.config.get('long') if (Object.keys(data).length === 0) { - return "No match found for "+(args.map(JSON.stringify).join(" ")) + return 'No match found for ' + (args.map(JSON.stringify).join(' ')) } var lines = Object.keys(data).map(function (d) { // strip keyname return data[d] - }).map(function(dat) { + }).map(function (dat) { dat.author = dat.maintainers delete dat.maintainers dat.date = dat.time delete dat.time return dat - }).map(function(dat) { + }).map(function (dat) { // split keywords on whitespace or , - if (typeof dat.keywords === "string") { + if (typeof dat.keywords === 'string') { dat.keywords = dat.keywords.split(/[,\s]+/) } if (Array.isArray(dat.keywords)) { - dat.keywords = dat.keywords.join(" ") + dat.keywords = dat.keywords.join(' ') } // split author on whitespace or , - if (typeof dat.author === "string") { + if (typeof dat.author === 'string') { dat.author = dat.author.split(/[,\s]+/) } if (Array.isArray(dat.author)) { - dat.author = dat.author.join(" ") + dat.author = dat.author.join(' ') } return dat }) - lines.sort(function(a, b) { + lines.sort(function (a, b) { var aa = a[sortField].toLowerCase() - , bb = b[sortField].toLowerCase() + var bb = b[sortField].toLowerCase() return aa === bb ? 0 : aa < bb ? -1 : 1 }) if (searchRev) lines.reverse() - var columns = npm.config.get("description") - ? ["name", "description", "author", "date", "version", "keywords"] - : ["name", "author", "date", "version", "keywords"] - - var output = columnify(lines, { - include: columns - , truncate: truncate - , config: { - name: { maxWidth: 40, truncate: false, truncateMarker: "" } - , description: { maxWidth: 60 } - , author: { maxWidth: 20 } - , date: { maxWidth: 11 } - , version: { maxWidth: 11 } - , keywords: { maxWidth: Infinity } - } - }) + var columns = npm.config.get('description') + ? ['name', 'description', 'author', 'date', 'version', 'keywords'] + : ['name', 'author', 'date', 'version', 'keywords'] + + var output = columnify( + lines, + { + include: columns, + truncate: truncate, + config: { + name: { maxWidth: 40, truncate: false, truncateMarker: '' }, + description: { maxWidth: 60 }, + author: { maxWidth: 20 }, + date: { maxWidth: 11 }, + version: { maxWidth: 11 }, + keywords: { maxWidth: Infinity } + } + } + ) output = trimToMaxWidth(output) output = highlightSearchTerms(output, args) @@ -204,63 +215,63 @@ function prettify (data, args) { } var colors = [31, 33, 32, 36, 34, 35 ] - , cl = colors.length +var cl = colors.length function addColorMarker (str, arg, i) { var m = i % cl + 1 - , markStart = String.fromCharCode(m) - , markEnd = String.fromCharCode(0) - - if (arg.charAt(0) === "/") { - //arg = arg.replace(/\/$/, "") - return str.replace( new RegExp(arg.substr(1, arg.length - 2), "gi") - , function (bit) { return markStart + bit + markEnd } ) - + var markStart = String.fromCharCode(m) + var markEnd = String.fromCharCode(0) + + if (arg.charAt(0) === '/') { + return str.replace( + new RegExp(arg.substr(1, arg.length - 2), 'gi'), + function (bit) { return markStart + bit + markEnd } + ) } // just a normal string, do the split/map thing var pieces = str.toLowerCase().split(arg.toLowerCase()) - , p = 0 + var p = 0 return pieces.map(function (piece) { piece = str.substr(p, piece.length) - var mark = markStart - + str.substr(p+piece.length, arg.length) - + markEnd + var mark = markStart + + str.substr(p + piece.length, arg.length) + + markEnd p += piece.length + arg.length return piece + mark - }).join("") + }).join('') } function colorize (line) { - for (var i = 0; i < cl; i ++) { + for (var i = 0; i < cl; i++) { var m = i + 1 - var color = npm.color ? "\033["+colors[i]+"m" : "" + var color = npm.color ? '\u001B[' + colors[i] + 'm' : '' line = line.split(String.fromCharCode(m)).join(color) } - var uncolor = npm.color ? "\033[0m" : "" - return line.split("\u0000").join(uncolor) + var uncolor = npm.color ? '\u001B[0m' : '' + return line.split('\u0000').join(uncolor) } -function getMaxWidth() { +function getMaxWidth () { var cols try { - var tty = require("tty") - , stdout = process.stdout + var tty = require('tty') + var stdout = process.stdout cols = !tty.isatty(stdout.fd) ? Infinity : process.stdout.getWindowSize()[0] cols = (cols === 0) ? Infinity : cols } catch (ex) { cols = Infinity } return cols } -function trimToMaxWidth(str) { +function trimToMaxWidth (str) { var maxWidth = getMaxWidth() - return str.split("\n").map(function(line) { + return str.split('\n').map(function (line) { return line.slice(0, maxWidth) - }).join("\n") + }).join('\n') } -function highlightSearchTerms(str, terms) { +function highlightSearchTerms (str, terms) { terms.forEach(function (arg, i) { str = addColorMarker(str, arg, i) }) diff --git a/deps/npm/lib/set.js b/deps/npm/lib/set.js index c83602ec1f6ce352cb391c2a770c03ff7d63257f..b5e7376fbd55f58401e020156d0e75d9a7770b92 100644 --- a/deps/npm/lib/set.js +++ b/deps/npm/lib/set.js @@ -1,13 +1,13 @@ module.exports = set -set.usage = "npm set (See `npm config`)" +set.usage = 'npm set (See `npm config`)' -var npm = require("./npm.js") +var npm = require('./npm.js') set.completion = npm.commands.config.completion function set (args, cb) { if (!args.length) return cb(set.usage) - npm.commands.config(["set"].concat(args), cb) + npm.commands.config(['set'].concat(args), cb) } diff --git a/deps/npm/lib/shrinkwrap.js b/deps/npm/lib/shrinkwrap.js index 03192a3fa47225891d4aa111dfeea6b31992b4e5..2a8cc7a29fa2e81f4aff61850c8f1013d0c4b47e 100644 --- a/deps/npm/lib/shrinkwrap.js +++ b/deps/npm/lib/shrinkwrap.js @@ -3,84 +3,127 @@ module.exports = exports = shrinkwrap -var npm = require("./npm.js") - , log = require("npmlog") - , fs = require("fs") - , writeFileAtomic = require("write-file-atomic") - , path = require("path") - , readJson = require("read-package-json") - , sortedObject = require("sorted-object") +var path = require('path') +var log = require('npmlog') +var writeFileAtomic = require('write-file-atomic') +var iferr = require('iferr') +var readPackageTree = require('read-package-tree') +var validate = require('aproba') +var npm = require('./npm.js') +var recalculateMetadata = require('./install/deps.js').recalculateMetadata +var validatePeerDeps = require('./install/deps.js').validatePeerDeps +var isExtraneous = require('./install/is-extraneous.js') +var isOnlyDev = require('./install/is-dev.js').isOnlyDev +var getPackageId = require('./install/get-package-id.js') -shrinkwrap.usage = "npm shrinkwrap" +shrinkwrap.usage = 'npm shrinkwrap' function shrinkwrap (args, silent, cb) { - if (typeof cb !== "function") cb = silent, silent = false + if (typeof cb !== 'function') { + cb = silent + silent = false + } if (args.length) { - log.warn("shrinkwrap", "doesn't take positional args") + log.warn('shrinkwrap', "doesn't take positional args") } - // https://github.com/npm/npm/issues/7641 - // introduced because `npm ls` can now show dev and prod depenednecy - // trees separately - if (npm.config.get("dev")) { - npm.config.set("production", true) - } - npm.commands.ls([], true, function (er, _, pkginfo) { - if (er) return cb(er) - shrinkwrap_(pkginfo, silent, npm.config.get("dev"), cb) - }) + var dir = path.resolve(npm.dir, '..') + npm.config.set('production', true) + readPackageTree(dir, andRecalculateMetadata(iferr(cb, function (tree) { + var pkginfo = treeToShrinkwrap(tree, !!npm.config.get('dev') || /^dev(elopment)?$/.test(npm.config.get('also'))) + shrinkwrap_(pkginfo, silent, cb) + }))) } -function shrinkwrap_ (pkginfo, silent, dev, cb) { - if (pkginfo.problems) { - return cb(new Error("Problems were encountered\n" - +"Please correct and try again.\n" - +pkginfo.problems.join("\n"))) +function andRecalculateMetadata (next) { + validate('F', arguments) + return function (er, tree) { + validate('EO', arguments) + if (er) return next(er) + recalculateMetadata(tree, log, next) } +} - if (!dev) { - // remove dev deps unless the user does --dev - readJson(path.resolve(npm.prefix, "package.json"), function (er, data) { - if (er) - return cb(er) - if (data.devDependencies) { - Object.keys(data.devDependencies).forEach(function (dep) { - if (data.dependencies && data.dependencies[dep]) { - // do not exclude the dev dependency if it's also listed as a dependency - return - } +function treeToShrinkwrap (tree, dev) { + validate('OB', arguments) + var pkginfo = {} + if (tree.package.name) pkginfo.name = tree.package.name + if (tree.package.version) pkginfo.version = tree.package.version + var problems = [] + if (tree.children.length) { + shrinkwrapDeps(dev, problems, pkginfo.dependencies = {}, tree) + } + if (problems.length) pkginfo.problems = problems + return pkginfo +} - log.warn("shrinkwrap", "Excluding devDependency: %s", dep, data.dependencies) - delete pkginfo.dependencies[dep] - }) - } - save(pkginfo, silent, cb) +function shrinkwrapDeps (dev, problems, deps, tree, seen) { + validate('BAOO', [dev, problems, deps, tree]) + if (!seen) seen = {} + if (seen[tree.path]) return + seen[tree.path] = true + Object.keys(tree.missingDeps).forEach(function (name) { + var invalid = tree.children.filter(function (dep) { return dep.package.name === name })[0] + if (invalid) { + problems.push('invalid: have ' + invalid.package._id + ' (expected: ' + tree.missingDeps[name] + ') ' + invalid.path) + } else { + var topname = getPackageId(tree) + problems.push('missing: ' + name + '@' + tree.package.dependencies[name] + + (topname ? ', required by ' + topname : '')) + } + }) + tree.children.sort(function (aa, bb) { return aa.package.name.localeCompare(bb.package.name) }).forEach(function (child) { + if (!dev && isOnlyDev(child)) { + log.warn('shrinkwrap', 'Excluding devDependency: %s', child.package.name, child.parent.package.dependencies) + return + } + var pkginfo = deps[child.package.name] = {} + pkginfo.version = child.package.version + pkginfo.from = child.package._from + pkginfo.resolved = child.package._resolved + if (isExtraneous(child)) { + problems.push('extraneous: ' + child.package._id + ' ' + child.path) + } + validatePeerDeps(child, function (tree, pkgname, version) { + problems.push('peer invalid: ' + pkgname + '@' + version + + ', required by ' + child.package._id) }) - } else { - save(pkginfo, silent, cb) - } + if (child.children.length) { + shrinkwrapDeps(dev, problems, pkginfo.dependencies = {}, child, seen) + } + }) } +function shrinkwrap_ (pkginfo, silent, cb) { + if (pkginfo.problems) { + return cb(new Error('Problems were encountered\n' + + 'Please correct and try again.\n' + + pkginfo.problems.join('\n'))) + } + + save(pkginfo, silent, cb) +} function save (pkginfo, silent, cb) { // copy the keys over in a well defined order // because javascript objects serialize arbitrarily - pkginfo.dependencies = sortedObject(pkginfo.dependencies || {}) var swdata try { - swdata = JSON.stringify(pkginfo, null, 2) + "\n" + swdata = JSON.stringify(pkginfo, null, 2) + '\n' } catch (er) { - log.error("shrinkwrap", "Error converting package info to json") + log.error('shrinkwrap', 'Error converting package info to json') return cb(er) } - var file = path.resolve(npm.prefix, "npm-shrinkwrap.json") + var file = path.resolve(npm.prefix, 'npm-shrinkwrap.json') writeFileAtomic(file, swdata, function (er) { if (er) return cb(er) if (silent) return cb(null, pkginfo) - console.log("wrote npm-shrinkwrap.json") + log.clearProgress() + console.log('wrote npm-shrinkwrap.json') + log.showProgress() cb(null, pkginfo) }) } diff --git a/deps/npm/lib/star.js b/deps/npm/lib/star.js index 1f324336c0c57f4829c6241f5ec0c6e202b31d3f..29c4037d0cb2b09b84a1b79615fa0e7d20b81e4a 100644 --- a/deps/npm/lib/star.js +++ b/deps/npm/lib/star.js @@ -1,13 +1,12 @@ - module.exports = star -var npm = require("./npm.js") - , log = require("npmlog") - , asyncMap = require("slide").asyncMap - , mapToRegistry = require("./utils/map-to-registry.js") +var npm = require('./npm.js') +var log = require('npmlog') +var asyncMap = require('slide').asyncMap +var mapToRegistry = require('./utils/map-to-registry.js') -star.usage = "npm star [pkg, pkg, ...]\n" - + "npm unstar [pkg, pkg, ...]" +star.usage = 'npm star [...]\n' + + 'npm unstar [...]' star.completion = function (opts, cb) { // FIXME: there used to be registry completion here, but it stopped making @@ -17,22 +16,22 @@ star.completion = function (opts, cb) { function star (args, cb) { if (!args.length) return cb(star.usage) - var s = npm.config.get("unicode") ? "\u2605 " : "(*)" - , u = npm.config.get("unicode") ? "\u2606 " : "( )" - , using = !(npm.command.match(/^un/)) + var s = npm.config.get('unicode') ? '\u2605 ' : '(*)' + var u = npm.config.get('unicode') ? '\u2606 ' : '( )' + var using = !(npm.command.match(/^un/)) if (!using) s = u asyncMap(args, function (pkg, cb) { mapToRegistry(pkg, npm.config, function (er, uri, auth) { if (er) return cb(er) var params = { - starred : using, - auth : auth + starred: using, + auth: auth } npm.registry.star(uri, params, function (er, data, raw, req) { if (!er) { - console.log(s + " "+pkg) - log.verbose("star", data) + console.log(s + ' ' + pkg) + log.verbose('star', data) } cb(er, data, raw, req) }) diff --git a/deps/npm/lib/stars.js b/deps/npm/lib/stars.js index 01ec76e42c1f4ce06a8fe67eb70e9597f5f4f4df..4ad8f02e59dca9e8088707c1ccae72b6735b666c 100644 --- a/deps/npm/lib/stars.js +++ b/deps/npm/lib/stars.js @@ -1,10 +1,10 @@ module.exports = stars -stars.usage = "npm stars [username]" +stars.usage = 'npm stars []' -var npm = require("./npm.js") - , log = require("npmlog") - , mapToRegistry = require("./utils/map-to-registry.js") +var npm = require('./npm.js') +var log = require('npmlog') +var mapToRegistry = require('./utils/map-to-registry.js') function stars (args, cb) { npm.commands.whoami([], true, function (er, username) { @@ -20,12 +20,12 @@ function stars (args, cb) { if (er.code !== 'ENEEDAUTH') return cb(er) } - mapToRegistry("", npm.config, function (er, uri, auth) { + mapToRegistry('', npm.config, function (er, uri, auth) { if (er) return cb(er) var params = { - username : name, - auth : auth + username: name, + auth: auth } npm.registry.stars(uri, params, showstars) }) @@ -35,9 +35,9 @@ function stars (args, cb) { if (er) return cb(er) if (data.rows.length === 0) { - log.warn("stars", "user has not starred any packages.") + log.warn('stars', 'user has not starred any packages.') } else { - data.rows.forEach(function(a) { + data.rows.forEach(function (a) { console.log(a.value) }) } diff --git a/deps/npm/lib/start.js b/deps/npm/lib/start.js index 98823825bb17baeccfa50b7d55ee71a473ff628d..85d61e78d0a43a6037fa00cc986876268849c98d 100644 --- a/deps/npm/lib/start.js +++ b/deps/npm/lib/start.js @@ -1 +1 @@ -module.exports = require("./utils/lifecycle.js").cmd("start") +module.exports = require('./utils/lifecycle.js').cmd('start') diff --git a/deps/npm/lib/stop.js b/deps/npm/lib/stop.js index 8ea5ba6aa61b991bb4f7b95fae1eb52ba9a3dbd4..e4d02ff28165b95776071279a16ae9ea7ae5f143 100644 --- a/deps/npm/lib/stop.js +++ b/deps/npm/lib/stop.js @@ -1 +1 @@ -module.exports = require("./utils/lifecycle.js").cmd("stop") +module.exports = require('./utils/lifecycle.js').cmd('stop') diff --git a/deps/npm/lib/substack.js b/deps/npm/lib/substack.js index 1929f1873849493633f7c6982657aa18c25462ef..c39a5dcc482a8ddb0867474af7ac05456025c164 100644 --- a/deps/npm/lib/substack.js +++ b/deps/npm/lib/substack.js @@ -1,15 +1,16 @@ module.exports = substack -var npm = require("./npm.js") +var npm = require('./npm.js') -var isms = - [ "\033[32mbeep \033[35mboop\033[m" - , "Replace your configs with services" - , "SEPARATE ALL THE CONCERNS!" - , "MODULE ALL THE THINGS!" - , "\\o/" - , "but first, burritos" - , "full time mad scientist here" - , "c/,,\\" ] +var isms = [ + '\u001b[32mbeep \u001b[35mboop\u001b[m', + 'Replace your configs with services', + 'SEPARATE ALL THE CONCERNS!', + 'MODULE ALL THE THINGS!', + '\\o/', + 'but first, burritos', + 'full time mad scientist here', + 'c/,,\\' +] function substack (args, cb) { var i = Math.floor(Math.random() * isms.length) diff --git a/deps/npm/lib/tag.js b/deps/npm/lib/tag.js index 75da0b2174fff720f8d67b4ccf8bc7d178aaf48d..01db4d8ea65b1d0b418879b86e2df537d360d2fb 100644 --- a/deps/npm/lib/tag.js +++ b/deps/npm/lib/tag.js @@ -1,40 +1,41 @@ // turns out tagging isn't very complicated // all the smarts are in the couch. module.exports = tag -tag.usage = "npm tag @ []" +tag.usage = '[DEPRECATED] npm tag @ []' + + '\nSee `dist-tag`' -tag.completion = require("./unpublish.js").completion +tag.completion = require('./unpublish.js').completion -var npm = require("./npm.js") - , mapToRegistry = require("./utils/map-to-registry.js") - , npa = require("npm-package-arg") - , semver = require("semver") - , log = require("npmlog") +var npm = require('./npm.js') +var mapToRegistry = require('./utils/map-to-registry.js') +var npa = require('npm-package-arg') +var semver = require('semver') +var log = require('npmlog') function tag (args, cb) { - var thing = npa(args.shift() || "") - , project = thing.name - , version = thing.rawSpec - , t = args.shift() || npm.config.get("tag") + var thing = npa(args.shift() || '') + var project = thing.name + var version = thing.rawSpec + var t = args.shift() || npm.config.get('tag') t = t.trim() - if (!project || !version || !t) return cb("Usage:\n"+tag.usage) + if (!project || !version || !t) return cb('Usage:\n' + tag.usage) if (semver.validRange(t)) { - var er = new Error("Tag name must not be a valid SemVer range: " + t) + var er = new Error('Tag name must not be a valid SemVer range: ' + t) return cb(er) } - log.warn("tag", "This command is deprecated. Use `npm dist-tag` instead.") + log.warn('tag', 'This command is deprecated. Use `npm dist-tag` instead.') mapToRegistry(project, npm.config, function (er, uri, auth) { if (er) return cb(er) var params = { - version : version, - tag : t, - auth : auth + version: version, + tag: t, + auth: auth } npm.registry.tag(uri, params, cb) }) diff --git a/deps/npm/lib/test.js b/deps/npm/lib/test.js index dd4994cf28d159f8b9c0043a1dae0734982dd0ad..cbc75821708b1211c329ebf0b83f42c99952bf27 100644 --- a/deps/npm/lib/test.js +++ b/deps/npm/lib/test.js @@ -1,12 +1,12 @@ module.exports = test -var testCmd = require("./utils/lifecycle.js").cmd("test") +var testCmd = require('./utils/lifecycle.js').cmd('test') function test (args, cb) { testCmd(args, function (er) { if (!er) return cb() - if (er.code === "ELIFECYCLE") { - return cb("Test failed. See above for more details.") + if (er.code === 'ELIFECYCLE') { + return cb('Test failed. See above for more details.') } return cb(er) }) diff --git a/deps/npm/lib/unbuild.js b/deps/npm/lib/unbuild.js index d5fe0e6a0d1541aaf00ffec93b6ad2196a72fd2c..e6605939de36abd91e13b49f3838ce9f2a8ab8e2 100644 --- a/deps/npm/lib/unbuild.js +++ b/deps/npm/lib/unbuild.js @@ -1,59 +1,70 @@ module.exports = unbuild -unbuild.usage = "npm unbuild \n(this is plumbing)" +module.exports.rmStuff = rmStuff +unbuild.usage = 'npm unbuild \n(this is plumbing)' -var readJson = require("read-package-json") - , gentlyRm = require("./utils/gently-rm.js") - , npm = require("./npm.js") - , path = require("path") - , isInside = require("path-is-inside") - , lifecycle = require("./utils/lifecycle.js") - , asyncMap = require("slide").asyncMap - , chain = require("slide").chain - , log = require("npmlog") - , build = require("./build.js") +var readJson = require('read-package-json') +var gentlyRm = require('./utils/gently-rm.js') +var npm = require('./npm.js') +var path = require('path') +var isInside = require('path-is-inside') +var lifecycle = require('./utils/lifecycle.js') +var asyncMap = require('slide').asyncMap +var chain = require('slide').chain +var log = require('npmlog') +var build = require('./build.js') // args is a list of folders. // remove any bins/etc, and then delete the folder. function unbuild (args, silent, cb) { - if (typeof silent === "function") cb = silent, silent = false + if (typeof silent === 'function') { + cb = silent + silent = false + } asyncMap(args, unbuild_(silent), cb) } -function unbuild_ (silent) { return function (folder, cb_) { - function cb (er) { - cb_(er, path.relative(npm.root, folder)) - } - folder = path.resolve(folder) - var base = isInside(folder, npm.prefix) ? npm.prefix : folder - delete build._didBuild[folder] - log.verbose("unbuild", folder.substr(npm.prefix.length + 1)) - readJson(path.resolve(folder, "package.json"), function (er, pkg) { - // if no json, then just trash it, but no scripts or whatever. - if (er) return gentlyRm(folder, false, base, cb) - chain - ( [ [lifecycle, pkg, "preuninstall", folder, false, true] - , [lifecycle, pkg, "uninstall", folder, false, true] - , !silent && function(cb) { - console.log("unbuild " + pkg._id) +function unbuild_ (silent) { + return function (folder, cb_) { + function cb (er) { + cb_(er, path.relative(npm.root, folder)) + } + folder = path.resolve(folder) + var base = isInside(folder, npm.prefix) ? npm.prefix : folder + delete build._didBuild[folder] + log.verbose('unbuild', folder.substr(npm.prefix.length + 1)) + readJson(path.resolve(folder, 'package.json'), function (er, pkg) { + // if no json, then just trash it, but no scripts or whatever. + if (er) return gentlyRm(folder, false, base, cb) + chain( + [ + [lifecycle, pkg, 'preuninstall', folder, false, true], + [lifecycle, pkg, 'uninstall', folder, false, true], + !silent && function (cb) { + log.clearProgress() + console.log('unbuild ' + pkg._id) + log.showProgress() cb() - } - , [rmStuff, pkg, folder] - , [lifecycle, pkg, "postuninstall", folder, false, true] - , [gentlyRm, folder, false, base] ] - , cb ) - }) -}} + }, + [rmStuff, pkg, folder], + [lifecycle, pkg, 'postuninstall', folder, false, true], + [gentlyRm, folder, false, base] + ], + cb + ) + }) + } +} function rmStuff (pkg, folder, cb) { // if it's global, and folder is in {prefix}/node_modules, // then bins are in {prefix}/bin // otherwise, then bins are in folder/../.bin var parent = path.dirname(folder) - , gnm = npm.dir - , top = gnm === parent + var gnm = npm.dir + var top = gnm === parent - log.verbose("unbuild rmStuff", pkg._id, "from", gnm) - if (!top) log.verbose("unbuild rmStuff", "in", parent) + log.verbose('unbuild rmStuff', pkg._id, 'from', gnm) + if (!top) log.verbose('unbuild rmStuff', 'in', parent) asyncMap([rmBins, rmMans], function (fn, cb) { fn(pkg, folder, parent, top, cb) }, cb) @@ -61,26 +72,26 @@ function rmStuff (pkg, folder, cb) { function rmBins (pkg, folder, parent, top, cb) { if (!pkg.bin) return cb() - var binRoot = top ? npm.bin : path.resolve(parent, ".bin") + var binRoot = top ? npm.bin : path.resolve(parent, '.bin') asyncMap(Object.keys(pkg.bin), function (b, cb) { - if (process.platform === "win32") { - chain([ [gentlyRm, path.resolve(binRoot, b) + ".cmd", true] - , [gentlyRm, path.resolve(binRoot, b), true] ], cb) + if (process.platform === 'win32') { + chain([ [gentlyRm, path.resolve(binRoot, b) + '.cmd', true, folder], + [gentlyRm, path.resolve(binRoot, b), true, folder] ], cb) } else { - gentlyRm(path.resolve(binRoot, b), true, cb) + gentlyRm(path.resolve(binRoot, b), true, folder, cb) } }, cb) } function rmMans (pkg, folder, parent, top, cb) { - if (!pkg.man - || !top - || process.platform === "win32" - || !npm.config.get("global")) { + if (!pkg.man || + !top || + process.platform === 'win32' || + !npm.config.get('global')) { return cb() } - var manRoot = path.resolve(npm.config.get("prefix"), "share", "man") - log.verbose("rmMans", "man files are", pkg.man, "in", manRoot) + var manRoot = path.resolve(npm.config.get('prefix'), 'share', 'man') + log.verbose('rmMans', 'man files are', pkg.man, 'in', manRoot) asyncMap(pkg.man, function (man, cb) { if (Array.isArray(man)) { man.forEach(rmMan) @@ -89,25 +100,25 @@ function rmMans (pkg, folder, parent, top, cb) { } function rmMan (man) { - log.silly("rmMan", "preparing to remove", man) + log.silly('rmMan', 'preparing to remove', man) var parseMan = man.match(/(.*\.([0-9]+)(\.gz)?)$/) if (!parseMan) { log.error( - "rmMan", man, "is not a valid name for a man file.", - "Man files must end with a number, " + - "and optionally a .gz suffix if they are compressed." + 'rmMan', man, 'is not a valid name for a man file.', + 'Man files must end with a number, ' + + 'and optionally a .gz suffix if they are compressed.' ) return cb() } var stem = parseMan[1] var sxn = parseMan[2] - var gz = parseMan[3] || "" + var gz = parseMan[3] || '' var bn = path.basename(stem) var manDest = path.join( manRoot, - "man"+sxn, - (bn.indexOf(pkg.name) === 0 ? bn : pkg.name+"-"+bn)+"."+sxn+gz + 'man' + sxn, + (bn.indexOf(pkg.name) === 0 ? bn : pkg.name + '-' + bn) + '.' + sxn + gz ) gentlyRm(manDest, true, cb) } diff --git a/deps/npm/lib/uninstall.js b/deps/npm/lib/uninstall.js index 600c6819740f77a7c47dee91c050102b00a8fc41..03a0a56303c3d5575f35dc0245a31fd1aefd2efd 100644 --- a/deps/npm/lib/uninstall.js +++ b/deps/npm/lib/uninstall.js @@ -1,128 +1,73 @@ - +'use strict' // remove a package. module.exports = uninstall +module.exports.Uninstaller = Uninstaller -uninstall.usage = "npm uninstall [@ [[@] ...]" - + "\nnpm rm [@ [[@] ...]" +uninstall.usage = 'npm uninstall [<@scope>/][@]... [--save|--save-dev|--save-optional]' + + '\n\naliases: remove, rm, r, un, unlink' -uninstall.completion = require("./utils/completion/installed-shallow.js") +var util = require('util') +var path = require('path') +var validate = require('aproba') +var chain = require('slide').chain +var readJson = require('read-package-json') +var npm = require('./npm.js') +var Installer = require('./install.js').Installer +var getSaveType = require('./install/save.js').getSaveType +var removeDeps = require('./install/deps.js').removeDeps +var loadExtraneous = require('./install/deps.js').loadExtraneous +var log = require('npmlog') -var fs = require("graceful-fs") - , writeFileAtomic = require("write-file-atomic") - , log = require("npmlog") - , readJson = require("read-package-json") - , path = require("path") - , npm = require("./npm.js") - , asyncMap = require("slide").asyncMap +uninstall.completion = require('./utils/completion/installed-shallow.js') function uninstall (args, cb) { - // this is super easy - // get the list of args that correspond to package names in either - // the global npm.dir, - // then call unbuild on all those folders to pull out their bins - // and mans and whatnot, and then delete the folder. - - var nm = npm.dir - if (args.length === 1 && args[0] === ".") args = [] - if (args.length) return uninstall_(args, nm, cb) + validate('AF', arguments) + // the /path/to/node_modules/.. + var dryrun = !!npm.config.get('dry-run') - // remove this package from the global space, if it's installed there - readJson(path.resolve(npm.localPrefix, "package.json"), function (er, pkg) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) - if (er) return cb(uninstall.usage) - uninstall_( [pkg.name] - , npm.globalDir - , cb ) + if (args.length === 1 && args[0] === '.') args = [] + args = args.filter(function (a) { + return path.resolve(a) !== where }) -} - -function uninstall_ (args, nm, cb) { - // if we've been asked to --save or --save-dev or --save-optional, - // then also remove it from the associated dependencies hash. - var s = npm.config.get('save') - , d = npm.config.get('save-dev') - , o = npm.config.get('save-optional') - if (s || d || o) { - cb = saver(args, nm, cb) - } - - asyncMap(args, function (arg, cb) { - // uninstall .. should not delete /usr/local/lib/node_modules/.. - var p = path.join(path.resolve(nm), path.join("/", arg)) - if (path.resolve(p) === nm) { - log.warn("uninstall", "invalid argument: %j", arg) - return cb(null, []) - } - fs.lstat(p, function (er) { - if (er) { - log.warn("uninstall", "not installed in %s: %j", nm, arg) - return cb(null, []) - } - cb(null, p) + var where = npm.config.get('global') || !args.length + ? path.resolve(npm.globalDir, '..') + : npm.prefix + + if (args.length) { + new Uninstaller(where, dryrun, args).run(cb) + } else { + // remove this package from the global space, if it's installed there + readJson(path.resolve(npm.localPrefix, 'package.json'), function (er, pkg) { + if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) + if (er) return cb(uninstall.usage) + new Uninstaller(where, dryrun, [pkg.name]).run(cb) }) - }, function (er, folders) { - if (er) return cb(er) - asyncMap(folders, npm.commands.unbuild, cb) - }) + } } -function saver (args, nm, cb_) { - return cb - function cb (er, data) { - var s = npm.config.get('save') - , d = npm.config.get('save-dev') - , o = npm.config.get('save-optional') - if (er || !(s || d || o)) return cb_(er, data) - var pj = path.resolve(nm, '..', 'package.json') - // don't use readJson here, because we don't want all the defaults - // filled in, for mans and other bs. - fs.readFile(pj, 'utf8', function (er, json) { - var pkg - try { - pkg = JSON.parse(json) - } catch (_) {} - if (!pkg) return cb_(null, data) - - var bundle - if (npm.config.get('save-bundle')) { - bundle = pkg.bundleDependencies || pkg.bundledDependencies - if (!Array.isArray(bundle)) bundle = undefined - } - - var changed = false - args.forEach(function (a) { - ; [ [s, 'dependencies'] - , [o, 'optionalDependencies'] - , [d, 'devDependencies'] ].forEach(function (f) { - var flag = f[0] - , field = f[1] - if (!flag || !pkg[field] || !pkg[field].hasOwnProperty(a)) return - changed = true +function Uninstaller (where, dryrun, args) { + validate('SBA', arguments) + Installer.call(this, where, dryrun, args) +} +util.inherits(Uninstaller, Installer) - if (bundle) { - var i = bundle.indexOf(a) - if (i !== -1) bundle.splice(i, 1) - } +Uninstaller.prototype.loadArgMetadata = function (next) { + this.args = this.args.map(function (arg) { return {name: arg} }) + next() +} - delete pkg[field][a] - }) - }) - if (!changed) return cb_(null, data) +Uninstaller.prototype.loadAllDepsIntoIdealTree = function (cb) { + validate('F', arguments) + log.silly('uninstall', 'loadAllDepsIntoIdealtree') + var saveDeps = getSaveType(this.args) - if (bundle) { - delete pkg.bundledDependencies - if (bundle.length) { - pkg.bundleDependencies = bundle - } else { - delete pkg.bundleDependencies - } - } + var cg = this.progress.loadAllDepsIntoIdealTree + var steps = [] - writeFileAtomic(pj, JSON.stringify(pkg, null, 2) + "\n", function (er) { - return cb_(er, data) - }) - }) - } + steps.push( + [removeDeps, this.args, this.idealTree, saveDeps, cg.newGroup('removeDeps')], + [loadExtraneous, this.idealTree, cg.newGroup('loadExtraneous')]) + chain(steps, cb) } diff --git a/deps/npm/lib/unpublish.js b/deps/npm/lib/unpublish.js index 111f27aa2d2997cb90d45585dc222c59c79bc206..63f87b8207d2467a460fec540a748035760fdc3f 100644 --- a/deps/npm/lib/unpublish.js +++ b/deps/npm/lib/unpublish.js @@ -1,15 +1,15 @@ module.exports = unpublish -var log = require("npmlog") -var npm = require("./npm.js") -var readJson = require("read-package-json") -var path = require("path") -var mapToRegistry = require("./utils/map-to-registry.js") -var npa = require("npm-package-arg") -var getPublishConfig = require("./utils/get-publish-config.js") +var log = require('npmlog') +var npm = require('./npm.js') +var readJson = require('read-package-json') +var path = require('path') +var mapToRegistry = require('./utils/map-to-registry.js') +var npa = require('npm-package-arg') +var getPublishConfig = require('./utils/get-publish-config.js') -unpublish.usage = "npm unpublish [@]" +unpublish.usage = 'npm unpublish [<@scope>/][@]' unpublish.completion = function (opts, cb) { if (opts.conf.argv.remain.length >= 3) return cb() @@ -18,11 +18,11 @@ unpublish.completion = function (opts, cb) { var un = encodeURIComponent(username) if (!un) return cb() - var byUser = "-/by-user/" + un + var byUser = '-/by-user/' + un mapToRegistry(byUser, npm.config, function (er, uri, auth) { if (er) return cb(er) - npm.registry.get(uri, { auth : auth }, function (er, pkgs) { + npm.registry.get(uri, { auth: auth }, function (er, pkgs) { // do a bit of filtering at this point, so that we don't need // to fetch versions for more than one thing, but also don't // accidentally a whole project. @@ -36,12 +36,12 @@ unpublish.completion = function (opts, cb) { mapToRegistry(pkgs[0], npm.config, function (er, uri, auth) { if (er) return cb(er) - npm.registry.get(uri, { auth : auth }, function (er, d) { + npm.registry.get(uri, { auth: auth }, function (er, d) { if (er) return cb(er) var vers = Object.keys(d.versions) if (!vers.length) return cb(null, pkgs) return cb(null, vers.map(function (v) { - return pkgs[0] + "@" + v + return pkgs[0] + '@' + v })) }) }) @@ -54,24 +54,26 @@ function unpublish (args, cb) { if (args.length > 1) return cb(unpublish.usage) var thing = args.length ? npa(args[0]) : {} - , project = thing.name - , version = thing.rawSpec - - log.silly("unpublish", "args[0]", args[0]) - log.silly("unpublish", "thing", thing) - if (!version && !npm.config.get("force")) { - return cb("Refusing to delete entire project.\n" - + "Run with --force to do this.\n" - + unpublish.usage) + var project = thing.name + var version = thing.rawSpec + + log.silly('unpublish', 'args[0]', args[0]) + log.silly('unpublish', 'thing', thing) + if (!version && !npm.config.get('force')) { + return cb( + 'Refusing to delete entire project.\n' + + 'Run with --force to do this.\n' + + unpublish.usage + ) } if (!project || path.resolve(project) === npm.localPrefix) { // if there's a package.json in the current folder, then // read the package name and version out of that. - var cwdJson = path.join(npm.localPrefix, "package.json") + var cwdJson = path.join(npm.localPrefix, 'package.json') return readJson(cwdJson, function (er, data) { - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) - if (er) return cb("Usage:\n" + unpublish.usage) + if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) + if (er) return cb('Usage:\n' + unpublish.usage) log.verbose('unpublish', data) gotProject(data.name, data.version, data.publishConfig, cb) }) @@ -87,7 +89,7 @@ function gotProject (project, version, publishConfig, cb_) { function cb (er) { if (er) return cb_(er) - console.log("- " + project + (version ? "@" + version : "")) + console.log('- ' + project + (version ? '@' + version : '')) cb_() } @@ -96,9 +98,9 @@ function gotProject (project, version, publishConfig, cb_) { var registry = mappedConfig.client // remove from the cache first - npm.commands.cache(["clean", project, version], function (er) { + npm.commands.cache(['clean', project, version], function (er) { if (er) { - log.error("unpublish", "Failed to clean cache") + log.error('unpublish', 'Failed to clean cache') return cb(er) } diff --git a/deps/npm/lib/update.js b/deps/npm/lib/update.js index 3e9438e9231629a25d2b098c391bbe5c7d9a91cb..45f2817f5fc8936b5e06737b5b98818c734738a1 100644 --- a/deps/npm/lib/update.js +++ b/deps/npm/lib/update.js @@ -1,58 +1,60 @@ -/* -for each pkg in prefix that isn't a git repo - look for a new version of pkg that satisfies dep - if so, install it. - if not, then update it -*/ - module.exports = update -update.usage = "npm update [pkg]" - -var npm = require("./npm.js") - , asyncMap = require("slide").asyncMap - , log = require("npmlog") +update.usage = 'npm update [-g] [...]' - // load these, just so that we know that they'll be available, in case - // npm itself is getting overwritten. - , install = require("./install.js") - , build = require("./build.js") +var url = require('url') +var log = require('npmlog') +var chain = require('slide').chain +var npm = require('./npm.js') +var Installer = require('./install.js').Installer update.completion = npm.commands.outdated.completion function update (args, cb) { - npm.commands.outdated(args, true, function (er, outdated) { + var dryrun = false + if (npm.config.get('dry-run')) dryrun = true + + npm.commands.outdated(args, true, function (er, rawOutdated) { if (er) return cb(er) + var outdated = rawOutdated.map(function (ww) { + return { + dep: ww[0], + depname: ww[1], + current: ww[2], + wanted: ww[3], + latest: ww[4], + req: ww[5], + what: ww[1] + '@' + ww[3] + } + }) var wanted = outdated.filter(function (ww) { - var dep = ww[1] - var current = ww[2] - var wanted = ww[3] - var latest = ww[4] - if (current === wanted && wanted !== latest) { + if (ww.current === ww.wanted && ww.wanted !== ww.latest) { log.verbose( 'outdated', - 'not updating', dep, + 'not updating', ww.depname, "because it's currently at the maximum version that matches its specified semver range" ) } - return current !== wanted + return ww.current !== ww.wanted }) if (wanted.length === 0) return cb() log.info('outdated', 'updating', wanted) - asyncMap(wanted, function (ww, cb) { - // [[ dir, dep, has, want, req ]] - var where = ww[0] - , dep = ww[1] - , want = ww[3] - , what = dep + "@" + want - , req = ww[5] - , url = require('url') - + var toInstall = {} + wanted.forEach(function (ww) { // use the initial installation method (repo, tar, git) for updating - if (url.parse(req).protocol) what = req - npm.commands.install(where, what, cb) - }, cb) + if (url.parse(ww.req).protocol) ww.what = ww.req + + var where = ww.dep.parent && ww.dep.parent.path || ww.dep.path + if (toInstall[where]) { + toInstall[where].push(ww.what) + } else { + toInstall[where] = [ww.what] + } + }) + chain(Object.keys(toInstall).map(function (where) { + return [new Installer(where, dryrun, toInstall[where]), 'run'] + }), cb) }) } diff --git a/deps/npm/lib/utils/completion/file-completion.js b/deps/npm/lib/utils/completion/file-completion.js index 6ce2f83467d012030a87ad15fa444f56886a330e..78777a025ec88ae00e12cc60fbb6215dae96c150 100644 --- a/deps/npm/lib/utils/completion/file-completion.js +++ b/deps/npm/lib/utils/completion/file-completion.js @@ -1,21 +1,24 @@ module.exports = fileCompletion -var mkdir = require("mkdirp") - , path = require("path") - , glob = require("glob") +var mkdir = require('mkdirp') +var path = require('path') +var glob = require('glob') function fileCompletion (root, req, depth, cb) { - if (typeof cb !== "function") cb = depth, depth = Infinity + if (typeof cb !== 'function') { + cb = depth + depth = Infinity + } mkdir(root, function (er) { if (er) return cb(er) // can be either exactly the req, or a descendent - var pattern = root + "/{" + req + "," + req + "/**/*}" - , opts = { mark: true, dot: true, maxDepth: depth } + var pattern = root + '/{' + req + ',' + req + '/**/*}' + var opts = { mark: true, dot: true, maxDepth: depth } glob(pattern, opts, function (er, files) { if (er) return cb(er) return cb(null, (files || []).map(function (f) { - var tail = f.substr(root.length + 1).replace(/^\//, "") + var tail = f.substr(root.length + 1).replace(/^\//, '') return path.join(req, tail) })) }) diff --git a/deps/npm/lib/utils/completion/installed-deep.js b/deps/npm/lib/utils/completion/installed-deep.js index 5fb67d263f12e7ec880cca2d36827c50cbc0fe8f..146a4d7908eeade8f203fd3484a31cdae3049ae4 100644 --- a/deps/npm/lib/utils/completion/installed-deep.js +++ b/deps/npm/lib/utils/completion/installed-deep.js @@ -1,21 +1,25 @@ module.exports = installedDeep -var npm = require("../../npm.js") - , readInstalled = require("read-installed") +var npm = require('../../npm.js') +var readInstalled = require('read-installed') function installedDeep (opts, cb) { var local - , global - , depth = npm.config.get("depth") - , opt = { depth: depth, dev: true } + var global + var depth = npm.config.get('depth') + var opt = { depth: depth, dev: true } - if (npm.config.get("global")) local = [], next() - else readInstalled(npm.prefix, opt, function (er, data) { - local = getNames(data || {}) + if (npm.config.get('global')) { + local = [] next() - }) + } else { + readInstalled(npm.prefix, opt, function (er, data) { + local = getNames(data || {}) + next() + }) + } - readInstalled(npm.config.get("prefix"), opt, function (er, data) { + readInstalled(npm.config.get('prefix'), opt, function (er, data) { global = getNames(data || {}) next() }) @@ -37,9 +41,9 @@ function installedDeep (opts, cb) { function next () { if (!local || !global) return - if (!npm.config.get("global")) { + if (!npm.config.get('global')) { global = global.map(function (g) { - return [g, "-g"] + return [g, '-g'] }) } var names = local.concat(global) diff --git a/deps/npm/lib/utils/completion/installed-shallow.js b/deps/npm/lib/utils/completion/installed-shallow.js index 8d64649d5f66a9f9d6d95e3268cbf47e67837797..bf692fedea3a5dbb1ff03654bc1908152df8639b 100644 --- a/deps/npm/lib/utils/completion/installed-shallow.js +++ b/deps/npm/lib/utils/completion/installed-shallow.js @@ -1,31 +1,39 @@ module.exports = installedShallow -var npm = require("../../npm.js") - , fs = require("graceful-fs") - , path = require("path") - , readJson = require("read-package-json") - , asyncMap = require("slide").asyncMap +var npm = require('../../npm.js') +var fs = require('graceful-fs') +var path = require('path') +var readJson = require('read-package-json') +var asyncMap = require('slide').asyncMap function installedShallow (opts, filter, cb) { - if (typeof cb !== "function") cb = filter, filter = null + if (typeof cb !== 'function') { + cb = filter + filter = null + } var conf = opts.conf - , args = conf.argv.remain + var args = conf.argv.remain if (args.length > 3) return cb() var local - , global - , localDir = npm.dir - , globalDir = npm.globalDir - if (npm.config.get("global")) local = [], next() - else fs.readdir(localDir, function (er, pkgs) { - local = (pkgs || []).filter(function (p) { - return p.charAt(0) !== "." - }) + var global + var localDir = npm.dir + var globalDir = npm.globalDir + if (npm.config.get('global')) { + local = [] next() - }) + } else { + fs.readdir(localDir, function (er, pkgs) { + local = (pkgs || []).filter(function (p) { + return p.charAt(0) !== '.' + }) + next() + }) + } + fs.readdir(globalDir, function (er, pkgs) { global = (pkgs || []).filter(function (p) { - return p.charAt(0) !== "." + return p.charAt(0) !== '.' }) next() }) @@ -37,7 +45,7 @@ function installedShallow (opts, filter, cb) { function filterInstalled (local, global, filter, cb) { var fl - , fg + var fg if (!filter) { fl = local @@ -46,7 +54,7 @@ function filterInstalled (local, global, filter, cb) { } asyncMap(local, function (p, cb) { - readJson(path.join(npm.dir, p, "package.json"), function (er, d) { + readJson(path.join(npm.dir, p, 'package.json'), function (er, d) { if (!d || !filter(d)) return cb(null, []) return cb(null, d.name) }) @@ -57,7 +65,7 @@ function filterInstalled (local, global, filter, cb) { var globalDir = npm.globalDir asyncMap(global, function (p, cb) { - readJson(path.join(globalDir, p, "package.json"), function (er, d) { + readJson(path.join(globalDir, p, 'package.json'), function (er, d) { if (!d || !filter(d)) return cb(null, []) return cb(null, d.name) }) @@ -68,12 +76,12 @@ function filterInstalled (local, global, filter, cb) { function next () { if (!fg || !fl) return - if (!npm.config.get("global")) { + if (!npm.config.get('global')) { fg = fg.map(function (g) { - return [g, "-g"] + return [g, '-g'] }) } - console.error("filtered", fl, fg) + console.error('filtered', fl, fg) return cb(null, fl.concat(fg)) } } diff --git a/deps/npm/lib/utils/deep-sort-object.js b/deps/npm/lib/utils/deep-sort-object.js new file mode 100644 index 0000000000000000000000000000000000000000..c8003c207893a557b23a3007e378da264248b97a --- /dev/null +++ b/deps/npm/lib/utils/deep-sort-object.js @@ -0,0 +1,12 @@ +'use strict' +var sortedObject = require('sorted-object') + +module.exports = function deepSortObject (obj, sortBy) { + if (obj == null || typeof obj !== 'object') return obj + if (obj instanceof Array) return obj.sort(sortBy) + obj = sortedObject(obj) + Object.keys(obj).forEach(function (key) { + obj[key] = deepSortObject(obj[key], sortBy) + }) + return obj +} diff --git a/deps/npm/lib/utils/depr-check.js b/deps/npm/lib/utils/depr-check.js index 7166348b0866078bec71ae843b9b2f20a183af49..89cf402739a84199cc7505b43c3fc366b70278fb 100644 --- a/deps/npm/lib/utils/depr-check.js +++ b/deps/npm/lib/utils/depr-check.js @@ -1,13 +1,13 @@ -var log = require("npmlog") +var log = require('npmlog') var deprecated = {} - , deprWarned = {} +var deprWarned = {} module.exports = function deprCheck (data) { if (deprecated[data._id]) data.deprecated = deprecated[data._id] if (data.deprecated) deprecated[data._id] = data.deprecated else return if (!deprWarned[data._id]) { deprWarned[data._id] = true - log.warn("deprecated", "%s: %s", data._id, data.deprecated) + log.warn('deprecated', '%s: %s', data._id, data.deprecated) } } diff --git a/deps/npm/lib/utils/error-handler.js b/deps/npm/lib/utils/error-handler.js index dac6a17f251c902514f66019f828351f09af5eab..cd61f7912993fb16aef5f724bcfcf5f96801421a 100644 --- a/deps/npm/lib/utils/error-handler.js +++ b/deps/npm/lib/utils/error-handler.js @@ -2,45 +2,47 @@ module.exports = errorHandler var cbCalled = false - , log = require("npmlog") - , npm = require("../npm.js") - , rm = require("rimraf") - , itWorked = false - , path = require("path") - , wroteLogFile = false - , exitCode = 0 - , rollbacks = npm.rollbacks - , chain = require("slide").chain - , writeStream = require("fs-write-stream-atomic") - , nameValidator = require("validate-npm-package-name") - - -process.on("exit", function (code) { - // console.error("exit", code) +var log = require('npmlog') +var npm = require('../npm.js') +var rm = require('rimraf') +var itWorked = false +var path = require('path') +var wroteLogFile = false +var exitCode = 0 +var rollbacks = npm.rollbacks +var chain = require('slide').chain +var writeStream = require('fs-write-stream-atomic') +var nameValidator = require('validate-npm-package-name') + +process.on('exit', function (code) { + log.disableProgress() if (!npm.config || !npm.config.loaded) return if (code) itWorked = false - if (itWorked) log.info("ok") + if (itWorked) log.info('ok') else { if (!cbCalled) { - log.error("", "cb() never called!") + log.error('', 'cb() never called!') } if (wroteLogFile) { // just a line break - if (log.levels[log.level] <= log.levels.error) console.error("") - - log.error("", - ["Please include the following file with any support request:" - ," " + path.resolve("npm-debug.log") - ].join("\n")) + if (log.levels[log.level] <= log.levels.error) console.error('') + + log.error( + '', + [ + 'Please include the following file with any support request:', + ' ' + path.resolve('npm-debug.log') + ].join('\n') + ) wroteLogFile = false } if (code) { - log.error("code", code) + log.error('code', code) } } - var doExit = npm.config.get("_exit") + var doExit = npm.config.get('_exit') if (doExit) { // actually exit. if (exitCode === 0 && !itWorked) { @@ -55,9 +57,9 @@ process.on("exit", function (code) { function exit (code, noLog) { exitCode = exitCode || process.exitCode || code - var doExit = npm.config ? npm.config.get("_exit") : true - log.verbose("exit", [code, doExit]) - if (log.level === "silent") noLog = true + var doExit = npm.config ? npm.config.get('_exit') : true + log.verbose('exit', [code, doExit]) + if (log.level === 'silent') noLog = true if (rollbacks.length) { chain(rollbacks.map(function (f) { @@ -66,22 +68,22 @@ function exit (code, noLog) { } }), function (er) { if (er) { - log.error("error rolling back", er) + log.error('error rolling back', er) if (!code) errorHandler(er) - else if (noLog) rm("npm-debug.log", reallyExit.bind(null, er)) + else if (noLog) rm('npm-debug.log', reallyExit.bind(null, er)) else writeLogFile(reallyExit.bind(this, er)) } else { if (!noLog && code) writeLogFile(reallyExit) - else rm("npm-debug.log", reallyExit) + else rm('npm-debug.log', reallyExit) } }) rollbacks.length = 0 } else if (code && !noLog) writeLogFile(reallyExit) - else rm("npm-debug.log", reallyExit) + else rm('npm-debug.log', reallyExit) function reallyExit (er) { - if (er && !code) code = typeof er.errno === "number" ? er.errno : 1 + if (er && !code) code = typeof er.errno === 'number' ? er.errno : 1 // truncate once it's been written. log.record.length = 0 @@ -91,298 +93,397 @@ function exit (code, noLog) { // just emit a fake exit event. // if we're really exiting, then let it exit on its own, so that // in-process stuff can finish or clean up first. - if (!doExit) process.emit("exit", code) - npm.spinner.stop() + if (!doExit) process.emit('exit', code) } } - function errorHandler (er) { - // console.error("errorHandler", er) + log.disableProgress() + // console.error('errorHandler', er) if (!npm.config || !npm.config.loaded) { // logging won't work unless we pretend that it's ready - er = er || new Error("Exit prior to config file resolving.") + er = er || new Error('Exit prior to config file resolving.') console.error(er.stack || er.message) } if (cbCalled) { - er = er || new Error("Callback called more than once.") + er = er || new Error('Callback called more than once.') } cbCalled = true if (!er) return exit(0) - if (typeof er === "string") { - log.error("", er) + if (typeof er === 'string') { + log.error('', er) return exit(1, true) } else if (!(er instanceof Error)) { - log.error("weird error", er) + log.error('weird error', er) return exit(1, true) } var m = er.code || er.message.match(/^(?:Error: )?(E[A-Z]+)/) - if (m && !er.code) er.code = m - - ; [ "type" - , "fstream_path" - , "fstream_unc_path" - , "fstream_type" - , "fstream_class" - , "fstream_finish_call" - , "fstream_linkpath" - , "stack" - , "fstream_stack" - , "statusCode" - , "pkgid" - ].forEach(function (k) { - var v = er[k] - if (!v) return - if (k === "fstream_stack") v = v.join("\n") - log.verbose(k, v) - }) + if (m && !er.code) { + er.code = m + } - log.verbose("cwd", process.cwd()) - - var os = require("os") - // log.error("System", os.type() + " " + os.release()) - // log.error("command", process.argv.map(JSON.stringify).join(" ")) - // log.error("node -v", process.version) - // log.error("npm -v", npm.version) - log.error("", os.type() + " " + os.release()) - log.error("argv", process.argv.map(JSON.stringify).join(" ")) - log.error("node", process.version) - log.error("npm ", "v" + npm.version) - - ; [ "file" - , "path" - , "code" - , "errno" - , "syscall" - ].forEach(function (k) { - var v = er[k] - if (v) log.error(k, v) - }) + ;[ + 'type', + 'fstream_path', + 'fstream_unc_path', + 'fstream_type', + 'fstream_class', + 'fstream_finish_call', + 'fstream_linkpath', + 'stack', + 'fstream_stack', + 'statusCode', + 'pkgid' + ].forEach(function (k) { + var v = er[k] + if (!v) return + if (k === 'fstream_stack') v = v.join('\n') + log.verbose(k, v) + }) + + log.verbose('cwd', process.cwd()) + + var os = require('os') + // log.error('System', os.type() + ' ' + os.release()) + // log.error('command', process.argv.map(JSON.stringify).join(' ')) + // log.error('node -v', process.version) + // log.error('npm -v', npm.version) + log.error('', os.type() + ' ' + os.release()) + log.error('argv', process.argv.map(JSON.stringify).join(' ')) + log.error('node', process.version) + log.error('npm ', 'v' + npm.version) + + ;[ + 'file', + 'path', + 'code', + 'errno', + 'syscall' + ].forEach(function (k) { + var v = er[k] + if (v) log.error(k, v) + }) // just a line break - if (log.levels[log.level] <= log.levels.error) console.error("") + if (log.levels[log.level] <= log.levels.error) console.error('') switch (er.code) { - case "ECONNREFUSED": - log.error("", er) - log.error("", ["\nIf you are behind a proxy, please make sure that the" - ,"'proxy' config is set properly. See: 'npm help config'" - ].join("\n")) + case 'ECONNREFUSED': + log.error('', er) + log.error( + '', + [ + '\nIf you are behind a proxy, please make sure that the', + "'proxy' config is set properly. See: 'npm help config'" + ].join('\n') + ) break - case "EACCES": - case "EPERM": - log.error("", er) - log.error("", ["\nPlease try running this command again as root/Administrator." - ].join("\n")) + case 'EACCES': + case 'EPERM': + log.error('', er) + log.error('', ['\nPlease try running this command again as root/Administrator.' + ].join('\n')) break - case "ELIFECYCLE": - log.error("", er.message) - log.error("", ["","Failed at the "+er.pkgid+" "+er.stage+" script '"+er.script+"'." - ,"This is most likely a problem with the "+er.pkgname+" package," - ,"not with npm itself." - ,"Tell the author that this fails on your system:" - ," "+er.script - ,"You can get their info via:" - ," npm owner ls "+er.pkgname - ,"There is likely additional logging output above." - ].join("\n")) + case 'ELIFECYCLE': + log.error('', er.message) + log.error( + '', + [ + '', + 'Failed at the ' + er.pkgid + ' ' + er.stage + " script '" + er.script + "'.", + 'This is most likely a problem with the ' + er.pkgname + ' package,', + 'not with npm itself.', + 'Tell the author that this fails on your system:', + ' ' + er.script, + 'You can get their info via:', + ' npm owner ls ' + er.pkgname, + 'There is likely additional logging output above.' + ].join('\n') + ) break - case "ENOGIT": - log.error("", er.message) - log.error("", ["","Failed using git." - ,"This is most likely not a problem with npm itself." - ,"Please check if you have git installed and in your PATH." - ].join("\n")) + case 'ENOGIT': + log.error('', er.message) + log.error( + '', + [ + '', + 'Failed using git.', + 'This is most likely not a problem with npm itself.', + 'Please check if you have git installed and in your PATH.' + ].join('\n') + ) break - case "EJSONPARSE": - log.error("", er.message) - log.error("", "File: "+er.file) - log.error("", ["Failed to parse package.json data." - ,"package.json must be actual JSON, not just JavaScript." - ,"","This is not a bug in npm." - ,"Tell the package author to fix their package.json file." - ].join("\n"), "JSON.parse") + case 'EJSONPARSE': + log.error('', er.message) + log.error('', 'File: ' + er.file) + log.error( + '', + [ + 'Failed to parse package.json data.', + 'package.json must be actual JSON, not just JavaScript.', + '', + 'This is not a bug in npm.', + 'Tell the package author to fix their package.json file.' + ].join('\n'), + 'JSON.parse' + ) break // TODO(isaacs) // Add a special case here for E401 and E403 explaining auth issues? - case "E404": + case 'E404': var msg = [er.message] - if (er.pkgid && er.pkgid !== "-") { - msg.push("", "'" + er.pkgid + "' is not in the npm registry.") + if (er.pkgid && er.pkgid !== '-') { + msg.push('', "'" + er.pkgid + "' is not in the npm registry.") var valResult = nameValidator(er.pkgid) if (valResult.validForNewPackages) { - msg.push("You should bug the author to publish it (or use the name yourself!)") + msg.push('You should bug the author to publish it (or use the name yourself!)') } else { - msg.push("Your package name is not valid, because", "") + msg.push('Your package name is not valid, because', '') var errorsArray = (valResult.errors || []).concat(valResult.warnings || []) - errorsArray.forEach(function(item, idx) { - msg.push(" " + (idx + 1) + ". " + item) + errorsArray.forEach(function (item, idx) { + msg.push(' ' + (idx + 1) + '. ' + item) }) } if (er.parent) { - msg.push("It was specified as a dependency of '"+er.parent+"'") + msg.push("It was specified as a dependency of '" + er.parent + "'") } - msg.push("\nNote that you can also install from a" - ,"tarball, folder, http url, or git url.") + msg.push( + '\nNote that you can also install from a', + 'tarball, folder, http url, or git url.' + ) } // There's no need to have 404 in the message as well. - msg[0] = msg[0].replace(/^404\s+/, "") - log.error("404", msg.join("\n")) + msg[0] = msg[0].replace(/^404\s+/, '') + log.error('404', msg.join('\n')) break - case "EPUBLISHCONFLICT": - log.error("publish fail", ["Cannot publish over existing version." - ,"Update the 'version' field in package.json and try again." - ,"" - ,"To automatically increment version numbers, see:" - ," npm help version" - ].join("\n")) + case 'EPUBLISHCONFLICT': + log.error( + 'publish fail', + [ + 'Cannot publish over existing version.', + "Update the 'version' field in package.json and try again.", + '', + 'To automatically increment version numbers, see:', + ' npm help version' + ].join('\n') + ) break - case "EISGIT": - log.error("git", [er.message - ," "+er.path - ,"Refusing to remove it. Update manually," - ,"or move it out of the way first." - ].join("\n")) + case 'EISGIT': + log.error( + 'git', + [ + er.message, + ' ' + er.path, + 'Refusing to remove it. Update manually,', + 'or move it out of the way first.' + ].join('\n') + ) break - case "ECYCLE": - log.error("cycle", [er.message - ,"While installing: "+er.pkgid - ,"Found a pathological dependency case that npm cannot solve." - ,"Please report this to the package author." - ].join("\n")) + case 'ECYCLE': + log.error( + 'cycle', + [ + er.message, + 'While installing: ' + er.pkgid, + 'Found a pathological dependency case that npm cannot solve.', + 'Please report this to the package author.' + ].join('\n') + ) break - case "EBADPLATFORM": - log.error("notsup", [er.message - ,"Not compatible with your operating system or architecture: "+er.pkgid - ,"Valid OS: "+er.os.join(",") - ,"Valid Arch: "+er.cpu.join(",") - ,"Actual OS: "+process.platform - ,"Actual Arch: "+process.arch - ].join("\n")) + case 'EBADPLATFORM': + log.error( + 'notsup', + [ + er.message, + 'Not compatible with your operating system or architecture: ' + er.pkgid, + 'Valid OS: ' + er.os.join(','), + 'Valid Arch: ' + er.cpu.join(','), + 'Actual OS: ' + process.platform, + 'Actual Arch: ' + process.arch + ].join('\n') + ) break - case "EEXIST": - log.error([er.message - ,"File exists: "+er.path - ,"Move it away, and try again."].join("\n")) + case 'EEXIST': + log.error( + [ + er.message, + 'File exists: ' + er.path, + 'Move it away, and try again.' + ].join('\n') + ) break - case "ENEEDAUTH": - log.error("need auth", [er.message - ,"You need to authorize this machine using `npm adduser`" - ].join("\n")) + case 'ENEEDAUTH': + log.error( + 'need auth', + [ + er.message, + 'You need to authorize this machine using `npm adduser`' + ].join('\n') + ) break - case "EPEERINVALID": + case 'EPEERINVALID': var peerErrors = Object.keys(er.peersDepending).map(function (peer) { - return "Peer " + peer + " wants " + er.packageName + "@" - + er.peersDepending[peer] + return 'Peer ' + peer + ' wants ' + + er.packageName + '@' + er.peersDepending[peer] }) - log.error("peerinvalid", [er.message].concat(peerErrors).join("\n")) + log.error('peerinvalid', [er.message].concat(peerErrors).join('\n')) break - case "ECONNRESET": - case "ENOTFOUND": - case "ETIMEDOUT": - case "EAI_FAIL": - log.error("network", [er.message - ,"This is most likely not a problem with npm itself" - ,"and is related to network connectivity." - ,"In most cases you are behind a proxy or have bad network settings." - ,"\nIf you are behind a proxy, please make sure that the" - ,"'proxy' config is set properly. See: 'npm help config'" - ].join("\n")) + case 'ECONNRESET': + case 'ENOTFOUND': + case 'ETIMEDOUT': + case 'EAI_FAIL': + log.error( + 'network', + [ + er.message, + 'This is most likely not a problem with npm itself', + 'and is related to network connectivity.', + 'In most cases you are behind a proxy or have bad network settings.', + '\nIf you are behind a proxy, please make sure that the', + "'proxy' config is set properly. See: 'npm help config'" + ].join('\n') + ) break - case "ENOPACKAGEJSON": - log.error("package.json", [er.message - ,"This is most likely not a problem with npm itself." - ,"npm can't find a package.json file in your current directory." - ].join("\n")) + case 'ENOPACKAGEJSON': + log.error( + 'package.json', + [ + er.message, + 'This is most likely not a problem with npm itself.', + "npm can't find a package.json file in your current directory." + ].join('\n') + ) break - case "ETARGET": - var msg = [er.message - ,"This is most likely not a problem with npm itself." - ,"In most cases you or one of your dependencies are requesting" - ,"a package version that doesn't exist." - ] - if (er.parent) { - msg.push("\nIt was specified as a dependency of '"+er.parent+"'\n") - } - log.error("notarget", msg.join("\n")) + case 'ETARGET': + msg = [ + er.message, + 'This is most likely not a problem with npm itself.', + 'In most cases you or one of your dependencies are requesting', + "a package version that doesn't exist." + ] + if (er.parent) { + msg.push("\nIt was specified as a dependency of '" + er.parent + "'\n") + } + log.error('notarget', msg.join('\n')) break - case "ENOTSUP": + case 'ENOTSUP': if (er.required) { - log.error("notsup", [er.message - ,"Not compatible with your version of node/npm: "+er.pkgid - ,"Required: "+JSON.stringify(er.required) - ,"Actual: " - +JSON.stringify({npm:npm.version - ,node:npm.config.get("node-version")}) - ].join("\n")) + log.error( + 'notsup', + [ + er.message, + 'Not compatible with your version of node/npm: ' + er.pkgid, + 'Required: ' + JSON.stringify(er.required), + 'Actual: ' + JSON.stringify({ + npm: npm.version, + node: npm.config.get('node-version') + }) + ].join('\n') + ) break } // else passthrough + /*eslint no-fallthrough:0*/ + + case 'ENOSPC': + log.error( + 'nospc', + [ + er.message, + 'This is most likely not a problem with npm itself', + 'and is related to insufficient space on your system.' + ].join('\n') + ) + break - case "ENOSPC": - log.error("nospc", [er.message - ,"This is most likely not a problem with npm itself" - ,"and is related to insufficient space on your system." - ].join("\n")) + case 'EROFS': + log.error( + 'rofs', + [ + er.message, + 'This is most likely not a problem with npm itself', + 'and is related to the file system being read-only.', + '\nOften virtualized file systems, or other file systems', + "that don't support symlinks, give this error." + ].join('\n') + ) break - case "EROFS": - log.error("rofs", [er.message - ,"This is most likely not a problem with npm itself" - ,"and is related to the file system being read-only." - ,"\nOften virtualized file systems, or other file systems" - ,"that don't support symlinks, give this error." - ].join("\n")) + case 'ENOENT': + log.error( + 'enoent', + [ + er.message, + 'This is most likely not a problem with npm itself', + 'and is related to npm not being able to find a file.', + er.file ? "\nCheck if the file '" + er.file + "' is present." : '' + ].join('\n') + ) break - case "ENOENT": - log.error("enoent", [er.message - ,"This is most likely not a problem with npm itself" - ,"and is related to npm not being able to find a file." - ,er.file?"\nCheck if the file '"+er.file+"' is present.":"" - ].join("\n")) + case 'EMISSINGARG': + case 'EUNKNOWNTYPE': + case 'EINVALIDTYPE': + case 'ETOOMANYARGS': + log.error( + 'typeerror', + [ + er.stack, + 'This is an error with npm itself. Please report this error at:', + ' ' + ].join('\n') + ) break - case "EISDIR": - log.error("eisdir", [er.message - ,"This is most likely not a problem with npm itself" - ,"and is related to npm not being able to find a package.json in" - ,"a package you are trying to install." - ].join("\n")) + case 'EISDIR': + log.error( + 'eisdir', + [ + er.message, + 'This is most likely not a problem with npm itself', + 'and is related to npm not being able to find a package.json in', + 'a package you are trying to install.' + ].join('\n') + ) break default: - log.error("", er.message || er) - log.error("", ["", "If you need help, you may report this error at:" - ," " - ].join("\n")) + log.error('', er.message || er) + log.error( + '', + [ + '', + 'If you need help, you may report this error at:', + ' ' + ].join('\n') + ) break } - exit(typeof er.errno === "number" ? er.errno : 1) + exit(typeof er.errno === 'number' ? er.errno : 1) } var writingLogFile = false @@ -391,22 +492,22 @@ function writeLogFile (cb) { writingLogFile = true wroteLogFile = true - var fstr = writeStream("npm-debug.log") - , os = require("os") - , out = "" + var fstr = writeStream('npm-debug.log') + var os = require('os') + var out = '' log.record.forEach(function (m) { var pref = [m.id, m.level] if (m.prefix) pref.push(m.prefix) - pref = pref.join(" ") + pref = pref.join(' ') m.message.trim().split(/\r?\n/).map(function (line) { - return (pref + " " + line).trim() + return (pref + ' ' + line).trim() }).forEach(function (line) { out += line + os.EOL }) }) fstr.end(out) - fstr.on("close", cb) + fstr.on('close', cb) } diff --git a/deps/npm/lib/utils/gently-rm.js b/deps/npm/lib/utils/gently-rm.js index ad0b4d039933c931cfe6a8bcc6e43b4cf70d31f8..c73bb1bfc0ca56a26ed99632df875b76b8e8a7ce 100644 --- a/deps/npm/lib/utils/gently-rm.js +++ b/deps/npm/lib/utils/gently-rm.js @@ -14,6 +14,8 @@ var vacuum = require('fs-vacuum') var some = require('async-some') var asyncMap = require('slide').asyncMap var normalize = require('path').normalize +var readCmdShim = require('read-cmd-shim') +var iferr = require('iferr') function gentlyRm (target, gently, base, cb) { if (!cb) { @@ -53,73 +55,74 @@ function gentlyRm (target, gently, base, cb) { return cb(new Error('May not delete: ' + resolved)) } - var options = { log: log.silly.bind(log, 'vacuum-fs') } - if (npm.config.get('force') || !gently) options.purge = true - if (base) options.base = normalize(resolve(npm.prefix, base)) + follow(resolved, function (realpath) { + var options = { log: log.silly.bind(log, 'vacuum-fs') } + if (npm.config.get('force') || !gently) options.purge = true + if (base) options.base = normalize(resolve(npm.prefix, base)) - if (!gently) { - log.verbose('gentlyRm', "don't care about contents; nuking", resolved) - return vacuum(resolved, options, cb) - } - - var parent = options.base = normalize(base ? resolve(npm.prefix, base) : npm.prefix) - - // is the parent directory managed by npm? - log.silly('gentlyRm', 'verifying', parent, 'is an npm working directory') - some(prefixes, isManaged(parent), function (er, matched) { - if (er) return cb(er) - - if (!matched) { - log.error('gentlyRm', 'containing path', parent, "isn't under npm's control") - return clobberFail(resolved, parent, cb) - } - log.silly('gentlyRm', 'containing path', parent, "is under npm's control, in", matched) - - // is the target directly contained within the (now known to be - // managed) parent? - if (isInside(resolved, parent)) { - log.silly('gentlyRm', 'deletion target', resolved, 'is under', parent) - log.verbose('gentlyRm', 'vacuuming from', resolved, 'up to', parent) + if (!gently) { + log.verbose('gentlyRm', "don't care about contents; nuking", resolved) return vacuum(resolved, options, cb) } - log.silly('gentlyRm', resolved, 'is not under', parent) - // the target isn't directly within the parent, but is it itself managed? - log.silly('gentlyRm', 'verifying', resolved, 'is an npm working directory') - some(prefixes, isManaged(resolved), function (er, matched) { + var parent = options.base = normalize(base ? resolve(npm.prefix, base) : npm.prefix) + + // is the parent directory managed by npm? + log.silly('gentlyRm', 'verifying', parent, 'is an npm working directory') + some(prefixes, isManaged(parent), function (er, matched) { if (er) return cb(er) - if (matched) { - log.silly('gentlyRm', resolved, "is under npm's control, in", matched) - options.base = matched - log.verbose('gentlyRm', 'removing', resolved, 'with base', options.base) + if (!matched) { + log.error('gentlyRm', 'containing path', parent, "isn't under npm's control") + return clobberFail(resolved, parent, cb) + } + log.silly('gentlyRm', 'containing path', parent, "is under npm's control, in", matched) + + // is the target directly contained within the (now known to be + // managed) parent? + if (isInside(resolved, parent)) { + log.silly('gentlyRm', 'deletion target', resolved, 'is under', parent) + log.verbose('gentlyRm', 'vacuuming from', resolved, 'up to', parent) + options.base = parent return vacuum(resolved, options, cb) } - log.verbose('gentlyRm', resolved, "is not under npm's control") - - // the target isn't managed directly, but maybe it's a link... - log.silly('gentlyRm', 'checking to see if', resolved, 'is a link') - lstat(resolved, function (er, stat) { - if (er) { - // race conditions are common when unbuilding - if (er.code === 'ENOENT') return cb(null) - return cb(er) - } + log.silly('gentlyRm', realpath, 'is not under', parent) + + // the target isn't directly within the parent, but is it itself managed? + log.silly('gentlyRm', 'verifying', realpath, 'is an npm working directory') + some(prefixes, isManaged(realpath), function (er, matched) { + if (er) return cb(er) - if (!stat.isSymbolicLink()) { - log.error('gentlyRm', resolved, 'is outside', parent, 'and not a link') - return clobberFail(resolved, parent, cb) + if (matched) { + log.silly('gentlyRm', resolved, "is under npm's control, in", matched) + if (isInside(realpath, parent)) { + log.silly('gentlyRm', realpath, 'is controlled by', parent) + options.base = matched + log.verbose('gentlyRm', 'removing', resolved, 'with base', options.base) + return vacuum(resolved, options, cb) + } else if (resolved !== realpath) { + log.warn('gentlyRm', 'not removing', resolved, "as it wasn't installed by", parent) + return cb() + } } + log.verbose('gentlyRm', resolved, "is not under npm's control") - // ...and maybe the link source, when read... - log.silly('gentlyRm', resolved, 'is a link') - readlink(resolved, function (er, link) { + // the target isn't managed directly, but maybe it's a link... + log.silly('gentlyRm', 'checking to see if', resolved, 'is a link') + readLinkOrShim(resolved, function (er, link) { if (er) { // race conditions are common when unbuilding if (er.code === 'ENOENT') return cb(null) return cb(er) } + if (!link) { + log.error('gentlyRm', resolved, 'is outside', parent, 'and not a link') + return clobberFail(resolved, parent, cb) + } + + // ...and maybe the link source, when read... + log.silly('gentlyRm', resolved, 'is a link') // ...is inside the managed parent var source = resolve(dirname(resolved), link) if (isInside(source, parent)) { @@ -168,23 +171,19 @@ function isManaged (target) { if (cached) return cb(null, cached) // otherwise, check the path - lstat(resolved, function (er, stat) { + readLinkOrShim(resolved, function (er, source) { if (er) return cb(er) // if it's not a link, cache & return the path itself - if (!stat.isSymbolicLink()) { + if (!source) { resolvedPaths[resolved] = resolved return cb(null, resolved) } // otherwise, cache & return the link's source - readlink(resolved, function (er, source) { - if (er) return cb(er) - - resolved = resolve(resolved, source) - resolvedPaths[resolved] = resolved - cb(null, resolved) - }) + resolved = resolve(resolved, source) + resolvedPaths[resolved] = resolved + cb(null, resolved) }) } } @@ -195,3 +194,28 @@ function clobberFail (target, root, cb) { er.path = target return cb(er) } + +function readLinkOrShim (path, cb) { + lstat(path, iferr(cb, function (stat) { + if (stat.isSymbolicLink()) { + readlink(path, cb) + } else { + readCmdShim(path, function (er, source) { + if (!er) return cb(null, source) + // lstat wouldn't return an error on these, so we don't either. + if (er.code === 'ENOTASHIM' || er.code === 'EISDIR') { + return cb(null, null) + } else { + return cb(er) + } + }) + } + })) +} + +function follow (path, cb) { + readLinkOrShim(path, function (er, source) { + if (!source) return cb(path) + cb(normalize(resolve(dirname(path), source))) + }) +} diff --git a/deps/npm/lib/utils/git.js b/deps/npm/lib/utils/git.js index 9c80ea55375f785bbdb731f764462921c4d6503f..2d9da1086e150bd68c0f7ca41a7ff92304314cb1 100644 --- a/deps/npm/lib/utils/git.js +++ b/deps/npm/lib/utils/git.js @@ -1,20 +1,19 @@ - // handle some git configuration for windows exports.spawn = spawnGit exports.chainableExec = chainableExec exports.whichAndExec = whichAndExec -var exec = require("child_process").execFile - , spawn = require("./spawn") - , npm = require("../npm.js") - , which = require("which") - , git = npm.config.get("git") - , assert = require("assert") - , log = require("npmlog") +var exec = require('child_process').execFile +var spawn = require('./spawn') +var npm = require('../npm.js') +var which = require('which') +var git = npm.config.get('git') +var assert = require('assert') +var log = require('npmlog') function prefixGitArgs () { - return process.platform === "win32" ? ["-c", "core.longpaths=true"] : [] + return process.platform === 'win32' ? ['-c', 'core.longpaths=true'] : [] } function execGit (args, options, cb) { @@ -24,7 +23,7 @@ function execGit (args, options, cb) { } function spawnGit (args, options) { - log.info("git", args) + log.info('git', args) return spawn(git, prefixGitArgs().concat(args || []), options) } @@ -38,11 +37,11 @@ function whichGit (cb) { } function whichAndExec (args, options, cb) { - assert.equal(typeof cb, "function", "no callback provided") + assert.equal(typeof cb, 'function', 'no callback provided') // check for git whichGit(function (err) { if (err) { - err.code = "ENOGIT" + err.code = 'ENOGIT' return cb(err) } diff --git a/deps/npm/lib/utils/lifecycle.js b/deps/npm/lib/utils/lifecycle.js index 9805a1c0c1dc452bfcfbcb06b315f8cdccb30ebd..1c0d437a907bf7b25b5148ffa5e58549c26d5f89 100644 --- a/deps/npm/lib/utils/lifecycle.js +++ b/deps/npm/lib/utils/lifecycle.js @@ -2,20 +2,20 @@ exports = module.exports = lifecycle exports.cmd = cmd exports.makeEnv = makeEnv -var log = require("npmlog") -var spawn = require("./spawn") -var npm = require("../npm.js") -var path = require("path") -var fs = require("graceful-fs") -var chain = require("slide").chain -var Stream = require("stream").Stream -var PATH = "PATH" -var uidNumber = require("uid-number") -var umask = require("./umask") - -// windows calls it's path "Path" usually, but this is not guaranteed. -if (process.platform === "win32") { - PATH = "Path" +var log = require('npmlog') +var spawn = require('./spawn') +var npm = require('../npm.js') +var path = require('path') +var fs = require('graceful-fs') +var chain = require('slide').chain +var Stream = require('stream').Stream +var PATH = 'PATH' +var uidNumber = require('uid-number') +var umask = require('./umask') + +// windows calls it's path 'Path' usually, but this is not guaranteed. +if (process.platform === 'win32') { + PATH = 'Path' Object.keys(process.env).forEach(function (e) { if (e.match(/^PATH$/i)) { PATH = e @@ -23,27 +23,41 @@ if (process.platform === "win32") { }) } +function logid (pkg, stage) { + return pkg._id + '~' + stage + ':' +} + function lifecycle (pkg, stage, wd, unsafe, failOk, cb) { - if (typeof cb !== "function") cb = failOk, failOk = false - if (typeof cb !== "function") cb = unsafe, unsafe = false - if (typeof cb !== "function") cb = wd, wd = null + if (typeof cb !== 'function') { + cb = failOk + failOk = false + } + if (typeof cb !== 'function') { + cb = unsafe + unsafe = false + } + if (typeof cb !== 'function') { + cb = wd + wd = null + } while (pkg && pkg._data) pkg = pkg._data - if (!pkg) return cb(new Error("Invalid package data")) + if (!pkg) return cb(new Error('Invalid package data')) - log.info(stage, pkg._id) + log.info('lifecycle', logid(pkg, stage), pkg._id) if (!pkg.scripts || npm.config.get('ignore-scripts')) pkg.scripts = {} validWd(wd || path.resolve(npm.dir, pkg.name), function (er, wd) { if (er) return cb(er) - unsafe = unsafe || npm.config.get("unsafe-perm") + unsafe = unsafe || npm.config.get('unsafe-perm') if ((wd.indexOf(npm.dir) !== 0 || wd.indexOf(pkg.name) !== wd.length - pkg.name.length) && !unsafe && pkg.scripts[stage]) { - log.warn( "cannot run in wd", "%s %s (wd=%s)" - , pkg._id, pkg.scripts[stage], wd) + log.warn('lifecycle', logid(pkg, stage), 'cannot run in wd', + '%s %s (wd=%s)', pkg._id, pkg.scripts[stage], wd + ) return cb() } @@ -53,63 +67,61 @@ function lifecycle (pkg, stage, wd, unsafe, failOk, cb) { env.npm_node_execpath = env.NODE = env.NODE || process.execPath env.npm_execpath = require.main.filename - // "nobody" typically doesn't have permission to write to /tmp + // 'nobody' typically doesn't have permission to write to /tmp // even if it's never used, sh freaks out. - if (!npm.config.get("unsafe-perm")) env.TMPDIR = wd + if (!npm.config.get('unsafe-perm')) env.TMPDIR = wd lifecycle_(pkg, stage, wd, env, unsafe, failOk, cb) }) } -function checkForLink (pkg, cb) { - var f = path.join(npm.dir, pkg.name) - fs.lstat(f, function (er, s) { - cb(null, !(er || !s.isSymbolicLink())) - }) -} - function lifecycle_ (pkg, stage, wd, env, unsafe, failOk, cb) { var pathArr = [] - , p = wd.split("node_modules") - , acc = path.resolve(p.shift()) + var p = wd.split('node_modules') + var acc = path.resolve(p.shift()) p.forEach(function (pp) { - pathArr.unshift(path.join(acc, "node_modules", ".bin")) - acc = path.join(acc, "node_modules", pp) + pathArr.unshift(path.join(acc, 'node_modules', '.bin')) + acc = path.join(acc, 'node_modules', pp) }) - pathArr.unshift(path.join(acc, "node_modules", ".bin")) + pathArr.unshift(path.join(acc, 'node_modules', '.bin')) // we also unshift the bundled node-gyp-bin folder so that // the bundled one will be used for installing things. - pathArr.unshift(path.join(__dirname, "..", "..", "bin", "node-gyp-bin")) + pathArr.unshift(path.join(__dirname, '..', '..', 'bin', 'node-gyp-bin')) if (env[PATH]) pathArr.push(env[PATH]) - env[PATH] = pathArr.join(process.platform === "win32" ? ";" : ":") + env[PATH] = pathArr.join(process.platform === 'win32' ? ';' : ':') var packageLifecycle = pkg.scripts && pkg.scripts.hasOwnProperty(stage) if (packageLifecycle) { // define this here so it's available to all scripts. env.npm_lifecycle_script = pkg.scripts[stage] + } else { + log.silly('lifecycle', logid(pkg, stage), 'no script for ' + stage + ', continuing') } function done (er) { if (er) { - if (npm.config.get("force")) { - log.info("forced, continuing", er) + if (npm.config.get('force')) { + log.info('lifecycle', logid(pkg, stage), 'forced, continuing', er) er = null } else if (failOk) { - log.warn("continuing anyway", er.message) + log.warn('lifecycle', logid(pkg, stage), 'continuing anyway', er.message) er = null } } cb(er) } - chain - ( [ packageLifecycle && [runPackageLifecycle, pkg, env, wd, unsafe] - , [runHookLifecycle, pkg, env, wd, unsafe] ] - , done ) + chain( + [ + packageLifecycle && [runPackageLifecycle, pkg, env, wd, unsafe], + [runHookLifecycle, pkg, env, wd, unsafe] + ], + done + ) } function validWd (d, cb) { @@ -117,7 +129,7 @@ function validWd (d, cb) { if (er || !st.isDirectory()) { var p = path.dirname(d) if (p === d) { - return cb(new Error("Could not find suitable wd")) + return cb(new Error('Could not find suitable wd')) } return validWd(p, cb) } @@ -128,17 +140,16 @@ function validWd (d, cb) { function runPackageLifecycle (pkg, env, wd, unsafe, cb) { // run package lifecycle scripts in the package root, or the nearest parent. var stage = env.npm_lifecycle_event - , cmd = env.npm_lifecycle_script + var cmd = env.npm_lifecycle_script - var note = "\n> " + pkg._id + " " + stage + " " + wd - + "\n> " + cmd + "\n" + var note = '\n> ' + pkg._id + ' ' + stage + ' ' + wd + + '\n> ' + cmd + '\n' runCmd(note, cmd, pkg, env, stage, wd, unsafe, cb) } - var running = false var queue = [] -function dequeue() { +function dequeue () { running = false if (queue.length) { var r = queue.shift() @@ -154,18 +165,17 @@ function runCmd (note, cmd, pkg, env, stage, wd, unsafe, cb) { running = true log.pause() - var user = unsafe ? null : npm.config.get("user") - , group = unsafe ? null : npm.config.get("group") + var user = unsafe ? null : npm.config.get('user') + var group = unsafe ? null : npm.config.get('group') if (log.level !== 'silent') { - if (npm.spinner.int) { - npm.config.get("logstream").write("\r \r") - } + log.clearProgress() console.log(note) + log.showProgress() } - log.verbose("unsafe-perm in lifecycle", unsafe) + log.verbose('lifecycle', logid(pkg, stage), 'unsafe-perm in lifecycle', unsafe) - if (process.platform === "win32") { + if (process.platform === 'win32') { unsafe = true } @@ -186,10 +196,11 @@ function runCmd_ (cmd, pkg, env, wd, stage, unsafe, uid, gid, cb_) { process.nextTick(dequeue) } - var conf = { cwd: wd - , env: env - , stdio: [ 0, 1, 2 ] - } + var conf = { + cwd: wd, + env: env, + stdio: [ 0, 1, 2 ] + } if (!unsafe) { conf.uid = uid ^ 0 @@ -205,25 +216,33 @@ function runCmd_ (cmd, pkg, env, wd, stage, unsafe, uid, gid, cb_) { conf.windowsVerbatimArguments = true } + log.verbose('lifecycle', logid(pkg, stage), 'PATH:', env[PATH]) + log.verbose('lifecycle', logid(pkg, stage), 'CWD:', wd) + log.silly('lifecycle', logid(pkg, stage), 'Args:', [shFlag, cmd]) + + var progressEnabled = log.progressEnabled + if (progressEnabled) log.disableProgress() var proc = spawn(sh, [shFlag, cmd], conf) - proc.on("error", procError) - proc.on("close", function (code, signal) { + + proc.on('error', procError) + proc.on('close', function (code, signal) { + log.silly('lifecycle', logid(pkg, stage), 'Returned: code:', code, ' signal:', signal) if (signal) { - process.kill(process.pid, signal); + process.kill(process.pid, signal) } else if (code) { - var er = new Error("Exit status " + code) + var er = new Error('Exit status ' + code) } procError(er) }) function procError (er) { + if (progressEnabled) log.enableProgress() if (er && !npm.ROLLBACK) { - log.info(pkg._id, "Failed to exec "+stage+" script") - er.message = pkg._id + " " - + stage + ": `" + cmd +"`\n" - + er.message - if (er.code !== "EPERM") { - er.code = "ELIFECYCLE" + log.info('lifecycle', logid(pkg, stage), 'Failed to exec ' + stage + ' script') + er.message = pkg._id + ' ' + stage + ': `' + cmd + '`\n' + + er.message + if (er.code !== 'EPERM') { + er.code = 'ELIFECYCLE' } er.pkgid = pkg._id er.stage = stage @@ -231,33 +250,30 @@ function runCmd_ (cmd, pkg, env, wd, stage, unsafe, uid, gid, cb_) { er.pkgname = pkg.name return cb(er) } else if (er) { - log.error(pkg._id+"."+stage, er) - log.error(pkg._id+"."+stage, "continuing anyway") + log.error('lifecycle', logid(pkg, stage), er) + log.error('lifecycle', logid(pkg, stage), 'continuing anyway') return cb() } cb(er) } } - function runHookLifecycle (pkg, env, wd, unsafe, cb) { // check for a hook script, run if present. var stage = env.npm_lifecycle_event - , hook = path.join(npm.dir, ".hooks", stage) - , user = unsafe ? null : npm.config.get("user") - , group = unsafe ? null : npm.config.get("group") - , cmd = hook + var hook = path.join(npm.dir, '.hooks', stage) + var cmd = hook fs.stat(hook, function (er) { if (er) return cb() - var note = "\n> " + pkg._id + " " + stage + " " + wd - + "\n> " + cmd + var note = '\n> ' + pkg._id + ' ' + stage + ' ' + wd + + '\n> ' + cmd runCmd(note, hook, pkg, env, stage, wd, unsafe, cb) }) } function makeEnv (data, prefix, env) { - prefix = prefix || "npm_package_" + prefix = prefix || 'npm_package_' if (!env) { env = {} for (var i in process.env) if (!i.match(/^npm_/)) { @@ -265,52 +281,57 @@ function makeEnv (data, prefix, env) { } // npat asks for tap output - if (npm.config.get("npat")) env.TAP = 1 + if (npm.config.get('npat')) env.TAP = 1 // express and others respect the NODE_ENV value. - if (npm.config.get("production")) env.NODE_ENV = "production" + if (npm.config.get('production')) env.NODE_ENV = 'production' - } else if (!data.hasOwnProperty("_lifecycleEnv")) { - Object.defineProperty(data, "_lifecycleEnv", - { value : env - , enumerable : false - }) + } else if (!data.hasOwnProperty('_lifecycleEnv')) { + Object.defineProperty(data, '_lifecycleEnv', + { + value: env, + enumerable: false + } + ) } - for (var i in data) if (i.charAt(0) !== "_") { - var envKey = (prefix+i).replace(/[^a-zA-Z0-9_]/g, '_') - if (i === "readme") { + for (i in data) if (i.charAt(0) !== '_') { + var envKey = (prefix + i).replace(/[^a-zA-Z0-9_]/g, '_') + if (i === 'readme') { continue } - if (data[i] && typeof(data[i]) === "object") { + if (data[i] && typeof data[i] === 'object') { try { // quick and dirty detection for cyclical structures JSON.stringify(data[i]) - makeEnv(data[i], envKey+"_", env) + makeEnv(data[i], envKey + '_', env) } catch (ex) { // usually these are package objects. // just get the path and basic details. var d = data[i] - makeEnv( { name: d.name, version: d.version, path:d.path } - , envKey+"_", env) + makeEnv( + { name: d.name, version: d.version, path: d.path }, + envKey + '_', + env + ) } } else { env[envKey] = String(data[i]) - env[envKey] = -1 !== env[envKey].indexOf("\n") - ? JSON.stringify(env[envKey]) - : env[envKey] + env[envKey] = env[envKey].indexOf('\n') !== -1 ? + JSON.stringify(env[envKey]) : + env[envKey] } } - if (prefix !== "npm_package_") return env + if (prefix !== 'npm_package_') return env - prefix = "npm_config_" + prefix = 'npm_config_' var pkgConfig = {} - , keys = npm.config.keys - , pkgVerConfig = {} - , namePref = data.name + ":" - , verPref = data.name + "@" + data.version + ":" + var keys = npm.config.keys + var pkgVerConfig = {} + var namePref = data.name + ':' + var verPref = data.name + '@' + data.version + ':' keys.forEach(function (i) { // in some rare cases (e.g. working with nerf darts), there are segmented @@ -321,29 +342,30 @@ function makeEnv (data, prefix, env) { var value = npm.config.get(i) if (value instanceof Stream || Array.isArray(value)) return if (i.match(/umask/)) value = umask.toString(value) - if (!value) value = "" - else if (typeof value === "number") value = "" + value - else if (typeof value !== "string") value = JSON.stringify(value) + if (!value) value = '' + else if (typeof value === 'number') value = '' + value + else if (typeof value !== 'string') value = JSON.stringify(value) - value = -1 !== value.indexOf("\n") + value = value.indexOf('\n') !== -1 ? JSON.stringify(value) : value - i = i.replace(/^_+/, "") + i = i.replace(/^_+/, '') + var k if (i.indexOf(namePref) === 0) { - var k = i.substr(namePref.length).replace(/[^a-zA-Z0-9_]/g, "_") - pkgConfig[ k ] = value + k = i.substr(namePref.length).replace(/[^a-zA-Z0-9_]/g, '_') + pkgConfig[k] = value } else if (i.indexOf(verPref) === 0) { - var k = i.substr(verPref.length).replace(/[^a-zA-Z0-9_]/g, "_") - pkgVerConfig[ k ] = value + k = i.substr(verPref.length).replace(/[^a-zA-Z0-9_]/g, '_') + pkgVerConfig[k] = value } - var envKey = (prefix+i).replace(/[^a-zA-Z0-9_]/g, "_") + var envKey = (prefix + i).replace(/[^a-zA-Z0-9_]/g, '_') env[envKey] = value }) - prefix = "npm_package_config_" + prefix = 'npm_package_config_' ;[pkgConfig, pkgVerConfig].forEach(function (conf) { for (var i in conf) { - var envKey = (prefix+i) + var envKey = (prefix + i) env[envKey] = conf[i] } }) @@ -353,10 +375,10 @@ function makeEnv (data, prefix, env) { function cmd (stage) { function CMD (args, cb) { - npm.commands["run-script"]([stage].concat(args), cb) + npm.commands['run-script']([stage].concat(args), cb) } - CMD.usage = "npm "+stage+" [-- ]" - var installedShallow = require("./completion/installed-shallow.js") + CMD.usage = 'npm ' + stage + ' [-- ]' + var installedShallow = require('./completion/installed-shallow.js') CMD.completion = function (opts, cb) { installedShallow(opts, function (d) { return d.scripts && d.scripts[stage] diff --git a/deps/npm/lib/utils/link.js b/deps/npm/lib/utils/link.js index e353bfae9372a4496e785d325aa588d07fef050d..1091f46833c8c83805f9a5650fa5d1426299b1e7 100644 --- a/deps/npm/lib/utils/link.js +++ b/deps/npm/lib/utils/link.js @@ -1,29 +1,44 @@ - module.exports = link link.ifExists = linkIfExists -var fs = require("graceful-fs") - , chain = require("slide").chain - , mkdir = require("mkdirp") - , rm = require("./gently-rm.js") - , path = require("path") - , npm = require("../npm.js") +var fs = require('graceful-fs') +var chain = require('slide').chain +var mkdir = require('mkdirp') +var rm = require('./gently-rm.js') +var path = require('path') +var npm = require('../npm.js') function linkIfExists (from, to, gently, cb) { fs.stat(from, function (er) { if (er) return cb() - link(from, to, gently, cb) + fs.readlink(to, function (er, fromOnDisk) { + // if the link already exists and matches what we would do, + // we don't need to do anything + if (!er) { + var toDir = path.dirname(to) + var absoluteFrom = path.resolve(toDir, from) + var absoluteFromOnDisk = path.resolve(toDir, fromOnDisk) + if (absoluteFrom === absoluteFromOnDisk) return cb() + } + link(from, to, gently, cb) + }) }) } function link (from, to, gently, abs, cb) { - if (typeof cb !== "function") cb = abs, abs = false - if (typeof cb !== "function") cb = gently, gently = null - if (npm.config.get("force")) gently = false + if (typeof cb !== 'function') { + cb = abs + abs = false + } + if (typeof cb !== 'function') { + cb = gently + gently = null + } + if (npm.config.get('force')) gently = false to = path.resolve(to) var target = from = path.resolve(from) - if (!abs && process.platform !== "win32") { + if (!abs && process.platform !== 'win32') { // junctions on windows must be absolute target = path.relative(path.dirname(to), from) // if there is no folder in common, then it will be much @@ -31,10 +46,13 @@ function link (from, to, gently, abs, cb) { if (target.length >= from.length) target = from } - chain - ( [ [fs, "stat", from] - , [rm, to, gently] - , [mkdir, path.dirname(to)] - , [fs, "symlink", target, to, "junction"] ] - , cb) + chain( + [ + [fs, 'stat', from], + [rm, to, gently], + [mkdir, path.dirname(to)], + [fs, 'symlink', target, to, 'junction'] + ], + cb + ) } diff --git a/deps/npm/lib/utils/locker.js b/deps/npm/lib/utils/locker.js index 293d2da052b956fcb786cbd8f98491c5502e09f5..9cd8b2c4fdac953039d97bd9e6e1d49ddaff43b2 100644 --- a/deps/npm/lib/utils/locker.js +++ b/deps/npm/lib/utils/locker.js @@ -1,38 +1,39 @@ -var crypto = require("crypto") -var resolve = require("path").resolve +var crypto = require('crypto') +var resolve = require('path').resolve -var lockfile = require("lockfile") -var log = require("npmlog") -var mkdirp = require("mkdirp") +var lockfile = require('lockfile') +var log = require('npmlog') -var npm = require("../npm.js") +var npm = require('../npm.js') var correctMkdir = require('../utils/correct-mkdir.js') var installLocks = {} function lockFileName (base, name) { - var c = name.replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-+|-+$/g, "") - , p = resolve(base, name) - , h = crypto.createHash("sha1").update(p).digest("hex") - , l = resolve(npm.cache, "_locks") + var c = name.replace(/[^a-zA-Z0-9]+/g, '-').replace(/^-+|-+$/g, '') + var p = resolve(base, name) + var h = crypto.createHash('sha1').update(p).digest('hex') + var l = resolve(npm.cache, '_locks') - return resolve(l, c.substr(0, 24)+"-"+h.substr(0, 16)+".lock") + return resolve(l, c.substr(0, 24) + '-' + h.substr(0, 16) + '.lock') } function lock (base, name, cb) { - var lockDir = resolve(npm.cache, "_locks") + var lockDir = resolve(npm.cache, '_locks') correctMkdir(lockDir, function (er) { if (er) return cb(er) - var opts = { stale: npm.config.get("cache-lock-stale") - , retries: npm.config.get("cache-lock-retries") - , wait: npm.config.get("cache-lock-wait") } + var opts = { + stale: npm.config.get('cache-lock-stale'), + retries: npm.config.get('cache-lock-retries'), + wait: npm.config.get('cache-lock-wait') + } var lf = lockFileName(base, name) lockfile.lock(lf, opts, function (er) { - if (er) log.warn("locking", lf, "failed", er) + if (er) log.warn('locking', lf, 'failed', er) if (!er) { - log.verbose("lock", "using", lf, "for", resolve(base, name)) + log.verbose('lock', 'using', lf, 'for', resolve(base, name)) installLocks[lf] = true } @@ -43,31 +44,30 @@ function lock (base, name, cb) { function unlock (base, name, cb) { var lf = lockFileName(base, name) - , locked = installLocks[lf] + var locked = installLocks[lf] if (locked === false) { return process.nextTick(cb) - } - else if (locked === true) { + } else if (locked === true) { lockfile.unlock(lf, function (er) { if (er) { - log.warn("unlocking", lf, "failed", er) - } - else { + log.warn('unlocking', lf, 'failed', er) + } else { installLocks[lf] = false - log.verbose("unlock", "done using", lf, "for", resolve(base, name)) + log.verbose('unlock', 'done using', lf, 'for', resolve(base, name)) } cb(er) }) - } - else { - throw new Error( - "Attempt to unlock " + resolve(base, name) + ", which hasn't been locked" + } else { + var notLocked = new Error( + 'Attempt to unlock ' + resolve(base, name) + ", which hasn't been locked" ) + notLocked.code = 'ENOTLOCKED' + throw notLocked } } module.exports = { - lock : lock, - unlock : unlock + lock: lock, + unlock: unlock } diff --git a/deps/npm/lib/utils/map-to-registry.js b/deps/npm/lib/utils/map-to-registry.js index bd68a26d42ef8eef8309d9254b29a5b51c3ca7ff..34046d191769d3db47109b55a9b2901a0d3639d4 100644 --- a/deps/npm/lib/utils/map-to-registry.js +++ b/deps/npm/lib/utils/map-to-registry.js @@ -1,56 +1,56 @@ -var url = require("url") +var url = require('url') -var log = require("npmlog") - , npa = require("npm-package-arg") +var log = require('npmlog') +var npa = require('npm-package-arg') module.exports = mapToRegistry -function mapToRegistry(name, config, cb) { - log.silly("mapToRegistry", "name", name) +function mapToRegistry (name, config, cb) { + log.silly('mapToRegistry', 'name', name) var registry // the name itself takes precedence var data = npa(name) if (data.scope) { // the name is definitely scoped, so escape now - name = name.replace("/", "%2f") + name = name.replace('/', '%2f') - log.silly("mapToRegistry", "scope (from package name)", data.scope) + log.silly('mapToRegistry', 'scope (from package name)', data.scope) - registry = config.get(data.scope + ":registry") + registry = config.get(data.scope + ':registry') if (!registry) { - log.verbose("mapToRegistry", "no registry URL found in name for scope", data.scope) + log.verbose('mapToRegistry', 'no registry URL found in name for scope', data.scope) } } // ...then --scope=@scope or --scope=scope - var scope = config.get("scope") + var scope = config.get('scope') if (!registry && scope) { // I'm an enabler, sorry - if (scope.charAt(0) !== "@") scope = "@" + scope + if (scope.charAt(0) !== '@') scope = '@' + scope - log.silly("mapToRegistry", "scope (from config)", scope) + log.silly('mapToRegistry', 'scope (from config)', scope) - registry = config.get(scope + ":registry") + registry = config.get(scope + ':registry') if (!registry) { - log.verbose("mapToRegistry", "no registry URL found in config for scope", scope) + log.verbose('mapToRegistry', 'no registry URL found in config for scope', scope) } } // ...and finally use the default registry if (!registry) { - log.silly("mapToRegistry", "using default registry") - registry = config.get("registry") + log.silly('mapToRegistry', 'using default registry') + registry = config.get('registry') } - log.silly("mapToRegistry", "registry", registry) + log.silly('mapToRegistry', 'registry', registry) var auth = config.getCredentialsByURI(registry) // normalize registry URL so resolution doesn't drop a piece of registry URL - var normalized = registry.slice(-1) !== "/" ? registry+"/" : registry + var normalized = registry.slice(-1) !== '/' ? registry + '/' : registry var uri = url.resolve(normalized, name) - log.silly("mapToRegistry", "uri", uri) + log.silly('mapToRegistry', 'uri', uri) cb(null, uri, auth, normalized) } diff --git a/deps/npm/lib/utils/parse-json.js b/deps/npm/lib/utils/parse-json.js new file mode 100644 index 0000000000000000000000000000000000000000..5c0b959a0d39eeacfec0b306a1d59c6debbecc87 --- /dev/null +++ b/deps/npm/lib/utils/parse-json.js @@ -0,0 +1,24 @@ +'use strict' +var parseJSON = module.exports = function (content) { + return JSON.parse(stripBOM(content)) +} + +parseJSON.noExceptions = function (content) { + try { + return parseJSON(content) + } catch (ex) { + return + } +} + +// from read-package-json +function stripBOM (content) { + content = content.toString() + // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + // because the buffer-to-string conversion in `fs.readFileSync()` + // translates it to FEFF, the UTF-16 BOM. + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1) + } + return content +} diff --git a/deps/npm/lib/utils/pulse-till-done.js b/deps/npm/lib/utils/pulse-till-done.js new file mode 100644 index 0000000000000000000000000000000000000000..fc6450e003001513cca10969ad739fd7c229f285 --- /dev/null +++ b/deps/npm/lib/utils/pulse-till-done.js @@ -0,0 +1,21 @@ +'use strict' +var validate = require('aproba') +var log = require('npmlog') + +var pulsers = 0 +var pulse + +module.exports = function (prefix, cb) { + validate('SF', [prefix, cb]) + if (!pulsers++) { + pulse = setInterval(function () { + log.gauge.pulse('network') + }, 250) + } + return function () { + if (!--pulsers) { + clearInterval(pulse) + } + cb.apply(null, arguments) + } +} diff --git a/deps/npm/lib/utils/read-local-package.js b/deps/npm/lib/utils/read-local-package.js index ca6d613210f1da6380e554de554783426a12326a..27ca7b4e39537613808948ee37c844bfc5266dc0 100644 --- a/deps/npm/lib/utils/read-local-package.js +++ b/deps/npm/lib/utils/read-local-package.js @@ -1,12 +1,12 @@ exports = module.exports = readLocalPkg -var npm = require("../npm.js") - , readJson = require("read-package-json") +var npm = require('../npm.js') +var readJson = require('read-package-json') function readLocalPkg (cb) { - if (npm.config.get("global")) return cb() - var path = require("path") - readJson(path.resolve(npm.prefix, "package.json"), function (er, d) { + if (npm.config.get('global')) return cb() + var path = require('path') + readJson(path.resolve(npm.prefix, 'package.json'), function (er, d) { return cb(er, d && d.name) }) } diff --git a/deps/npm/lib/utils/spawn.js b/deps/npm/lib/utils/spawn.js index 74684521f741a0ead28965296f3a66f312867322..e389d83e02c64d74b2864a9aec737147dc30ad17 100644 --- a/deps/npm/lib/utils/spawn.js +++ b/deps/npm/lib/utils/spawn.js @@ -1,16 +1,16 @@ module.exports = spawn -var _spawn = require("child_process").spawn -var EventEmitter = require("events").EventEmitter +var _spawn = require('child_process').spawn +var EventEmitter = require('events').EventEmitter function spawn (cmd, args, options) { var raw = _spawn(cmd, args, options) var cooked = new EventEmitter() - raw.on("error", function (er) { + raw.on('error', function (er) { er.file = cmd - cooked.emit("error", er) - }).on("close", function (code, signal) { + cooked.emit('error', er) + }).on('close', function (code, signal) { // Create ENOENT error because Node.js v0.8 will not emit // an `error` event if the command could not be found. if (code === 127) { @@ -21,7 +21,7 @@ function spawn (cmd, args, options) { er.file = cmd cooked.emit('error', er) } else { - cooked.emit("close", code, signal) + cooked.emit('close', code, signal) } }) diff --git a/deps/npm/lib/utils/tar.js b/deps/npm/lib/utils/tar.js index 7656b5d9754a3ad5151e0d796e79b350e65935fe..5b20160ea5d46deaae0b113c54dd2bb90080a7e0 100644 --- a/deps/npm/lib/utils/tar.js +++ b/deps/npm/lib/utils/tar.js @@ -1,22 +1,26 @@ // commands for packing and unpacking tarballs // this file is used by lib/cache.js -var npm = require("../npm.js") - , fs = require("graceful-fs") - , writeFileAtomic = require("write-file-atomic") - , writeStreamAtomic = require("fs-write-stream-atomic") - , path = require("path") - , log = require("npmlog") - , uidNumber = require("uid-number") - , rm = require("./gently-rm.js") - , readJson = require("read-package-json") - , myUid = process.getuid && process.getuid() - , myGid = process.getgid && process.getgid() - , tar = require("tar") - , zlib = require("zlib") - , fstream = require("fstream") - , Packer = require("fstream-npm") - , lifecycle = require("./lifecycle.js") +var fs = require('graceful-fs') +var path = require('path') +var writeFileAtomic = require('write-file-atomic') +var writeStreamAtomic = require('fs-write-stream-atomic') +var log = require('npmlog') +var uidNumber = require('uid-number') +var readJson = require('read-package-json') +var tar = require('tar') +var zlib = require('zlib') +var fstream = require('fstream') +var Packer = require('fstream-npm') +var iferr = require('iferr') +var inherits = require('inherits') +var npm = require('../npm.js') +var rm = require('./gently-rm.js') +var myUid = process.getuid && process.getuid() +var myGid = process.getgid && process.getgid() +var readPackageTree = require('read-package-tree') +var union = require('lodash.union') +var flattenTree = require('../install/flatten-tree.js') if (process.env.SUDO_UID && myUid === 0) { if (!isNaN(process.env.SUDO_UID)) myUid = +process.env.SUDO_UID @@ -26,28 +30,148 @@ if (process.env.SUDO_UID && myUid === 0) { exports.pack = pack exports.unpack = unpack -function pack (tarball, folder, pkg, dfc, cb) { - log.verbose("tar pack", [tarball, folder]) - if (typeof cb !== "function") cb = dfc, dfc = false +function pack (tarball, folder, pkg, cb) { + log.verbose('tar pack', [tarball, folder]) + + log.verbose('tarball', tarball) + log.verbose('folder', folder) + + readJson(path.join(folder, 'package.json'), function (er, pkg) { + if (er || !pkg.bundleDependencies) { + pack_(tarball, folder, null, null, pkg, cb) + } else { + // we require this at runtime due to load-order issues, because recursive + // requires fail if you replace the exports object, and we do, not in deps, but + // in a dep of it. + var recalculateMetadata = require('../install/deps.js').recalculateMetadata + + readPackageTree(folder, iferr(cb, function (tree) { + recalculateMetadata(tree, log.newGroup('pack:' + pkg), iferr(cb, function () { + pack_(tarball, folder, tree, flattenTree(tree), pkg, cb) + })) + })) + } + }) +} - log.verbose("tarball", tarball) - log.verbose("folder", folder) +function BundledPacker (props) { + Packer.call(this, props) +} +inherits(BundledPacker, Packer) + +BundledPacker.prototype.applyIgnores = function (entry, partial, entryObj) { + // package.json files can never be ignored. + if (entry === 'package.json') return true + + // readme files should never be ignored. + if (entry.match(/^readme(\.[^\.]*)$/i)) return true + + // license files should never be ignored. + if (entry.match(/^(license|licence)(\.[^\.]*)?$/i)) return true + + // changelogs should never be ignored. + if (entry.match(/^(changes|changelog|history)(\.[^\.]*)?$/i)) return true + + // special rules. see below. + if (entry === 'node_modules' && this.packageRoot) return true + + // some files are *never* allowed under any circumstances + if (entry === '.git' || + entry === '.lock-wscript' || + entry.match(/^\.wafpickle-[0-9]+$/) || + entry === 'CVS' || + entry === '.svn' || + entry === '.hg' || + entry.match(/^\..*\.swp$/) || + entry === '.DS_Store' || + entry.match(/^\._/) || + entry === 'npm-debug.log' + ) { + return false + } - if (dfc) { - // do fancy crap - return lifecycle(pkg, "prepublish", folder, function (er) { - if (er) return cb(er) - pack_(tarball, folder, pkg, cb) - }) - } else { - pack_(tarball, folder, pkg, cb) + // in a node_modules folder, we only include bundled dependencies + // also, prevent packages in node_modules from being affected + // by rules set in the containing package, so that + // bundles don't get busted. + // Also, once in a bundle, everything is installed as-is + // To prevent infinite cycles in the case of cyclic deps that are + // linked with npm link, even in a bundle, deps are only bundled + // if they're not already present at a higher level. + if (this.bundleMagic) { + // bubbling up. stop here and allow anything the bundled pkg allows + if (entry.indexOf('/') !== -1) return true + + // never include the .bin. It's typically full of platform-specific + // stuff like symlinks and .cmd files anyway. + if (entry === '.bin') return false + + // the package root. + var p = this.parent + // the package before this one. + var pp = p && p.parent + + // if this entry has already been bundled, and is a symlink, + // and it is the *same* symlink as this one, then exclude it. + if (pp && pp.bundleLinks && this.bundleLinks && + pp.bundleLinks[entry] && + pp.bundleLinks[entry] === this.bundleLinks[entry]) { + return false + } + + // since it's *not* a symbolic link, if we're *already* in a bundle, + // then we should include everything. + if (pp && pp.package && pp.basename === 'node_modules') { + return true + } + + // only include it at this point if it's a bundleDependency + return this.isBundled(entry) } + // if (this.bundled) return true + + return Packer.prototype.applyIgnores.call(this, entry, partial, entryObj) } -function pack_ (tarball, folder, pkg, cb) { - new Packer({ path: folder, type: "Directory", isDirectory: true }) - .on("error", function (er) { - if (er) log.error("tar pack", "Error reading " + folder) +function nameMatch (name) { return function (other) { return name === other.package.name } } + +function pack_ (tarball, folder, tree, flatTree, pkg, cb) { + function InstancePacker (props) { + BundledPacker.call(this, props) + } + inherits(InstancePacker, BundledPacker) + InstancePacker.prototype.isBundled = function (name) { + var bd = this.package && this.package.bundleDependencies + if (!bd) return false + + if (!Array.isArray(bd)) { + throw new Error(this.package.name + '\'s `bundledDependencies` should ' + + 'be an array') + } + if (!tree) return false + + if (bd.indexOf(name) !== -1) return true + var pkg = tree.children.filter(nameMatch(name))[0] + if (!pkg) return false + var requiredBy = union([], pkg.package._requiredBy) + var seen = {} + while (requiredBy.length) { + var req = requiredBy.shift() + if (seen[req]) continue + seen[req] = true + var reqPkg = flatTree[req] + if (!reqPkg) continue + if (reqPkg.parent === tree && bd.indexOf(reqPkg.package.name) !== -1) { + return true + } + requiredBy = union(requiredBy, reqPkg.package._requiredBy) + } + return false + } + + new InstancePacker({ path: folder, type: 'Directory', isDirectory: true }) + .on('error', function (er) { + if (er) log.error('tar pack', 'Error reading ' + folder) return cb(er) }) @@ -56,32 +180,43 @@ function pack_ (tarball, folder, pkg, cb) { // However, npm *itself* excludes these from its own package, // so that it can be more easily bootstrapped using old and // non-compliant tar implementations. - .pipe(tar.Pack({ noProprietary: !npm.config.get("proprietary-attribs") })) - .on("error", function (er) { - if (er) log.error("tar.pack", "tar creation error", tarball) + .pipe(tar.Pack({ noProprietary: !npm.config.get('proprietary-attribs') })) + .on('error', function (er) { + if (er) log.error('tar.pack', 'tar creation error', tarball) cb(er) }) .pipe(zlib.Gzip()) - .on("error", function (er) { - if (er) log.error("tar.pack", "gzip error "+tarball) + .on('error', function (er) { + if (er) log.error('tar.pack', 'gzip error ' + tarball) cb(er) }) .pipe(writeStreamAtomic(tarball)) - .on("error", function (er) { - if (er) log.error("tar.pack", "Could not write "+tarball) + .on('error', function (er) { + if (er) log.error('tar.pack', 'Could not write ' + tarball) cb(er) }) - .on("close", cb) + .on('close', cb) } - function unpack (tarball, unpackTarget, dMode, fMode, uid, gid, cb) { - log.verbose("tar", "unpack", tarball) - log.verbose("tar", "unpacking to", unpackTarget) - if (typeof cb !== "function") cb = gid, gid = null - if (typeof cb !== "function") cb = uid, uid = null - if (typeof cb !== "function") cb = fMode, fMode = npm.modes.file - if (typeof cb !== "function") cb = dMode, dMode = npm.modes.exec + log.verbose('tar', 'unpack', tarball) + log.verbose('tar', 'unpacking to', unpackTarget) + if (typeof cb !== 'function') { + cb = gid + gid = null + } + if (typeof cb !== 'function') { + cb = uid + uid = null + } + if (typeof cb !== 'function') { + cb = fMode + fMode = npm.modes.file + } + if (typeof cb !== 'function') { + cb = dMode + dMode = npm.modes.exec + } uidNumber(uid, gid, function (er, uid, gid) { if (er) return cb(er) @@ -89,26 +224,25 @@ function unpack (tarball, unpackTarget, dMode, fMode, uid, gid, cb) { }) } -function unpack_ ( tarball, unpackTarget, dMode, fMode, uid, gid, cb ) { +function unpack_ (tarball, unpackTarget, dMode, fMode, uid, gid, cb) { rm(unpackTarget, function (er) { if (er) return cb(er) // gzip {tarball} --decompress --stdout \ // | tar -mvxpf - --strip-components=1 -C {unpackTarget} - gunzTarPerm( tarball, unpackTarget - , dMode, fMode - , uid, gid - , function (er, folder) { + gunzTarPerm(tarball, unpackTarget, + dMode, fMode, + uid, gid, + function (er, folder) { if (er) return cb(er) - readJson(path.resolve(folder, "package.json"), cb) + readJson(path.resolve(folder, 'package.json'), cb) }) }) } - function gunzTarPerm (tarball, target, dMode, fMode, uid, gid, cb_) { if (!dMode) dMode = npm.modes.exec if (!fMode) fMode = npm.modes.file - log.silly("gunzTarPerm", "modes", [dMode.toString(8), fMode.toString(8)]) + log.silly('gunzTarPerm', 'modes', [dMode.toString(8), fMode.toString(8)]) var cbCalled = false function cb (er) { @@ -119,51 +253,51 @@ function gunzTarPerm (tarball, target, dMode, fMode, uid, gid, cb_) { var fst = fs.createReadStream(tarball) - fst.on("open", function (fd) { + fst.on('open', function (fd) { fs.fstat(fd, function (er, st) { - if (er) return fst.emit("error", er) + if (er) return fst.emit('error', er) if (st.size === 0) { - er = new Error("0-byte tarball\n" + - "Please run `npm cache clean`") - fst.emit("error", er) + er = new Error('0-byte tarball\n' + + 'Please run `npm cache clean`') + fst.emit('error', er) } }) }) // figure out who we're supposed to be, if we're not pretending // to be a specific user. - if (npm.config.get("unsafe-perm") && process.platform !== "win32") { + if (npm.config.get('unsafe-perm') && process.platform !== 'win32') { uid = myUid gid = myGid } function extractEntry (entry) { - log.silly("gunzTarPerm", "extractEntry", entry.path) + log.silly('gunzTarPerm', 'extractEntry', entry.path) // never create things that are user-unreadable, // or dirs that are user-un-listable. Only leads to headaches. var originalMode = entry.mode = entry.mode || entry.props.mode - entry.mode = entry.mode | (entry.type === "Directory" ? dMode : fMode) + entry.mode = entry.mode | (entry.type === 'Directory' ? dMode : fMode) entry.mode = entry.mode & (~npm.modes.umask) entry.props.mode = entry.mode if (originalMode !== entry.mode) { - log.silly( "gunzTarPerm", "modified mode" - , [entry.path, originalMode, entry.mode]) + log.silly('gunzTarPerm', 'modified mode', + [entry.path, originalMode, entry.mode]) } // if there's a specific owner uid/gid that we want, then set that - if (process.platform !== "win32" && - typeof uid === "number" && - typeof gid === "number") { + if (process.platform !== 'win32' && + typeof uid === 'number' && + typeof gid === 'number') { entry.props.uid = entry.uid = uid entry.props.gid = entry.gid = gid } } - var extractOpts = { type: "Directory", path: target, strip: 1 } + var extractOpts = { type: 'Directory', path: target, strip: 1 } - if (process.platform !== "win32" && - typeof uid === "number" && - typeof gid === "number") { + if (process.platform !== 'win32' && + typeof uid === 'number' && + typeof gid === 'number') { extractOpts.uid = uid extractOpts.gid = gid } @@ -172,9 +306,9 @@ function gunzTarPerm (tarball, target, dMode, fMode, uid, gid, cb_) { extractOpts.filter = function () { // symbolic links are not allowed in packages. if (this.type.match(/^.*Link$/)) { - log.warn( "excluding symbolic link" - , this.path.substr(target.length + 1) - + " -> " + this.linkpath ) + log.warn('excluding symbolic link', + this.path.substr(target.length + 1) + + ' -> ' + this.linkpath) return false } @@ -182,12 +316,12 @@ function gunzTarPerm (tarball, target, dMode, fMode, uid, gid, cb_) { // employed during tarball creation, in the fstream-npm module. // It is duplicated here to handle tarballs that are created // using other means, such as system tar or git archive. - if (this.type === "File") { + if (this.type === 'File') { var base = path.basename(this.path) - if (base === ".npmignore") { + if (base === '.npmignore') { sawIgnores[ this.path ] = true - } else if (base === ".gitignore") { - var npmignore = this.path.replace(/\.gitignore$/, ".npmignore") + } else if (base === '.gitignore') { + var npmignore = this.path.replace(/\.gitignore$/, '.npmignore') if (sawIgnores[npmignore]) { // Skip this one, already seen. return false @@ -202,13 +336,12 @@ function gunzTarPerm (tarball, target, dMode, fMode, uid, gid, cb_) { return true } - fst - .on("error", function (er) { - if (er) log.error("tar.unpack", "error reading "+tarball) + .on('error', function (er) { + if (er) log.error('tar.unpack', 'error reading ' + tarball) cb(er) }) - .on("data", function OD (c) { + .on('data', function OD (c) { // detect what it is. // Then, depending on that, we'll figure out whether it's // a single-file module, gzipped tarball, or naked tarball. @@ -218,59 +351,59 @@ function gunzTarPerm (tarball, target, dMode, fMode, uid, gid, cb_) { c[2] === 0x08) { fst .pipe(zlib.Unzip()) - .on("error", function (er) { - if (er) log.error("tar.unpack", "unzip error "+tarball) + .on('error', function (er) { + if (er) log.error('tar.unpack', 'unzip error ' + tarball) cb(er) }) .pipe(tar.Extract(extractOpts)) - .on("entry", extractEntry) - .on("error", function (er) { - if (er) log.error("tar.unpack", "untar error "+tarball) + .on('entry', extractEntry) + .on('error', function (er) { + if (er) log.error('tar.unpack', 'untar error ' + tarball) cb(er) }) - .on("close", cb) + .on('close', cb) } else if (hasTarHeader(c)) { // naked tar fst .pipe(tar.Extract(extractOpts)) - .on("entry", extractEntry) - .on("error", function (er) { - if (er) log.error("tar.unpack", "untar error "+tarball) + .on('entry', extractEntry) + .on('error', function (er) { + if (er) log.error('tar.unpack', 'untar error ' + tarball) cb(er) }) - .on("close", cb) + .on('close', cb) } else { // naked js file - var jsOpts = { path: path.resolve(target, "index.js") } + var jsOpts = { path: path.resolve(target, 'index.js') } - if (process.platform !== "win32" && - typeof uid === "number" && - typeof gid === "number") { + if (process.platform !== 'win32' && + typeof uid === 'number' && + typeof gid === 'number') { jsOpts.uid = uid jsOpts.gid = gid } fst .pipe(fstream.Writer(jsOpts)) - .on("error", function (er) { - if (er) log.error("tar.unpack", "copy error "+tarball) + .on('error', function (er) { + if (er) log.error('tar.unpack', 'copy error ' + tarball) cb(er) }) - .on("close", function () { - var j = path.resolve(target, "package.json") + .on('close', function () { + var j = path.resolve(target, 'package.json') readJson(j, function (er, d) { if (er) { - log.error("not a package", tarball) + log.error('not a package', tarball) return cb(er) } - writeFileAtomic(j, JSON.stringify(d) + "\n", cb) + writeFileAtomic(j, JSON.stringify(d) + '\n', cb) }) }) } // now un-hook, and re-emit the chunk - fst.removeListener("data", OD) - fst.emit("data", c) + fst.removeListener('data', OD) + fst.emit('data', c) }) } diff --git a/deps/npm/lib/utils/temp-filename.js b/deps/npm/lib/utils/temp-filename.js new file mode 100644 index 0000000000000000000000000000000000000000..6b8245e8b790f0dcd3189e2bd6fd9b79b0559828 --- /dev/null +++ b/deps/npm/lib/utils/temp-filename.js @@ -0,0 +1,7 @@ +'use strict' +var uniqueFilename = require('unique-filename') +var npm = require('../npm.js') + +module.exports = function (prefix) { + return uniqueFilename(npm.tmp, prefix) +} diff --git a/deps/npm/lib/utils/umask.js b/deps/npm/lib/utils/umask.js index 6ccb4a1194b658d3a48154012593bfb00150705f..2dde1befa69dceadd77615051b2117fe6253c34f 100644 --- a/deps/npm/lib/utils/umask.js +++ b/deps/npm/lib/utils/umask.js @@ -1,5 +1,5 @@ -var umask = require("umask") -var npmlog = require("npmlog") +var umask = require('umask') +var npmlog = require('npmlog') var _fromString = umask.fromString module.exports = umask @@ -8,7 +8,7 @@ module.exports = umask umask.fromString = function (val) { _fromString(val, function (err, result) { if (err) { - npmlog.warn("invalid umask", err.message) + npmlog.warn('invalid umask', err.message) } val = result }) diff --git a/deps/npm/lib/utils/warn-deprecated.js b/deps/npm/lib/utils/warn-deprecated.js index ec821b9bd495b19faeb4c108a9aadc6ad6f36b37..fe5c5ec82a304d42223da5d87796c7ac3b136d9d 100644 --- a/deps/npm/lib/utils/warn-deprecated.js +++ b/deps/npm/lib/utils/warn-deprecated.js @@ -1,6 +1,6 @@ module.exports = warnDeprecated -var log = require("npmlog") +var log = require('npmlog') var deprecations = {} @@ -11,8 +11,7 @@ function warnDeprecated (type) { deprecations[type] = {} messages.forEach(function (m) { log.warn(type, m) }) } - } - else { + } else { if (!deprecations[type]) deprecations[type] = {} if (!deprecations[type][instance]) { diff --git a/deps/npm/lib/version.js b/deps/npm/lib/version.js index dbd48a0145a3d79a144206aeff04bca9d2ec9378..455bcc2dbadb55444ce81258a84a26ef7abe1b83 100644 --- a/deps/npm/lib/version.js +++ b/deps/npm/lib/version.js @@ -12,6 +12,7 @@ var npm = require('./npm.js') var git = require('./utils/git.js') var assert = require('assert') var lifecycle = require('./utils/lifecycle.js') +var parseJSON = require('./utils/parse-json.js') version.usage = 'npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease]' + '\n(run in package dir)\n' + @@ -32,7 +33,7 @@ function version (args, silent, cb_) { fs.readFile(packagePath, function (er, data) { if (data) data = data.toString() try { - data = JSON.parse(data) + data = parseJSON(data) } catch (e) { er = e data = null @@ -107,7 +108,7 @@ function updateShrinkwrap (newVersion, cb) { try { data = data.toString() - data = JSON.parse(data) + data = parseJSON(data) } catch (er) { log.error('version', 'Bad npm-shrinkwrap.json data') return cb(er) diff --git a/deps/npm/lib/view.js b/deps/npm/lib/view.js index 9199d352ae7ff8dce62ad4c5587bb0ffa19cb7fd..9ca18d35402e1bc24d492ceae2d6976b624fa8ae 100644 --- a/deps/npm/lib/view.js +++ b/deps/npm/lib/view.js @@ -1,16 +1,17 @@ // npm view [pkg [pkg ...]] module.exports = view -view.usage = "npm view pkg[@version] [[.subfield]...]" - -var npm = require("./npm.js") - , readJson = require("read-package-json") - , log = require("npmlog") - , util = require("util") - , semver = require("semver") - , mapToRegistry = require("./utils/map-to-registry.js") - , npa = require("npm-package-arg") - , path = require("path") +view.usage = 'npm view [<@scope>/][@] [[.subfield]...]' + + '\n\naliases: info, show, v' + +var npm = require('./npm.js') +var readJson = require('read-package-json') +var log = require('npmlog') +var util = require('util') +var semver = require('semver') +var mapToRegistry = require('./utils/map-to-registry.js') +var npa = require('npm-package-arg') +var path = require('path') view.completion = function (opts, cb) { if (opts.conf.argv.remain.length <= 2) { @@ -19,14 +20,14 @@ view.completion = function (opts, cb) { return cb() } // have the package, get the fields. - var tag = npm.config.get("tag") + var tag = npm.config.get('tag') mapToRegistry(opts.conf.argv.remain[2], npm.config, function (er, uri, auth) { if (er) return cb(er) - npm.registry.get(uri, { auth : auth }, function (er, d) { + npm.registry.get(uri, { auth: auth }, function (er, d) { if (er) return cb(er) - var dv = d.versions[d["dist-tags"][tag]] - , fields = [] + var dv = d.versions[d['dist-tags'][tag]] + var fields = [] d.versions = Object.keys(d.versions).sort(semver.compareLoose) fields = getFields(d).concat(getFields(dv)) cb(null, fields) @@ -38,48 +39,51 @@ view.completion = function (opts, cb) { if (!d) return f pref = pref || [] Object.keys(d).forEach(function (k) { - if (k.charAt(0) === "_" || k.indexOf(".") !== -1) return - var p = pref.concat(k).join(".") + if (k.charAt(0) === '_' || k.indexOf('.') !== -1) return + var p = pref.concat(k).join('.') f.push(p) if (Array.isArray(d[k])) { d[k].forEach(function (val, i) { - var pi = p + "[" + i + "]" - if (val && typeof val === "object") getFields(val, f, [p]) + var pi = p + '[' + i + ']' + if (val && typeof val === 'object') getFields(val, f, [p]) else f.push(pi) }) return } - if (typeof d[k] === "object") getFields(d[k], f, [p]) + if (typeof d[k] === 'object') getFields(d[k], f, [p]) }) return f } } function view (args, silent, cb) { - if (typeof cb !== "function") cb = silent, silent = false + if (typeof cb !== 'function') { + cb = silent + silent = false + } - if (!args.length) args = ["."] + if (!args.length) args = ['.'] var pkg = args.shift() - , nv = npa(pkg) - , name = nv.name - , local = (name === "." || !name) + var nv = npa(pkg) + var name = nv.name + var local = (name === '.' || !name) - if (npm.config.get("global") && local) { - return cb(new Error("Cannot use view command in global mode.")) + if (npm.config.get('global') && local) { + return cb(new Error('Cannot use view command in global mode.')) } if (local) { var dir = npm.prefix - readJson(path.resolve(dir, "package.json"), function (er, d) { + readJson(path.resolve(dir, 'package.json'), function (er, d) { d = d || {} - if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) - if (!d.name) return cb(new Error("Invalid package.json")) + if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er) + if (!d.name) return cb(new Error('Invalid package.json')) var p = d.name nv = npa(p) - if (pkg && ~pkg.indexOf("@")) { - nv.rawSpec = pkg.split("@")[pkg.indexOf("@")] + if (pkg && ~pkg.indexOf('@')) { + nv.rawSpec = pkg.split('@')[pkg.indexOf('@')] } fetchAndRead(nv, args, silent, cb) @@ -92,53 +96,54 @@ function view (args, silent, cb) { function fetchAndRead (nv, args, silent, cb) { // get the data about this package var name = nv.name - , version = nv.rawSpec || npm.config.get("tag") + var version = nv.rawSpec || npm.config.get('tag') mapToRegistry(name, npm.config, function (er, uri, auth) { if (er) return cb(er) - npm.registry.get(uri, { auth : auth }, function (er, data) { + npm.registry.get(uri, { auth: auth }, function (er, data) { if (er) return cb(er) - if (data["dist-tags"] && data["dist-tags"].hasOwnProperty(version)) { - version = data["dist-tags"][version] + if (data['dist-tags'] && data['dist-tags'].hasOwnProperty(version)) { + version = data['dist-tags'][version] } if (data.time && data.time.unpublished) { var u = data.time.unpublished - er = new Error("Unpublished by " + u.name + " on " + u.time) + er = new Error('Unpublished by ' + u.name + ' on ' + u.time) er.statusCode = 404 - er.code = "E404" + er.code = 'E404' er.pkgid = data._id return cb(er, data) } - var results = [] - , error = null - , versions = data.versions || {} + var error = null + var versions = data.versions || {} data.versions = Object.keys(versions).sort(semver.compareLoose) - if (!args.length) args = [""] + if (!args.length) args = [''] // remove readme unless we asked for it - if (-1 === args.indexOf("readme")) { + if (args.indexOf('readme') === -1) { delete data.readme } Object.keys(versions).forEach(function (v) { - if (semver.satisfies(v, version, true)) args.forEach(function (args) { - // remove readme unless we asked for it - if (-1 === args.indexOf("readme")) { - delete versions[v].readme - } - results.push(showFields(data, versions[v], args)) - }) + if (semver.satisfies(v, version, true)) { + args.forEach(function (args) { + // remove readme unless we asked for it + if (args.indexOf('readme') !== -1) { + delete versions[v].readme + } + results.push(showFields(data, versions[v], args)) + }) + } }) results = results.reduce(reducer, {}) var retval = results - if (args.length === 1 && args[0] === "") { + if (args.length === 1 && args[0] === '') { retval = cleanBlanks(retval) - log.silly("cleanup", retval) + log.silly('cleanup', retval) } if (error || silent) cb(error, retval) @@ -150,18 +155,21 @@ function fetchAndRead (nv, args, silent, cb) { function cleanBlanks (obj) { var clean = {} Object.keys(obj).forEach(function (version) { - clean[version] = obj[version][""] + clean[version] = obj[version][''] }) return clean } function reducer (l, r) { - if (r) Object.keys(r).forEach(function (v) { - l[v] = l[v] || {} - Object.keys(r[v]).forEach(function (t) { - l[v][t] = r[v][t] + if (r) { + Object.keys(r).forEach(function (v) { + l[v] = l[v] || {} + Object.keys(r[v]).forEach(function (t) { + l[v][t] = r[v][t] + }) }) - }) + } + return l } @@ -173,12 +181,12 @@ function showFields (data, version, fields) { o[k] = s[k] }) }) - return search(o, fields.split("."), version.version, fields) + return search(o, fields.split('.'), version.version, fields) } function search (data, fields, version, title) { var field - , tail = fields + var tail = fields while (!field && fields.length) field = tail.shift() fields = [field].concat(tail) var o @@ -195,7 +203,7 @@ function search (data, fields, version, title) { if (data.field && data.field.hasOwnProperty(index)) { return search(data[field][index], tail, version, title) } else { - field = field + "[" + index + "]" + field = field + '[' + index + ']' } } if (Array.isArray(data)) { @@ -205,8 +213,8 @@ function search (data, fields, version, title) { var results = [] data.forEach(function (data, i) { var tl = title.length - , newt = title.substr(0, tl-(fields.join(".").length) - 1) - + "["+i+"]" + [""].concat(fields).join(".") + var newt = title.substr(0, tl - fields.join('.').length - 1) + + '[' + i + ']' + [''].concat(fields).join('.') results.push(search(data, fields.slice(), version, newt)) }) results = results.reduce(reducer, {}) @@ -215,11 +223,11 @@ function search (data, fields, version, title) { if (!data.hasOwnProperty(field)) return undefined data = data[field] if (tail.length) { - if (typeof data === "object") { + if (typeof data === 'object') { // there are more fields to deal with. return search(data, tail, version, title) } else { - return new Error("Not an object: "+data) + return new Error('Not an object: ' + data) } } o = {} @@ -230,33 +238,33 @@ function search (data, fields, version, title) { function printData (data, name, cb) { var versions = Object.keys(data) - , msg = "" - , includeVersions = versions.length > 1 - , includeFields + var msg = '' + var includeVersions = versions.length > 1 + var includeFields versions.forEach(function (v) { var fields = Object.keys(data[v]) includeFields = includeFields || (fields.length > 1) fields.forEach(function (f) { var d = cleanup(data[v][f]) - if (includeVersions || includeFields || typeof d !== "string") { + if (includeVersions || includeFields || typeof d !== 'string') { d = cleanup(data[v][f]) - d = npm.config.get("json") + d = npm.config.get('json') ? JSON.stringify(d, null, 2) : util.inspect(d, false, 5, npm.color) - } else if (typeof d === "string" && npm.config.get("json")) { + } else if (typeof d === 'string' && npm.config.get('json')) { d = JSON.stringify(d) } - if (f && includeFields) f += " = " - if (d.indexOf("\n") !== -1) d = " \n" + d - msg += (includeVersions ? name + "@" + v + " " : "") - + (includeFields ? f : "") + d + "\n" + if (f && includeFields) f += ' = ' + if (d.indexOf('\n') !== -1) d = ' \n' + d + msg += (includeVersions ? name + '@' + v + ' ' : '') + + (includeFields ? f : '') + d + '\n' }) }) // preserve output symmetry by adding a whitespace-only line at the end if // there's one at the beginning - if (/^\s*\n/.test(msg)) msg += "\n" + if (/^\s*\n/.test(msg)) msg += '\n' // print directly to stdout to not unnecessarily add blank lines process.stdout.write(msg) @@ -265,38 +273,34 @@ function printData (data, name, cb) { } function cleanup (data) { if (Array.isArray(data)) { - if (data.length === 1) { - data = data[0] - } else { - return data.map(cleanup) - } + return data.map(cleanup) } - if (!data || typeof data !== "object") return data + if (!data || typeof data !== 'object') return data - if (typeof data.versions === "object" - && data.versions - && !Array.isArray(data.versions)) { + if (typeof data.versions === 'object' && + data.versions && + !Array.isArray(data.versions)) { data.versions = Object.keys(data.versions || {}) } var keys = Object.keys(data) keys.forEach(function (d) { - if (d.charAt(0) === "_") delete data[d] - else if (typeof data[d] === "object") data[d] = cleanup(data[d]) + if (d.charAt(0) === '_') delete data[d] + else if (typeof data[d] === 'object') data[d] = cleanup(data[d]) }) keys = Object.keys(data) - if (keys.length <= 3 - && data.name - && (keys.length === 1 - || keys.length === 3 && data.email && data.url - || keys.length === 2 && (data.email || data.url))) { + if (keys.length <= 3 && + data.name && + (keys.length === 1 || + keys.length === 3 && data.email && data.url || + keys.length === 2 && (data.email || data.url))) { data = unparsePerson(data) } return data } function unparsePerson (d) { - if (typeof d === "string") return d - return d.name - + (d.email ? " <"+d.email+">" : "") - + (d.url ? " ("+d.url+")" : "") + if (typeof d === 'string') return d + return d.name + + (d.email ? ' <' + d.email + '>' : '') + + (d.url ? ' (' + d.url + ')' : '') } diff --git a/deps/npm/lib/visnup.js b/deps/npm/lib/visnup.js index 8d710c20b0dcc8f380cc5083e0d4ab9ba988806d..b0352fd6d049f28391aa44aa9054b260850f9a57 100644 --- a/deps/npm/lib/visnup.js +++ b/deps/npm/lib/visnup.js @@ -1,38 +1,38 @@ module.exports = visnup -var npm = require("./npm.js") +var npm = require('./npm.js') var handsomeFace = [ - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 237, 236, 236, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 235, 233, 237, 235, 233, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 235, 233, 232, 235, 235, 234, 233, 236, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 0, 0, 0, 237, 235, 232, 232, 234, 233, 233, 232, 232, 233, 232, 232, 235, 232, 233, 234, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 0, 0, 232, 232, 232, 239, 238, 235, 233, 232, 232, 232, 232, 232, 232, 232, 233, 235, 232, 233, 233, 232, 0, 0, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 234, 234, 232, 233, 234, 233, 234, 235, 233, 235, 60, 238, 238, 234, 234, 233, 234, 233, 238, 251, 246, 233, 233, 232, 0, 0, 0, 0, 0, 0] - ,[0, 0, 233, 233, 233, 232, 232, 239, 249, 251, 252, 231, 231, 188, 250, 254, 59, 60, 255, 231, 231, 231, 252, 235, 239, 235, 232, 233, 0, 0, 0, 0, 0, 0] - ,[0, 0, 232, 233, 232, 232, 232, 248, 231, 231, 231, 231, 231, 231, 231, 254, 238, 254, 231, 231, 231, 231, 231, 252, 233, 235, 237, 233, 234, 0, 0, 0, 0, 0] - ,[0, 0, 233, 232, 232, 232, 248, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 251, 233, 233, 233, 236, 233, 0, 0, 0, 0] - ,[232, 233, 233, 232, 232, 246, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 249, 233, 234, 234, 0, 0, 0, 0] - ,[232, 232, 232, 232, 233, 249, 231, 255, 255, 255, 255, 254, 109, 60, 239, 237, 238, 237, 235, 235, 235, 235, 236, 235, 235, 235, 234, 232, 232, 232, 232, 232, 233, 0] - ,[0, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233, 233, 235, 236, 238, 238, 235, 188, 254, 254, 145, 236, 252, 254, 254, 254, 254, 249, 236, 235, 232, 232, 233, 0] - ,[0, 0, 233, 237, 249, 239, 233, 252, 231, 231, 231, 231, 231, 231, 254, 235, 235, 254, 231, 231, 251, 235, 237, 231, 231, 231, 231, 7, 237, 235, 232, 233, 233, 0] - ,[0, 0, 0, 0, 233, 248, 239, 233, 231, 231, 231, 231, 254, 233, 233, 235, 254, 255, 231, 254, 237, 236, 254, 239, 235, 235, 233, 233, 232, 232, 233, 232, 0, 0] - ,[0, 0, 0, 232, 233, 246, 255, 255, 236, 236, 236, 236, 236, 255, 231, 231, 231, 231, 231, 231, 252, 234, 248, 231, 231, 231, 231, 248, 232, 232, 232, 0, 0, 0] - ,[0, 0, 0, 0, 235, 237, 7, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 255, 238, 235, 7, 231, 231, 231, 246, 232, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 235, 103, 188, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 252, 232, 238, 231, 231, 255, 244, 232, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 235, 236, 103, 146, 253, 255, 231, 231, 231, 231, 231, 253, 251, 250, 250, 250, 246, 232, 235, 152, 255, 146, 66, 233, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 0, 233, 103, 146, 146, 146, 146, 254, 231, 231, 231, 109, 103, 146, 255, 188, 239, 240, 103, 255, 253, 103, 238, 234, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 0, 232, 235, 109, 146, 146, 146, 146, 146, 252, 152, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 103, 235, 233, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 0, 0, 235, 235, 103, 146, 146, 146, 146, 146, 146, 188, 188, 188, 188, 188, 188, 152, 146, 146, 146, 66, 235, 0, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 0, 0, 0, 233, 235, 66, 146, 146, 146, 146, 152, 255, 146, 240, 239, 241, 109, 146, 146, 146, 103, 233, 0, 0, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 237, 109, 146, 146, 146, 146, 146, 254, 231, 231, 188, 146, 146, 146, 103, 233, 0, 0, 0, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 237, 60, 103, 146, 146, 146, 146, 146, 103, 66, 60, 235, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0] - ,[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 233, 236, 235, 237, 235, 237, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] - + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 237, 236, 236, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 236, 235, 233, 237, 235, 233, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 235, 233, 232, 235, 235, 234, 233, 236, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 237, 235, 232, 232, 234, 233, 233, 232, 232, 233, 232, 232, 235, 232, 233, 234, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 232, 232, 232, 239, 238, 235, 233, 232, 232, 232, 232, 232, 232, 232, 233, 235, 232, 233, 233, 232, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 234, 234, 232, 233, 234, 233, 234, 235, 233, 235, 60, 238, 238, 234, 234, 233, 234, 233, 238, 251, 246, 233, 233, 232, 0, 0, 0, 0, 0, 0], + [0, 0, 233, 233, 233, 232, 232, 239, 249, 251, 252, 231, 231, 188, 250, 254, 59, 60, 255, 231, 231, 231, 252, 235, 239, 235, 232, 233, 0, 0, 0, 0, 0, 0], + [0, 0, 232, 233, 232, 232, 232, 248, 231, 231, 231, 231, 231, 231, 231, 254, 238, 254, 231, 231, 231, 231, 231, 252, 233, 235, 237, 233, 234, 0, 0, 0, 0, 0], + [0, 0, 233, 232, 232, 232, 248, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 251, 233, 233, 233, 236, 233, 0, 0, 0, 0], + [232, 233, 233, 232, 232, 246, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 249, 233, 234, 234, 0, 0, 0, 0], + [232, 232, 232, 232, 233, 249, 231, 255, 255, 255, 255, 254, 109, 60, 239, 237, 238, 237, 235, 235, 235, 235, 236, 235, 235, 235, 234, 232, 232, 232, 232, 232, 233, 0], + [0, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233, 233, 235, 236, 238, 238, 235, 188, 254, 254, 145, 236, 252, 254, 254, 254, 254, 249, 236, 235, 232, 232, 233, 0], + [0, 0, 233, 237, 249, 239, 233, 252, 231, 231, 231, 231, 231, 231, 254, 235, 235, 254, 231, 231, 251, 235, 237, 231, 231, 231, 231, 7, 237, 235, 232, 233, 233, 0], + [0, 0, 0, 0, 233, 248, 239, 233, 231, 231, 231, 231, 254, 233, 233, 235, 254, 255, 231, 254, 237, 236, 254, 239, 235, 235, 233, 233, 232, 232, 233, 232, 0, 0], + [0, 0, 0, 232, 233, 246, 255, 255, 236, 236, 236, 236, 236, 255, 231, 231, 231, 231, 231, 231, 252, 234, 248, 231, 231, 231, 231, 248, 232, 232, 232, 0, 0, 0], + [0, 0, 0, 0, 235, 237, 7, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 255, 238, 235, 7, 231, 231, 231, 246, 232, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 235, 103, 188, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 252, 232, 238, 231, 231, 255, 244, 232, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 235, 236, 103, 146, 253, 255, 231, 231, 231, 231, 231, 253, 251, 250, 250, 250, 246, 232, 235, 152, 255, 146, 66, 233, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 233, 103, 146, 146, 146, 146, 254, 231, 231, 231, 109, 103, 146, 255, 188, 239, 240, 103, 255, 253, 103, 238, 234, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 232, 235, 109, 146, 146, 146, 146, 146, 252, 152, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 103, 235, 233, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 235, 235, 103, 146, 146, 146, 146, 146, 146, 188, 188, 188, 188, 188, 188, 152, 146, 146, 146, 66, 235, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 233, 235, 66, 146, 146, 146, 146, 152, 255, 146, 240, 239, 241, 109, 146, 146, 146, 103, 233, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 237, 109, 146, 146, 146, 146, 146, 254, 231, 231, 188, 146, 146, 146, 103, 233, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 237, 60, 103, 146, 146, 146, 146, 146, 103, 66, 60, 235, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 233, 236, 235, 237, 235, 237, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +] function visnup (args, cb) { handsomeFace.forEach(function (line) { console.log(line.map(function (ch) { - return "\033[" + (ch ? "48;5;" + ch : ch) + "m" + return '\u001b[' + (ch ? '48;5;' + ch : ch) + 'm' }).join(' ')) }) diff --git a/deps/npm/lib/whoami.js b/deps/npm/lib/whoami.js index bef0184a0065bdae91aee0fd712ef4bfde8f5899..feb6fab95ae89c3b2dd33ba778e441437b16cfd7 100644 --- a/deps/npm/lib/whoami.js +++ b/deps/npm/lib/whoami.js @@ -1,31 +1,30 @@ -var npm = require("./npm.js") +var npm = require('./npm.js') module.exports = whoami -whoami.usage = "npm whoami\n(just prints username according to given registry)" +whoami.usage = 'npm whoami [--registry ]\n(just prints username according to given registry)' function whoami (args, silent, cb) { // FIXME: need tighter checking on this, but is a breaking change - if (typeof cb !== "function") { + if (typeof cb !== 'function') { cb = silent silent = false } - var registry = npm.config.get("registry") - if (!registry) return cb(new Error("no default registry set")) + var registry = npm.config.get('registry') + if (!registry) return cb(new Error('no default registry set')) var auth = npm.config.getCredentialsByURI(registry) if (auth) { if (auth.username) { if (!silent) console.log(auth.username) return process.nextTick(cb.bind(this, null, auth.username)) - } - else if (auth.token) { - return npm.registry.whoami(registry, { auth : auth }, function (er, username) { + } else if (auth.token) { + return npm.registry.whoami(registry, { auth: auth }, function (er, username) { if (er) return cb(er) if (!username) { var needNewSession = new Error( - "Your auth token is no longer valid. Please log in again." + 'Your auth token is no longer valid. Please log in again.' ) needNewSession.code = 'ENEEDAUTH' return cb(needNewSession) @@ -40,7 +39,7 @@ function whoami (args, silent, cb) { // At this point, if they have a credentials object, it doesn't have a token // or auth in it. Probably just the default registry. var needAuth = new Error( - "this command requires you to be logged in." + 'this command requires you to be logged in.' ) needAuth.code = 'ENEEDAUTH' process.nextTick(cb.bind(this, needAuth)) diff --git a/deps/npm/lib/xmas.js b/deps/npm/lib/xmas.js index fa8d1db556d9a512decbdc7abd8bdc08540ee8ac..25535533e10fbdda37a52a38ca70034e52be1e8d 100644 --- a/deps/npm/lib/xmas.js +++ b/deps/npm/lib/xmas.js @@ -1,55 +1,59 @@ // happy xmas -var log = require("npmlog") +var log = require('npmlog') module.exports = function (args, cb) { -var s = process.platform === "win32" ? " *" : " \u2605" - , f = "\uFF0F" - , b = "\uFF3C" - , x = process.platform === "win32" ? " " : "" - , o = [ "\u0069" , "\u0020", "\u0020", "\u0020", "\u0020", "\u0020" - , "\u0020", "\u0020", "\u0020", "\u0020", "\u0020", "\u0020" - , "\u0020", "\u2E1B","\u2042","\u2E2E","&","@","\uFF61" ] - , oc = [21,33,34,35,36,37] - , l = "\u005e" + var s = process.platform === 'win32' ? ' *' : ' \u2605' + var f = '\uFF0F' + var b = '\uFF3C' + var x = process.platform === 'win32' ? ' ' : '' + var o = [ + '\u0069', '\u0020', '\u0020', '\u0020', '\u0020', '\u0020', + '\u0020', '\u0020', '\u0020', '\u0020', '\u0020', '\u0020', + '\u0020', '\u2E1B', '\u2042', '\u2E2E', '&', '@', '\uFF61' + ] + var oc = [21, 33, 34, 35, 36, 37] + var l = '\u005e' -function w (s) { process.stderr.write(s) } + function w (s) { process.stderr.write(s) } -w("\n") -;(function T (H) { - for (var i = 0; i < H; i ++) w(" ") - w(x+"\033[33m"+s+"\n") - var M = H * 2 - 1 - for (var L = 1; L <= H; L ++) { - var O = L * 2 - 2 - var S = (M - O) / 2 - for (i = 0; i < S; i ++) w(" ") - w(x+"\033[32m"+f) - for (i = 0; i < O; i ++) w( - "\033["+oc[Math.floor(Math.random()*oc.length)]+"m"+ - o[Math.floor(Math.random() * o.length)] - ) - w(x+"\033[32m"+b+"\n") - } - w(" ") - for (i = 1; i < H; i ++) w("\033[32m"+l) - w("| "+x+" |") - for (i = 1; i < H; i ++) w("\033[32m"+l) - if (H > 10) { - w("\n ") - for (i = 1; i < H; i ++) w(" ") - w("| "+x+" |") - for (i = 1; i < H; i ++) w(" ") - } -})(20) -w("\n\n") -log.heading = '' -log.addLevel('npm', 100000, log.headingStyle) -log.npm("loves you", "Happy Xmas, Noders!") -cb() + w('\n') + ;(function T (H) { + for (var i = 0; i < H; i++) w(' ') + w(x + '\u001b[33m' + s + '\n') + var M = H * 2 - 1 + for (var L = 1; L <= H; L++) { + var O = L * 2 - 2 + var S = (M - O) / 2 + for (i = 0; i < S; i++) w(' ') + w(x + '\u001b[32m' + f) + for (i = 0; i < O; i++) { + w( + '\u001b[' + oc[Math.floor(Math.random() * oc.length)] + 'm' + + o[Math.floor(Math.random() * o.length)] + ) + } + w(x + '\u001b[32m' + b + '\n') + } + w(' ') + for (i = 1; i < H; i++) w('\u001b[32m' + l) + w('| ' + x + ' |') + for (i = 1; i < H; i++) w('\u001b[32m' + l) + if (H > 10) { + w('\n ') + for (i = 1; i < H; i++) w(' ') + w('| ' + x + ' |') + for (i = 1; i < H; i++) w(' ') + } + })(20) + w('\n\n') + log.heading = '' + log.addLevel('npm', 100000, log.headingStyle) + log.npm('loves you', 'Happy Xmas, Noders!') + cb() } -var dg=false -Object.defineProperty(module.exports, "usage", {get:function () { +var dg = false +Object.defineProperty(module.exports, 'usage', {get: function () { if (dg) module.exports([], function () {}) dg = true - return " " + return ' ' }}) diff --git a/deps/npm/man/man1/npm-bin.1 b/deps/npm/man/man1/npm-bin.1 index 4f28530086d1c98dfda6f56417d553d3a862fec9..12e182d9a17ad4a5ce7dc85450ce81682d2f67e9 100644 --- a/deps/npm/man/man1/npm-bin.1 +++ b/deps/npm/man/man1/npm-bin.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm bin +npm bin [\-\-global] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1 index 513355ae976c8d6f56c3bf5ea28c1222b5d3516f..9f4626a411cf6d231aec89b3396b88709166018c 100644 --- a/deps/npm/man/man1/npm-bugs.1 +++ b/deps/npm/man/man1/npm-bugs.1 @@ -5,8 +5,7 @@ .P .RS 2 .nf -npm bugs -npm bugs (with no args in a package dir) +npm bugs [] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-build.1 b/deps/npm/man/man1/npm-build.1 index 8e20ab1770b086ea17065d8800316ac366181b04..7528f1a21cfe5884632577dcf0c544c4298bb92c 100644 --- a/deps/npm/man/man1/npm-build.1 +++ b/deps/npm/man/man1/npm-build.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm build +npm build [] .fi .RE .RS 0 diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1 index ce7235fbd71c65f023a56b786a65545a77f66846..0f3b1abf2e7638081e037f01da1ab2ad15244fc9 100644 --- a/deps/npm/man/man1/npm-completion.1 +++ b/deps/npm/man/man1/npm-completion.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -\|\. <(npm completion) +source <(npm completion) .fi .RE .SH DESCRIPTION @@ -15,7 +15,14 @@ Enables tab\-completion in all npm commands\. The synopsis above loads the completions into your current shell\. Adding it to your ~/\.bashrc or ~/\.zshrc will make the completions available -everywhere\. +everywhere: +.P +.RS 2 +.nf +npm completion >> ~/\.bashrc +npm completion >> ~/\.zshrc +.fi +.RE .P You may of course also pipe the output of npm completion to a file such as \fB/usr/local/etc/bash_completion\.d/npm\fP if you have a system diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1 index 47a5bd197ebad3620f1782b5568609ef6210d225..4ff3ac37ea1550e0d215a71ef3d1700403fb9d7e 100644 --- a/deps/npm/man/man1/npm-config.1 +++ b/deps/npm/man/man1/npm-config.1 @@ -10,7 +10,6 @@ npm config get npm config delete npm config list npm config edit -npm c [set|get|delete|list] npm get npm set [\-\-global] .fi diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1 index 9d73fcb177e7649eff612b45380a8522555adbb6..0c965e957a9b10ab56cd6c9222632dce16b6e45a 100644 --- a/deps/npm/man/man1/npm-dedupe.1 +++ b/deps/npm/man/man1/npm-dedupe.1 @@ -42,25 +42,20 @@ Because of the hierarchical nature of node's module lookup, b and d will both get their dependency met by the single c package at the root level of the tree\. .P +The deduplication algorithm walks the tree, moving each dependency as far +up in the tree as possible, even if duplicates are not found\. This will +result in both a flat and deduplicated tree\. +.P If a suitable version exists at the target location in the tree already, then it will be left untouched, but the other duplicates will be deleted\. .P -If no suitable version can be found, then a warning is printed, and -nothing is done\. -.P -If any arguments are supplied, then they are filters, and only the -named packages will be touched\. -.P -Note that this operation transforms the dependency tree, and may -result in packages getting updated versions, perhaps from the npm -registry\. +Arguments are ignored\. Dedupe always acts on the entire tree\. .P -This feature is experimental, and may change in future versions\. +Modules .P -The \fB\-\-tag\fP argument will apply to all of the affected dependencies\. If a -tag with the given name exists, the tagged version is preferred over newer -versions\. +Note that this operation transforms the dependency tree, but will never +result in new modules being installed\. .SH SEE ALSO .RS 0 .IP \(bu 2 diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1 index 1c41959dacdb9bb64896bd07a9a987ee2b51e5ec..df8c342953c80b45fc27753c342bec98e2517af2 100644 --- a/deps/npm/man/man1/npm-deprecate.1 +++ b/deps/npm/man/man1/npm-deprecate.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm deprecate [@] +npm deprecate [@] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1 index 328ad817fdf33e5cb3a61218a334e9b9cd72d1f7..74b258d7373b29b6ef5eec9d6f7cdcb709a80a3f 100644 --- a/deps/npm/man/man1/npm-docs.1 +++ b/deps/npm/man/man1/npm-docs.1 @@ -6,9 +6,9 @@ .RS 2 .nf npm docs [ [ \.\.\.]] -npm docs (with no args in a package dir) +npm docs \. npm home [ [ \.\.\.]] -npm home (with no args in a package dir) +npm home \. .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1 index c3cba10dcc99436874da355fb9a398139658e0ea..8cb4ea635e809134f17739f124c49d4f90dcd060 100644 --- a/deps/npm/man/man1/npm-edit.1 +++ b/deps/npm/man/man1/npm-edit.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm edit [@] +npm edit [@] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1 index b588f8d2f2726ba91d54da4eb1827899737a6f0c..4b1471748110ac952270ae53eabdfe53614f48f7 100644 --- a/deps/npm/man/man1/npm-explore.1 +++ b/deps/npm/man/man1/npm-explore.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm explore [ \-\- ] +npm explore [ \-\- ] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1 index 1fa13cc301775f0a7f60e9c269777267d56c4190..8d6f8e42e66b19234e54782e5d32d6a86384aac7 100644 --- a/deps/npm/man/man1/npm-help-search.1 +++ b/deps/npm/man/man1/npm-help-search.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm help\-search some search terms +npm help\-search .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1 index 5083a5866f9f9aa37438e0d3b2dbb7fed2d60970..2f6d09c665531c5dfc22350ca5a71c6fb4a95b10 100644 --- a/deps/npm/man/man1/npm-help.1 +++ b/deps/npm/man/man1/npm-help.1 @@ -5,8 +5,7 @@ .P .RS 2 .nf -npm help -npm help some search terms +npm help [] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1 index 56da738cb8d521563ce641ae4aa6525c7543a73b..5fabda5543f80918856fa6b848d6f108e8c566ca 100644 --- a/deps/npm/man/man1/npm-init.1 +++ b/deps/npm/man/man1/npm-init.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm init [\-f|\-\-force|\-y|\-\-yes] +npm init [\-\-force|\-f|\-\-yes|\-y] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1 index c135dfb4a392f1dd81f6abc989a56b66171c0d05..8e78558ba4a2fc021112687f202ff9509405ae92 100644 --- a/deps/npm/man/man1/npm-install.1 +++ b/deps/npm/man/man1/npm-install.1 @@ -5,15 +5,17 @@ .P .RS 2 .nf -npm install (with no args in a package dir) +npm install (with no args, in package dir) +npm install [<@scope>/] +npm install [<@scope>/]@ +npm install [<@scope>/]@ +npm install [<@scope>/]@ npm install npm install npm install -npm install [@/] [\-\-save|\-\-save\-dev|\-\-save\-optional] [\-\-save\-exact] -npm install [@/]@ -npm install [@/]@ -npm install [@/]@ -npm i (with any of the previous argument usage) + +alias: npm i +common options: [\-\-save|\-\-save\-dev|\-\-save\-optional] [\-\-save\-exact] [\-\-dry\-run] .fi .RE .SH DESCRIPTION @@ -37,7 +39,7 @@ e) a \fB@\fP that points to (d) .IP \(bu 2 f) a \fB\fP that has a "latest" tag satisfying (e) .IP \(bu 2 -g) a \fB\fP that resolves to (b) +g) a \fB\fP that resolves to (a) .RE .P @@ -83,7 +85,7 @@ after packing it up into a tarball (b)\. .fi .RE .IP \(bu 2 -\fBnpm install [@/] [\-\-save|\-\-save\-dev|\-\-save\-optional]\fP: +\fBnpm install [<@scope>/] [\-\-save|\-\-save\-dev|\-\-save\-optional]\fP: Do a \fB@\fP install, where \fB\fP is the "tag" config\. (See npm help 7 \fBnpm\-config\fP\|\.) In most cases, this will install the latest version @@ -110,6 +112,8 @@ package\.json, there is an additional, optional flag: \fB\-\-save\-exact\fP: Saved dependencies will be configured with an exact version rather than using npm's default semver range operator\. +Further, if you have an \fBnpm\-shrinkwrap\.json\fP then it will be updated as +well\. \fB\fP is optional\. The package will be downloaded from the registry associated with the specified scope\. If no registry is associated with the given scope the default registry is assumed\. See npm help 7 \fBnpm\-scope\fP\|\. @@ -142,7 +146,7 @@ fetch the package by name if it is not valid\. .RE .RS 0 .IP \(bu 2 -\fBnpm install [@/]@\fP: +\fBnpm install [<@scope>/]@\fP: Install the version of the package that is referenced by the specified tag\. If the tag does not exist in the registry data for that package, then this will fail\. @@ -155,7 +159,7 @@ fetch the package by name if it is not valid\. .fi .RE .IP \(bu 2 -\fBnpm install [@/]@\fP: +\fBnpm install [<@scope>/]@\fP: Install the specified version of the package\. This will fail if the version has not been published to the registry\. Example: @@ -167,7 +171,7 @@ fetch the package by name if it is not valid\. .fi .RE .IP \(bu 2 -\fBnpm install [@/]@\fP: +\fBnpm install [<@scope>/]@\fP: Install a version of the package matching the specified version range\. This will follow the same rules for resolving dependencies described in npm help 5 \fBpackage\.json\fP\|\. Note that most version ranges must be put in quotes so that your shell will @@ -182,12 +186,12 @@ fetch the package by name if it is not valid\. .RE .IP \(bu 2 \fBnpm install \fP: - Install a package by cloning a git remote url\. The format of the git - url is: + Installs the package from the hosted git provider, cloning it with + \fBgit\fP\|\. First it tries via the https (git with github) and if that fails, via ssh\. .P .RS 2 .nf - ://[[:]@][:][:/][#] + ://[[:]@][:][:][/][#] .fi .RE \fB\fP is one of \fBgit\fP, \fBgit+ssh\fP, \fBgit+http\fP, or @@ -289,6 +293,9 @@ The \fB\-\-tag\fP argument will apply to all of the specified install targets\. tag with the given name exists, the tagged version is preferred over newer versions\. .P +The \fB\-\-dry\-run\fP argument will report in the usual way what the install would +have done without actually installing anything\. +.P The \fB\-\-force\fP argument will force npm to fetch remote resources even if a local copy exists on disk\. .P @@ -316,6 +323,9 @@ shrinkwrap file and use the package\.json instead\. The \fB\-\-nodedir=/path/to/node/source\fP argument will allow npm to find the node source code so that npm can compile native modules\. .P +The \fB\-\-only={prod[uction]|dev[elopment]}\fP argument will cause either only +\fBdevDependencies\fP or only non\-\fBdevDependencies\fP to be installed\. +.P See npm help 7 \fBnpm\-config\fP\|\. Many of the configuration params have some effect on installation, since that's most of what npm does\. .SH ALGORITHM @@ -324,15 +334,16 @@ To install a package, npm uses the following algorithm: .P .RS 2 .nf -install(where, what, family, ancestors) -fetch what, unpack to /node_modules/ -for each dep in what\.dependencies - resolve dep to precise version -for each dep@version in what\.dependencies - not in /node_modules//node_modules/* - and not in - add precise version deps to - install(/node_modules/, dep, family) +load the existing node_modules tree from disk +clone the tree +fetch the package\.json and assorted metadata and add it to the clone +walk the clone and add any missing dependencies + dependencies will be added as close to the top as is possible + without breaking any other modules +compare the original tree with the cloned tree and make a list of +actions to take to convert one to the other +execute all of the actions, deepest first + kinds of actions are install, update, remove and move .fi .RE .P @@ -343,13 +354,29 @@ this algorithm produces: .nf A +\-\- B -`\-\- C - `\-\- D ++\-\- C ++\-\- D .fi .RE .P That is, the dependency from B to C is satisfied by the fact that A -already caused C to be installed at a higher level\. +already caused C to be installed at a higher level\. D is still installed +at the top level because nothing conflicts with it\. +.P +For \fBA{B,C}, B{C,D@1}, C{D@2}\fP, this algorithm produces: +.P +.RS 2 +.nf +A ++\-\- B ++\-\- C + `\-\- D@2 ++\-\- D@1 +.fi +.RE +.P +Because B's D@1 will be installed in the top leve, C now has to install D@2 +privately for itself\. .P See npm help 5 folders for a more detailed description of the specific folder structures that npm creates\. diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1 index 7fee404349015fc538674a84f265388988564efa..78c3b75a8e9c566444b213f82ea276b199d3df7c 100644 --- a/deps/npm/man/man1/npm-link.1 +++ b/deps/npm/man/man1/npm-link.1 @@ -5,9 +5,10 @@ .P .RS 2 .nf -npm link (in package folder) -npm link [@/] -npm ln (with any of the previous argument usage) +npm link (in package dir) +npm link [<@scope>/][@] + +alias: npm ln .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1 index d7ea3cd978ff044e9457f25b5a2d8d65aab49e1e..d7a840c5dd36b5dc21f50ef5b65af58f62a5debe 100644 --- a/deps/npm/man/man1/npm-logout.1 +++ b/deps/npm/man/man1/npm-logout.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm logout [\-\-registry=url] [\-\-scope=@orgname] +npm logout [\-\-registry=] [\-\-scope=<@scope>] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1 index a65a3fa89025518bafe863de1a4a829175ba29cc..d246286fd5c56550a4fa2eb24708318e9b80aa5b 100644 --- a/deps/npm/man/man1/npm-ls.1 +++ b/deps/npm/man/man1/npm-ls.1 @@ -5,10 +5,9 @@ .P .RS 2 .nf -npm list [[@/] \.\.\.] -npm ls [[@/] \.\.\.] -npm la [[@/] \.\.\.] -npm ll [[@/] \.\.\.] +npm ls [[<@scope>/] \.\.\.] + +aliases: list, la, ll .fi .RE .SH DESCRIPTION @@ -23,7 +22,7 @@ For example, running \fBnpm ls promzard\fP in npm's source tree will show: .P .RS 2 .nf -npm@2.14.7 /path/to/npm +npm@3.3.6 /path/to/npm └─┬ init\-package\-json@0\.0\.4 └── promzard@0\.1\.5 .fi @@ -35,6 +34,9 @@ If a project specifies git urls for dependencies these are shown in parentheses after the name@version to make it easier for users to recognize potential forks of a project\. .P +The tree shown is the logical dependency tree, based on package +dependencies, not the physical layout of your node_modules folder\. +.P When run as \fBll\fP or \fBla\fP, it shows extended information by default\. .SH CONFIGURATION .SS json @@ -106,6 +108,16 @@ Default: false .RE .P Display only the dependency tree for packages in \fBdevDependencies\fP\|\. +.SS only +.RS 0 +.IP \(bu 2 +Type: String + +.RE +.P +When "dev" or "development", is an alias to \fBdev\fP\|\. +.P +When "prod" or "production", is an alias to \fBproduction\fP\|\.` .SH SEE ALSO .RS 0 .IP \(bu 2 diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1 index 7f96b4e48cde03155ece1d9c8bee5e33be919979..493e7a9f21402bba1d86e1fba7f90c9e5df648ec 100644 --- a/deps/npm/man/man1/npm-outdated.1 +++ b/deps/npm/man/man1/npm-outdated.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm outdated [ [ \.\.\.]] +npm outdated [[<@scope>/] \.\.\.] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1 index 28d2cc125f578c7dec04559af810096c44da3c7e..009121d4eb59b2ecf1c9bc2e4f2bc40a0b937148 100644 --- a/deps/npm/man/man1/npm-owner.1 +++ b/deps/npm/man/man1/npm-owner.1 @@ -5,9 +5,9 @@ .P .RS 2 .nf -npm owner ls -npm owner add -npm owner rm +npm owner add [<@scope>/] +npm owner rm [<@scope>/] +npm owner ls [<@scope>/] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1 index 295d918bfed991cb326d540cfc6d6a55ee65f33d..0ece00cf1f28fa843b22bff610a255bad6985100 100644 --- a/deps/npm/man/man1/npm-pack.1 +++ b/deps/npm/man/man1/npm-pack.1 @@ -5,16 +5,16 @@ .P .RS 2 .nf -npm pack [ [ \.\.\.]] +npm pack [[<@scope>/]\.\.\.] .fi .RE .SH DESCRIPTION .P For anything that's installable (that is, a package folder, tarball, -tarball url, name@tag, name@version, or name), this command will fetch -it to the cache, and then copy the tarball to the current working -directory as \fB\-\.tgz\fP, and then write the filenames out to -stdout\. +tarball url, name@tag, name@version, name, or scoped name), this +command will fetch it to the cache, and then copy the tarball to the +current working directory as \fB\-\.tgz\fP, and then write +the filenames out to stdout\. .P If the same package is specified multiple times, then the file will be overwritten the second time\. diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1 index bb9908f5152bb9a63d6bd90a4b14fee24d1e3982..051acaab50a1d526bd263cab71d30681577f5b4f 100644 --- a/deps/npm/man/man1/npm-prune.1 +++ b/deps/npm/man/man1/npm-prune.1 @@ -5,8 +5,7 @@ .P .RS 2 .nf -npm prune [ [ [/]\.\.\.] [\-\-production] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1 index 20d1f36f6cd0d993fe739a04daf0a15db5ef241b..4421c8f45dbce0b3315b7ac3a18e5c28f80a95d8 100644 --- a/deps/npm/man/man1/npm-publish.1 +++ b/deps/npm/man/man1/npm-publish.1 @@ -5,8 +5,10 @@ .P .RS 2 .nf -npm publish [\-\-tag ] [\-\-access ] -npm publish [\-\-tag ] [\-\-access ] +npm publish [|] [\-\-tag ] [\-\-access ] + +Publishes '\.' if no argument supplied +Sets tag 'latest' if no \-\-tag specified .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1 index b10caeef0d8b46fdf04aa44d9d4bb4389a1ec7bc..03d16889aa5482370fafac840c837ebaa5deb63c 100644 --- a/deps/npm/man/man1/npm-rebuild.1 +++ b/deps/npm/man/man1/npm-rebuild.1 @@ -5,15 +5,10 @@ .P .RS 2 .nf -npm rebuild [ [ \.\.\.]] -npm rb [ [ \.\.\.]] -.fi -.RE -.RS 0 -.IP \(bu 2 -\fB\fP: -The package to rebuild +npm rebuild [[<@scope>/]\.\.\.] +alias: npm rb +.fi .RE .SH DESCRIPTION .P diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1 index 14f228c9553ee5823c91535019353a69b94dbc17..fe4418e7e5db8461b7a8d94167d6d06c66d2711c 100644 --- a/deps/npm/man/man1/npm-repo.1 +++ b/deps/npm/man/man1/npm-repo.1 @@ -5,8 +5,7 @@ .P .RS 2 .nf -npm repo -npm repo (with no args in a package dir) +npm repo [] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-rm.1 b/deps/npm/man/man1/npm-rm.1 deleted file mode 100644 index 9c2506635a491d1dd321b33bbde6f6cb09097326..0000000000000000000000000000000000000000 --- a/deps/npm/man/man1/npm-rm.1 +++ /dev/null @@ -1,34 +0,0 @@ -.TH "NPM\-RM" "1" "October 2015" "" "" -.SH "NAME" -\fBnpm-rm\fR \- Remove a package -.SH SYNOPSIS -.P -.RS 2 -.nf -npm rm -npm r -npm uninstall -npm un -.fi -.RE -.SH DESCRIPTION -.P -This uninstalls a package, completely removing everything npm installed -on its behalf\. -.SH SEE ALSO -.RS 0 -.IP \(bu 2 -npm help prune -.IP \(bu 2 -npm help install -.IP \(bu 2 -npm help 5 folders -.IP \(bu 2 -npm help config -.IP \(bu 2 -npm help 7 config -.IP \(bu 2 -npm help 5 npmrc - -.RE - diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1 index 20e4a2f687ebea37045d2a786426e80b931b6e47..6c42d89965e47f2100708ab588d27f9e18689800 100644 --- a/deps/npm/man/man1/npm-root.1 +++ b/deps/npm/man/man1/npm-root.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm root +npm root [\-g] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1 index e4da37dc2af7c5b3a8a7ef4bc0c6aca97ccb1939..08a675a31117c8b307169c22a1c05e1002122fc5 100644 --- a/deps/npm/man/man1/npm-run-script.1 +++ b/deps/npm/man/man1/npm-run-script.1 @@ -5,8 +5,9 @@ .P .RS 2 .nf -npm run\-script [command] [\-\- ] -npm run [command] [\-\- ] +npm run\-script [\-\- \.\.\.] + +alias: npm run .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-search.1 b/deps/npm/man/man1/npm-search.1 index ea2a9c82431130500e43f5a8e3e08e1e4961cb62..c3d1a6d0c9c7e3a76e5eda72359a289c85349dd9 100644 --- a/deps/npm/man/man1/npm-search.1 +++ b/deps/npm/man/man1/npm-search.1 @@ -6,8 +6,8 @@ .RS 2 .nf npm search [\-\-long] [search terms \.\.\.] -npm s [search terms \.\.\.] -npm se [search terms \.\.\.] + +aliases: s, se .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1 index 1a8abd78292a6f53f6c70a61e99644ba304bdeea..a3d7940478b49c6e3aecf38ac4e929d3d66e73ba 100644 --- a/deps/npm/man/man1/npm-shrinkwrap.1 +++ b/deps/npm/man/man1/npm-shrinkwrap.1 @@ -111,13 +111,17 @@ This generates \fBnpm\-shrinkwrap\.json\fP, which will look something like this: .nf { "name": "A", - "version": "0\.1\.0", + "version": "1\.1\.0", "dependencies": { "B": { - "version": "0\.0\.1", + "version": "1\.0\.1", + "from": "B@^1\.0\.0", + "resolved": "https://registry\.npmjs\.org/B/\-/B\-1\.0\.1\.tgz", "dependencies": { "C": { - "version": "0\.0\.1" + "version": "1\.0\.1", + "from": "org/C#v1\.0\.1", + "resolved": "git://github\.com/org/C\.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4" } } } @@ -126,15 +130,18 @@ This generates \fBnpm\-shrinkwrap\.json\fP, which will look something like this: .fi .RE .P -The shrinkwrap command has locked down the dependencies based on -what's currently installed in node_modules\. When \fBnpm install\fP -installs a package with an \fBnpm\-shrinkwrap\.json\fP in the package -root, the shrinkwrap file (rather than \fBpackage\.json\fP files) completely -drives the installation of that package and all of its dependencies -(recursively)\. So now the author publishes A@0\.1\.0, and subsequent -installs of this package will use B@0\.0\.1 and C@0\.0\.1, regardless the -dependencies and versions listed in A's, B's, and C's \fBpackage\.json\fP -files\. +The shrinkwrap command has locked down the dependencies based on what's +currently installed in \fBnode_modules\fP\|\. The installation behavior is changed to: +.RS 0 +.IP 1. 3 +The module tree described by the shrinkwrap is reproduced\. This means +reproducing the structure described in the file, using the specific files +referenced in "resolved" if available, falling back to normal package +resolution using "version" if one isn't\. +.IP 2. 3 +The tree is walked and any missing dependencies are installed in the usual fasion\. + +.RE .SS Using shrinkwrapped packages .P Using a shrinkwrapped package is no different than using any other @@ -161,17 +168,16 @@ To add or update a dependency in a shrinkwrapped package: Run \fBnpm install\fP in the package root to install the current versions of all dependencies\. .IP 2. 3 -Add or update dependencies\. \fBnpm install\fP each new or updated -package individually and then update \fBpackage\.json\fP\|\. Note that they -must be explicitly named in order to be installed: running \fBnpm -install\fP with no arguments will merely reproduce the existing +Add or update dependencies\. \fBnpm install \-\-save\fP each new or updated +package individually to update the \fBpackage\.json\fP and the shrinkwrap\. +Note that they must be explicitly named in order to be installed: running +\fBnpm install\fP with no arguments will merely reproduce the existing shrinkwrap\. .IP 3. 3 Validate that the package works as expected with the new dependencies\. .IP 4. 3 -Run \fBnpm shrinkwrap\fP, commit the new \fBnpm\-shrinkwrap\.json\fP, and -publish your package\. +Commit the new \fBnpm\-shrinkwrap\.json\fP, and publish your package\. .RE .P diff --git a/deps/npm/man/man1/npm-star.1 b/deps/npm/man/man1/npm-star.1 index 7bcb1db69f96859be3ff7a6c658fad638ad53ec6..fabbfba56e29da48f9da788964aad3a49cf9ef49 100644 --- a/deps/npm/man/man1/npm-star.1 +++ b/deps/npm/man/man1/npm-star.1 @@ -5,8 +5,8 @@ .P .RS 2 .nf -npm star [, \.\.\.] -npm unstar [, \.\.\.] +npm star [\.\.\.] +npm unstar [\.\.\.] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-stars.1 b/deps/npm/man/man1/npm-stars.1 index 2d8c3b2c7def7fd25c05f560e4c5f667ef2f2512..f8c7b21410f5f29635c7bc71ca4c0a45ded351f1 100644 --- a/deps/npm/man/man1/npm-stars.1 +++ b/deps/npm/man/man1/npm-stars.1 @@ -5,8 +5,7 @@ .P .RS 2 .nf -npm stars -npm stars [username] +npm stars [] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-tag.1 b/deps/npm/man/man1/npm-tag.1 index affc443d538540a7168ee89978220c2eeacc993a..4d63d7168da67744fd3930a9a7a886d022b90104 100644 --- a/deps/npm/man/man1/npm-tag.1 +++ b/deps/npm/man/man1/npm-tag.1 @@ -5,7 +5,8 @@ .P .RS 2 .nf -npm tag @ [] +[DEPRECATED] npm tag @ [] +See `dist\-tag` .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1 index fedb41b730f211b3ff7cf4def5f9abb7bf2ac4c0..d254c8142d80507f493b010290ca30a097e3f857 100644 --- a/deps/npm/man/man1/npm-uninstall.1 +++ b/deps/npm/man/man1/npm-uninstall.1 @@ -5,8 +5,9 @@ .P .RS 2 .nf -npm uninstall [@/] [\-\-save|\-\-save\-dev|\-\-save\-optional] -npm rm (with any of the previous argument usage) +npm uninstall [<@scope>/][@]\.\.\. [\-\-save|\-\-save\-dev|\-\-save\-optional] + +aliases: remove, rm, r, un, unlink .fi .RE .SH DESCRIPTION @@ -37,6 +38,9 @@ the package version in your main package\.json: .RE .P +Further, if you have an \fBnpm\-shrinkwrap\.json\fP then it will be updated as +well\. +.P Scope is optional and follows the usual rules for npm help 7 \fBnpm\-scope\fP\|\. .P Examples: diff --git a/deps/npm/man/man1/npm-unpublish.1 b/deps/npm/man/man1/npm-unpublish.1 index f3c46aac93ac88b6829566c18235378904191d3b..9d3236baa2998daef7e8eeb4ff78a8cfa5676e72 100644 --- a/deps/npm/man/man1/npm-unpublish.1 +++ b/deps/npm/man/man1/npm-unpublish.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm unpublish [@/][@] +npm unpublish [<@scope>/][@] .fi .RE .SH WARNING diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1 index 4e247b50082a94dfa34ca5bf0a63e22d9a52c551..ec9d93a9e9bd859a302a527c7db067fe185d4c94 100644 --- a/deps/npm/man/man1/npm-update.1 +++ b/deps/npm/man/man1/npm-update.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm update [\-g] [ [ \.\.\.]] +npm update [\-g] [\.\.\.] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1 index 5c04c279f913abf77753a7fc2e7534489fbfd8be..b7f9bca0cd8788c1e14aac71f74fa8f92435801c 100644 --- a/deps/npm/man/man1/npm-version.1 +++ b/deps/npm/man/man1/npm-version.1 @@ -6,6 +6,10 @@ .RS 2 .nf npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease] + +\|'npm \-v' or 'npm \-\-version' to print npm version +\|'npm view version' to view a package's published version +\|'npm ls' to inspect current package/dependency versions .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1 index ba3fe90030d0d72f703b9bed628343ce7f6744c6..55f1f6ae15d080354705d56434e4efd3b51d3b5c 100644 --- a/deps/npm/man/man1/npm-view.1 +++ b/deps/npm/man/man1/npm-view.1 @@ -5,8 +5,9 @@ .P .RS 2 .nf -npm view [@/][@] [[\.]\.\.\.] -npm v [@/][@] [[\.]\.\.\.] +npm view [<@scope>/][@] [[\.]\.\.\.] + +aliases: info, show, v .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm-whoami.1 b/deps/npm/man/man1/npm-whoami.1 index b52b509ebb670db6d9eeab252ab6ae9e5242fe20..1bb605e285cf753e961dfa9cc45f82059b182a6b 100644 --- a/deps/npm/man/man1/npm-whoami.1 +++ b/deps/npm/man/man1/npm-whoami.1 @@ -5,7 +5,7 @@ .P .RS 2 .nf -npm whoami +npm whoami [\-\-registry ] .fi .RE .SH DESCRIPTION diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1 index 3837768230bf8745dfe59596ff42c55e8da98929..38dab77422217aa3ca762ac209d8a46d1f88607c 100644 --- a/deps/npm/man/man1/npm.1 +++ b/deps/npm/man/man1/npm.1 @@ -10,7 +10,7 @@ npm [args] .RE .SH VERSION .P -2.14.7 +3.3.6 .SH DESCRIPTION .P npm is the package manager for the Node JavaScript platform\. It puts diff --git a/deps/npm/man/man3/npm-bin.3 b/deps/npm/man/man3/npm-bin.3 index 31c2c4326d8b52d70c5b36812dab255b0da044b3..bfb93455d8a789c47450b590a5bb461a99d2d11e 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" "October 2015" "" "" +.TH "NPM\-BIN" "3" "August 2015" "" "" .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 860af2e576259827c04a32579dd40f44fe0243d9..2740034a58c71bfc9bdcd5714fb38d6213e56870 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" "October 2015" "" "" +.TH "NPM\-BUGS" "3" "August 2015" "" "" .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 5ca2d8c7063e60d28b6f335e52b5b82949bfaecc..50a6b7a38c0e8237272f581a155a408e3fe358c5 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" "October 2015" "" "" +.TH "NPM\-CACHE" "3" "August 2015" "" "" .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 9036288732f2a316b0e841f9be8e5e61ad3cfb39..03d0dc40bd190d1fbe97156660d860dfa2f7fe05 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" "October 2015" "" "" +.TH "NPM\-COMMANDS" "3" "August 2015" "" "" .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 d27e2dcc453458551da675aaeb07193fd935bfaa..d2e57c26b57509574c51baf34c31acb37298823c 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" "October 2015" "" "" +.TH "NPM\-CONFIG" "3" "August 2015" "" "" .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 39cf6336c213eede2decec488d6edfd2fb0f6ac5..f0e35ab9d33fe21491a892e3fdfff25b381f3627 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" "October 2015" "" "" +.TH "NPM\-DEPRECATE" "3" "August 2015" "" "" .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 f0c01390e296bb12014847ce328312d857859464..4305dae16399f2e6c42b3b0c3542bff6292fd19e 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" "October 2015" "" "" +.TH "NPM\-DOCS" "3" "August 2015" "" "" .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 c1c79f822970cd7d756f7e461e12dbeadad75c98..27ccd879fac3efdb42361ac77c95e15633120d3f 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" "October 2015" "" "" +.TH "NPM\-EDIT" "3" "August 2015" "" "" .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 702d5bfc800c09d4bac267d1df985767b078f845..9fb6e008aad2bc18bded03d8f88c30e1ee1376c1 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" "October 2015" "" "" +.TH "NPM\-EXPLORE" "3" "August 2015" "" "" .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 8e8053b588a062ee6f87ef57ad9de318ba8c73fa..243e5d2a28dcb74e1797d33fa0549702f5d5a0e7 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" "October 2015" "" "" +.TH "NPM\-HELP\-SEARCH" "3" "August 2015" "" "" .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 b2eab12fe349441a00c64ecbb56a766e7233e336..947398d7a864d9c2d0816f26add2e361c994729a 100644 --- a/deps/npm/man/man3/npm-init.3 +++ b/deps/npm/man/man3/npm-init.3 @@ -1,4 +1,4 @@ -.TH "NPM" "" "October 2015" "" "" +.TH "NPM" "" "August 2015" "" "" .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 75397cdc95bff29b7b6876205b45d9560b6c65d9..d2951dd0d45f74b59dd8844ef5f43bb34c979306 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" "October 2015" "" "" +.TH "NPM\-INSTALL" "3" "August 2015" "" "" .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 2829bab6af0ed58dc88bf2346d49a8dbf9f97ac9..5877e03fbe8fb7600a598a4ce79ad982b318c516 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" "October 2015" "" "" +.TH "NPM\-LINK" "3" "August 2015" "" "" .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 dd0017ec748989682bc837705093a55a55d7daa3..ce409b6a5f66aaba4501663801aa27af4bff4685 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" "October 2015" "" "" +.TH "NPM\-LOAD" "3" "August 2015" "" "" .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 3f998266170e32841f930e24525aa6bfb10a488a..4fc976f2ede0f390426dd1fa0d693147845ca1ba 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" "October 2015" "" "" +.TH "NPM\-LS" "3" "August 2015" "" "" .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 09e51e92ef030920943290bc88b83dbd9e02be07..f2fd1f73b70f417a269a4af20f0e1530d636c071 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" "October 2015" "" "" +.TH "NPM\-OUTDATED" "3" "August 2015" "" "" .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 d0b24cbd54e44a733f5ccb9755b3c77f120864f5..16e2c54019676bc4a2fde7eee942f82bb6648405 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" "October 2015" "" "" +.TH "NPM\-OWNER" "3" "August 2015" "" "" .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 be86942dd4cd9826f64fcb76cd96d84f4ba1be66..037ec3c3467b55a9fa7cccea5d67f1481d7cd089 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" "October 2015" "" "" +.TH "NPM\-PACK" "3" "August 2015" "" "" .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 9963edd15d665bcc1c4da2e63b8adb1a397641bb..607fc8423e8da310ab34e73f89977c84704441d6 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" "October 2015" "" "" +.TH "NPM\-PING" "3" "August 2015" "" "" .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 33c118fc2fb6e39c61dc9f7c6b3ba47ab450ed6b..5ca38b5ec214ffa3c56876fe34f271f0c37c4b16 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" "October 2015" "" "" +.TH "NPM\-PREFIX" "3" "August 2015" "" "" .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 49f4d0ad650ca66243788090916775842f25cf84..4bf3f28039ce39f83aa99201386714177b066916 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" "October 2015" "" "" +.TH "NPM\-PRUNE" "3" "August 2015" "" "" .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 5be59e838273ed194df5ef2ac917bf58ba47fb4e..4a303370b0ed84daca3d3020893be1ae614c9a95 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" "October 2015" "" "" +.TH "NPM\-PUBLISH" "3" "August 2015" "" "" .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 714c5778b8f184fe05e5701ac2490f3ca46b0aac..b59df54005ac93e76e65da2e6f2c78dcb924db34 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" "October 2015" "" "" +.TH "NPM\-REBUILD" "3" "August 2015" "" "" .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 dae556f6a92812a76ff7b7fdf1ba068d2e5ef918..53983bca9b9466fd8689649997e70dedead62801 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" "October 2015" "" "" +.TH "NPM\-REPO" "3" "August 2015" "" "" .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 dad6281d126e8fe6841751c81a8a5ac990d71337..478c2f5f30dec4144984737a8cac208fe00f4cac 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" "October 2015" "" "" +.TH "NPM\-RESTART" "3" "August 2015" "" "" .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 3fd75ab7b16c51a1db2fb3029d587b72df06f071..8ade1a6826a613dbc29d802aeb3e4387740df05f 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" "October 2015" "" "" +.TH "NPM\-ROOT" "3" "August 2015" "" "" .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 bc4508c0409221a7e4226dd6ce36cc9bb2893833..416f1ff79203bbb17a752e47bc7a23b720768816 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" "October 2015" "" "" +.TH "NPM\-RUN\-SCRIPT" "3" "August 2015" "" "" .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 85a9ede36c97c463a017940047641597ff987840..823eff13b03c0fc66fe0baf6473e4e7f5ba53ecf 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" "October 2015" "" "" +.TH "NPM\-SEARCH" "3" "August 2015" "" "" .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 7211d969a67432f924d859d2d815d35665e68c60..fa89d927ddbc4fb62cc1a0a6fd590a1bef4be6ef 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" "October 2015" "" "" +.TH "NPM\-SHRINKWRAP" "3" "August 2015" "" "" .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 7629bc9ee480947901d905b93daf29633c077086..050c108e818b19c1e614d4d0fe4873b8320246a2 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" "October 2015" "" "" +.TH "NPM\-START" "3" "August 2015" "" "" .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 95f6e61542a34c0670a62e9c23533cf039da9f80..9df3b4c69b85fd444d6f7794133ad15ac7248820 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" "October 2015" "" "" +.TH "NPM\-STOP" "3" "August 2015" "" "" .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 643c57c9687663c2c6ecdb0716bf95c94ebc569a..5c3f3558309124e21d0bd0002273b8745eda3de9 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" "October 2015" "" "" +.TH "NPM\-TAG" "3" "August 2015" "" "" .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 5434f91e74af9d1f15a26d8525bc110c53a7e6a1..f0a67f1241c0d5836a21f45d0939e8c09c6e8048 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" "October 2015" "" "" +.TH "NPM\-TEST" "3" "August 2015" "" "" .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 168df5f0eb987099b826147a765e90a3792fba57..fe9ebaaf1729ca1563db422a1b25409b3c132bb1 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" "October 2015" "" "" +.TH "NPM\-UNINSTALL" "3" "August 2015" "" "" .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 1d10b121f3a8f02e23d3103bc86b9e80ef407946..721bf206b55839f4fb8037bd5ee851eebbdbd83b 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" "October 2015" "" "" +.TH "NPM\-UNPUBLISH" "3" "August 2015" "" "" .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 2f67a13b9aa69c2b8455ce508a683cb2046f2f3f..da780d598e8131377f5f6d37968c2adabab363f7 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" "October 2015" "" "" +.TH "NPM\-UPDATE" "3" "August 2015" "" "" .SH "NAME" \fBnpm-update\fR \- Update a package .SH SYNOPSIS @@ -8,7 +8,7 @@ npm\.commands\.update(packages, callback) .fi .RE -.TH "DESCRIPTION" "" "October 2015" "" "" +.TH "DESCRIPTION" "" "August 2015" "" "" .SH "NAME" \fBDESCRIPTION\fR .P diff --git a/deps/npm/man/man3/npm-version.3 b/deps/npm/man/man3/npm-version.3 index 32d8ce6c8adaaa558288173db52437abaa077b68..7a13475c43363ac095500740139b9b2fea9d34c7 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" "October 2015" "" "" +.TH "NPM\-VERSION" "3" "August 2015" "" "" .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 45ece20c3a40268d78c5d0473fbaf6927f2d4792..8c3d191f54a2ffaecb49f2bb8373386df3493ddb 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" "October 2015" "" "" +.TH "NPM\-VIEW" "3" "August 2015" "" "" .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 a580afe2e517b0b0eb426fc2a3fff8c4cc9fe218..0c29cf74846061729e5897fdd4c9582870275b16 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" "October 2015" "" "" +.TH "NPM\-WHOAMI" "3" "August 2015" "" "" .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 1cbe624eebfbeacda90d7aa2e6265f340edabb11..c45b9788a317476435f061107a05fb0179765dcf 100644 --- a/deps/npm/man/man3/npm.3 +++ b/deps/npm/man/man3/npm.3 @@ -1,4 +1,4 @@ -.TH "NPM" "3" "October 2015" "" "" +.TH "NPM" "3" "August 2015" "" "" .SH "NAME" \fBnpm\fR \- javascript package manager .SH SYNOPSIS @@ -20,7 +20,7 @@ npm\.load([configObject, ]function (er, npm) { .RE .SH VERSION .P -2.14.7 +3.3.0 .SH DESCRIPTION .P This is the API documentation for npm\. diff --git a/deps/npm/man/man5/npm-json.5 b/deps/npm/man/man5/npm-json.5 index c41943c22da22318b9a25bcb722d0c0c66324f48..0aed3a4db09d35b33a639d6d7c232f46c4db1f36 100644 --- a/deps/npm/man/man5/npm-json.5 +++ b/deps/npm/man/man5/npm-json.5 @@ -758,17 +758,10 @@ Note that, unless the user has set the \fBengine\-strict\fP config flag, this field is advisory only\. .SH engineStrict .P -\fBNOTE: This feature is deprecated and will be removed in npm 3\.0\.0\.\fR +\fBThis feature was deprecated with npm 3\.0\.0\fR .P -If you are sure that your module will \fIdefinitely not\fR run properly on -versions of Node/npm other than those specified in the \fBengines\fP object, -then you can set \fB"engineStrict": true\fP in your package\.json file\. -This will override the user's \fBengine\-strict\fP config setting\. -.P -Please do not do this unless you are really very very sure\. If your -engines object is something overly restrictive, you can quite easily and -inadvertently lock yourself into obscurity and prevent your users from -updating to new versions of Node\. Consider this choice carefully\. +Prior to npm 3\.0\.0, this feature was used to treat this package as if the +user had set \fBengine\-strict\fP\|\. .SH os .P You can specify which operating systems your diff --git a/deps/npm/man/man5/package.json.5 b/deps/npm/man/man5/package.json.5 index c41943c22da22318b9a25bcb722d0c0c66324f48..0aed3a4db09d35b33a639d6d7c232f46c4db1f36 100644 --- a/deps/npm/man/man5/package.json.5 +++ b/deps/npm/man/man5/package.json.5 @@ -758,17 +758,10 @@ Note that, unless the user has set the \fBengine\-strict\fP config flag, this field is advisory only\. .SH engineStrict .P -\fBNOTE: This feature is deprecated and will be removed in npm 3\.0\.0\.\fR +\fBThis feature was deprecated with npm 3\.0\.0\fR .P -If you are sure that your module will \fIdefinitely not\fR run properly on -versions of Node/npm other than those specified in the \fBengines\fP object, -then you can set \fB"engineStrict": true\fP in your package\.json file\. -This will override the user's \fBengine\-strict\fP config setting\. -.P -Please do not do this unless you are really very very sure\. If your -engines object is something overly restrictive, you can quite easily and -inadvertently lock yourself into obscurity and prevent your users from -updating to new versions of Node\. Consider this choice carefully\. +Prior to npm 3\.0\.0, this feature was used to treat this package as if the +user had set \fBengine\-strict\fP\|\. .SH os .P You can specify which operating systems your diff --git a/deps/npm/man/man7/npm-config.7 b/deps/npm/man/man7/npm-config.7 index 6fa530413b75d1a52e54615e75f9eadbfc5a785f..c810392761cdd164d7e0ec9268d1f2546980c8b2 100644 --- a/deps/npm/man/man7/npm-config.7 +++ b/deps/npm/man/man7/npm-config.7 @@ -28,7 +28,7 @@ per\-project config file (/path/to/my/project/\.npmrc) .IP \(bu 2 per\-user config file (~/\.npmrc) .IP \(bu 2 -global config file ($PREFIX/npmrc) +global config file ($PREFIX/etc/npmrc) .IP \(bu 2 npm builtin config file (/path/to/npm/npmrc) @@ -173,6 +173,17 @@ Type: Boolean .P Force npm to always require authentication when accessing the registry, even for \fBGET\fP requests\. +.SS also +.RS 0 +.IP \(bu 2 +Default: null +.IP \(bu 2 +Type: String + +.RE +.P +When "dev" or "development" and running local \fBnpm shrinkwrap\fP, +\fBnpm outdated\fP, or \fBnpm update\fP, is an alias for \fB\-\-dev\fP\|\. .SS bin\-links .RS 0 .IP \(bu 2 @@ -370,6 +381,20 @@ Install \fBdev\-dependencies\fP along with packages\. .P Note that \fBdev\-dependencies\fP are also installed if the \fBnpat\fP flag is set\. +.SS dry\-run +.RS 0 +.IP \(bu 2 +Default: false +.IP \(bu 2 +Type: Boolean + +.RE +.P +Indicates that you don't want npm to make any changes and that it should +only report what it would have done\. This can be passed into any of the +commands that modify your local installation, eg, \fBinstall\fP, \fBupdate\fP, +\fBdedupe\fP, \fBuninstall\fP\|\. This is NOT currently honored by network related +commands, eg \fBdist\-tags\fP, \fBowner\fP, \fBpublish\fP, etc\. .SS editor .RS 0 .IP \(bu 2 @@ -778,6 +803,27 @@ Type: path .P A node module to \fBrequire()\fP when npm loads\. Useful for programmatic usage\. +.SS only +.RS 0 +.IP \(bu 2 +Default: null +.IP \(bu 2 +Type: String + +.RE +.P +When "dev" or "development" and running local \fBnpm install\fP without any +arguments, only devDependencies (and their dependencies) are installed\. +.P +When "dev" or "development" and running local \fBnpm ls\fP, \fBnpm outdated\fP, or +\fBnpm update\fP, is an alias for \fB\-\-dev\fP\|\. +.P +When "prod" or "production" and running local \fBnpm install\fP without any +arguments, only non\-devDependencies (and their dependencies) are +installed\. +.P +When "prod" or "production" and running local \fBnpm ls\fP, \fBnpm outdated\fP, or +\fBnpm update\fP, is an alias for \fB\-\-production\fP\|\. .SS optional .RS 0 .IP \(bu 2 @@ -830,6 +876,19 @@ local \fBnpm install\fP without any arguments\. Set the NODE_ENV="production" for lifecycle scripts\. .RE +.SS progress +.RS 0 +.IP \(bu 2 +Default: true +.IP \(bu 2 +Type: Boolean + +.RE +.P +When set to \fBtrue\fP, npm will display a progress bar during time intensive +operations, if \fBprocess\.stderr\fP is a TTY\. +.P +Set to \fBfalse\fP to suppress the progress bar\. .SS proprietary\-attribs .RS 0 .IP \(bu 2 @@ -1060,20 +1119,6 @@ using \fB\-s\fP to add a signature\. .P Note that git requires you to have set up GPG keys in your git configs for this to work properly\. -.SS spin -.RS 0 -.IP \(bu 2 -Default: true -.IP \(bu 2 -Type: Boolean or \fB"always"\fP - -.RE -.P -When set to \fBtrue\fP, npm will display an ascii spinner while it is doing -things, if \fBprocess\.stderr\fP is a TTY\. -.P -Set to \fBfalse\fP to suppress the spinner, or set to \fBalways\fP to output -the spinner even for non\-TTY outputs\. .SS strict\-ssl .RS 0 .IP \(bu 2 @@ -1131,7 +1176,7 @@ on success, but left behind on failure for forensic purposes\. .SS unicode .RS 0 .IP \(bu 2 -Default: true +Default: true on windows and mac/unix systems with a unicode locale .IP \(bu 2 Type: Boolean diff --git a/deps/npm/man/man7/npm-index.7 b/deps/npm/man/man7/npm-index.7 index 4ab8ccd28afe77fdc34bda31b649aaae566096d6..8134075c0d043ff7c23d4f75db8714e82da6a3e6 100644 --- a/deps/npm/man/man7/npm-index.7 +++ b/deps/npm/man/man7/npm-index.7 @@ -106,9 +106,6 @@ Open package repository page in the browser .SS npm help restart .P Restart a package -.SS npm help rm -.P -Remove a package .SS npm help root .P Display npm root @@ -163,126 +160,6 @@ Display npm username .SH API Documentation .P Using npm in your Node programs -.SS npm apihelp npm -.P -javascript package manager -.SS npm apihelp bin -.P -Display npm bin folder -.SS npm apihelp bugs -.P -Bugs for a package in a web browser maybe -.SS npm apihelp cache -.P -manage the npm cache programmatically -.SS npm apihelp commands -.P -npm commands -.SS npm apihelp config -.P -Manage the npm configuration files -.SS npm apihelp deprecate -.P -Deprecate a version of a package -.SS npm apihelp docs -.P -Docs for a package in a web browser maybe -.SS npm apihelp edit -.P -Edit an installed package -.SS npm apihelp explore -.P -Browse an installed package -.SS npm apihelp help\-search -.P -Search the help pages -.SS npm apihelp init -.P -Interactively create a package\.json file -.SS npm apihelp install -.P -install a package programmatically -.SS npm apihelp link -.P -Symlink a package folder -.SS npm apihelp load -.P -Load config settings -.SS npm apihelp ls -.P -List installed packages -.SS npm apihelp outdated -.P -Check for outdated packages -.SS npm apihelp owner -.P -Manage package owners -.SS npm apihelp pack -.P -Create a tarball from a package -.SS npm apihelp ping -.P -Ping npm registry -.SS npm apihelp prefix -.P -Display prefix -.SS npm apihelp prune -.P -Remove extraneous packages -.SS npm apihelp publish -.P -Publish a package -.SS npm apihelp rebuild -.P -Rebuild a package -.SS npm apihelp repo -.P -Open package repository page in the browser -.SS npm apihelp restart -.P -Restart a package -.SS npm apihelp root -.P -Display npm root -.SS npm apihelp run\-script -.P -Run arbitrary package scripts -.SS npm apihelp search -.P -Search for packages -.SS npm apihelp shrinkwrap -.P -programmatically generate package shrinkwrap file -.SS npm apihelp start -.P -Start a package -.SS npm apihelp stop -.P -Stop a package -.SS npm apihelp tag -.P -Tag a published version -.SS npm apihelp test -.P -Test a package -.SS npm apihelp uninstall -.P -uninstall a package programmatically -.SS npm apihelp unpublish -.P -Remove a package from the registry -.SS npm apihelp update -.P -Update a package -.SS npm apihelp version -.P -Bump a package version -.SS npm apihelp view -.P -View registry info -.SS npm apihelp whoami -.P -Display npm username .SH Files .P File system structures npm uses @@ -316,9 +193,6 @@ Frequently Asked Questions .SS npm help 7 index .P Index of all npm documentation -.SS npm help 7 orgs -.P -Working with Teams & Orgs .SS npm help 7 registry .P The JavaScript Package Registry diff --git a/deps/npm/node_modules/abbrev/package.json b/deps/npm/node_modules/abbrev/package.json index 9b71f630b71ae1e746a90392adb567fe6761d12d..b86461cfaef2fe5e0c3857d29ad6ce8e49b0d71c 100644 --- a/deps/npm/node_modules/abbrev/package.json +++ b/deps/npm/node_modules/abbrev/package.json @@ -1,47 +1,73 @@ { - "name": "abbrev", - "version": "1.0.7", - "description": "Like ruby's abbrev module, but in js", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me" - }, - "main": "abbrev.js", - "scripts": { - "test": "tap test.js --cov" + "_args": [ + [ + "abbrev@~1.0.7", + "/Users/rebecca/code/npm" + ] + ], + "_from": "abbrev@>=1.0.7 <1.1.0", + "_id": "abbrev@1.0.7", + "_inCache": true, + "_location": "/abbrev", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/isaacs/abbrev-js.git" + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "abbrev", + "raw": "abbrev@~1.0.7", + "rawSpec": "~1.0.7", + "scope": null, + "spec": ">=1.0.7 <1.1.0", + "type": "range" }, - "license": "ISC", - "devDependencies": { - "tap": "^1.2.0" + "_requiredBy": [ + "/", + "/nopt" + ], + "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz", + "_shasum": "5b6035b2ee9d4fb5cf859f08a9be81b208491843", + "_shrinkwrap": null, + "_spec": "abbrev@~1.0.7", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter" }, - "gitHead": "821d09ce7da33627f91bbd8ed631497ed6f760c2", "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", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" + "dependencies": {}, + "description": "Like ruby's abbrev module, but in js", + "devDependencies": { + "tap": "^1.2.0" }, + "directories": {}, "dist": { "shasum": "5b6035b2ee9d4fb5cf859f08a9be81b208491843", "tarball": "http://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" }, + "gitHead": "821d09ce7da33627f91bbd8ed631497ed6f760c2", + "homepage": "https://github.com/isaacs/abbrev-js#readme", + "license": "ISC", + "main": "abbrev.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" + "name": "abbrev", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/isaacs/abbrev-js.git" + }, + "scripts": { + "test": "tap test.js --cov" + }, + "version": "1.0.7" } diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/index.js b/deps/npm/node_modules/ansi-regex/index.js similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/index.js rename to deps/npm/node_modules/ansi-regex/index.js diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/license b/deps/npm/node_modules/ansi-regex/license similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/strip-ansi/license rename to deps/npm/node_modules/ansi-regex/license diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/package.json b/deps/npm/node_modules/ansi-regex/package.json similarity index 54% rename from deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/package.json rename to deps/npm/node_modules/ansi-regex/package.json index 7fc07677a044acb9997932fb2b55ea2403afdc6e..5f3f32c654231d6a586defd7c779214d4e1f1004 100644 --- a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/package.json +++ b/deps/npm/node_modules/ansi-regex/package.json @@ -1,86 +1,114 @@ { - "name": "ansi-regex", - "version": "2.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/ansi-regex.git" + "_args": [ + [ + "ansi-regex@^2.0.0", + "/Users/rebecca/code/npm/node_modules/chalk/node_modules/strip-ansi" + ] + ], + "_from": "ansi-regex@>=2.0.0 <3.0.0", + "_id": "ansi-regex@2.0.0", + "_inCache": true, + "_location": "/ansi-regex", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.11.2", + "_phantomChildren": {}, + "_requested": { + "name": "ansi-regex", + "raw": "ansi-regex@^2.0.0", + "rawSpec": "^2.0.0", + "scope": null, + "spec": ">=2.0.0 <3.0.0", + "type": "range" }, + "_requiredBy": [ + "/columnify/strip-ansi", + "/has-ansi", + "/strip-ansi" + ], + "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "_shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", + "_shrinkwrap": null, + "_spec": "ansi-regex@^2.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/chalk/node_modules/strip-ansi", "author": { - "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", "url": "sindresorhus.com" }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - } - ], + "bugs": { + "url": "https://github.com/sindresorhus/ansi-regex/issues" + }, + "dependencies": {}, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "mocha": "*" + }, + "directories": {}, + "dist": { + "shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", + "tarball": "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha test/test.js", - "view-supported": "node test/viewCodes.js" - }, "files": [ "index.js" ], + "gitHead": "57c3f2941a73079fa8b081e02a522e3d29913e2f", + "homepage": "https://github.com/sindresorhus/ansi-regex", "keywords": [ + "256", "ansi", - "styles", + "cli", "color", - "colour", "colors", - "terminal", + "colour", + "command-line", "console", - "cli", - "string", - "tty", "escape", + "find", "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", + "match", + "pattern", + "re", "regex", "regexp", - "re", - "match", + "rgb", + "shell", + "string", + "styles", + "terminal", "test", - "find", - "pattern" + "text", + "tty", + "xterm" ], - "devDependencies": { - "mocha": "*" - }, - "gitHead": "57c3f2941a73079fa8b081e02a522e3d29913e2f", - "bugs": { - "url": "https://github.com/sindresorhus/ansi-regex/issues" - }, - "homepage": "https://github.com/sindresorhus/ansi-regex", - "_id": "ansi-regex@2.0.0", - "_shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", - "_from": "ansi-regex@>=2.0.0 <3.0.0", - "_npmVersion": "2.11.2", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + }, + { + "name": "jbnicolai", + "email": "jappelman@xebia.com" + } + ], + "name": "ansi-regex", + "optionalDependencies": {}, + "readme": "# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-regex)\n\n> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)\n\n\n## Install\n\n```\n$ npm install --save ansi-regex\n```\n\n\n## Usage\n\n```js\nvar ansiRegex = require('ansi-regex');\n\nansiRegex().test('\\u001b[4mcake\\u001b[0m');\n//=> true\n\nansiRegex().test('cake');\n//=> false\n\n'\\u001b[4mcake\\u001b[0m'.match(ansiRegex());\n//=> ['\\u001b[4m', '\\u001b[0m']\n```\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/ansi-regex.git" }, - "dist": { - "shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", - "tarball": "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + "scripts": { + "test": "mocha test/test.js", + "view-supported": "node test/viewCodes.js" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "readme": "ERROR: No README data found!" + "version": "2.0.0" } diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/ansi-regex/readme.md similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/readme.md rename to deps/npm/node_modules/ansi-regex/readme.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/ansi-styles/index.js b/deps/npm/node_modules/ansi-styles/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/ansi-styles/index.js rename to deps/npm/node_modules/ansi-styles/index.js diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/license b/deps/npm/node_modules/ansi-styles/license similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/license rename to deps/npm/node_modules/ansi-styles/license diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/ansi-styles/package.json b/deps/npm/node_modules/ansi-styles/package.json similarity index 68% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/ansi-styles/package.json rename to deps/npm/node_modules/ansi-styles/package.json index b6a9ceaea0fa60f84fc97f7ebed36863f79e17c6..98210c30fdc2662d20fb5418bf3a4bca49320a34 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/ansi-styles/package.json +++ b/deps/npm/node_modules/ansi-styles/package.json @@ -1,80 +1,104 @@ { - "name": "ansi-styles", - "version": "2.1.0", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/ansi-styles.git" + "_args": [ + [ + "ansi-styles@^2.1.0", + "/Users/rebecca/code/npm/node_modules/chalk" + ] + ], + "_from": "ansi-styles@>=2.1.0 <3.0.0", + "_id": "ansi-styles@2.1.0", + "_inCache": true, + "_location": "/ansi-styles", + "_nodeVersion": "0.12.4", + "_npmUser": { + "email": "jappelman@xebia.com", + "name": "jbnicolai" }, + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "ansi-styles", + "raw": "ansi-styles@^2.1.0", + "rawSpec": "^2.1.0", + "scope": null, + "spec": ">=2.1.0 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/chalk" + ], + "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz", + "_shasum": "990f747146927b559a932bf92959163d60c0d0e2", + "_shrinkwrap": null, + "_spec": "ansi-styles@^2.1.0", + "_where": "/Users/rebecca/code/npm/node_modules/chalk", "author": { - "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", "url": "sindresorhus.com" }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - } - ], + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": {}, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "mocha": "*" + }, + "directories": {}, + "dist": { + "shasum": "990f747146927b559a932bf92959163d60c0d0e2", + "tarball": "http://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "gitHead": "18421cbe4a2d93359ec2599a894f704be126d066", + "homepage": "https://github.com/chalk/ansi-styles", "keywords": [ + "256", "ansi", - "styles", + "cli", "color", - "colour", "colors", - "terminal", + "colour", + "command-line", "console", - "cli", - "string", - "tty", "escape", "formatting", - "rgb", - "256", - "shell", - "xterm", "log", "logging", - "command-line", - "text" + "rgb", + "shell", + "string", + "styles", + "terminal", + "text", + "tty", + "xterm" ], - "devDependencies": { - "mocha": "*" - }, - "gitHead": "18421cbe4a2d93359ec2599a894f704be126d066", - "bugs": { - "url": "https://github.com/chalk/ansi-styles/issues" - }, - "homepage": "https://github.com/chalk/ansi-styles", - "_id": "ansi-styles@2.1.0", - "_shasum": "990f747146927b559a932bf92959163d60c0d0e2", - "_from": "ansi-styles@>=2.1.0 <3.0.0", - "_npmVersion": "2.10.1", - "_nodeVersion": "0.12.4", - "_npmUser": { - "name": "jbnicolai", - "email": "jappelman@xebia.com" + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + }, + { + "name": "jbnicolai", + "email": "jappelman@xebia.com" + } + ], + "name": "ansi-styles", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/chalk/ansi-styles" }, - "dist": { - "shasum": "990f747146927b559a932bf92959163d60c0d0e2", - "tarball": "http://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + "scripts": { + "test": "mocha" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz", - "readme": "ERROR: No README data found!" + "version": "2.1.0" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/ansi-styles/readme.md b/deps/npm/node_modules/ansi-styles/readme.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/ansi-styles/readme.md rename to deps/npm/node_modules/ansi-styles/readme.md diff --git a/deps/npm/node_modules/ansi/.jshintrc b/deps/npm/node_modules/ansi/.jshintrc deleted file mode 100644 index 248c5426ea63dc2ab35d19121496ca9ec9c82054..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/ansi/.jshintrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "laxcomma": true, - "asi": true -} diff --git a/deps/npm/node_modules/ansi/package.json b/deps/npm/node_modules/ansi/package.json index 706ae63067694df4664c8ea68299f5eb87818dd2..cdef43ffa9b8551a10c943e64fcd977f942e1288 100644 --- a/deps/npm/node_modules/ansi/package.json +++ b/deps/npm/node_modules/ansi/package.json @@ -1,39 +1,65 @@ { - "name": "ansi", - "description": "Advanced ANSI formatting tool for Node.js", - "keywords": [ - "ansi", - "formatting", - "cursor", - "color", - "terminal", - "rgb", - "256", - "stream" + "_args": [ + [ + "ansi@~0.3.0", + "/Users/rebecca/code/npm/node_modules/npmlog" + ] ], - "version": "0.3.0", + "_from": "ansi@>=0.3.0 <0.4.0", + "_id": "ansi@0.3.0", + "_inCache": true, + "_location": "/ansi", + "_npmUser": { + "email": "nathan@tootallnate.net", + "name": "tootallnate" + }, + "_npmVersion": "1.4.9", + "_phantomChildren": {}, + "_requested": { + "name": "ansi", + "raw": "ansi@~0.3.0", + "rawSpec": "~0.3.0", + "scope": null, + "spec": ">=0.3.0 <0.4.0", + "type": "range" + }, + "_requiredBy": [ + "/gauge", + "/npmlog" + ], + "_resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz", + "_shasum": "74b2f1f187c8553c7f95015bcb76009fb43d38e0", + "_shrinkwrap": null, + "_spec": "ansi@~0.3.0", + "_where": "/Users/rebecca/code/npm/node_modules/npmlog", "author": { - "name": "Nathan Rajlich", "email": "nathan@tootallnate.net", + "name": "Nathan Rajlich", "url": "http://tootallnate.net" }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/ansi.js.git" - }, - "main": "./lib/ansi.js", "bugs": { "url": "https://github.com/TooTallNate/ansi.js/issues" }, - "homepage": "https://github.com/TooTallNate/ansi.js", - "_id": "ansi@0.3.0", - "_shasum": "74b2f1f187c8553c7f95015bcb76009fb43d38e0", - "_from": "ansi@latest", - "_npmVersion": "1.4.9", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" + "dependencies": {}, + "description": "Advanced ANSI formatting tool for Node.js", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "74b2f1f187c8553c7f95015bcb76009fb43d38e0", + "tarball": "http://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" }, + "homepage": "https://github.com/TooTallNate/ansi.js", + "keywords": [ + "256", + "ansi", + "color", + "cursor", + "formatting", + "rgb", + "stream", + "terminal" + ], + "main": "./lib/ansi.js", "maintainers": [ { "name": "TooTallNate", @@ -44,11 +70,11 @@ "email": "nathan@tootallnate.net" } ], - "dist": { - "shasum": "74b2f1f187c8553c7f95015bcb76009fb43d38e0", - "tarball": "http://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" + "name": "ansi", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/TooTallNate/ansi.js.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz", - "readme": "ERROR: No README data found!" + "version": "0.3.0" } diff --git a/deps/npm/node_modules/ansicolors/package.json b/deps/npm/node_modules/ansicolors/package.json index bca06da296aa243d92bf52c310bb1518b9a22a56..b759eb47cd3d680bfde32417c9501358d53070cd 100644 --- a/deps/npm/node_modules/ansicolors/package.json +++ b/deps/npm/node_modules/ansicolors/package.json @@ -1,34 +1,77 @@ { - "name": "ansicolors", - "version": "0.3.2", - "description": "Functions that surround a string with ansicolor codes so it prints in color.", - "main": "ansicolors.js", - "scripts": { - "test": "node test/*.js" + "_args": [ + [ + "ansicolors@~0.3.2", + "/Users/rebecca/code/npm" + ] + ], + "_from": "ansicolors@>=0.3.2 <0.4.0", + "_id": "ansicolors@0.3.2", + "_inCache": true, + "_location": "/ansicolors", + "_npmUser": { + "email": "thlorenz@gmx.de", + "name": "thlorenz" }, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/ansicolors.git" + "_npmVersion": "1.3.11", + "_phantomChildren": {}, + "_requested": { + "name": "ansicolors", + "raw": "ansicolors@~0.3.2", + "rawSpec": "~0.3.2", + "scope": null, + "spec": ">=0.3.2 <0.4.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "_shasum": "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979", + "_shrinkwrap": null, + "_spec": "ansicolors@~0.3.2", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "thlorenz@gmx.de", + "name": "Thorsten Lorenz", + "url": "thlorenz.com" + }, + "bugs": { + "url": "https://github.com/thlorenz/ansicolors/issues" + }, + "dependencies": {}, + "description": "Functions that surround a string with ansicolor codes so it prints in color.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979", + "tarball": "http://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz" }, + "gitHead": "858847ca28e8b360d9b70eee0592700fa2ab087d", "keywords": [ "ansi", "colors", "highlight", "string" ], - "author": { - "name": "Thorsten Lorenz", - "email": "thlorenz@gmx.de", - "url": "thlorenz.com" - }, "license": "MIT", - "readmeFilename": "README.md", - "gitHead": "858847ca28e8b360d9b70eee0592700fa2ab087d", + "main": "ansicolors.js", + "maintainers": [ + { + "name": "thlorenz", + "email": "thlorenz@gmx.de" + } + ], + "name": "ansicolors", + "optionalDependencies": {}, "readme": "# ansicolors [![build status](https://secure.travis-ci.org/thlorenz/ansicolors.png)](http://next.travis-ci.org/thlorenz/ansicolors)\n\nFunctions that surround a string with ansicolor codes so it prints in color.\n\nIn case you need styles, like `bold`, have a look at [ansistyles](https://github.com/thlorenz/ansistyles).\n\n## Installation\n\n npm install ansicolors\n\n## Usage\n\n```js\nvar colors = require('ansicolors');\n\n// foreground colors\nvar redHerring = colors.red('herring');\nvar blueMoon = colors.blue('moon');\nvar brighBlueMoon = colors.brightBlue('moon');\n\nconsole.log(redHerring); // this will print 'herring' in red\nconsole.log(blueMoon); // this 'moon' in blue\nconsole.log(brightBlueMoon); // I think you got the idea\n\n// background colors\nconsole.log(colors.bgYellow('printed on yellow background'));\nconsole.log(colors.bgBrightBlue('printed on bright blue background'));\n\n// mixing background and foreground colors\n// below two lines have same result (order in which bg and fg are combined doesn't matter)\nconsole.log(colors.bgYellow(colors.blue('printed on yellow background in blue')));\nconsole.log(colors.blue(colors.bgYellow('printed on yellow background in blue')));\n```\n\n## Advanced API\n\n**ansicolors** allows you to access opening and closing escape sequences separately.\n\n```js\nvar colors = require('ansicolors');\n\nfunction inspect(obj, depth) {\n return require('util').inspect(obj, false, depth || 5, true);\n}\n\nconsole.log('open blue', inspect(colors.open.blue));\nconsole.log('close bgBlack', inspect(colors.close.bgBlack));\n\n// => open blue '\\u001b[34m'\n// close bgBlack '\\u001b[49m'\n```\n\n## Tests\n\nLook at the [tests](https://github.com/thlorenz/ansicolors/blob/master/test/ansicolors.js) to see more examples and/or run them via: \n\n npm explore ansicolors && npm test\n\n## Alternatives\n\n**ansicolors** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, \nI'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js).\n", - "bugs": { - "url": "https://github.com/thlorenz/ansicolors/issues" + "readmeFilename": "README.md", + "repository": { + "type": "git", + "url": "git://github.com/thlorenz/ansicolors.git" }, - "homepage": "https://github.com/thlorenz/ansicolors", - "_id": "ansicolors@0.3.2", - "_from": "ansicolors@latest" + "scripts": { + "test": "node test/*.js" + }, + "version": "0.3.2" } diff --git a/deps/npm/node_modules/ansistyles/package.json b/deps/npm/node_modules/ansistyles/package.json index dec9cd9e69a83208fb430b45531564e61cc55209..3f523f2e9ee34bcb86b35ec7e6ca03dec0b05534 100644 --- a/deps/npm/node_modules/ansistyles/package.json +++ b/deps/npm/node_modules/ansistyles/package.json @@ -1,38 +1,77 @@ { - "name": "ansistyles", - "version": "0.1.3", - "description": "Functions that surround a string with ansistyle codes so it prints in style.", - "main": "ansistyles.js", - "scripts": { - "test": "node test/ansistyles.js" + "_args": [ + [ + "ansistyles@~0.1.3", + "/Users/rebecca/code/npm" + ] + ], + "_from": "ansistyles@>=0.1.3 <0.2.0", + "_id": "ansistyles@0.1.3", + "_inCache": true, + "_location": "/ansistyles", + "_npmUser": { + "email": "thlorenz@gmx.de", + "name": "thlorenz" }, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/ansistyles.git" + "_npmVersion": "1.3.11", + "_phantomChildren": {}, + "_requested": { + "name": "ansistyles", + "raw": "ansistyles@~0.1.3", + "rawSpec": "~0.1.3", + "scope": null, + "spec": ">=0.1.3 <0.2.0", + "type": "range" }, - "keywords": [ - "ansi", - "style", - "terminal", - "console" + "_requiredBy": [ + "/" ], + "_resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz", + "_shasum": "5de60415bda071bb37127854c864f41b23254539", + "_shrinkwrap": null, + "_spec": "ansistyles@~0.1.3", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Thorsten Lorenz", "email": "thlorenz@gmx.de", + "name": "Thorsten Lorenz", "url": "thlorenz.com" }, - "license": "MIT", - "readmeFilename": "README.md", - "gitHead": "27bf1bc65231bcc7fd109bf13b13601b51f8cd04", - "readme": "# ansistyles [![build status](https://secure.travis-ci.org/thlorenz/ansistyles.png)](http://next.travis-ci.org/thlorenz/ansistyles)\n\nFunctions that surround a string with ansistyle codes so it prints in style.\n\nIn case you need colors, like `red`, have a look at [ansicolors](https://github.com/thlorenz/ansicolors).\n\n## Installation\n\n npm install ansistyles\n\n## Usage\n\n```js\nvar styles = require('ansistyles');\n\nconsole.log(styles.bright('hello world')); // prints hello world in 'bright' white\nconsole.log(styles.underline('hello world')); // prints hello world underlined\nconsole.log(styles.inverse('hello world')); // prints hello world black on white\n```\n\n## Combining with ansicolors\n\nGet the ansicolors module:\n\n npm install ansicolors\n\n```js\nvar styles = require('ansistyles')\n , colors = require('ansicolors');\n\n console.log(\n // prints hello world underlined in blue on a green background\n colors.bgGreen(colors.blue(styles.underline('hello world'))) \n );\n```\n\n## Tests\n\nLook at the [tests](https://github.com/thlorenz/ansistyles/blob/master/test/ansistyles.js) to see more examples and/or run them via: \n\n npm explore ansistyles && npm test\n\n## More Styles\n\nAs you can see from [here](https://github.com/thlorenz/ansistyles/blob/master/ansistyles.js#L4-L15), more styles are available,\nbut didn't have any effect on the terminals that I tested on Mac Lion and Ubuntu Linux.\n\nI included them for completeness, but didn't show them in the examples because they seem to have no effect.\n\n### reset\n\nA style reset function is also included, please note however that this is not nestable.\n\nTherefore the below only underlines `hell` only, but not `world`.\n\n```js\nconsole.log(styles.underline('hell' + styles.reset('o') + ' world'));\n```\n\nIt is essentially the same as:\n\n```js\nconsole.log(styles.underline('hell') + styles.reset('') + 'o world');\n```\n\n\n\n## Alternatives\n\n**ansistyles** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, \nI'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js).\n", "bugs": { "url": "https://github.com/thlorenz/ansistyles/issues" }, - "homepage": "https://github.com/thlorenz/ansistyles", - "_id": "ansistyles@0.1.3", + "dependencies": {}, + "description": "Functions that surround a string with ansistyle codes so it prints in style.", + "devDependencies": {}, + "directories": {}, "dist": { - "shasum": "b14f315fe763a2b3a88df9d3261a517e666c4615" + "shasum": "5de60415bda071bb37127854c864f41b23254539", + "tarball": "http://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz" + }, + "gitHead": "27bf1bc65231bcc7fd109bf13b13601b51f8cd04", + "keywords": [ + "ansi", + "console", + "style", + "terminal" + ], + "license": "MIT", + "main": "ansistyles.js", + "maintainers": [ + { + "name": "thlorenz", + "email": "thlorenz@gmx.de" + } + ], + "name": "ansistyles", + "optionalDependencies": {}, + "readme": "# ansistyles [![build status](https://secure.travis-ci.org/thlorenz/ansistyles.png)](http://next.travis-ci.org/thlorenz/ansistyles)\n\nFunctions that surround a string with ansistyle codes so it prints in style.\n\nIn case you need colors, like `red`, have a look at [ansicolors](https://github.com/thlorenz/ansicolors).\n\n## Installation\n\n npm install ansistyles\n\n## Usage\n\n```js\nvar styles = require('ansistyles');\n\nconsole.log(styles.bright('hello world')); // prints hello world in 'bright' white\nconsole.log(styles.underline('hello world')); // prints hello world underlined\nconsole.log(styles.inverse('hello world')); // prints hello world black on white\n```\n\n## Combining with ansicolors\n\nGet the ansicolors module:\n\n npm install ansicolors\n\n```js\nvar styles = require('ansistyles')\n , colors = require('ansicolors');\n\n console.log(\n // prints hello world underlined in blue on a green background\n colors.bgGreen(colors.blue(styles.underline('hello world'))) \n );\n```\n\n## Tests\n\nLook at the [tests](https://github.com/thlorenz/ansistyles/blob/master/test/ansistyles.js) to see more examples and/or run them via: \n\n npm explore ansistyles && npm test\n\n## More Styles\n\nAs you can see from [here](https://github.com/thlorenz/ansistyles/blob/master/ansistyles.js#L4-L15), more styles are available,\nbut didn't have any effect on the terminals that I tested on Mac Lion and Ubuntu Linux.\n\nI included them for completeness, but didn't show them in the examples because they seem to have no effect.\n\n### reset\n\nA style reset function is also included, please note however that this is not nestable.\n\nTherefore the below only underlines `hell` only, but not `world`.\n\n```js\nconsole.log(styles.underline('hell' + styles.reset('o') + ' world'));\n```\n\nIt is essentially the same as:\n\n```js\nconsole.log(styles.underline('hell') + styles.reset('') + 'o world');\n```\n\n\n\n## Alternatives\n\n**ansistyles** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, \nI'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js).\n", + "readmeFilename": "README.md", + "repository": { + "type": "git", + "url": "git://github.com/thlorenz/ansistyles.git" + }, + "scripts": { + "test": "node test/ansistyles.js" }, - "_from": "ansistyles@0.1.3", - "_resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz" + "version": "0.1.3" } diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/.npmignore b/deps/npm/node_modules/aproba/.npmignore similarity index 65% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/.npmignore rename to deps/npm/node_modules/aproba/.npmignore index 249bc20eb5573ca9c7954c8ea930e0311880dfef..24001896d6d0c9e98fa902dacda2c43ff4750fc3 100644 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/.npmignore +++ b/deps/npm/node_modules/aproba/.npmignore @@ -1,2 +1,3 @@ +*~ node_modules -*.sw* +.#* diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/LICENSE b/deps/npm/node_modules/aproba/LICENSE similarity index 83% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/LICENSE rename to deps/npm/node_modules/aproba/LICENSE index 05eeeb88c2ef4cc9bacbcc46d6cfcb6962f8b385..2a4982dc40cb69145c4117fa5e50275e28d1db84 100644 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/LICENSE +++ b/deps/npm/node_modules/aproba/LICENSE @@ -1,6 +1,4 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter +Copyright (c) 2015, Rebecca Turner Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above @@ -11,5 +9,5 @@ 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. +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/deps/npm/node_modules/aproba/README.md b/deps/npm/node_modules/aproba/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e5c1f5595b8e2ad1dddc176f99e13ec281a05618 --- /dev/null +++ b/deps/npm/node_modules/aproba/README.md @@ -0,0 +1,54 @@ +aproba +====== + +A rediculously light-weight function argument validator + +``` +var validate = require("aproba") + +function myfunc(a, b, c) { + // `a` must be a string, `b` a number, `c` a function + validate('SNF', arguments) // [a,b,c] is also valid +} + +myfunc('test', 23, function () {}) // ok +myfunc(123, 23, function () {}) // type error +myfunc('test', 23) // missing arg error +myfunc('test', 23, function () {}, true) // too many args error + +``` + +Valid types are: + +type | description +---- | ----------- +* | matches any type +A | instanceof Array OR an arguments object +S | typeof == string +N | typeof == number +F | typeof == function +O | typeof == object and not type A and not type E +B | typeof == boolean +E | instanceof Error OR null + +Validation failures throw one of three exception types, distinguished by a +`code` property of `EMISSINGARG`, `EINVALIDTYPE` or `ETOOMANYARGS`. + +If an error argument is found and is not null then the remaining arguments will not be validated. + +### Why this exists + +I wanted a very simple argument validator. It needed to do two things: + +1. Be more concise and easier to use than assertions + +2. Not encourage an infinite bikeshed of DSLs + +This is why types are specified by a single character and there's no such +thing as an optional argument. + +This is not intended to validate user data. This is specifically about +asserting the interface of your functions. + +If you need greater validation, I encourage you to write them by hand or +look elsewhere. diff --git a/deps/npm/node_modules/aproba/index.js b/deps/npm/node_modules/aproba/index.js new file mode 100644 index 0000000000000000000000000000000000000000..7d8ff07f87a4c02eda790996ab9ece861821d740 --- /dev/null +++ b/deps/npm/node_modules/aproba/index.js @@ -0,0 +1,53 @@ +"use strict" + +var types = { + "*": ["any", function () { return true }], + A: ["array", function (thingy) { return thingy instanceof Array || (typeof thingy === "object" && thingy.hasOwnProperty("callee")) }], + S: ["string", function (thingy) { return typeof thingy === "string" }], + N: ["number", function (thingy) { return typeof thingy === "number" }], + F: ["function", function (thingy) { return typeof thingy === "function" }], + O: ["object", function (thingy) { return typeof thingy === "object" && !types.A[1](thingy) && !types.E[1](thingy) }], + B: ["boolean", function (thingy) { return typeof thingy == "boolean" }], + E: ["error", function (thingy) { return thingy instanceof Error }] +} + +var validate = module.exports = function (schema, args) { + if (!schema) throw missingRequiredArg(0, "schema") + if (!args) throw missingRequiredArg(1, "args") + if (!types.S[1](schema)) throw invalidType(0, "string", schema) + if (!types.A[1](args)) throw invalidType(1, "array", args) + for (var ii = 0; ii < schema.length; ++ii) { + var type = schema[ii] + if (!types[type]) throw unknownType(ii, type) + var typeLabel = types[type][0] + var typeCheck = types[type][1] + if (type === "E" && args[ii] == null) continue + if (args[ii] == null) throw missingRequiredArg(ii) + if (!typeCheck(args[ii])) throw invalidType(ii, typeLabel, args[ii]) + if (type === "E") return + } + if (schema.length < args.length) throw tooManyArgs(schema.length, args.length) +} + +function missingRequiredArg(num) { + return newException("EMISSINGARG", "Missing required argument #"+(num+1)) +} + +function unknownType(num, type) { + return newException("EUNKNOWNTYPE", "Unknown type "+type+" in argument #"+(num+1)) +} + +function invalidType(num, type, value) { + return newException("EINVALIDTYPE", "Argument #"+(num+1)+": Expected "+type+" but got "+typeof value) +} + +function tooManyArgs(expected, got) { + return newException("ETOOMANYARGS", "Too many arguments, expected "+expected+" and got "+got) +} + +function newException(code, msg) { + var e = new Error(msg) + e.code = code + Error.captureStackTrace(e, validate) + return e +} diff --git a/deps/npm/node_modules/aproba/package.json b/deps/npm/node_modules/aproba/package.json new file mode 100644 index 0000000000000000000000000000000000000000..16f35b0a5541d690e8f0509c04efb466db44b7ce --- /dev/null +++ b/deps/npm/node_modules/aproba/package.json @@ -0,0 +1,77 @@ +{ + "_args": [ + [ + "aproba@~1.0.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "aproba@>=1.0.1 <1.1.0", + "_id": "aproba@1.0.1", + "_inCache": true, + "_location": "/aproba", + "_nodeVersion": "1.6.2", + "_npmUser": { + "email": "me@re-becca.org", + "name": "iarna" + }, + "_npmVersion": "2.7.5", + "_phantomChildren": {}, + "_requested": { + "name": "aproba", + "raw": "aproba@~1.0.1", + "rawSpec": "~1.0.1", + "scope": null, + "spec": ">=1.0.1 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_shasum": "c4ac2cc5becfb8b099de7ef9f02790e7d32d99ef", + "_shrinkwrap": null, + "_spec": "aproba@~1.0.1", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "me@re-becca.org", + "name": "Rebecca Turner" + }, + "bugs": { + "url": "https://github.com/iarna/aproba/issues" + }, + "dependencies": {}, + "description": "A rediculously light-weight argument validator", + "devDependencies": { + "tap": "^0.7.0" + }, + "directories": { + "test": "test" + }, + "dist": { + "shasum": "c4ac2cc5becfb8b099de7ef9f02790e7d32d99ef", + "tarball": "http://registry.npmjs.org/aproba/-/aproba-1.0.1.tgz" + }, + "gitHead": "a2ea029793a14cddb9457afd0a83dc421889c7ad", + "homepage": "https://github.com/iarna/aproba", + "keywords": [ + "argument", + "validate" + ], + "license": "ISC", + "main": "index.js", + "maintainers": [ + { + "name": "iarna", + "email": "me@re-becca.org" + } + ], + "name": "aproba", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/iarna/aproba" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.1" +} diff --git a/deps/npm/node_modules/aproba/test/index.js b/deps/npm/node_modules/aproba/test/index.js new file mode 100644 index 0000000000000000000000000000000000000000..0574709c8f5d7d68e97e438360224a5c72093cba --- /dev/null +++ b/deps/npm/node_modules/aproba/test/index.js @@ -0,0 +1,85 @@ +"use strict" +var test = require("tap").test +var validate = require("../index.js") + +function thrown (t, code, msg, todo) { + validate("OSSF", arguments) + try { + todo() + t.fail(msg) + } + catch (e) { + t.is(e.code, code, msg + e.message) + } +} + +function notThrown (t, msg, todo) { + validate("OSF", arguments) + try { + todo() + t.pass(msg) + } + catch (e) { + t.fail(msg+"\n"+e.stack) + } +} + +test("general", function (t) { + t.plan(69) + var values = { + "A": [], + "S": "test", + "N": 123, + "F": function () {}, + "O": {}, + "B": false, + "E": new Error() + } + Object.keys(values).forEach(function (type) { + Object.keys(values).forEach(function (contraType) { + if (type === contraType) { + notThrown(t, type + " matches " + contraType, function () { + validate(type, [values[contraType]]) + }) + } + else { + thrown(t, "EINVALIDTYPE", type + " does not match " + contraType, function () { + validate(type, [values[contraType]]) + }) + } + }) + if (type === "E") { + notThrown(t, "null is ok for E", function () { + validate(type, [null]) + }) + } + else { + thrown(t, "EMISSINGARG", "null not ok for "+type, function () { + validate(type, [null]) + }) + } + }) + Object.keys(values).forEach(function (contraType) { + notThrown(t, "* matches " + contraType, function () { + validate("*", [values[contraType]]) + }) + }) + thrown(t, "EMISSINGARG", "not enough args", function () { + validate("SNF", ["abc", 123]) + }) + thrown(t, "ETOOMANYARGS", "too many args", function () { + validate("SNF", ["abc", 123, function () {}, true]) + }) + notThrown(t, "E matches null", function () { + validate("E", [null]) + }) + notThrown(t, "E matches undefined", function () { + validate("E", [undefined]) + }) + notThrown(t, "E w/ error requires nothing else", function () { + validate("ESN", [new Error(), "foo"]) + }) + thrown(t, "EMISSINGARG", "E w/o error works as usual", function () { + validate("ESN", [null, "foo"]) + }) +}) diff --git a/deps/npm/node_modules/request/node_modules/stringstream/.travis.yml b/deps/npm/node_modules/archy/.travis.yml similarity index 81% rename from deps/npm/node_modules/request/node_modules/stringstream/.travis.yml rename to deps/npm/node_modules/archy/.travis.yml index f1d0f13c8a54d0f8d78f86a1f9348f3c59750694..895dbd36234210374d68a0f020b2d6e7abf736fa 100644 --- a/deps/npm/node_modules/request/node_modules/stringstream/.travis.yml +++ b/deps/npm/node_modules/archy/.travis.yml @@ -1,4 +1,4 @@ language: node_js node_js: - - 0.4 - 0.6 + - 0.8 diff --git a/deps/npm/node_modules/archy/package.json b/deps/npm/node_modules/archy/package.json index 4b3da6637268ca3db6351330b594b4dfefe1aeaf..9c7188b9cc9cae16880107897bc1c21e4b8aa4b4 100644 --- a/deps/npm/node_modules/archy/package.json +++ b/deps/npm/node_modules/archy/package.json @@ -1,24 +1,83 @@ { - "name": "archy", - "version": "1.0.0", + "_args": [ + [ + "archy@~1.0.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "archy@>=1.0.0 <1.1.0", + "_id": "archy@1.0.0", + "_inCache": true, + "_location": "/archy", + "_npmUser": { + "email": "mail@substack.net", + "name": "substack" + }, + "_npmVersion": "1.4.25", + "_phantomChildren": {}, + "_requested": { + "name": "archy", + "raw": "archy@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "_shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", + "_shrinkwrap": null, + "_spec": "archy@~1.0.0", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "mail@substack.net", + "name": "James Halliday", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/node-archy/issues" + }, + "dependencies": {}, "description": "render nested hierarchies `npm ls` style with unicode pipes", - "main": "index.js", "devDependencies": { "tap": "~0.3.3", "tape": "~0.1.1" }, + "directories": {}, + "dist": { + "shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", + "tarball": "http://registry.npmjs.org/archy/-/archy-1.0.0.tgz" + }, + "gitHead": "30223c16191e877bf027b15b12daf077b9b55b84", + "homepage": "https://github.com/substack/node-archy", + "keywords": [ + "hierarchy", + "npm ls", + "pretty", + "print", + "unicode" + ], + "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "name": "substack", + "email": "mail@substack.net" + } + ], + "name": "archy", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "http://github.com/substack/node-archy.git" + }, "scripts": { "test": "tap test" }, "testling": { - "files": "test/*.js", "browsers": { - "iexplore": [ - "6.0", - "7.0", - "8.0", - "9.0" - ], "chrome": [ "20.0" ], @@ -26,54 +85,20 @@ "10.0", "15.0" ], - "safari": [ - "5.1" + "iexplore": [ + "6.0", + "7.0", + "8.0", + "9.0" ], "opera": [ "12.0" + ], + "safari": [ + "5.1" ] - } - }, - "repository": { - "type": "git", - "url": "http://github.com/substack/node-archy.git" - }, - "keywords": [ - "hierarchy", - "npm ls", - "unicode", - "pretty", - "print" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "gitHead": "30223c16191e877bf027b15b12daf077b9b55b84", - "bugs": { - "url": "https://github.com/substack/node-archy/issues" - }, - "homepage": "https://github.com/substack/node-archy", - "_id": "archy@1.0.0", - "_shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", - "_from": "archy@>=1.0.0 <2.0.0", - "_npmVersion": "1.4.25", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "dist": { - "shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40", - "tarball": "http://registry.npmjs.org/archy/-/archy-1.0.0.tgz" + }, + "files": "test/*.js" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" + "version": "1.0.0" } diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore b/deps/npm/node_modules/are-we-there-yet/.npmignore similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/.npmignore rename to deps/npm/node_modules/are-we-there-yet/.npmignore diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md b/deps/npm/node_modules/are-we-there-yet/README.md similarity index 99% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md rename to deps/npm/node_modules/are-we-there-yet/README.md index 52f9f9ae1ed4a25d0a6c1a6c232de5db0af56a0d..3491c5956cc236fdf6066e0068f9b3d10de1d312 100644 --- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md +++ b/deps/npm/node_modules/are-we-there-yet/README.md @@ -25,7 +25,7 @@ single.completeWork(20) console.log(top.completed()) // 0.2 fs.stat("file", function(er, stat) { - if (er) throw er + if (er) throw er var stream = top.newStream("file", stat.size) console.log(top.completed()) // now 0.1 as single is 50% of the job and is 20% complete // and 50% * 20% == 10% diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js b/deps/npm/node_modules/are-we-there-yet/index.js similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js rename to deps/npm/node_modules/are-we-there-yet/index.js diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json b/deps/npm/node_modules/are-we-there-yet/package.json similarity index 63% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json rename to deps/npm/node_modules/are-we-there-yet/package.json index 759100666932a3c5c015eacd12d209628c3b9f87..008eec8352374d93943c28e4b5f1623ebb509a53 100644 --- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json +++ b/deps/npm/node_modules/are-we-there-yet/package.json @@ -1,51 +1,74 @@ { - "name": "are-we-there-yet", - "version": "1.0.4", - "description": "Keep track of the overall completion of many dispirate processes", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "are-we-there-yet@~1.0.0", + "/Users/rebecca/code/npm/node_modules/npmlog" + ] + ], + "_from": "are-we-there-yet@>=1.0.0 <1.1.0", + "_id": "are-we-there-yet@1.0.4", + "_inCache": true, + "_location": "/are-we-there-yet", + "_npmUser": { + "email": "me@re-becca.org", + "name": "iarna" }, - "repository": { - "type": "git", - "url": "git+https://github.com/iarna/are-we-there-yet.git" + "_npmVersion": "2.0.0", + "_phantomChildren": {}, + "_requested": { + "name": "are-we-there-yet", + "raw": "are-we-there-yet@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" }, + "_requiredBy": [ + "/npmlog" + ], + "_resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", + "_shasum": "527fe389f7bcba90806106b99244eaa07e886f85", + "_shrinkwrap": null, + "_spec": "are-we-there-yet@~1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/npmlog", "author": { "name": "Rebecca Turner", "url": "http://re-becca.org" }, - "license": "ISC", "bugs": { "url": "https://github.com/iarna/are-we-there-yet/issues" }, - "homepage": "https://github.com/iarna/are-we-there-yet", - "devDependencies": { - "tap": "^0.4.13" - }, "dependencies": { "delegates": "^0.1.0", "readable-stream": "^1.1.13" }, - "gitHead": "7ce414849b81ab83935a935275def01914821bde", - "_id": "are-we-there-yet@1.0.4", - "_shasum": "527fe389f7bcba90806106b99244eaa07e886f85", - "_from": "are-we-there-yet@>=1.0.0 <1.1.0", - "_npmVersion": "2.0.0", - "_npmUser": { - "name": "iarna", - "email": "me@re-becca.org" + "description": "Keep track of the overall completion of many dispirate processes", + "devDependencies": { + "tap": "^0.4.13" + }, + "directories": {}, + "dist": { + "shasum": "527fe389f7bcba90806106b99244eaa07e886f85", + "tarball": "http://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz" }, + "gitHead": "7ce414849b81ab83935a935275def01914821bde", + "homepage": "https://github.com/iarna/are-we-there-yet", + "license": "ISC", + "main": "index.js", "maintainers": [ { "name": "iarna", "email": "me@re-becca.org" } ], - "dist": { - "shasum": "527fe389f7bcba90806106b99244eaa07e886f85", - "tarball": "http://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz" + "name": "are-we-there-yet", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/iarna/are-we-there-yet.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.4" } diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js b/deps/npm/node_modules/are-we-there-yet/test/tracker.js similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/tracker.js rename to deps/npm/node_modules/are-we-there-yet/test/tracker.js diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js b/deps/npm/node_modules/are-we-there-yet/test/trackergroup.js similarity index 99% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js rename to deps/npm/node_modules/are-we-there-yet/test/trackergroup.js index a64e121c03a1f19a591ae92d752fc2aac77d7a5a..f97e1034ff9e072ceb9c6465c92ef5a885d45a06 100644 --- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackergroup.js +++ b/deps/npm/node_modules/are-we-there-yet/test/trackergroup.js @@ -49,7 +49,7 @@ test("TrackerGroup", function (t) { t.is(er, null, "finishAll: on change event fired") t.is(onChangeName, name, "finishAll: on change emits the correct name") t.is(track.completed(), 1, "Finishing everything ") - + track = new TrackerGroup(name) a = track.newItem("a", 10, 2) b = track.newItem("b", 10, 1) @@ -68,7 +68,7 @@ test("TrackerGroup", function (t) { t.is(er, null, "weightedFinishAll: on change event fired") t.is(onChangeName, name, "weightedFinishAll: on change emits the correct name") t.is(track.completed(), 1, "weightedFinishaAll: Finishing everything ") - + track = new TrackerGroup(name) a = track.newGroup("a", 10) b = track.newGroup("b", 10) diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js b/deps/npm/node_modules/are-we-there-yet/test/trackerstream.js similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/test/trackerstream.js rename to deps/npm/node_modules/are-we-there-yet/test/trackerstream.js diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/.npmignore b/deps/npm/node_modules/array-index/.npmignore similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/.npmignore rename to deps/npm/node_modules/array-index/.npmignore diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.travis.yml b/deps/npm/node_modules/array-index/.travis.yml similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.travis.yml rename to deps/npm/node_modules/array-index/.travis.yml diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/History.md b/deps/npm/node_modules/array-index/History.md similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/History.md rename to deps/npm/node_modules/array-index/History.md diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/Makefile b/deps/npm/node_modules/array-index/Makefile similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/Makefile rename to deps/npm/node_modules/array-index/Makefile diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/README.md b/deps/npm/node_modules/array-index/README.md similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/README.md rename to deps/npm/node_modules/array-index/README.md diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/component.json b/deps/npm/node_modules/array-index/component.json similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/component.json rename to deps/npm/node_modules/array-index/component.json diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/index.js b/deps/npm/node_modules/array-index/index.js similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/index.js rename to deps/npm/node_modules/array-index/index.js diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/package.json b/deps/npm/node_modules/array-index/package.json similarity index 65% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/package.json rename to deps/npm/node_modules/array-index/package.json index 6ba9df72c29bc3a4feb893793ac63df7167e8d1a..a30106a99b33e1df448e3db35385bc7ec0abeb66 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/package.json +++ b/deps/npm/node_modules/array-index/package.json @@ -1,58 +1,82 @@ { - "name": "array-index", - "description": "Invoke getter/setter functions on array-like objects", - "keywords": [ - "index", - "array", - "getter", - "setter", - "proxy" + "_args": [ + [ + "array-index@~0.1.0", + "/Users/rebecca/code/npm/node_modules/path-array" + ] + ], + "_from": "array-index@>=0.1.0 <0.2.0", + "_id": "array-index@0.1.1", + "_inCache": true, + "_location": "/array-index", + "_nodeVersion": "0.10.32", + "_npmUser": { + "email": "nathan@tootallnate.net", + "name": "tootallnate" + }, + "_npmVersion": "2.1.3", + "_phantomChildren": {}, + "_requested": { + "name": "array-index", + "raw": "array-index@~0.1.0", + "rawSpec": "~0.1.0", + "scope": null, + "spec": ">=0.1.0 <0.2.0", + "type": "range" + }, + "_requiredBy": [ + "/path-array" ], - "version": "0.1.1", + "_resolved": "https://registry.npmjs.org/array-index/-/array-index-0.1.1.tgz", + "_shasum": "4d5eaf06cc3d925847cd73d1535c217ba306d3e1", + "_shrinkwrap": null, + "_spec": "array-index@~0.1.0", + "_where": "/Users/rebecca/code/npm/node_modules/path-array", "author": { - "name": "Nathan Rajlich", "email": "nathan@tootallnate.net", + "name": "Nathan Rajlich", "url": "http://tootallnate.net" }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/array-index.git" - }, - "main": "index.js", - "scripts": { - "test": "node test" + "bugs": { + "url": "https://github.com/TooTallNate/array-index/issues" }, "dependencies": { "debug": "*" }, + "description": "Invoke getter/setter functions on array-like objects", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "4d5eaf06cc3d925847cd73d1535c217ba306d3e1", + "tarball": "http://registry.npmjs.org/array-index/-/array-index-0.1.1.tgz" + }, "engines": { "node": "*" }, "gitHead": "65a5d884f25b4b7a1608e367d715d713dbd3b3d6", - "bugs": { - "url": "https://github.com/TooTallNate/array-index/issues" - }, "homepage": "https://github.com/TooTallNate/array-index", - "_id": "array-index@0.1.1", - "_shasum": "4d5eaf06cc3d925847cd73d1535c217ba306d3e1", - "_from": "array-index@>=0.1.0 <0.2.0", - "_npmVersion": "2.1.3", - "_nodeVersion": "0.10.32", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, + "keywords": [ + "array", + "getter", + "index", + "proxy", + "setter" + ], + "main": "index.js", "maintainers": [ { "name": "tootallnate", "email": "nathan@tootallnate.net" } ], - "dist": { - "shasum": "4d5eaf06cc3d925847cd73d1535c217ba306d3e1", - "tarball": "http://registry.npmjs.org/array-index/-/array-index-0.1.1.tgz" + "name": "array-index", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/TooTallNate/array-index.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/array-index/-/array-index-0.1.1.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "node test" + }, + "version": "0.1.1" } diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/test.js b/deps/npm/node_modules/array-index/test.js similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/test.js rename to deps/npm/node_modules/array-index/test.js diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/CHANGES.md b/deps/npm/node_modules/asap/CHANGES.md similarity index 100% rename from deps/npm/node_modules/dezalgo/node_modules/asap/CHANGES.md rename to deps/npm/node_modules/asap/CHANGES.md diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md b/deps/npm/node_modules/asap/LICENSE.md similarity index 99% rename from deps/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md rename to deps/npm/node_modules/asap/LICENSE.md index ba18c61390db9abb932e6bc70fa9a9e8aa2e5d31..0d82d695f7a242123252c27496ebefec308c0064 100644 --- a/deps/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md +++ b/deps/npm/node_modules/asap/LICENSE.md @@ -18,4 +18,3 @@ 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/dezalgo/node_modules/asap/README.md b/deps/npm/node_modules/asap/README.md similarity index 99% rename from deps/npm/node_modules/dezalgo/node_modules/asap/README.md rename to deps/npm/node_modules/asap/README.md index 452fd8c20370995ffc6c3a9be8d15aa6f3397615..d60a08a044d9c214ac50b86585baf38b6c16ce67 100644 --- a/deps/npm/node_modules/dezalgo/node_modules/asap/README.md +++ b/deps/npm/node_modules/asap/README.md @@ -234,4 +234,3 @@ browser-only implementation. Copyright 2009-2014 by Contributors MIT License (enclosed) - diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/asap.js b/deps/npm/node_modules/asap/asap.js similarity index 99% rename from deps/npm/node_modules/dezalgo/node_modules/asap/asap.js rename to deps/npm/node_modules/asap/asap.js index f04fcd58fc0b22a2451b5ff86096de0145451f68..3a27c8cee7a5970d3c9314a92ca28174890e1ff1 100644 --- a/deps/npm/node_modules/dezalgo/node_modules/asap/asap.js +++ b/deps/npm/node_modules/asap/asap.js @@ -62,4 +62,3 @@ RawTask.prototype.call = function () { freeTasks.push(this); } }; - diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js b/deps/npm/node_modules/asap/browser-asap.js similarity index 100% rename from deps/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js rename to deps/npm/node_modules/asap/browser-asap.js diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js b/deps/npm/node_modules/asap/browser-raw.js similarity index 100% rename from deps/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js rename to deps/npm/node_modules/asap/browser-raw.js diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/package.json b/deps/npm/node_modules/asap/package.json similarity index 75% rename from deps/npm/node_modules/dezalgo/node_modules/asap/package.json rename to deps/npm/node_modules/asap/package.json index e01b3f06de9ed2ae0d685500afd2598098a24588..6c4417126b110b8293731414dfdfd02fc2aca463 100644 --- a/deps/npm/node_modules/dezalgo/node_modules/asap/package.json +++ b/deps/npm/node_modules/asap/package.json @@ -1,44 +1,47 @@ { - "name": "asap", - "version": "2.0.3", - "description": "High-priority task queue for Node.js and browsers", - "keywords": [ - "event", - "task", - "queue" + "_args": [ + [ + "asap@^2.0.0", + "/Users/rebecca/code/npm/node_modules/dezalgo" + ] ], - "license": { - "type": "MIT", - "url": "https://github.com/kriskowal/asap/raw/master/LICENSE.md" + "_from": "asap@>=2.0.0 <3.0.0", + "_id": "asap@2.0.3", + "_inCache": true, + "_location": "/asap", + "_nodeVersion": "1.8.1", + "_npmUser": { + "email": "kris.kowal@cixar.com", + "name": "kriskowal" }, - "repository": { - "type": "git", - "url": "git+https://github.com/kriskowal/asap.git" + "_npmVersion": "2.8.3", + "_phantomChildren": {}, + "_requested": { + "name": "asap", + "raw": "asap@^2.0.0", + "rawSpec": "^2.0.0", + "scope": null, + "spec": ">=2.0.0 <3.0.0", + "type": "range" }, - "main": "./asap.js", + "_requiredBy": [ + "/dezalgo" + ], + "_resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz", + "_shasum": "1fc1d1564ee11620dfca6d67029850913f9f4679", + "_shrinkwrap": null, + "_spec": "asap@^2.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/dezalgo", "browser": { "./asap.js": "./browser-asap.js", "./raw.js": "./browser-raw.js", "./test/domain.js": "./test/browser-domain.js" }, - "files": [ - "raw.js", - "asap.js", - "browser-raw.js", - "browser-asap.js" - ], - "scripts": { - "test": "npm run lint && npm run test-node", - "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker", - "test-node": "node test/asap-test.js", - "test-publish": "node scripts/publish-bundle.js test/asap-test.js | pbcopy", - "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener", - "test-saucelabs": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-spot-configurations.json", - "test-saucelabs-all": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-all-configurations.json", - "test-saucelabs-worker": "node scripts/saucelabs-worker-test.js scripts/saucelabs-spot-configurations.json", - "test-saucelabs-worker-all": "node scripts/saucelabs-worker-test.js scripts/saucelabs-all-configurations.json", - "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)" + "bugs": { + "url": "https://github.com/kriskowal/asap/issues" }, + "dependencies": {}, + "description": "High-priority task queue for Node.js and browsers", "devDependencies": { "events": "^1.0.1", "jshint": "^2.5.1", @@ -51,20 +54,29 @@ "wd": "^0.2.21", "weak-map": "^1.0.5" }, - "gitHead": "ccbf94d4e4a0c3afc2df13331044020a46a74ab6", - "bugs": { - "url": "https://github.com/kriskowal/asap/issues" + "directories": {}, + "dist": { + "shasum": "1fc1d1564ee11620dfca6d67029850913f9f4679", + "tarball": "http://registry.npmjs.org/asap/-/asap-2.0.3.tgz" }, + "files": [ + "asap.js", + "browser-asap.js", + "browser-raw.js", + "raw.js" + ], + "gitHead": "ccbf94d4e4a0c3afc2df13331044020a46a74ab6", "homepage": "https://github.com/kriskowal/asap#readme", - "_id": "asap@2.0.3", - "_shasum": "1fc1d1564ee11620dfca6d67029850913f9f4679", - "_from": "asap@>=2.0.0 <3.0.0", - "_npmVersion": "2.8.3", - "_nodeVersion": "1.8.1", - "_npmUser": { - "name": "kriskowal", - "email": "kris.kowal@cixar.com" + "keywords": [ + "event", + "queue", + "task" + ], + "license": { + "type": "MIT", + "url": "https://github.com/kriskowal/asap/raw/master/LICENSE.md" }, + "main": "./asap.js", "maintainers": [ { "name": "kriskowal", @@ -75,11 +87,23 @@ "email": "forbes@lindesay.co.uk" } ], - "dist": { - "shasum": "1fc1d1564ee11620dfca6d67029850913f9f4679", - "tarball": "http://registry.npmjs.org/asap/-/asap-2.0.3.tgz" + "name": "asap", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/kriskowal/asap.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)", + "test": "npm run lint && npm run test-node", + "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener", + "test-node": "node test/asap-test.js", + "test-publish": "node scripts/publish-bundle.js test/asap-test.js | pbcopy", + "test-saucelabs": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-spot-configurations.json", + "test-saucelabs-all": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-all-configurations.json", + "test-saucelabs-worker": "node scripts/saucelabs-worker-test.js scripts/saucelabs-spot-configurations.json", + "test-saucelabs-worker-all": "node scripts/saucelabs-worker-test.js scripts/saucelabs-all-configurations.json", + "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker" + }, + "version": "2.0.3" } diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/raw.js b/deps/npm/node_modules/asap/raw.js similarity index 100% rename from deps/npm/node_modules/dezalgo/node_modules/asap/raw.js rename to deps/npm/node_modules/asap/raw.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/.npmignore b/deps/npm/node_modules/asn1/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/.npmignore rename to deps/npm/node_modules/asn1/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/LICENSE b/deps/npm/node_modules/asn1/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/LICENSE rename to deps/npm/node_modules/asn1/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/README.md b/deps/npm/node_modules/asn1/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/README.md rename to deps/npm/node_modules/asn1/README.md diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/errors.js b/deps/npm/node_modules/asn1/lib/ber/errors.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/errors.js rename to deps/npm/node_modules/asn1/lib/ber/errors.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/index.js b/deps/npm/node_modules/asn1/lib/ber/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/index.js rename to deps/npm/node_modules/asn1/lib/ber/index.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/reader.js b/deps/npm/node_modules/asn1/lib/ber/reader.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/reader.js rename to deps/npm/node_modules/asn1/lib/ber/reader.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/types.js b/deps/npm/node_modules/asn1/lib/ber/types.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/types.js rename to deps/npm/node_modules/asn1/lib/ber/types.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/writer.js b/deps/npm/node_modules/asn1/lib/ber/writer.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/ber/writer.js rename to deps/npm/node_modules/asn1/lib/ber/writer.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/index.js b/deps/npm/node_modules/asn1/lib/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/lib/index.js rename to deps/npm/node_modules/asn1/lib/index.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json b/deps/npm/node_modules/asn1/package.json similarity index 64% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json rename to deps/npm/node_modules/asn1/package.json index be2bc636ad376af8af33cb0710a86bae949e27dd..3cfaafd3e5369557578a5ee4ce8374b8aeb5af3d 100644 --- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/package.json +++ b/deps/npm/node_modules/asn1/package.json @@ -1,7 +1,42 @@ { + "_args": [ + [ + "asn1@0.1.11", + "/Users/rebecca/code/npm/node_modules/http-signature" + ] + ], + "_defaultsLoaded": true, + "_engineSupported": true, + "_from": "asn1@0.1.11", + "_id": "asn1@0.1.11", + "_inCache": true, + "_location": "/asn1", + "_nodeVersion": "v0.6.6", + "_npmUser": { + "email": "mcavage@gmail.com", + "name": "mcavage" + }, + "_npmVersion": "1.1.0-beta-4", + "_phantomChildren": {}, + "_requested": { + "name": "asn1", + "raw": "asn1@0.1.11", + "rawSpec": "0.1.11", + "scope": null, + "spec": "0.1.11", + "type": "version" + }, + "_requiredBy": [ + "/http-signature" + ], + "_resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "_shasum": "559be18376d08a4ec4dbe80877d27818639b2df7", + "_shrinkwrap": null, + "_spec": "asn1@0.1.11", + "_where": "/Users/rebecca/code/npm/node_modules/http-signature", "author": { - "name": "Mark Cavage", - "email": "mcavage@gmail.com" + "email": "mcavage@gmail.com", + "name": "Mark Cavage" }, "contributors": [ { @@ -13,51 +48,35 @@ "email": "yunong@joyent.com" } ], - "name": "asn1", - "description": "Contains parsers and serializers for ASN.1 (currently BER only)", - "version": "0.1.11", - "repository": { - "type": "git", - "url": "git://github.com/mcavage/node-asn1.git" - }, - "main": "lib/index.js", - "engines": { - "node": ">=0.4.9" - }, "dependencies": {}, + "description": "Contains parsers and serializers for ASN.1 (currently BER only)", "devDependencies": { "tap": "0.1.4" }, - "scripts": { - "pretest": "which gjslint; if [[ \"$?\" = 0 ]] ; then gjslint --nojsdoc -r lib -r tst; else echo \"Missing gjslint. Skipping lint\"; fi", - "test": "tap ./tst" - }, - "_npmUser": { - "name": "mcavage", - "email": "mcavage@gmail.com" - }, - "_id": "asn1@0.1.11", - "_engineSupported": true, - "_npmVersion": "1.1.0-beta-4", - "_nodeVersion": "v0.6.6", - "_defaultsLoaded": true, + "directories": {}, "dist": { "shasum": "559be18376d08a4ec4dbe80877d27818639b2df7", "tarball": "http://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" }, + "engines": { + "node": ">=0.4.9" + }, + "main": "lib/index.js", "maintainers": [ { "name": "mcavage", "email": "mcavage@gmail.com" } ], - "directories": {}, - "_shasum": "559be18376d08a4ec4dbe80877d27818639b2df7", - "_resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", - "_from": "asn1@0.1.11", - "bugs": { - "url": "https://github.com/mcavage/node-asn1/issues" + "name": "asn1", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/mcavage/node-asn1.git" + }, + "scripts": { + "pretest": "which gjslint; if [[ \"$?\" = 0 ]] ; then gjslint --nojsdoc -r lib -r tst; else echo \"Missing gjslint. Skipping lint\"; fi", + "test": "./node_modules/.bin/tap ./tst" }, - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/mcavage/node-asn1#readme" + "version": "0.1.11" } diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/reader.test.js b/deps/npm/node_modules/asn1/tst/ber/reader.test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/reader.test.js rename to deps/npm/node_modules/asn1/tst/ber/reader.test.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/writer.test.js b/deps/npm/node_modules/asn1/tst/ber/writer.test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/asn1/tst/ber/writer.test.js rename to deps/npm/node_modules/asn1/tst/ber/writer.test.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md b/deps/npm/node_modules/assert-plus/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md rename to deps/npm/node_modules/assert-plus/README.md diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js b/deps/npm/node_modules/assert-plus/assert.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js rename to deps/npm/node_modules/assert-plus/assert.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json b/deps/npm/node_modules/assert-plus/package.json similarity index 55% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json rename to deps/npm/node_modules/assert-plus/package.json index 6fcca673f1935cf5cc51fa923840e65d35726eec..37eeed1d2bc3c48abffb3c8a47ffd0ca256e0458 100644 --- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json +++ b/deps/npm/node_modules/assert-plus/package.json @@ -1,45 +1,66 @@ { - "author": { - "name": "Mark Cavage", - "email": "mcavage@gmail.com" + "_args": [ + [ + "assert-plus@^0.1.5", + "/Users/rebecca/code/npm/node_modules/http-signature" + ] + ], + "_from": "assert-plus@>=0.1.5 <0.2.0", + "_id": "assert-plus@0.1.5", + "_inCache": true, + "_location": "/assert-plus", + "_npmUser": { + "email": "mcavage@gmail.com", + "name": "mcavage" }, - "name": "assert-plus", - "description": "Extra assertions on top of node's assert module", - "version": "0.1.5", - "main": "./assert.js", - "devDependencies": {}, - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/mcavage/node-assert-plus.git" + "_npmVersion": "1.3.11", + "_phantomChildren": {}, + "_requested": { + "name": "assert-plus", + "raw": "assert-plus@^0.1.5", + "rawSpec": "^0.1.5", + "scope": null, + "spec": ">=0.1.5 <0.2.0", + "type": "range" }, - "engines": { - "node": ">=0.8" + "_requiredBy": [ + "/http-signature" + ], + "_resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "_shasum": "ee74009413002d84cec7219c6ac811812e723160", + "_shrinkwrap": null, + "_spec": "assert-plus@^0.1.5", + "_where": "/Users/rebecca/code/npm/node_modules/http-signature", + "author": { + "email": "mcavage@gmail.com", + "name": "Mark Cavage" }, "bugs": { "url": "https://github.com/mcavage/node-assert-plus/issues" }, "dependencies": {}, - "_id": "assert-plus@0.1.5", + "description": "Extra assertions on top of node's assert module", + "devDependencies": {}, + "directories": {}, "dist": { "shasum": "ee74009413002d84cec7219c6ac811812e723160", "tarball": "http://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" }, - "_from": "assert-plus@>=0.1.5 <0.2.0", - "_npmVersion": "1.3.11", - "_npmUser": { - "name": "mcavage", - "email": "mcavage@gmail.com" + "engines": { + "node": ">=0.8" }, + "main": "./assert.js", "maintainers": [ { "name": "mcavage", "email": "mcavage@gmail.com" } ], - "directories": {}, - "_shasum": "ee74009413002d84cec7219c6ac811812e723160", - "_resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", - "readme": "ERROR: No README data found!", - "homepage": "https://github.com/mcavage/node-assert-plus#readme" + "name": "assert-plus", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/mcavage/node-assert-plus.git" + }, + "version": "0.1.5" } diff --git a/deps/npm/node_modules/async-some/package.json b/deps/npm/node_modules/async-some/package.json index b7d5521e58dfba08e51a3a8d12bebf97bfe8cf69..e2b7ad635a9c6fde21ec57c7483bce222ca9d650 100644 --- a/deps/npm/node_modules/async-some/package.json +++ b/deps/npm/node_modules/async-some/package.json @@ -1,41 +1,81 @@ { - "name": "async-some", - "version": "1.0.2", - "description": "short-circuited, asynchronous version of Array.protototype.some", - "main": "some.js", - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "async-some@~1.0.2", + "/Users/rebecca/code/npm" + ] + ], + "_from": "async-some@>=1.0.2 <1.1.0", + "_id": "async-some@1.0.2", + "_inCache": true, + "_location": "/async-some", + "_nodeVersion": "2.0.2", + "_npmUser": { + "email": "ogd@aoaioxxysz.net", + "name": "othiym23" }, - "repository": { - "type": "git", - "url": "git+https://github.com/othiym23/async-some.git" + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "async-some", + "raw": "async-some@~1.0.2", + "rawSpec": "~1.0.2", + "scope": null, + "spec": ">=1.0.2 <1.1.0", + "type": "range" }, - "keywords": [ - "async", - "some", - "array", - "collections", - "fp" + "_requiredBy": [ + "/" ], + "_resolved": "https://registry.npmjs.org/async-some/-/async-some-1.0.2.tgz", + "_shasum": "4d8a81620d5958791b5b98f802d3207776e95509", + "_shrinkwrap": null, + "_spec": "async-some@~1.0.2", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Forrest L Norvell", - "email": "ogd@aoaioxxysz.net" + "email": "ogd@aoaioxxysz.net", + "name": "Forrest L Norvell" }, - "license": "ISC", "bugs": { "url": "https://github.com/othiym23/async-some/issues" }, - "homepage": "https://github.com/othiym23/async-some", "dependencies": { "dezalgo": "^1.0.2" }, + "description": "short-circuited, asynchronous version of Array.protototype.some", "devDependencies": { "tap": "^1.1.0" }, - "readme": "# some\n\nShort-circuited async Array.prototype.some implementation.\n\nSerially evaluates a list of values from a JS array or arraylike\nagainst an asynchronous predicate, terminating on the first truthy\nvalue. If the predicate encounters an error, pass it to the completion\ncallback. Otherwise, pass the truthy value passed by the predicate, or\n`false` if no truthy value was passed.\n\nIs\n[Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)-proof,\nbrowser-safe, and pretty efficient.\n\n## Usage\n\n```javascript\nvar some = require(\"async-some\");\nvar resolve = require(\"path\").resolve;\nvar stat = require(\"fs\").stat;\nvar readFileSync = require(\"fs\").readFileSync;\n\nsome([\"apple\", \"seaweed\", \"ham\", \"quince\"], porkDetector, function (error, match) {\n if (error) return console.error(error);\n\n if (match) return console.dir(JSON.parse(readFileSync(match)));\n\n console.error(\"time to buy more Sporkle™!\");\n});\n\nvar PREFIX = resolve(__dirname, \"../pork_store\");\nfunction porkDetector(value, cb) {\n var path = resolve(PREFIX, value + \".json\");\n stat(path, function (er, stat) {\n if (er) {\n if (er.code === \"ENOENT\") return cb(null, false);\n\n return cb(er);\n }\n\n cb(er, path);\n });\n}\n```\n\n### some(list, test, callback)\n\n* `list` {Object} An arraylike (either an Array or the arguments arraylike) to\n be checked.\n* `test` {Function} The predicate against which the elements of `list` will be\n tested. Takes two parameters:\n * `element` {any} The element of the list to be tested.\n * `callback` {Function} The continuation to be called once the test is\n complete. Takes (again) two values:\n * `error` {Error} Any errors that the predicate encountered.\n * `value` {any} A truthy value. A non-falsy result terminates checking the\n entire list.\n* `callback` {Function} The callback to invoke when either a value has been\n found or the entire input list has been processed with no result. Is invoked\n with the traditional two parameters:\n * `error` {Error} Errors that were encountered during the evaluation of some().\n * `match` {any} Value successfully matched by `test`, if any.\n", - "readmeFilename": "README.md", + "directories": {}, + "dist": { + "shasum": "4d8a81620d5958791b5b98f802d3207776e95509", + "tarball": "http://registry.npmjs.org/async-some/-/async-some-1.0.2.tgz" + }, "gitHead": "3a5086ad54739c48b2bbf073f23bcc95658199e3", - "_id": "async-some@1.0.2", - "_shasum": "4d8a81620d5958791b5b98f802d3207776e95509", - "_from": "async-some@>=1.0.2 <1.1.0" + "homepage": "https://github.com/othiym23/async-some", + "keywords": [ + "array", + "async", + "collections", + "fp", + "some" + ], + "license": "ISC", + "main": "some.js", + "maintainers": [ + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + } + ], + "name": "async-some", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/othiym23/async-some.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.2" } diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/async/CHANGELOG.md b/deps/npm/node_modules/async/CHANGELOG.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/form-data/node_modules/async/CHANGELOG.md rename to deps/npm/node_modules/async/CHANGELOG.md diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/async/LICENSE b/deps/npm/node_modules/async/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/form-data/node_modules/async/LICENSE rename to deps/npm/node_modules/async/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/async/lib/async.js b/deps/npm/node_modules/async/lib/async.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/form-data/node_modules/async/lib/async.js rename to deps/npm/node_modules/async/lib/async.js diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/async/package.json b/deps/npm/node_modules/async/package.json similarity index 77% rename from deps/npm/node_modules/request/node_modules/form-data/node_modules/async/package.json rename to deps/npm/node_modules/async/package.json index d646d803453f3d5e228f7c6e3a792baeae1bc7d8..cd315c1447ea39eada951702fbfbaf50c41c4983 100644 --- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/async/package.json +++ b/deps/npm/node_modules/async/package.json @@ -1,28 +1,46 @@ { - "name": "async", - "description": "Higher-order functions and common patterns for asynchronous code", - "main": "lib/async.js", - "files": [ - "lib" + "_args": [ + [ + "async@1.4.2", + "/Users/rebecca/code/npm" + ] ], - "author": { - "name": "Caolan McMahon" + "_from": "async@1.4.2", + "_id": "async@1.4.2", + "_inCache": true, + "_location": "/async", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "megawac@gmail.com", + "name": "megawac" }, - "version": "1.4.2", - "keywords": [ - "async", - "callback", - "utility", - "module" + "_npmVersion": "2.9.0", + "_phantomChildren": {}, + "_requested": { + "name": "async", + "raw": "async@1.4.2", + "rawSpec": "1.4.2", + "scope": null, + "spec": "1.4.2", + "type": "version" + }, + "_requiredBy": [ + "/form-data", + "/istanbul" ], - "repository": { - "type": "git", - "url": "git+https://github.com/caolan/async.git" + "_resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz", + "_shasum": "6c9edcb11ced4f0dd2f2d40db0d49a109c088aab", + "_shrinkwrap": null, + "_spec": "async@1.4.2", + "_where": "/Users/rebecca/code/npm", + "author": { + "name": "Caolan McMahon" }, "bugs": { "url": "https://github.com/caolan/async/issues" }, - "license": "MIT", + "dependencies": {}, + "description": "Higher-order functions and common patterns for asynchronous code", "devDependencies": { "benchmark": "github:bestiejs/benchmark.js", "bluebird": "^2.9.32", @@ -47,55 +65,36 @@ "xyz": "^0.5.0", "yargs": "~3.9.1" }, + "directories": {}, + "dist": { + "shasum": "6c9edcb11ced4f0dd2f2d40db0d49a109c088aab", + "tarball": "http://registry.npmjs.org/async/-/async-1.4.2.tgz" + }, + "files": [ + "lib" + ], + "gitHead": "92f78aebad222d60c13e4299c0e723f2fe2d6611", + "homepage": "https://github.com/caolan/async#readme", + "installable": true, "jam": { - "main": "lib/async.js", + "categories": [ + "Utilities" + ], "include": [ - "lib/async.js", + "LICENSE", "README.md", - "LICENSE" + "lib/async.js" ], - "categories": [ - "Utilities" - ] - }, - "scripts": { - "mocha-node-test": "mocha mocha_test/", - "mocha-browser-test": "karma start", - "mocha-test": "npm run mocha-node-test && npm run mocha-browser-test", - "nodeunit-test": "nodeunit test/test-async.js", - "test": "npm run-script lint && npm run nodeunit-test && npm run mocha-test", - "lint": "jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js", - "coverage": "nyc npm test && nyc report", - "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" - }, - "spm": { "main": "lib/async.js" }, - "volo": { - "main": "lib/async.js", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] - }, - "gitHead": "92f78aebad222d60c13e4299c0e723f2fe2d6611", - "homepage": "https://github.com/caolan/async#readme", - "_id": "async@1.4.2", - "_shasum": "6c9edcb11ced4f0dd2f2d40db0d49a109c088aab", - "_from": "async@>=1.4.0 <2.0.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "megawac", - "email": "megawac@gmail.com" - }, - "dist": { - "shasum": "6c9edcb11ced4f0dd2f2d40db0d49a109c088aab", - "tarball": "http://registry.npmjs.org/async/-/async-1.4.2.tgz" - }, + "keywords": [ + "async", + "callback", + "module", + "utility" + ], + "license": "MIT", + "main": "lib/async.js", "maintainers": [ { "name": "caolan", @@ -114,7 +113,34 @@ "email": "megawac@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz", - "readme": "ERROR: No README data found!" + "name": "async", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/caolan/async.git" + }, + "scripts": { + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls", + "lint": "jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js", + "mocha-browser-test": "karma start", + "mocha-node-test": "mocha mocha_test/", + "mocha-test": "npm run mocha-node-test && npm run mocha-browser-test", + "nodeunit-test": "nodeunit test/test-async.js", + "test": "npm run-script lint && npm run nodeunit-test && npm run mocha-test" + }, + "spm": { + "main": "lib/async.js" + }, + "version": "1.4.2", + "volo": { + "ignore": [ + "**/.*", + "bower_components", + "node_modules", + "test", + "tests" + ], + "main": "lib/async.js" + } } diff --git a/deps/npm/node_modules/request/node_modules/aws-sign2/LICENSE b/deps/npm/node_modules/aws-sign2/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/aws-sign2/LICENSE rename to deps/npm/node_modules/aws-sign2/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/aws-sign2/README.md b/deps/npm/node_modules/aws-sign2/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/aws-sign2/README.md rename to deps/npm/node_modules/aws-sign2/README.md diff --git a/deps/npm/node_modules/request/node_modules/aws-sign2/index.js b/deps/npm/node_modules/aws-sign2/index.js similarity index 96% rename from deps/npm/node_modules/request/node_modules/aws-sign2/index.js rename to deps/npm/node_modules/aws-sign2/index.js index 576e49ddff1bcec1e7029725e86cdbcdff29bb5b..d954c3bd0790055119ca50a9d6ade36674d6f83b 100644 --- a/deps/npm/node_modules/request/node_modules/aws-sign2/index.js +++ b/deps/npm/node_modules/aws-sign2/index.js @@ -17,7 +17,7 @@ var crypto = require('crypto') * Valid keys. */ -var keys = +var keys = [ 'acl' , 'location' , 'logging' @@ -56,7 +56,7 @@ module.exports.authorization = authorization * @param {Object} options * @return {String} * @api private - */ + */ function hmacSha1 (options) { return crypto.createHmac('sha1', options.secret).update(options.message).digest('base64') @@ -65,8 +65,8 @@ function hmacSha1 (options) { module.exports.hmacSha1 = hmacSha1 /** - * Create a base64 sha1 HMAC for `options`. - * + * Create a base64 sha1 HMAC for `options`. + * * @param {Object} options * @return {String} * @api private @@ -79,10 +79,10 @@ function sign (options) { module.exports.sign = sign /** - * Create a base64 sha1 HMAC for `options`. + * Create a base64 sha1 HMAC for `options`. * * Specifically to be used with S3 presigned URLs - * + * * @param {Object} options * @return {String} * @api private @@ -98,7 +98,7 @@ module.exports.signQuery= signQuery * Return a string for sign() with the given `options`. * * Spec: - * + * * \n * \n * \n @@ -114,7 +114,7 @@ module.exports.signQuery= signQuery function stringToSign (options) { var headers = options.amazonHeaders || '' if (headers) headers += '\n' - var r = + var r = [ options.verb , options.md5 , options.contentType @@ -130,7 +130,7 @@ module.exports.queryStringToSign = stringToSign * for S3 presigned URLs * * Spec: - * + * * \n * * diff --git a/deps/npm/node_modules/request/node_modules/aws-sign2/package.json b/deps/npm/node_modules/aws-sign2/package.json similarity index 65% rename from deps/npm/node_modules/request/node_modules/aws-sign2/package.json rename to deps/npm/node_modules/aws-sign2/package.json index b454fe46973974fb29e11797e3ff68ca045f8bfd..8bb70110aae1056969be181b69679f6787ecee8d 100644 --- a/deps/npm/node_modules/request/node_modules/aws-sign2/package.json +++ b/deps/npm/node_modules/aws-sign2/package.json @@ -1,46 +1,68 @@ { - "author": { - "name": "Mikeal Rogers", + "_args": [ + [ + "aws-sign2@~0.5.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "aws-sign2@>=0.5.0 <0.6.0", + "_id": "aws-sign2@0.5.0", + "_inCache": true, + "_location": "/aws-sign2", + "_npmUser": { "email": "mikeal.rogers@gmail.com", - "url": "http://www.futurealoof.com" + "name": "mikeal" }, - "name": "aws-sign2", - "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.", - "version": "0.5.0", - "repository": { - "url": "git+https://github.com/mikeal/aws-sign.git" + "_npmVersion": "1.3.2", + "_phantomChildren": {}, + "_requested": { + "name": "aws-sign2", + "raw": "aws-sign2@~0.5.0", + "rawSpec": "~0.5.0", + "scope": null, + "spec": ">=0.5.0 <0.6.0", + "type": "range" }, - "main": "index.js", - "dependencies": {}, - "devDependencies": {}, - "optionalDependencies": {}, - "engines": { - "node": "*" + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", + "_shasum": "c57103f7a17fc037f02d7c2e64b602ea223f7d63", + "_shrinkwrap": null, + "_spec": "aws-sign2@~0.5.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", + "author": { + "email": "mikeal.rogers@gmail.com", + "name": "Mikeal Rogers", + "url": "http://www.futurealoof.com" }, - "readme": "aws-sign\n========\n\nAWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.\n", - "readmeFilename": "README.md", "bugs": { "url": "https://github.com/mikeal/aws-sign/issues" }, - "_id": "aws-sign2@0.5.0", + "dependencies": {}, + "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.", + "devDependencies": {}, + "directories": {}, "dist": { "shasum": "c57103f7a17fc037f02d7c2e64b602ea223f7d63", "tarball": "http://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" }, - "_from": "aws-sign2@>=0.5.0 <0.6.0", - "_npmVersion": "1.3.2", - "_npmUser": { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" + "engines": { + "node": "*" }, + "main": "index.js", "maintainers": [ { "name": "mikeal", "email": "mikeal.rogers@gmail.com" } ], - "directories": {}, - "_shasum": "c57103f7a17fc037f02d7c2e64b602ea223f7d63", - "_resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", - "homepage": "https://github.com/mikeal/aws-sign#readme" + "name": "aws-sign2", + "optionalDependencies": {}, + "readme": "aws-sign\n========\n\nAWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.\n", + "readmeFilename": "README.md", + "repository": { + "url": "https://github.com/mikeal/aws-sign" + }, + "version": "0.5.0" } diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/deps/npm/node_modules/balanced-match/.npmignore similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore rename to deps/npm/node_modules/balanced-match/.npmignore diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml b/deps/npm/node_modules/balanced-match/.travis.yml similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml rename to deps/npm/node_modules/balanced-match/.travis.yml diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile b/deps/npm/node_modules/balanced-match/Makefile similarity index 98% rename from deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile rename to deps/npm/node_modules/balanced-match/Makefile index fa5da71a6d0d34afeca5499bece067a1f2a9d35c..dd2730cfde0cab9c346a5b738aa247cddd372a53 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +++ b/deps/npm/node_modules/balanced-match/Makefile @@ -3,4 +3,3 @@ test: @node_modules/.bin/tape test/*.js .PHONY: test - diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/deps/npm/node_modules/balanced-match/README.md similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md rename to deps/npm/node_modules/balanced-match/README.md diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js b/deps/npm/node_modules/balanced-match/example.js similarity index 99% rename from deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js rename to deps/npm/node_modules/balanced-match/example.js index c02ad348e69aec7ad7f7175e5d67809183c9c442..9ce76f480a4321be2282ed971b19c80681944e27 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +++ b/deps/npm/node_modules/balanced-match/example.js @@ -2,4 +2,3 @@ var balanced = require('./'); console.log(balanced('{', '}', 'pre{in{nested}}post')); console.log(balanced('{', '}', 'pre{first}between{second}post')); - diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/deps/npm/node_modules/balanced-match/index.js similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js rename to deps/npm/node_modules/balanced-match/index.js diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/deps/npm/node_modules/balanced-match/package.json similarity index 67% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json rename to deps/npm/node_modules/balanced-match/package.json index ede6efefa07883a6be1534d83a82ccd352026ea1..3f11aaccbff0baead8a4b57eeb00ddbbbda4b09f 100644 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +++ b/deps/npm/node_modules/balanced-match/package.json @@ -1,73 +1,96 @@ { - "name": "balanced-match", - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "version": "0.2.0", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "homepage": "https://github.com/juliangruber/balanced-match", - "main": "index.js", - "scripts": { - "test": "make test" + "_args": [ + [ + "balanced-match@^0.2.0", + "/Users/rebecca/code/npm/node_modules/brace-expansion" + ] + ], + "_from": "balanced-match@>=0.2.0 <0.3.0", + "_id": "balanced-match@0.2.0", + "_inCache": true, + "_location": "/balanced-match", + "_nodeVersion": "0.10.32", + "_npmUser": { + "email": "julian@juliangruber.com", + "name": "juliangruber" }, - "dependencies": {}, - "devDependencies": { - "tape": "~1.1.1" + "_npmVersion": "2.1.8", + "_phantomChildren": {}, + "_requested": { + "name": "balanced-match", + "raw": "balanced-match@^0.2.0", + "rawSpec": "^0.2.0", + "scope": null, + "spec": ">=0.2.0 <0.3.0", + "type": "range" }, - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" + "_requiredBy": [ + "/brace-expansion" ], + "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz", + "_shasum": "38f6730c03aab6d5edbb52bd934885e756d71674", + "_shrinkwrap": null, + "_spec": "balanced-match@^0.2.0", + "_where": "/Users/rebecca/code/npm/node_modules/brace-expansion", "author": { - "name": "Julian Gruber", "email": "mail@juliangruber.com", + "name": "Julian Gruber", "url": "http://juliangruber.com" }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..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" - ] - }, - "gitHead": "ba40ed78e7114a4a67c51da768a100184dead39c", "bugs": { "url": "https://github.com/juliangruber/balanced-match/issues" }, - "_id": "balanced-match@0.2.0", - "_shasum": "38f6730c03aab6d5edbb52bd934885e756d71674", - "_from": "balanced-match@>=0.2.0 <0.3.0", - "_npmVersion": "2.1.8", - "_nodeVersion": "0.10.32", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" + "dependencies": {}, + "description": "Match balanced character pairs, like \"{\" and \"}\"", + "devDependencies": { + "tape": "~1.1.1" + }, + "directories": {}, + "dist": { + "shasum": "38f6730c03aab6d5edbb52bd934885e756d71674", + "tarball": "http://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" }, + "gitHead": "ba40ed78e7114a4a67c51da768a100184dead39c", + "homepage": "https://github.com/juliangruber/balanced-match", + "keywords": [ + "balanced", + "match", + "parse", + "regexp", + "test" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "juliangruber", "email": "julian@juliangruber.com" } ], - "dist": { - "shasum": "38f6730c03aab6d5edbb52bd934885e756d71674", - "tarball": "http://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" + "name": "balanced-match", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/balanced-match.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "make test" + }, + "testling": { + "browsers": [ + "android-browser/4.2..latest", + "chrome/25..latest", + "chrome/canary", + "firefox/20..latest", + "firefox/nightly", + "ie/8..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "opera/12..latest", + "opera/next", + "safari/5.1..latest" + ], + "files": "test/*.js" + }, + "version": "0.2.0" } diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js b/deps/npm/node_modules/balanced-match/test/balanced.js similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js rename to deps/npm/node_modules/balanced-match/test/balanced.js diff --git a/deps/npm/node_modules/request/node_modules/bl/.npmignore b/deps/npm/node_modules/bl/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/.npmignore rename to deps/npm/node_modules/bl/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/bl/.travis.yml b/deps/npm/node_modules/bl/.travis.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/.travis.yml rename to deps/npm/node_modules/bl/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/bl/LICENSE.md b/deps/npm/node_modules/bl/LICENSE.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/LICENSE.md rename to deps/npm/node_modules/bl/LICENSE.md diff --git a/deps/npm/node_modules/request/node_modules/bl/README.md b/deps/npm/node_modules/bl/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/README.md rename to deps/npm/node_modules/bl/README.md diff --git a/deps/npm/node_modules/request/node_modules/bl/bl.js b/deps/npm/node_modules/bl/bl.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/bl.js rename to deps/npm/node_modules/bl/bl.js diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.npmignore b/deps/npm/node_modules/bl/node_modules/readable-stream/.npmignore similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.npmignore rename to deps/npm/node_modules/bl/node_modules/readable-stream/.npmignore 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/bl/node_modules/readable-stream/.travis.yml similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.travis.yml rename to deps/npm/node_modules/bl/node_modules/readable-stream/.travis.yml diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.zuul.yml b/deps/npm/node_modules/bl/node_modules/readable-stream/.zuul.yml similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/.zuul.yml rename to deps/npm/node_modules/bl/node_modules/readable-stream/.zuul.yml diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/LICENSE b/deps/npm/node_modules/bl/node_modules/readable-stream/LICENSE similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/LICENSE rename to deps/npm/node_modules/bl/node_modules/readable-stream/LICENSE 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/bl/node_modules/readable-stream/README.md similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/README.md rename to deps/npm/node_modules/bl/node_modules/readable-stream/README.md 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/bl/node_modules/readable-stream/doc/stream.markdown similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/stream.markdown rename to deps/npm/node_modules/bl/node_modules/readable-stream/doc/stream.markdown diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md b/deps/npm/node_modules/bl/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md rename to deps/npm/node_modules/bl/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/duplex.js b/deps/npm/node_modules/bl/node_modules/readable-stream/duplex.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/duplex.js rename to deps/npm/node_modules/bl/node_modules/readable-stream/duplex.js 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/bl/node_modules/readable-stream/lib/_stream_duplex.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js rename to deps/npm/node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js 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/bl/node_modules/readable-stream/lib/_stream_passthrough.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js rename to deps/npm/node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js 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/bl/node_modules/readable-stream/lib/_stream_readable.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js rename to deps/npm/node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js 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/bl/node_modules/readable-stream/lib/_stream_transform.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js rename to deps/npm/node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js 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/bl/node_modules/readable-stream/lib/_stream_writable.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js rename to deps/npm/node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js 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/bl/node_modules/readable-stream/package.json similarity index 69% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/package.json rename to deps/npm/node_modules/bl/node_modules/readable-stream/package.json index 70ad998cae2d453857c55aacba181759dbdf5205..dc64209734e4a23e3dc02067a11aeb46d41415e2 100644 --- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/package.json +++ b/deps/npm/node_modules/bl/node_modules/readable-stream/package.json @@ -1,8 +1,43 @@ { - "name": "readable-stream", - "version": "2.0.2", - "description": "Streams3, a user-land copy of the stream library from iojs v2.x", - "main": "readable.js", + "_args": [ + [ + "readable-stream@~2.0.0", + "/Users/rebecca/code/npm/node_modules/bl" + ] + ], + "_from": "readable-stream@>=2.0.0 <2.1.0", + "_id": "readable-stream@2.0.2", + "_inCache": true, + "_location": "/bl/readable-stream", + "_nodeVersion": "2.3.0", + "_npmUser": { + "email": "calvin.metcalf@gmail.com", + "name": "cwmma" + }, + "_npmVersion": "2.11.1", + "_phantomChildren": {}, + "_requested": { + "name": "readable-stream", + "raw": "readable-stream@~2.0.0", + "rawSpec": "~2.0.0", + "scope": null, + "spec": ">=2.0.0 <2.1.0", + "type": "range" + }, + "_requiredBy": [ + "/bl" + ], + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", + "_shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", + "_shrinkwrap": null, + "_spec": "readable-stream@~2.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/bl", + "browser": { + "util": false + }, + "bugs": { + "url": "https://github.com/nodejs/readable-stream/issues" + }, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -11,46 +46,26 @@ "string_decoder": "~0.10.x", "util-deprecate": "~1.0.1" }, + "description": "Streams3, a user-land copy of the stream library from iojs v2.x", "devDependencies": { "tap": "~0.2.6", "tape": "~4.0.0", "zuul": "~3.0.0" }, - "scripts": { - "test": "tap test/parallel/*.js", - "browser": "zuul --browser-name $BROWSER_NAME --browser-version $BROWSER_VERSION -- test/browser.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream.git" + "directories": {}, + "dist": { + "shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", + "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz" }, + "gitHead": "1a70134a71196eeabb5e27bc7580faaa68d30513", + "homepage": "https://github.com/nodejs/readable-stream#readme", "keywords": [ + "pipe", "readable", - "stream", - "pipe" + "stream" ], - "browser": { - "util": false - }, "license": "MIT", - "gitHead": "1a70134a71196eeabb5e27bc7580faaa68d30513", - "bugs": { - "url": "https://github.com/nodejs/readable-stream/issues" - }, - "homepage": "https://github.com/nodejs/readable-stream#readme", - "_id": "readable-stream@2.0.2", - "_shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", - "_from": "readable-stream@>=2.0.0 <2.1.0", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - }, - "dist": { - "shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", - "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz" - }, + "main": "readable.js", "maintainers": [ { "name": "isaacs", @@ -69,7 +84,15 @@ "email": "calvin.metcalf@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", - "readme": "ERROR: No README data found!" + "name": "readable-stream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/nodejs/readable-stream.git" + }, + "scripts": { + "browser": "zuul --browser-name $BROWSER_NAME --browser-version $BROWSER_VERSION -- test/browser.js", + "test": "tap test/parallel/*.js" + }, + "version": "2.0.2" } diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/passthrough.js b/deps/npm/node_modules/bl/node_modules/readable-stream/passthrough.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/passthrough.js rename to deps/npm/node_modules/bl/node_modules/readable-stream/passthrough.js diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/readable.js b/deps/npm/node_modules/bl/node_modules/readable-stream/readable.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/readable.js rename to deps/npm/node_modules/bl/node_modules/readable-stream/readable.js diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/transform.js b/deps/npm/node_modules/bl/node_modules/readable-stream/transform.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/transform.js rename to deps/npm/node_modules/bl/node_modules/readable-stream/transform.js diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/writable.js b/deps/npm/node_modules/bl/node_modules/readable-stream/writable.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/writable.js rename to deps/npm/node_modules/bl/node_modules/readable-stream/writable.js diff --git a/deps/npm/node_modules/request/node_modules/bl/package.json b/deps/npm/node_modules/bl/package.json similarity index 61% rename from deps/npm/node_modules/request/node_modules/bl/package.json rename to deps/npm/node_modules/bl/package.json index 1513847030a9ebed5d9cf87f5306aa02a7161db4..f3ca993c5d086d6eac8358e5b1a3cfed18bf45e8 100644 --- a/deps/npm/node_modules/request/node_modules/bl/package.json +++ b/deps/npm/node_modules/bl/package.json @@ -1,62 +1,92 @@ { - "name": "bl", - "version": "1.0.0", - "description": "Buffer List: collect buffers and access with a standard readable Buffer interface, streamable too!", - "main": "bl.js", - "scripts": { - "test": "node test/test.js | faucet", - "test-local": "brtapsauce-local test/basic-test.js" + "_args": [ + [ + "bl@~1.0.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "bl@>=1.0.0 <1.1.0", + "_id": "bl@1.0.0", + "_inCache": true, + "_location": "/bl", + "_nodeVersion": "2.0.1-nightly20150618d2e4e03444", + "_npmUser": { + "email": "rod@vagg.org", + "name": "rvagg" }, - "repository": { - "type": "git", - "url": "git+https://github.com/rvagg/bl.git" + "_npmVersion": "2.9.0", + "_phantomChildren": { + "core-util-is": "1.0.1", + "inherits": "2.0.1", + "isarray": "0.0.1", + "process-nextick-args": "1.0.2", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.1" }, - "homepage": "https://github.com/rvagg/bl", + "_requested": { + "name": "bl", + "raw": "bl@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", + "_shasum": "ada9a8a89a6d7ac60862f7dec7db207873e0c3f5", + "_shrinkwrap": null, + "_spec": "bl@~1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", "authors": [ - "Rod Vagg (https://github.com/rvagg)", + "Jarett Cruger (https://github.com/jcrugzz)", "Matteo Collina (https://github.com/mcollina)", - "Jarett Cruger (https://github.com/jcrugzz)" - ], - "keywords": [ - "buffer", - "buffers", - "stream", - "awesomesauce" + "Rod Vagg (https://github.com/rvagg)" ], - "license": "MIT", + "bugs": { + "url": "https://github.com/rvagg/bl/issues" + }, "dependencies": { "readable-stream": "~2.0.0" }, + "description": "Buffer List: collect buffers and access with a standard readable Buffer interface, streamable too!", "devDependencies": { - "tape": "~2.12.3", - "hash_file": "~0.1.1", + "brtapsauce": "~0.3.0", "faucet": "~0.0.1", - "brtapsauce": "~0.3.0" - }, - "gitHead": "1794938be6697a6d1e02cd942a4eea59b353347a", - "bugs": { - "url": "https://github.com/rvagg/bl/issues" + "hash_file": "~0.1.1", + "tape": "~2.12.3" }, - "_id": "bl@1.0.0", - "_shasum": "ada9a8a89a6d7ac60862f7dec7db207873e0c3f5", - "_from": "bl@>=1.0.0 <1.1.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1-nightly20150618d2e4e03444", - "_npmUser": { - "name": "rvagg", - "email": "rod@vagg.org" + "directories": {}, + "dist": { + "shasum": "ada9a8a89a6d7ac60862f7dec7db207873e0c3f5", + "tarball": "http://registry.npmjs.org/bl/-/bl-1.0.0.tgz" }, + "gitHead": "1794938be6697a6d1e02cd942a4eea59b353347a", + "homepage": "https://github.com/rvagg/bl", + "keywords": [ + "awesomesauce", + "buffer", + "buffers", + "stream" + ], + "license": "MIT", + "main": "bl.js", "maintainers": [ { "name": "rvagg", "email": "rod@vagg.org" } ], - "dist": { - "shasum": "ada9a8a89a6d7ac60862f7dec7db207873e0c3f5", - "tarball": "http://registry.npmjs.org/bl/-/bl-1.0.0.tgz" + "name": "bl", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/rvagg/bl.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "node test/test.js | faucet", + "test-local": "brtapsauce-local test/basic-test.js" + }, + "version": "1.0.0" } diff --git a/deps/npm/node_modules/request/node_modules/bl/test/basic-test.js b/deps/npm/node_modules/bl/test/basic-test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/test/basic-test.js rename to deps/npm/node_modules/bl/test/basic-test.js diff --git a/deps/npm/node_modules/request/node_modules/bl/test/sauce.js b/deps/npm/node_modules/bl/test/sauce.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/test/sauce.js rename to deps/npm/node_modules/bl/test/sauce.js diff --git a/deps/npm/node_modules/request/node_modules/bl/test/test.js b/deps/npm/node_modules/bl/test/test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/test/test.js rename to deps/npm/node_modules/bl/test/test.js diff --git a/deps/npm/node_modules/block-stream/package.json b/deps/npm/node_modules/block-stream/package.json index 80227bb69ed8ab80247b9f3cc6909b3419f67fd8..806b6bf1763b6da899040ed151b015d94a70bc7f 100644 --- a/deps/npm/node_modules/block-stream/package.json +++ b/deps/npm/node_modules/block-stream/package.json @@ -1,54 +1,79 @@ { + "_args": [ + [ + "block-stream@*", + "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/tar" + ] + ], + "_from": "block-stream@*", + "_id": "block-stream@0.0.8", + "_inCache": true, + "_location": "/block-stream", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "block-stream", + "raw": "block-stream@*", + "rawSpec": "*", + "scope": null, + "spec": "*", + "type": "range" + }, + "_requiredBy": [ + "/node-gyp/tar", + "/tar" + ], + "_resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz", + "_shasum": "0688f46da2bbf9cff0c4f68225a0cb95cbe8a46b", + "_shrinkwrap": null, + "_spec": "block-stream@*", + "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/tar", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "block-stream", - "description": "a stream of blocks", - "version": "0.0.8", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/block-stream.git" - }, - "engines": { - "node": "0.4 || >=0.5.8" + "bugs": { + "url": "https://github.com/isaacs/block-stream/issues" }, - "main": "block-stream.js", "dependencies": { "inherits": "~2.0.0" }, + "description": "a stream of blocks", "devDependencies": { "tap": "0.x" }, - "scripts": { - "test": "tap test/" - }, - "license": "ISC", - "gitHead": "b35520314f4763af0788d65a846bb43d9c0a8f02", - "bugs": { - "url": "https://github.com/isaacs/block-stream/issues" - }, - "homepage": "https://github.com/isaacs/block-stream#readme", - "_id": "block-stream@0.0.8", - "_shasum": "0688f46da2bbf9cff0c4f68225a0cb95cbe8a46b", - "_from": "block-stream@0.0.8", - "_npmVersion": "2.10.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, + "directories": {}, "dist": { "shasum": "0688f46da2bbf9cff0c4f68225a0cb95cbe8a46b", "tarball": "http://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" }, + "engines": { + "node": "0.4 || >=0.5.8" + }, + "gitHead": "b35520314f4763af0788d65a846bb43d9c0a8f02", + "homepage": "https://github.com/isaacs/block-stream#readme", + "license": "ISC", + "main": "block-stream.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" + "name": "block-stream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/block-stream.git" + }, + "scripts": { + "test": "tap test/" + }, + "version": "0.0.8" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/LICENSE b/deps/npm/node_modules/bluebird/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/LICENSE rename to deps/npm/node_modules/bluebird/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/README.md b/deps/npm/node_modules/bluebird/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/README.md rename to deps/npm/node_modules/bluebird/README.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/changelog.md b/deps/npm/node_modules/bluebird/changelog.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/changelog.md rename to deps/npm/node_modules/bluebird/changelog.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/browser/bluebird.js b/deps/npm/node_modules/bluebird/js/browser/bluebird.js similarity index 98% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/browser/bluebird.js rename to deps/npm/node_modules/bluebird/js/browser/bluebird.js index c8db9da3efc918488732d24d51c62c5c86a51ec1..2f9380ef5af3be95c97492592c50414ad254fd5c 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/browser/bluebird.js +++ b/deps/npm/node_modules/bluebird/js/browser/bluebird.js @@ -1,18 +1,18 @@ /* @preserve * The MIT License (MIT) - * + * * Copyright (c) 2013-2015 Petka Antonov - * + * * 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 @@ -20,7 +20,7 @@ * 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. - * + * */ /** * bluebird build version 2.10.1 @@ -2914,30 +2914,30 @@ _dereq_('./any.js')(Promise); _dereq_('./each.js')(Promise, INTERNAL); _dereq_('./timers.js')(Promise, INTERNAL); _dereq_('./filter.js')(Promise, INTERNAL); - - util.toFastProperties(Promise); - util.toFastProperties(Promise.prototype); - function fillTypes(value) { - var p = new Promise(INTERNAL); - p._fulfillmentHandler0 = value; - p._rejectionHandler0 = value; - p._progressHandler0 = value; - p._promise0 = value; - p._receiver0 = value; - p._settledValue = value; - } - // Complete slack tracking, opt out of field-type tracking and - // stabilize map - fillTypes({a: 1}); - fillTypes({b: 2}); - fillTypes({c: 3}); - fillTypes(1); - fillTypes(function(){}); - fillTypes(undefined); - fillTypes(false); - fillTypes(new Promise(INTERNAL)); - CapturedTrace.setBounds(async.firstLineError, util.lastLineError); - return Promise; + + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._progressHandler0 = value; + p._promise0 = value; + p._receiver0 = value; + p._settledValue = value; + } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({a: 1}); + fillTypes({b: 2}); + fillTypes({c: 3}); + fillTypes(1); + fillTypes(function(){}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + CapturedTrace.setBounds(async.firstLineError, util.lastLineError); + return Promise; }; diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/browser/bluebird.min.js b/deps/npm/node_modules/bluebird/js/browser/bluebird.min.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/browser/bluebird.min.js rename to deps/npm/node_modules/bluebird/js/browser/bluebird.min.js index f49fe5394f51df5e221464f6bf07fd6b0e9a9748..34dce5096318d97f2c97f63efc82c10456d1a6bd 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/browser/bluebird.min.js +++ b/deps/npm/node_modules/bluebird/js/browser/bluebird.min.js @@ -1,18 +1,18 @@ /* @preserve * The MIT License (MIT) - * + * * Copyright (c) 2013-2015 Petka Antonov - * + * * 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 @@ -20,7 +20,7 @@ * 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. - * + * */ /** * bluebird build version 2.10.1 diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/any.js b/deps/npm/node_modules/bluebird/js/main/any.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/any.js rename to deps/npm/node_modules/bluebird/js/main/any.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/assert.js b/deps/npm/node_modules/bluebird/js/main/assert.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/assert.js rename to deps/npm/node_modules/bluebird/js/main/assert.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/async.js b/deps/npm/node_modules/bluebird/js/main/async.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/async.js rename to deps/npm/node_modules/bluebird/js/main/async.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/bind.js b/deps/npm/node_modules/bluebird/js/main/bind.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/bind.js rename to deps/npm/node_modules/bluebird/js/main/bind.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/bluebird.js b/deps/npm/node_modules/bluebird/js/main/bluebird.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/bluebird.js rename to deps/npm/node_modules/bluebird/js/main/bluebird.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/call_get.js b/deps/npm/node_modules/bluebird/js/main/call_get.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/call_get.js rename to deps/npm/node_modules/bluebird/js/main/call_get.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/cancel.js b/deps/npm/node_modules/bluebird/js/main/cancel.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/cancel.js rename to deps/npm/node_modules/bluebird/js/main/cancel.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/captured_trace.js b/deps/npm/node_modules/bluebird/js/main/captured_trace.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/captured_trace.js rename to deps/npm/node_modules/bluebird/js/main/captured_trace.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/catch_filter.js b/deps/npm/node_modules/bluebird/js/main/catch_filter.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/catch_filter.js rename to deps/npm/node_modules/bluebird/js/main/catch_filter.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/context.js b/deps/npm/node_modules/bluebird/js/main/context.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/context.js rename to deps/npm/node_modules/bluebird/js/main/context.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/debuggability.js b/deps/npm/node_modules/bluebird/js/main/debuggability.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/debuggability.js rename to deps/npm/node_modules/bluebird/js/main/debuggability.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/direct_resolve.js b/deps/npm/node_modules/bluebird/js/main/direct_resolve.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/direct_resolve.js rename to deps/npm/node_modules/bluebird/js/main/direct_resolve.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/each.js b/deps/npm/node_modules/bluebird/js/main/each.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/each.js rename to deps/npm/node_modules/bluebird/js/main/each.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/errors.js b/deps/npm/node_modules/bluebird/js/main/errors.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/errors.js rename to deps/npm/node_modules/bluebird/js/main/errors.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/es5.js b/deps/npm/node_modules/bluebird/js/main/es5.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/es5.js rename to deps/npm/node_modules/bluebird/js/main/es5.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/filter.js b/deps/npm/node_modules/bluebird/js/main/filter.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/filter.js rename to deps/npm/node_modules/bluebird/js/main/filter.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/finally.js b/deps/npm/node_modules/bluebird/js/main/finally.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/finally.js rename to deps/npm/node_modules/bluebird/js/main/finally.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/generators.js b/deps/npm/node_modules/bluebird/js/main/generators.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/generators.js rename to deps/npm/node_modules/bluebird/js/main/generators.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/join.js b/deps/npm/node_modules/bluebird/js/main/join.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/join.js rename to deps/npm/node_modules/bluebird/js/main/join.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/map.js b/deps/npm/node_modules/bluebird/js/main/map.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/map.js rename to deps/npm/node_modules/bluebird/js/main/map.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/method.js b/deps/npm/node_modules/bluebird/js/main/method.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/method.js rename to deps/npm/node_modules/bluebird/js/main/method.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/nodeify.js b/deps/npm/node_modules/bluebird/js/main/nodeify.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/nodeify.js rename to deps/npm/node_modules/bluebird/js/main/nodeify.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/progress.js b/deps/npm/node_modules/bluebird/js/main/progress.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/progress.js rename to deps/npm/node_modules/bluebird/js/main/progress.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/promise.js b/deps/npm/node_modules/bluebird/js/main/promise.js similarity index 92% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/promise.js rename to deps/npm/node_modules/bluebird/js/main/promise.js index 96bd5456f4ae2f0f69bb56214e3b6139d6d04fcc..8e2ccfbd361e58e1678bbddd9c7ae3a0fe1cf8c0 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/promise.js +++ b/deps/npm/node_modules/bluebird/js/main/promise.js @@ -726,29 +726,29 @@ require('./any.js')(Promise); require('./each.js')(Promise, INTERNAL); require('./timers.js')(Promise, INTERNAL); require('./filter.js')(Promise, INTERNAL); - - util.toFastProperties(Promise); - util.toFastProperties(Promise.prototype); - function fillTypes(value) { - var p = new Promise(INTERNAL); - p._fulfillmentHandler0 = value; - p._rejectionHandler0 = value; - p._progressHandler0 = value; - p._promise0 = value; - p._receiver0 = value; - p._settledValue = value; - } - // Complete slack tracking, opt out of field-type tracking and - // stabilize map - fillTypes({a: 1}); - fillTypes({b: 2}); - fillTypes({c: 3}); - fillTypes(1); - fillTypes(function(){}); - fillTypes(undefined); - fillTypes(false); - fillTypes(new Promise(INTERNAL)); - CapturedTrace.setBounds(async.firstLineError, util.lastLineError); - return Promise; + + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._progressHandler0 = value; + p._promise0 = value; + p._receiver0 = value; + p._settledValue = value; + } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({a: 1}); + fillTypes({b: 2}); + fillTypes({c: 3}); + fillTypes(1); + fillTypes(function(){}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + CapturedTrace.setBounds(async.firstLineError, util.lastLineError); + return Promise; }; diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/promise_array.js b/deps/npm/node_modules/bluebird/js/main/promise_array.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/promise_array.js rename to deps/npm/node_modules/bluebird/js/main/promise_array.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/promise_resolver.js b/deps/npm/node_modules/bluebird/js/main/promise_resolver.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/promise_resolver.js rename to deps/npm/node_modules/bluebird/js/main/promise_resolver.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/promisify.js b/deps/npm/node_modules/bluebird/js/main/promisify.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/promisify.js rename to deps/npm/node_modules/bluebird/js/main/promisify.js index 86763d60bae2a8ede78c33d1076ce39859039f2d..1558e8cbd96e532bbed129864d11a0a149466c84 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/promisify.js +++ b/deps/npm/node_modules/bluebird/js/main/promisify.js @@ -304,4 +304,3 @@ Promise.promisifyAll = function (target, options) { return promisifyAll(target, suffix, filter, promisifier); }; }; - diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/props.js b/deps/npm/node_modules/bluebird/js/main/props.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/props.js rename to deps/npm/node_modules/bluebird/js/main/props.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/queue.js b/deps/npm/node_modules/bluebird/js/main/queue.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/queue.js rename to deps/npm/node_modules/bluebird/js/main/queue.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/race.js b/deps/npm/node_modules/bluebird/js/main/race.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/race.js rename to deps/npm/node_modules/bluebird/js/main/race.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/reduce.js b/deps/npm/node_modules/bluebird/js/main/reduce.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/reduce.js rename to deps/npm/node_modules/bluebird/js/main/reduce.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/schedule.js b/deps/npm/node_modules/bluebird/js/main/schedule.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/schedule.js rename to deps/npm/node_modules/bluebird/js/main/schedule.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/settle.js b/deps/npm/node_modules/bluebird/js/main/settle.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/settle.js rename to deps/npm/node_modules/bluebird/js/main/settle.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/some.js b/deps/npm/node_modules/bluebird/js/main/some.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/some.js rename to deps/npm/node_modules/bluebird/js/main/some.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/synchronous_inspection.js b/deps/npm/node_modules/bluebird/js/main/synchronous_inspection.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/synchronous_inspection.js rename to deps/npm/node_modules/bluebird/js/main/synchronous_inspection.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/thenables.js b/deps/npm/node_modules/bluebird/js/main/thenables.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/thenables.js rename to deps/npm/node_modules/bluebird/js/main/thenables.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/timers.js b/deps/npm/node_modules/bluebird/js/main/timers.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/timers.js rename to deps/npm/node_modules/bluebird/js/main/timers.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/using.js b/deps/npm/node_modules/bluebird/js/main/using.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/using.js rename to deps/npm/node_modules/bluebird/js/main/using.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/util.js b/deps/npm/node_modules/bluebird/js/main/util.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/main/util.js rename to deps/npm/node_modules/bluebird/js/main/util.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/package.json b/deps/npm/node_modules/bluebird/package.json similarity index 74% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/package.json rename to deps/npm/node_modules/bluebird/package.json index 92e49170e89883c54e7f26302a95336cc39afb00..891665390c0c967bf570ca80009266842b520c35 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/bluebird/package.json +++ b/deps/npm/node_modules/bluebird/package.json @@ -1,46 +1,48 @@ { - "name": "bluebird", - "description": "Full featured Promises/A+ implementation with exceptionally good performance", - "version": "2.10.1", - "keywords": [ - "promise", - "performance", - "promises", - "promises-a", - "promises-aplus", - "async", - "await", - "deferred", - "deferreds", - "future", - "flow control", - "dsl", - "fluent interface", - "parallel", - "thread", - "concurrency" + "_args": [ + [ + "bluebird@^2.9.30", + "/Users/rebecca/code/npm/node_modules/har-validator" + ] ], - "scripts": { - "lint": "node scripts/jshint.js", - "test": "node tools/test.js", - "istanbul": "istanbul", - "prepublish": "node tools/build.js --no-debug --main --zalgo --browser --minify", - "generate-browser-core": "node tools/build.js --features=core --no-debug --main --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js" - }, - "homepage": "https://github.com/petkaantonov/bluebird", - "repository": { - "type": "git", - "url": "git://github.com/petkaantonov/bluebird.git" + "_from": "bluebird@>=2.9.30 <3.0.0", + "_id": "bluebird@2.10.1", + "_inCache": true, + "_location": "/bluebird", + "_nodeVersion": "2.3.0", + "_npmUser": { + "email": "petka_antonov@hotmail.com", + "name": "esailija" }, - "bugs": { - "url": "http://github.com/petkaantonov/bluebird/issues" + "_npmVersion": "2.11.1", + "_phantomChildren": {}, + "_requested": { + "name": "bluebird", + "raw": "bluebird@^2.9.30", + "rawSpec": "^2.9.30", + "scope": null, + "spec": ">=2.9.30 <3.0.0", + "type": "range" }, - "license": "MIT", + "_requiredBy": [ + "/har-validator" + ], + "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.1.tgz", + "_shasum": "3aeb31bdd92e52df50cba95303e281f94448ce06", + "_shrinkwrap": null, + "_spec": "bluebird@^2.9.30", + "_where": "/Users/rebecca/code/npm/node_modules/har-validator", "author": { - "name": "Petka Antonov", "email": "petka_antonov@hotmail.com", + "name": "Petka Antonov", "url": "http://github.com/petkaantonov/" }, + "browser": "./js/browser/bluebird.js", + "bugs": { + "url": "http://github.com/petkaantonov/bluebird/issues" + }, + "dependencies": {}, + "description": "Full featured Promises/A+ implementation with exceptionally good performance", "devDependencies": { "acorn": "~0.6.0", "baconjs": "^0.7.43", @@ -56,6 +58,7 @@ "istanbul": "^0.3.5", "jshint": "^2.6.0", "jshint-stylish": "~0.2.0", + "kefir": "^2.4.1", "mkdirp": "~0.5.0", "mocha": "~2.1", "open": "~0.0.5", @@ -64,11 +67,13 @@ "rx": "^2.3.25", "serve-static": "^1.7.1", "sinon": "~1.7.3", - "uglify-js": "~2.4.16", - "kefir": "^2.4.1" + "uglify-js": "~2.4.16" + }, + "directories": {}, + "dist": { + "shasum": "3aeb31bdd92e52df50cba95303e281f94448ce06", + "tarball": "http://registry.npmjs.org/bluebird/-/bluebird-2.10.1.tgz" }, - "main": "./js/main/bluebird.js", - "browser": "./js/browser/bluebird.js", "files": [ "js/browser", "js/main", @@ -76,26 +81,46 @@ "zalgo.js" ], "gitHead": "41b23cce935e77b851e076928745ad4c3cebba42", - "_id": "bluebird@2.10.1", - "_shasum": "3aeb31bdd92e52df50cba95303e281f94448ce06", - "_from": "bluebird@>=2.9.30 <3.0.0", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "esailija", - "email": "petka_antonov@hotmail.com" - }, + "homepage": "https://github.com/petkaantonov/bluebird", + "installable": true, + "keywords": [ + "async", + "await", + "concurrency", + "deferred", + "deferreds", + "dsl", + "flow control", + "fluent interface", + "future", + "parallel", + "performance", + "promise", + "promises", + "promises-a", + "promises-aplus", + "thread" + ], + "license": "MIT", + "main": "./js/main/bluebird.js", "maintainers": [ { "name": "esailija", "email": "petka_antonov@hotmail.com" } ], - "dist": { - "shasum": "3aeb31bdd92e52df50cba95303e281f94448ce06", - "tarball": "http://registry.npmjs.org/bluebird/-/bluebird-2.10.1.tgz" + "name": "bluebird", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/petkaantonov/bluebird.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.1.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "generate-browser-core": "node tools/build.js --features=core --no-debug --main --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js", + "istanbul": "istanbul", + "lint": "node scripts/jshint.js", + "prepublish": "node tools/build.js --no-debug --main --zalgo --browser --minify", + "test": "node tools/test.js" + }, + "version": "2.10.1" } diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/.npmignore b/deps/npm/node_modules/boom/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/.npmignore rename to deps/npm/node_modules/boom/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/.travis.yml b/deps/npm/node_modules/boom/.travis.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/.travis.yml rename to deps/npm/node_modules/boom/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/CONTRIBUTING.md b/deps/npm/node_modules/boom/CONTRIBUTING.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/CONTRIBUTING.md rename to deps/npm/node_modules/boom/CONTRIBUTING.md diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE b/deps/npm/node_modules/boom/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE rename to deps/npm/node_modules/boom/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/README.md b/deps/npm/node_modules/boom/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/README.md rename to deps/npm/node_modules/boom/README.md diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/images/boom.png b/deps/npm/node_modules/boom/images/boom.png similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/images/boom.png rename to deps/npm/node_modules/boom/images/boom.png diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js b/deps/npm/node_modules/boom/lib/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js rename to deps/npm/node_modules/boom/lib/index.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json b/deps/npm/node_modules/boom/package.json similarity index 68% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json rename to deps/npm/node_modules/boom/package.json index c9d3f09b64718c3637f85011865f502e92d1579e..47e26632201779ed2ad35971a6de359a6a303a78 100644 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json +++ b/deps/npm/node_modules/boom/package.json @@ -1,45 +1,66 @@ { - "name": "boom", - "description": "HTTP-friendly error objects", - "version": "2.9.0", - "repository": { - "type": "git", - "url": "git://github.com/hapijs/boom.git" + "_args": [ + [ + "boom@^2.8.x", + "/Users/rebecca/code/npm/node_modules/hawk" + ] + ], + "_from": "boom@>=2.8.0 <3.0.0", + "_id": "boom@2.9.0", + "_inCache": true, + "_location": "/boom", + "_nodeVersion": "0.10.40", + "_npmUser": { + "email": "arbretz@gmail.com", + "name": "arb" }, - "main": "lib/index.js", - "keywords": [ - "error", - "http" + "_npmVersion": "2.11.1", + "_phantomChildren": {}, + "_requested": { + "name": "boom", + "raw": "boom@^2.8.x", + "rawSpec": "^2.8.x", + "scope": null, + "spec": ">=2.8.0 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/cryptiles", + "/hawk" ], - "engines": { - "node": ">=0.10.40" + "_resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz", + "_shasum": "a54b7fd2fee477d351bf9e371680cbea67f12715", + "_shrinkwrap": null, + "_spec": "boom@^2.8.x", + "_where": "/Users/rebecca/code/npm/node_modules/hawk", + "bugs": { + "url": "https://github.com/hapijs/boom/issues" }, "dependencies": { "hoek": "2.x.x" }, + "description": "HTTP-friendly error objects", "devDependencies": { "code": "1.x.x", "lab": "5.x.x" }, - "scripts": { - "test": "lab -a code -t 100 -L", - "test-cov-html": "lab -a code -r html -o coverage.html -L" + "directories": {}, + "dist": { + "shasum": "a54b7fd2fee477d351bf9e371680cbea67f12715", + "tarball": "http://registry.npmjs.org/boom/-/boom-2.9.0.tgz" }, - "license": "BSD-3-Clause", - "gitHead": "2ffee0e9d9868140911d30c7acfd7925e534623e", - "bugs": { - "url": "https://github.com/hapijs/boom/issues" + "engines": { + "node": ">=0.10.40" }, + "gitHead": "2ffee0e9d9868140911d30c7acfd7925e534623e", "homepage": "https://github.com/hapijs/boom#readme", - "_id": "boom@2.9.0", - "_shasum": "a54b7fd2fee477d351bf9e371680cbea67f12715", - "_from": "boom@>=2.8.0 <3.0.0", - "_npmVersion": "2.11.1", - "_nodeVersion": "0.10.40", - "_npmUser": { - "name": "arb", - "email": "arbretz@gmail.com" - }, + "installable": true, + "keywords": [ + "error", + "http" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", "maintainers": [ { "name": "hueniverse", @@ -54,11 +75,15 @@ "email": "arbretz@gmail.com" } ], - "dist": { - "shasum": "a54b7fd2fee477d351bf9e371680cbea67f12715", - "tarball": "http://registry.npmjs.org/boom/-/boom-2.9.0.tgz" + "name": "boom", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/hapijs/boom.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "lab -a code -t 100 -L", + "test-cov-html": "lab -a code -r html -o coverage.html -L" + }, + "version": "2.9.0" } diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/test/index.js b/deps/npm/node_modules/boom/test/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/test/index.js rename to deps/npm/node_modules/boom/test/index.js diff --git a/deps/npm/node_modules/brace-expansion/.npmignore b/deps/npm/node_modules/brace-expansion/.npmignore new file mode 100644 index 0000000000000000000000000000000000000000..353546af2368e1edbbf526ff04970bf71ad08789 --- /dev/null +++ b/deps/npm/node_modules/brace-expansion/.npmignore @@ -0,0 +1,3 @@ +test +.gitignore +.travis.yml diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md b/deps/npm/node_modules/brace-expansion/README.md similarity index 96% rename from deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md rename to deps/npm/node_modules/brace-expansion/README.md index 62bc7bae3fed28b9082a4884b4bfbe484a2f38ec..b0d793ed5d901633cd33fab3dd885f7601f44455 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +++ b/deps/npm/node_modules/brace-expansion/README.md @@ -1,9 +1,10 @@ # brace-expansion -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), +[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), as known from sh/bash, in JavaScript. [![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) +[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) [![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/example.js b/deps/npm/node_modules/brace-expansion/example.js similarity index 99% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/example.js rename to deps/npm/node_modules/brace-expansion/example.js index 60ecfc74d416180597369025124152feba2a8893..36cde4de5c114b8cd47fba14c3930b1c498f27eb 100644 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/example.js +++ b/deps/npm/node_modules/brace-expansion/example.js @@ -5,4 +5,3 @@ console.log(expand('http://www.numericals.com/file{1..100..10}.txt')); console.log(expand('http://www.letters.com/file{a..z..2}.txt')); console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}')); console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}')); - diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/index.js b/deps/npm/node_modules/brace-expansion/index.js similarity index 99% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/index.js rename to deps/npm/node_modules/brace-expansion/index.js index a23104e955017355df53d7f3cfdff521ce3cf938..f8d40f79acde0a845eff70129cbe14e045485d6b 100644 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/index.js +++ b/deps/npm/node_modules/brace-expansion/index.js @@ -188,4 +188,3 @@ function expand(str, isTop) { return expansions; } - diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/package.json b/deps/npm/node_modules/brace-expansion/package.json similarity index 51% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/package.json rename to deps/npm/node_modules/brace-expansion/package.json index 5f1866c8b5a29e9ef206ed77853ef24b2a9305b6..5e70336f86ed64a6790f2f95c5929f8c661eb0ff 100644 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/package.json +++ b/deps/npm/node_modules/brace-expansion/package.json @@ -1,60 +1,67 @@ { - "name": "brace-expansion", - "description": "Brace expansion as known from sh/bash", - "version": "1.1.0", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" + "_args": [ + [ + "brace-expansion@^1.0.0", + "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch" + ], + [ + "brace-expansion@^1.0.0", + "/Users/rebecca/code/npm/node_modules/minimatch" + ] + ], + "_from": "brace-expansion@>=1.0.0 <2.0.0", + "_id": "brace-expansion@1.1.1", + "_inCache": true, + "_location": "/brace-expansion", + "_nodeVersion": "0.10.36", + "_npmUser": { + "email": "julian@juliangruber.com", + "name": "juliangruber" }, - "homepage": "https://github.com/juliangruber/brace-expansion", - "main": "index.js", - "scripts": { - "test": "tape test/*.js", - "gentest": "bash test/generate.sh" + "_npmVersion": "2.6.1", + "_phantomChildren": {}, + "_requested": { + "name": "brace-expansion", + "raw": "brace-expansion@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/minimatch", + "/node-gyp/glob/minimatch" + ], + "_shrinkwrap": null, + "_spec": "brace-expansion@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/minimatch", + "author": { + "email": "mail@juliangruber.com", + "name": "Julian Gruber", + "url": "http://juliangruber.com" + }, + "bugs": { + "url": "https://github.com/juliangruber/brace-expansion/issues" }, "dependencies": { "balanced-match": "^0.2.0", "concat-map": "0.0.1" }, + "description": "Brace expansion as known from sh/bash", "devDependencies": { "tape": "^3.0.3" }, - "keywords": [], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" + "directories": {}, + "dist": { + "shasum": "da5fb78aef4c44c9e4acf525064fb3208ebab045", + "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz" }, + "gitHead": "f50da498166d76ea570cf3b30179f01f0f119612", + "homepage": "https://github.com/juliangruber/brace-expansion", + "installable": true, + "keywords": [], "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..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" - ] - }, - "gitHead": "b5fa3b1c74e5e2dba2d0efa19b28335641bc1164", - "bugs": { - "url": "https://github.com/juliangruber/brace-expansion/issues" - }, - "_id": "brace-expansion@1.1.0", - "_shasum": "c9b7d03c03f37bc704be100e522b40db8f6cfcd9", - "_from": "brace-expansion@>=1.0.0 <2.0.0", - "_npmVersion": "2.1.10", - "_nodeVersion": "0.10.32", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, + "main": "index.js", "maintainers": [ { "name": "juliangruber", @@ -65,11 +72,31 @@ "email": "isaacs@npmjs.com" } ], - "dist": { - "shasum": "c9b7d03c03f37bc704be100e522b40db8f6cfcd9", - "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz" + "name": "brace-expansion", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/brace-expansion.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "gentest": "bash test/generate.sh", + "test": "tape test/*.js" + }, + "testling": { + "browsers": [ + "android-browser/4.2..latest", + "chrome/25..latest", + "chrome/canary", + "firefox/20..latest", + "firefox/nightly", + "ie/8..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "opera/12..latest", + "opera/next", + "safari/5.1..latest" + ], + "files": "test/*.js" + }, + "version": "1.1.1" } diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/builtin-modules.json b/deps/npm/node_modules/builtin-modules/builtin-modules.json similarity index 100% rename from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/builtin-modules.json rename to deps/npm/node_modules/builtin-modules/builtin-modules.json diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/index.js b/deps/npm/node_modules/builtin-modules/index.js similarity index 100% rename from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/index.js rename to deps/npm/node_modules/builtin-modules/index.js diff --git a/deps/npm/node_modules/glob/node_modules/path-is-absolute/license b/deps/npm/node_modules/builtin-modules/license similarity index 100% rename from deps/npm/node_modules/glob/node_modules/path-is-absolute/license rename to deps/npm/node_modules/builtin-modules/license diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json b/deps/npm/node_modules/builtin-modules/package.json similarity index 61% rename from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json rename to deps/npm/node_modules/builtin-modules/package.json index a6851b0e059203162e78b6686135522feedc763b..d509e87c26bc068ea3f081205119254721413548 100644 --- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json +++ b/deps/npm/node_modules/builtin-modules/package.json @@ -1,69 +1,95 @@ { - "name": "builtin-modules", - "version": "1.1.0", - "description": "List of the Node.js builtin modules", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/builtin-modules.git" + "_args": [ + [ + "builtin-modules@^1.0.0", + "/Users/rebecca/code/npm/node_modules/is-builtin-module" + ] + ], + "_from": "builtin-modules@>=1.0.0 <2.0.0", + "_id": "builtin-modules@1.1.0", + "_inCache": true, + "_location": "/builtin-modules", + "_nodeVersion": "3.0.0", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.13.3", + "_phantomChildren": {}, + "_requested": { + "name": "builtin-modules", + "raw": "builtin-modules@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" }, + "_requiredBy": [ + "/is-builtin-module" + ], + "_resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.0.tgz", + "_shasum": "1053955fd994a5746e525e4ac717b81caf07491c", + "_shrinkwrap": null, + "_spec": "builtin-modules@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/is-builtin-module", "author": { - "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/builtin-modules/issues" + }, + "dependencies": {}, + "description": "List of the Node.js builtin modules", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "directories": {}, + "dist": { + "shasum": "1053955fd994a5746e525e4ac717b81caf07491c", + "tarball": "http://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.0.tgz" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava", - "make": "node make.js" - }, "files": [ + "builtin-modules.json", "index.js", - "static.js", - "builtin-modules.json" + "static.js" ], + "gitHead": "d317be16fab701f2ac73bc9aa771f60ec052ed66", + "homepage": "https://github.com/sindresorhus/builtin-modules#readme", + "installable": true, "keywords": [ - "builtin", + "array", "built-in", + "builtin", "builtins", - "node", - "modules", - "core", "bundled", + "core", "list", - "array", - "names" + "modules", + "names", + "node" ], - "devDependencies": { - "ava": "*", - "xo": "*" - }, - "gitHead": "d317be16fab701f2ac73bc9aa771f60ec052ed66", - "bugs": { - "url": "https://github.com/sindresorhus/builtin-modules/issues" - }, - "homepage": "https://github.com/sindresorhus/builtin-modules#readme", - "_id": "builtin-modules@1.1.0", - "_shasum": "1053955fd994a5746e525e4ac717b81caf07491c", - "_from": "builtin-modules@>=1.0.0 <2.0.0", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "1053955fd994a5746e525e4ac717b81caf07491c", - "tarball": "http://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.0.tgz" - }, + "license": "MIT", "maintainers": [ { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.0.tgz" + "name": "builtin-modules", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/builtin-modules.git" + }, + "scripts": { + "make": "node make.js", + "test": "xo && ava" + }, + "version": "1.1.0" } diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/readme.md b/deps/npm/node_modules/builtin-modules/readme.md similarity index 100% rename from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/readme.md rename to deps/npm/node_modules/builtin-modules/readme.md diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/static.js b/deps/npm/node_modules/builtin-modules/static.js similarity index 100% rename from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/static.js rename to deps/npm/node_modules/builtin-modules/static.js diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml b/deps/npm/node_modules/builtins/.travis.yml similarity index 100% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml rename to deps/npm/node_modules/builtins/.travis.yml diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/History.md b/deps/npm/node_modules/builtins/History.md similarity index 100% rename from deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/History.md rename to deps/npm/node_modules/builtins/History.md diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/Readme.md b/deps/npm/node_modules/builtins/Readme.md similarity index 100% rename from deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/Readme.md rename to deps/npm/node_modules/builtins/Readme.md diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/builtins.json b/deps/npm/node_modules/builtins/builtins.json similarity index 100% rename from deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/builtins.json rename to deps/npm/node_modules/builtins/builtins.json diff --git a/deps/npm/node_modules/builtins/package.json b/deps/npm/node_modules/builtins/package.json new file mode 100644 index 0000000000000000000000000000000000000000..d3a0e571f28089107d7e6b378abda131e423b2f5 --- /dev/null +++ b/deps/npm/node_modules/builtins/package.json @@ -0,0 +1,71 @@ +{ + "_args": [ + [ + "builtins@0.0.7", + "/Users/rebecca/code/npm/node_modules/validate-npm-package-name" + ] + ], + "_from": "builtins@0.0.7", + "_id": "builtins@0.0.7", + "_inCache": true, + "_location": "/builtins", + "_npmUser": { + "email": "julian@juliangruber.com", + "name": "juliangruber" + }, + "_npmVersion": "1.3.22", + "_phantomChildren": {}, + "_requested": { + "name": "builtins", + "raw": "builtins@0.0.7", + "rawSpec": "0.0.7", + "scope": null, + "spec": "0.0.7", + "type": "version" + }, + "_requiredBy": [ + "/validate-npm-package-name" + ], + "_resolved": "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz", + "_shasum": "355219cd6cf18dbe7c01cc7fd2dce765cfdc549a", + "_shrinkwrap": null, + "_spec": "builtins@0.0.7", + "_where": "/Users/rebecca/code/npm/node_modules/validate-npm-package-name", + "bugs": { + "url": "https://github.com/juliangruber/builtins/issues" + }, + "dependencies": {}, + "description": "List of node.js builtin modules", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "355219cd6cf18dbe7c01cc7fd2dce765cfdc549a", + "tarball": "http://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz" + }, + "homepage": "https://github.com/juliangruber/builtins", + "license": "MIT", + "main": "builtins.json", + "maintainers": [ + { + "name": "juliangruber", + "email": "julian@juliangruber.com" + }, + { + "name": "segment", + "email": "tj@segment.io" + } + ], + "name": "builtins", + "optionalDependencies": {}, + "publishConfig": { + "registry": "https://registry.npmjs.org" + }, + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/builtins" + }, + "scripts": { + "test": "node -e \"require('./builtins.json')\"" + }, + "version": "0.0.7" +} diff --git a/deps/npm/node_modules/request/node_modules/caseless/LICENSE b/deps/npm/node_modules/caseless/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/caseless/LICENSE rename to deps/npm/node_modules/caseless/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/caseless/README.md b/deps/npm/node_modules/caseless/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/caseless/README.md rename to deps/npm/node_modules/caseless/README.md diff --git a/deps/npm/node_modules/request/node_modules/caseless/index.js b/deps/npm/node_modules/caseless/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/caseless/index.js rename to deps/npm/node_modules/caseless/index.js diff --git a/deps/npm/node_modules/request/node_modules/caseless/package.json b/deps/npm/node_modules/caseless/package.json similarity index 64% rename from deps/npm/node_modules/request/node_modules/caseless/package.json rename to deps/npm/node_modules/caseless/package.json index 2cd79ea01ab69b70cac6e1db1ae4bc02d0e7f211..eb2fdfd7839c022d35a396923764f583fae8b33c 100644 --- a/deps/npm/node_modules/request/node_modules/caseless/package.json +++ b/deps/npm/node_modules/caseless/package.json @@ -1,43 +1,63 @@ { - "name": "caseless", - "version": "0.11.0", - "description": "Caseless object set/get/has, very useful when working with HTTP headers.", - "main": "index.js", - "scripts": { - "test": "node test.js" + "_args": [ + [ + "caseless@~0.11.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "caseless@>=0.11.0 <0.12.0", + "_id": "caseless@0.11.0", + "_inCache": true, + "_location": "/caseless", + "_nodeVersion": "1.8.1", + "_npmUser": { + "email": "mikeal.rogers@gmail.com", + "name": "mikeal" }, - "repository": { - "type": "git", - "url": "git+https://github.com/mikeal/caseless.git" + "_npmVersion": "2.8.3", + "_phantomChildren": {}, + "_requested": { + "name": "caseless", + "raw": "caseless@~0.11.0", + "rawSpec": "~0.11.0", + "scope": null, + "spec": ">=0.11.0 <0.12.0", + "type": "range" }, - "keywords": [ - "headers", - "http", - "caseless" + "_requiredBy": [ + "/request" ], - "test": "node test.js", + "_resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "_shasum": "715b96ea9841593cc33067923f5ec60ebda4f7d7", + "_shrinkwrap": null, + "_spec": "caseless@~0.11.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com" + "email": "mikeal.rogers@gmail.com", + "name": "Mikeal Rogers" }, - "license": "Apache-2.0", "bugs": { "url": "https://github.com/mikeal/caseless/issues" }, + "dependencies": {}, + "description": "Caseless object set/get/has, very useful when working with HTTP headers.", "devDependencies": { "tape": "^2.10.2" }, + "directories": {}, + "dist": { + "shasum": "715b96ea9841593cc33067923f5ec60ebda4f7d7", + "tarball": "http://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + }, "gitHead": "c578232a02cc2b46b6da8851caf57fdbfac89ff5", "homepage": "https://github.com/mikeal/caseless#readme", - "_id": "caseless@0.11.0", - "_shasum": "715b96ea9841593cc33067923f5ec60ebda4f7d7", - "_from": "caseless@>=0.11.0 <0.12.0", - "_npmVersion": "2.8.3", - "_nodeVersion": "1.8.1", - "_npmUser": { - "name": "mikeal", - "email": "mikeal.rogers@gmail.com" - }, + "keywords": [ + "caseless", + "headers", + "http" + ], + "license": "Apache-2.0", + "main": "index.js", "maintainers": [ { "name": "mikeal", @@ -52,11 +72,15 @@ "email": "simeonvelichkov@gmail.com" } ], - "dist": { - "shasum": "715b96ea9841593cc33067923f5ec60ebda4f7d7", - "tarball": "http://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + "name": "caseless", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/mikeal/caseless.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "node test.js" + }, + "test": "node test.js", + "version": "0.11.0" } diff --git a/deps/npm/node_modules/request/node_modules/caseless/test.js b/deps/npm/node_modules/caseless/test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/caseless/test.js rename to deps/npm/node_modules/caseless/test.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/index.js b/deps/npm/node_modules/chalk/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/index.js rename to deps/npm/node_modules/chalk/index.js diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/license b/deps/npm/node_modules/chalk/license similarity index 100% rename from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/license rename to deps/npm/node_modules/chalk/license diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/package.json b/deps/npm/node_modules/chalk/package.json similarity index 73% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/package.json rename to deps/npm/node_modules/chalk/package.json index a6120d20c890b9ac2b496edf83c3d83079056994..f1773ed151a2bf800096c2bd9cfb32927fe5d8fa 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/package.json +++ b/deps/npm/node_modules/chalk/package.json @@ -1,61 +1,43 @@ { - "name": "chalk", - "version": "1.1.1", - "description": "Terminal string styling done right. Much color.", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/chalk.git" - }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - }, - { - "name": "unicorn", - "email": "sindresorhus+unicorn@gmail.com" - } + "_args": [ + [ + "chalk@1.1.1", + "/Users/rebecca/code/npm" + ] ], - "engines": { - "node": ">=0.10.0" + "_from": "chalk@1.1.1", + "_id": "chalk@1.1.1", + "_inCache": true, + "_location": "/chalk", + "_nodeVersion": "0.12.7", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" }, - "scripts": { - "test": "xo && mocha", - "bench": "matcha benchmark.js", - "coverage": "nyc npm test && nyc report", - "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" + "_npmVersion": "2.13.5", + "_phantomChildren": {}, + "_requested": { + "name": "chalk", + "raw": "chalk@1.1.1", + "rawSpec": "1.1.1", + "scope": null, + "spec": "1.1.1", + "type": "version" }, - "files": [ - "index.js" - ], - "keywords": [ - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "str", - "ansi", - "style", - "styles", - "tty", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" + "_requiredBy": [ + "/eslint", + "/har-validator", + "/inquirer", + "/unicode-length" ], + "_resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "_shasum": "509afb67066e7499f7eb3535c77445772ae2d019", + "_shrinkwrap": null, + "_spec": "chalk@1.1.1", + "_where": "/Users/rebecca/code/npm", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, "dependencies": { "ansi-styles": "^2.1.0", "escape-string-regexp": "^1.0.2", @@ -63,6 +45,7 @@ "strip-ansi": "^3.0.0", "supports-color": "^2.0.0" }, + "description": "Terminal string styling done right. Much color.", "devDependencies": { "coveralls": "^2.11.2", "matcha": "^0.6.0", @@ -73,31 +56,75 @@ "semver": "^4.3.3", "xo": "*" }, - "xo": { - "envs": [ - "node", - "mocha" - ] + "directories": {}, + "dist": { + "shasum": "509afb67066e7499f7eb3535c77445772ae2d019", + "tarball": "http://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz" }, - "gitHead": "8b554e254e89c85c1fd04dcc444beeb15824e1a5", - "bugs": { - "url": "https://github.com/chalk/chalk/issues" + "engines": { + "node": ">=0.10.0" }, + "files": [ + "index.js" + ], + "gitHead": "8b554e254e89c85c1fd04dcc444beeb15824e1a5", "homepage": "https://github.com/chalk/chalk#readme", - "_id": "chalk@1.1.1", - "_shasum": "509afb67066e7499f7eb3535c77445772ae2d019", - "_from": "chalk@>=1.0.0 <2.0.0", - "_npmVersion": "2.13.5", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" + "installable": true, + "keywords": [ + "256", + "ansi", + "cli", + "color", + "colors", + "colour", + "command-line", + "console", + "formatting", + "log", + "logging", + "rgb", + "shell", + "str", + "string", + "style", + "styles", + "terminal", + "text", + "tty", + "xterm" + ], + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + }, + { + "name": "jbnicolai", + "email": "jappelman@xebia.com" + }, + { + "name": "unicorn", + "email": "sindresorhus+unicorn@gmail.com" + } + ], + "name": "chalk", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" }, - "dist": { - "shasum": "509afb67066e7499f7eb3535c77445772ae2d019", - "tarball": "http://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz" + "scripts": { + "bench": "matcha benchmark.js", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls", + "test": "xo && mocha" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", - "readme": "ERROR: No README data found!" + "version": "1.1.1", + "xo": { + "envs": [ + "mocha", + "node" + ] + } } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/readme.md b/deps/npm/node_modules/chalk/readme.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/readme.md rename to deps/npm/node_modules/chalk/readme.md diff --git a/deps/npm/node_modules/char-spinner/README.md b/deps/npm/node_modules/char-spinner/README.md deleted file mode 100644 index b1290f5925b7d01c593c4e747f6957c513ca6716..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/char-spinner/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# char-spinner - -Put a little spinner on process.stderr, as unobtrusively as possible. - -## USAGE - -```javascript -var spinner = require("char-spinner") - -// All options are optional -// even the options argument itself is optional -spinner(options) -``` - -## OPTIONS - -Usually the defaults are what you want. Mostly they're just -configurable for testing purposes. - -* `stream` Output stream. Default=`process.stderr` -* `tty` Only show spinner if output stream has a truish `.isTTY`. Default=`true` -* `string` String of chars to spin. Default=`'/-\\|'` -* `interval` Number of ms between frames, bigger = slower. Default=`50` -* `cleanup` Print `'\r \r'` to stream on process exit. Default=`true` -* `unref` Unreference the spinner interval so that the process can - exit normally. Default=`true` -* `delay` Number of frames to "skip over" before printing the spinner. - Useful if you want to avoid showing the spinner for very fast - actions. Default=`2` - -Returns the generated interval, if one was created. diff --git a/deps/npm/node_modules/char-spinner/package.json b/deps/npm/node_modules/char-spinner/package.json deleted file mode 100644 index 91092d84bb4089a8b8247cd08e4c6a544f3e2840..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/char-spinner/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "char-spinner", - "version": "1.0.1", - "description": "Put a little spinner on process.stderr, as unobtrusively as possible.", - "main": "spin.js", - "directories": { - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "^0.4.10" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/char-spinner" - }, - "keywords": [ - "char", - "spinner" - ], - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/isaacs/char-spinner/issues" - }, - "homepage": "https://github.com/isaacs/char-spinner", - "gitHead": "091b2ff5960aa083f68a5619fa93999d072aa152", - "_id": "char-spinner@1.0.1", - "_shasum": "e6ea67bd247e107112983b7ab0479ed362800081", - "_from": "char-spinner@latest", - "_npmVersion": "1.4.13", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "dist": { - "shasum": "e6ea67bd247e107112983b7ab0479ed362800081", - "tarball": "http://registry.npmjs.org/char-spinner/-/char-spinner-1.0.1.tgz" - }, - "_resolved": "https://registry.npmjs.org/char-spinner/-/char-spinner-1.0.1.tgz" -} diff --git a/deps/npm/node_modules/char-spinner/spin.js b/deps/npm/node_modules/char-spinner/spin.js deleted file mode 100644 index cae8540c6fa649c1bd0e75d09decd1b013982406..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/char-spinner/spin.js +++ /dev/null @@ -1,51 +0,0 @@ -module.exports = spinner - -function spinner(opt) { - opt = opt || {} - var str = opt.stream || process.stderr - var tty = typeof opt.tty === 'boolean' ? opt.tty : true - var string = opt.string || '/-\\|' - var ms = typeof opt.interval === 'number' ? opt.interval : 50 - if (ms < 0) ms = 0 - if (tty && !str.isTTY) return false - var CR = str.isTTY ? '\u001b[0G' : '\u000d'; - var CLEAR = str.isTTY ? '\u001b[2K' : '\u000d \u000d'; - - var s = 0 - var sprite = string.split('') - var wrote = false - - var delay = typeof opt.delay === 'number' ? opt.delay : 2 - - var interval = setInterval(function() { - if (--delay >= 0) return - s = ++s % sprite.length - var c = sprite[s] - str.write(c + CR) - wrote = true - }, ms) - - var unref = typeof opt.unref === 'boolean' ? opt.unref : true - if (unref && typeof interval.unref === 'function') { - interval.unref() - } - - var cleanup = typeof opt.cleanup === 'boolean' ? opt.cleanup : true - if (cleanup) { - process.on('exit', function() { - if (wrote) { - str.write(CLEAR); - } - }) - } - - module.exports.clear = function () { - str.write(CLEAR); - }; - - return interval -} - -module.exports.clear = function () {}; - - diff --git a/deps/npm/node_modules/char-spinner/test/basic.js b/deps/npm/node_modules/char-spinner/test/basic.js deleted file mode 100644 index ed91b984f70b204f80d61659cbfdbb0f1391bd99..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/char-spinner/test/basic.js +++ /dev/null @@ -1,35 +0,0 @@ -var test = require('tap').test -var spinner = require('../spin.js') - -test('does nothing when not a tty', function(t) { - var int = spinner({ - stream: { write: function(c) { - throw new Error('wrote something: ' + JSON.stringify(c)) - }, isTTY: false }, - }) - t.notOk(int) - t.end() -}) - -test('write spinny stuff', function(t) { - var output = '' - var written = 0 - var expect = "b\u001b[0Gc\u001b[0Gd\u001b[0Ge\u001b[0Gf\u001b[0Gg\u001b[0Gh\u001b[0Gi\u001b[0Gj\u001b[0Gk\u001b[0Gl\u001b[0Gm\u001b[0Gn\u001b[0Go\u001b[0Gp\u001b[0Ga\u001b[0Gb\u001b[0Gc\u001b[0Gd\u001b[0Ge\u001b[0Gf\u001b[0Gg\u001b[0Gh\u001b[0Gi\u001b[0Gj\u001b[0Gk\u001b[0Gl\u001b[0Gm\u001b[0Gn\u001b[0Go\u001b[0Gp\u001b[0Ga\u001b[0Gb\u001b[0Gc\u001b[0Gd\u001b[0Ge\u001b[0Gf\u001b[0Gg\u001b[0Gh\u001b[0Gi\u001b[0Gj\u001b[0Gk\u001b[0Gl\u001b[0Gm\u001b[0Gn\u001b[0Go\u001b[0Gp\u001b[0Ga\u001b[0Gb\u001b[0Gc\u001b[0G" - - var int = spinner({ - interval: 0, - string: 'abcdefghijklmnop', - stream: { - write: function(c) { - output += c - if (++written == 50) { - t.equal(output, expect) - clearInterval(int) - t.end() - } - }, - isTTY: true - }, - cleanup: false - }) -}) diff --git a/deps/npm/node_modules/chmodr/README.md b/deps/npm/node_modules/chmodr/README.md deleted file mode 100644 index e3e9313c1c30913ca2cd7bf3311df719b590c2bf..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/chmodr/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Like `chmod -R`. - -Takes the same arguments as `fs.chmod()` diff --git a/deps/npm/node_modules/chmodr/chmodr.js b/deps/npm/node_modules/chmodr/chmodr.js deleted file mode 100644 index 1e167da21bfcb6a5f4268b4128a049a8c76f351e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/chmodr/chmodr.js +++ /dev/null @@ -1,65 +0,0 @@ -module.exports = chmodr -chmodr.sync = chmodrSync - -var fs = require("fs") -, path = require("path") - -function chmodr (p, mode, cb) { - fs.readdir(p, function (er, children) { - // any error other than ENOTDIR means it's not readable, or - // doesn't exist. give up. - if (er && er.code !== "ENOTDIR") - return cb(er) - var isDir = !er - var m = isDir ? dirMode(mode) : mode - if (er || !children.length) - return fs.chmod(p, m, cb) - - var len = children.length - var errState = null - children.forEach(function (child) { - var pathChild = path.resolve(p, child); - fs.lstat(pathChild, function(er, stats) { - if (er) - return cb(er) - if (!stats.isSymbolicLink()) - chmodr(pathChild, mode, then) - else - then() - }) - }) - function then (er) { - if (errState) return - if (er) return cb(errState = er) - if (-- len === 0) return fs.chmod(p, dirMode(mode), cb) - } - }) -} - -function chmodrSync (p, mode) { - var children - try { - children = fs.readdirSync(p) - } catch (er) { - if (er && er.code === "ENOTDIR") return fs.chmodSync(p, mode) - throw er - } - if (!children.length) return fs.chmodSync(p, dirMode(mode)) - - children.forEach(function (child) { - var pathChild = path.resolve(p, child) - var stats = fs.lstatSync(pathChild) - if (!stats.isSymbolicLink()) - chmodrSync(pathChild, mode) - }) - return fs.chmodSync(p, dirMode(mode)) -} - -// If a party has r, add x -// so that dirs are listable -function dirMode(mode) { - if (mode & 0400) mode |= 0100 - if (mode & 040) mode |= 010 - if (mode & 04) mode |= 01 - return mode -} diff --git a/deps/npm/node_modules/chmodr/package.json b/deps/npm/node_modules/chmodr/package.json deleted file mode 100644 index 54febed62cb8c9247ae6266e889f70342395b73f..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/chmodr/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "name": "chmodr", - "description": "like `chmod -R`", - "version": "1.0.1", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/chmodr.git" - }, - "main": "chmodr.js", - "devDependencies": { - "mkdirp": "0.3", - "rimraf": "", - "tap": "^1.3.2" - }, - "scripts": { - "test": "tap test/*.js" - }, - "license": "ISC", - "files": [ - "chmodr.js" - ], - "gitHead": "a1ffe57f50c7d1a32e342ed1a03772d37bb4d00e", - "bugs": { - "url": "https://github.com/isaacs/chmodr/issues" - }, - "homepage": "https://github.com/isaacs/chmodr#readme", - "_id": "chmodr@1.0.1", - "_shasum": "858e07efd75b6633ae6121ffaa33b2900bcfe18d", - "_from": "chmodr@>=1.0.1 <1.1.0", - "_npmVersion": "3.2.1", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "858e07efd75b6633ae6121ffaa33b2900bcfe18d", - "tarball": "http://registry.npmjs.org/chmodr/-/chmodr-1.0.1.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/chmodr/-/chmodr-1.0.1.tgz" -} diff --git a/deps/npm/node_modules/chownr/package.json b/deps/npm/node_modules/chownr/package.json index fdd1dd23083e77d1faec49ee7c851995a77d3656..527fe0fa3edd8c674cac73d0b8b447d83145dd18 100644 --- a/deps/npm/node_modules/chownr/package.json +++ b/deps/npm/node_modules/chownr/package.json @@ -1,54 +1,79 @@ { + "_args": [ + [ + "chownr@1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "chownr@>=1.0.0 <2.0.0", + "_id": "chownr@1.0.1", + "_inCache": true, + "_location": "/chownr", + "_nodeVersion": "2.2.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "3.2.2", + "_phantomChildren": {}, + "_requested": { + "name": "chownr", + "raw": "chownr@1", + "rawSpec": "1", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "_shasum": "e2a75042a9551908bebd25b8523d5f9769d79181", + "_shrinkwrap": null, + "_spec": "chownr@1", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "chownr", - "description": "like `chown -R`", - "version": "1.0.1", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/chownr.git" + "bugs": { + "url": "https://github.com/isaacs/chownr/issues" }, - "main": "chownr.js", - "files": [ - "chownr.js" - ], + "dependencies": {}, + "description": "like `chown -R`", "devDependencies": { "mkdirp": "0.3", "rimraf": "", "tap": "^1.2.0" }, - "scripts": { - "test": "tap test/*.js" - }, - "license": "ISC", - "gitHead": "c6c43844e80d7c7045e737a72b9fbb1ba0579a26", - "bugs": { - "url": "https://github.com/isaacs/chownr/issues" - }, - "homepage": "https://github.com/isaacs/chownr#readme", - "_id": "chownr@1.0.1", - "_shasum": "e2a75042a9551908bebd25b8523d5f9769d79181", - "_from": "chownr@1.0.1", - "_npmVersion": "3.2.2", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, + "directories": {}, "dist": { "shasum": "e2a75042a9551908bebd25b8523d5f9769d79181", "tarball": "http://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz" }, + "files": [ + "chownr.js" + ], + "gitHead": "c6c43844e80d7c7045e737a72b9fbb1ba0579a26", + "homepage": "https://github.com/isaacs/chownr#readme", + "installable": true, + "license": "ISC", + "main": "chownr.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "readme": "ERROR: No README data found!" + "name": "chownr", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/chownr.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore b/deps/npm/node_modules/clone/.npmignore similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore rename to deps/npm/node_modules/clone/.npmignore diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml b/deps/npm/node_modules/clone/.travis.yml similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml rename to deps/npm/node_modules/clone/.travis.yml diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE b/deps/npm/node_modules/clone/LICENSE similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE rename to deps/npm/node_modules/clone/LICENSE diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md b/deps/npm/node_modules/clone/README.md similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md rename to deps/npm/node_modules/clone/README.md diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js b/deps/npm/node_modules/clone/clone.js similarity index 99% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js rename to deps/npm/node_modules/clone/clone.js index f8fa3159a7c4eecbfb5f94629023e481fab57860..321ffa30f5e2ab8eccac6f550bf5e3f5f32a487b 100644 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js +++ b/deps/npm/node_modules/clone/clone.js @@ -114,7 +114,7 @@ function clone(parent, circular, depth, prototype) { if (proto) { attrs = Object.getOwnPropertyDescriptor(proto, i); } - + if (attrs && attrs.set == null) { continue; } diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json b/deps/npm/node_modules/clone/package.json similarity index 80% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json rename to deps/npm/node_modules/clone/package.json index bc8e878a54c34bd660ac718870e0c3519320d0dd..c5de8f778617d4414e898bc8928e8c5f19abc1b0 100644 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json +++ b/deps/npm/node_modules/clone/package.json @@ -1,38 +1,54 @@ { - "name": "clone", - "description": "deep cloning of objects and arrays", - "tags": [ - "clone", - "object", - "array", - "function", - "date" + "_args": [ + [ + "clone@~0.1.5", + "/Users/rebecca/code/npm/node_modules/defaults" + ] ], - "version": "0.1.19", - "repository": { - "type": "git", - "url": "git://github.com/pvorb/node-clone.git" + "_from": "clone@>=0.1.5 <0.2.0", + "_id": "clone@0.1.19", + "_inCache": true, + "_location": "/clone", + "_npmUser": { + "email": "paul@vorba.ch", + "name": "pvorb" }, - "bugs": { - "url": "https://github.com/pvorb/node-clone/issues" + "_npmVersion": "1.4.14", + "_phantomChildren": {}, + "_requested": { + "name": "clone", + "raw": "clone@~0.1.5", + "rawSpec": "~0.1.5", + "scope": null, + "spec": ">=0.1.5 <0.2.0", + "type": "range" }, - "main": "clone.js", + "_requiredBy": [ + "/defaults" + ], + "_resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", + "_shasum": "613fb68639b26a494ac53253e15b1a6bd88ada85", + "_shrinkwrap": null, + "_spec": "clone@~0.1.5", + "_where": "/Users/rebecca/code/npm/node_modules/defaults", "author": { - "name": "Paul Vorbach", "email": "paul@vorba.ch", + "name": "Paul Vorbach", "url": "http://paul.vorba.ch/" }, + "bugs": { + "url": "https://github.com/pvorb/node-clone/issues" + }, "contributors": [ + { + "name": "Hugh Kennedy", + "url": "http://twitter.com/hughskennedy" + }, { "name": "Blake Miner", "email": "miner.blake@gmail.com", "url": "http://www.blakeminer.com/" }, - { - "name": "Tian You", - "email": "axqd001@gmail.com", - "url": "http://blog.axqd.net/" - }, { "name": "George Stagas", "email": "gstagas@gmail.com", @@ -57,8 +73,9 @@ "url": "https://github.com/w1nk" }, { - "name": "Hugh Kennedy", - "url": "http://twitter.com/hughskennedy" + "name": "Tian You", + "email": "axqd001@gmail.com", + "url": "http://blog.axqd.net/" }, { "name": "Dustin Diaz", @@ -88,39 +105,45 @@ "url": "https://github.com/oroce" } ], - "license": "MIT", - "engines": { - "node": "*" - }, "dependencies": {}, + "description": "deep cloning of objects and arrays", "devDependencies": { - "underscore": "*", - "nodeunit": "*" + "nodeunit": "*", + "underscore": "*" }, - "optionalDependencies": {}, - "scripts": { - "test": "nodeunit test.js" + "directories": {}, + "dist": { + "shasum": "613fb68639b26a494ac53253e15b1a6bd88ada85", + "tarball": "http://registry.npmjs.org/clone/-/clone-0.1.19.tgz" + }, + "engines": { + "node": "*" }, "gitHead": "bb11a43363a0f69e8ac014cb5376ce215ea1f8fd", "homepage": "https://github.com/pvorb/node-clone", - "_id": "clone@0.1.19", - "_shasum": "613fb68639b26a494ac53253e15b1a6bd88ada85", - "_from": "clone@>=0.1.5 <0.2.0", - "_npmVersion": "1.4.14", - "_npmUser": { - "name": "pvorb", - "email": "paul@vorba.ch" - }, + "license": "MIT", + "main": "clone.js", "maintainers": [ { "name": "pvorb", "email": "paul@vorb.de" } ], - "dist": { - "shasum": "613fb68639b26a494ac53253e15b1a6bd88ada85", - "tarball": "http://registry.npmjs.org/clone/-/clone-0.1.19.tgz" + "name": "clone", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/pvorb/node-clone.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz" + "scripts": { + "test": "nodeunit test.js" + }, + "tags": [ + "array", + "clone", + "date", + "function", + "object" + ], + "version": "0.1.19" } diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js b/deps/npm/node_modules/clone/test.js similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js rename to deps/npm/node_modules/clone/test.js diff --git a/deps/npm/node_modules/cmd-shim/package.json b/deps/npm/node_modules/cmd-shim/package.json index e1f4f543ea708c947476da76a263b3f77c36d0aa..47058a16f12ccf4270a960e5a2a5c8e18844c267 100644 --- a/deps/npm/node_modules/cmd-shim/package.json +++ b/deps/npm/node_modules/cmd-shim/package.json @@ -1,46 +1,70 @@ { - "name": "cmd-shim", - "version": "2.0.1", - "description": "Used in npm for command line application support", - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "cmd-shim@~2.0.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "cmd-shim@>=2.0.1 <2.1.0", + "_id": "cmd-shim@2.0.1", + "_inCache": true, + "_location": "/cmd-shim", + "_npmUser": { + "email": "forbes@lindesay.co.uk", + "name": "forbeslindesay" }, - "repository": { - "type": "git", - "url": "https://github.com/ForbesLindesay/cmd-shim.git" + "_npmVersion": "1.5.0-alpha-4", + "_phantomChildren": {}, + "_requested": { + "name": "cmd-shim", + "raw": "cmd-shim@~2.0.1", + "rawSpec": "~2.0.1", + "scope": null, + "spec": ">=2.0.1 <2.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.1.tgz", + "_shasum": "4512a373d2391679aec51ad1d4733559e9b85d4a", + "_shrinkwrap": null, + "_spec": "cmd-shim@~2.0.1", + "_where": "/Users/rebecca/code/npm", + "bugs": { + "url": "https://github.com/ForbesLindesay/cmd-shim/issues" }, - "license": "BSD", "dependencies": { "graceful-fs": ">3.0.1 <4.0.0-0", "mkdirp": "~0.5.0" }, + "description": "Used in npm for command line application support", "devDependencies": { - "tap": "~0.4.11", - "rimraf": "~2.2.8" + "rimraf": "~2.2.8", + "tap": "~0.4.11" }, - "gitHead": "6f53d506be590fe9ac20c9801512cd1a3aad5974", - "bugs": { - "url": "https://github.com/ForbesLindesay/cmd-shim/issues" + "directories": {}, + "dist": { + "shasum": "4512a373d2391679aec51ad1d4733559e9b85d4a", + "tarball": "http://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.1.tgz" }, + "gitHead": "6f53d506be590fe9ac20c9801512cd1a3aad5974", "homepage": "https://github.com/ForbesLindesay/cmd-shim", - "_id": "cmd-shim@2.0.1", - "_shasum": "4512a373d2391679aec51ad1d4733559e9b85d4a", - "_from": "cmd-shim@>=2.0.1-0 <3.0.0-0", - "_npmVersion": "1.5.0-alpha-4", - "_npmUser": { - "name": "forbeslindesay", - "email": "forbes@lindesay.co.uk" - }, + "license": "BSD", "maintainers": [ { "name": "forbeslindesay", "email": "forbes@lindesay.co.uk" } ], - "dist": { - "shasum": "4512a373d2391679aec51ad1d4733559e9b85d4a", - "tarball": "http://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.1.tgz" + "name": "cmd-shim", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/ForbesLindesay/cmd-shim.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.1.tgz" + "scripts": { + "test": "tap test/*.js" + }, + "version": "2.0.1" } diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/package.json b/deps/npm/node_modules/columnify/node_modules/strip-ansi/package.json deleted file mode 100644 index 2871d037908d6277e037cc561f593183a81ed7f0..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/columnify/node_modules/strip-ansi/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "strip-ansi", - "version": "3.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/strip-ansi.git" - }, - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - } - ], - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "node test.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "strip", - "trim", - "remove", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "devDependencies": { - "ava": "0.0.4" - }, - "gitHead": "3f05b9810e1438f946e2eb84ee854cc00b972e9e", - "bugs": { - "url": "https://github.com/sindresorhus/strip-ansi/issues" - }, - "homepage": "https://github.com/sindresorhus/strip-ansi", - "_id": "strip-ansi@3.0.0", - "_shasum": "7510b665567ca914ccb5d7e072763ac968be3724", - "_from": "strip-ansi@>=3.0.0 <4.0.0", - "_npmVersion": "2.11.2", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "7510b665567ca914ccb5d7e072763ac968be3724", - "tarball": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/columnify/package.json b/deps/npm/node_modules/columnify/package.json index 1dc803973c6900c965dabe7f772467518cb88b41..1c9b23ddfbc5a4b687e6f293bbb2a15d8910dafa 100644 --- a/deps/npm/node_modules/columnify/package.json +++ b/deps/npm/node_modules/columnify/package.json @@ -1,67 +1,92 @@ { - "name": "columnify", - "version": "1.5.2", - "description": "Render data in text columns. Supports in-column text-wrap.", - "main": "columnify.js", - "scripts": { - "pretest": "npm prune", - "test": "make prepublish && tape test/*.js | tap-spec", - "bench": "npm test && node bench", - "prepublish": "make prepublish" + "_args": [ + [ + "columnify@~1.5.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "columnify@>=1.5.1 <1.6.0", + "_id": "columnify@1.5.2", + "_inCache": true, + "_location": "/columnify", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "secoif@gmail.com", + "name": "timoxley" + }, + "_npmVersion": "2.9.0", + "_phantomChildren": {}, + "_requested": { + "name": "columnify", + "raw": "columnify@~1.5.1", + "rawSpec": "~1.5.1", + "scope": null, + "spec": ">=1.5.1 <1.6.0", + "type": "range" }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.2.tgz", + "_shasum": "6937930d47c22a9bfa20732a7fd619d47eaba65a", + "_shrinkwrap": null, + "_spec": "columnify@~1.5.1", + "_where": "/Users/rebecca/code/npm", "author": { "name": "Tim Oxley" }, - "license": "MIT", + "bugs": { + "url": "https://github.com/timoxley/columnify/issues" + }, + "dependencies": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + }, + "description": "Render data in text columns. Supports in-column text-wrap.", "devDependencies": { "babel": "^5.8.21", "chalk": "^1.1.0", "tap-spec": "^4.0.2", "tape": "^4.0.3" }, - "repository": { - "type": "git", - "url": "git://github.com/timoxley/columnify.git" + "directories": { + "test": "test" + }, + "dist": { + "shasum": "6937930d47c22a9bfa20732a7fd619d47eaba65a", + "tarball": "http://registry.npmjs.org/columnify/-/columnify-1.5.2.tgz" }, + "gitHead": "e7417b78091844ff2f3ba62551a4817c7ae217bd", + "homepage": "https://github.com/timoxley/columnify", + "installable": true, "keywords": [ - "column", - "text", "ansi", + "column", "console", + "table", "terminal", - "wrap", - "table" + "text", + "wrap" ], - "bugs": { - "url": "https://github.com/timoxley/columnify/issues" - }, - "homepage": "https://github.com/timoxley/columnify", - "dependencies": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" - }, - "directories": { - "test": "test" - }, - "gitHead": "e7417b78091844ff2f3ba62551a4817c7ae217bd", - "_id": "columnify@1.5.2", - "_shasum": "6937930d47c22a9bfa20732a7fd619d47eaba65a", - "_from": "columnify@1.5.2", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "timoxley", - "email": "secoif@gmail.com" - }, + "license": "MIT", + "main": "columnify.js", "maintainers": [ { "name": "timoxley", "email": "secoif@gmail.com" } ], - "dist": { - "shasum": "6937930d47c22a9bfa20732a7fd619d47eaba65a", - "tarball": "http://registry.npmjs.org/columnify/-/columnify-1.5.2.tgz" + "name": "columnify", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/timoxley/columnify.git" + }, + "scripts": { + "bench": "npm test && node bench", + "prepublish": "make prepublish", + "pretest": "npm prune", + "test": "make prepublish && tape test/*.js | tap-spec" }, - "_resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.2.tgz" + "version": "1.5.2" } diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/License b/deps/npm/node_modules/combined-stream/License similarity index 100% rename from deps/npm/node_modules/request/node_modules/combined-stream/License rename to deps/npm/node_modules/combined-stream/License diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/Readme.md b/deps/npm/node_modules/combined-stream/Readme.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/combined-stream/Readme.md rename to deps/npm/node_modules/combined-stream/Readme.md diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/lib/combined_stream.js b/deps/npm/node_modules/combined-stream/lib/combined_stream.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/combined-stream/lib/combined_stream.js rename to deps/npm/node_modules/combined-stream/lib/combined_stream.js diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/package.json b/deps/npm/node_modules/combined-stream/package.json similarity index 70% rename from deps/npm/node_modules/request/node_modules/combined-stream/package.json rename to deps/npm/node_modules/combined-stream/package.json index 10339866f9134b1cc23a7ce29a26472fd9a8d038..1c3e72c157f22e0f0ec4d4b8271e0aa6c3125d57 100644 --- a/deps/npm/node_modules/request/node_modules/combined-stream/package.json +++ b/deps/npm/node_modules/combined-stream/package.json @@ -1,48 +1,65 @@ { + "_args": [ + [ + "combined-stream@~1.0.1", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "combined-stream@>=1.0.1 <1.1.0", + "_id": "combined-stream@1.0.5", + "_inCache": true, + "_location": "/combined-stream", + "_nodeVersion": "0.12.4", + "_npmUser": { + "email": "iam@alexindigo.com", + "name": "alexindigo" + }, + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "combined-stream", + "raw": "combined-stream@~1.0.1", + "rawSpec": "~1.0.1", + "scope": null, + "spec": ">=1.0.1 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/form-data", + "/request" + ], + "_resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "_shasum": "938370a57b4a51dea2c77c15d5c5fdf895164009", + "_shrinkwrap": null, + "_spec": "combined-stream@~1.0.1", + "_where": "/Users/rebecca/code/npm/node_modules/request", "author": { - "name": "Felix Geisendörfer", "email": "felix@debuggable.com", + "name": "Felix Geisendörfer", "url": "http://debuggable.com/" }, - "name": "combined-stream", - "description": "A stream that emits multiple other streams one after another.", - "version": "1.0.5", - "homepage": "https://github.com/felixge/node-combined-stream", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-combined-stream.git" - }, - "main": "./lib/combined_stream", - "scripts": { - "test": "node test/run.js" - }, - "engines": { - "node": ">= 0.8" + "bugs": { + "url": "https://github.com/felixge/node-combined-stream/issues" }, "dependencies": { "delayed-stream": "~1.0.0" }, + "description": "A stream that emits multiple other streams one after another.", "devDependencies": { "far": "~0.0.7" }, - "license": "MIT", - "gitHead": "cfc7b815d090a109bcedb5bb0f6713148d55a6b7", - "bugs": { - "url": "https://github.com/felixge/node-combined-stream/issues" - }, - "_id": "combined-stream@1.0.5", - "_shasum": "938370a57b4a51dea2c77c15d5c5fdf895164009", - "_from": "combined-stream@>=1.0.1 <1.1.0", - "_npmVersion": "2.10.1", - "_nodeVersion": "0.12.4", - "_npmUser": { - "name": "alexindigo", - "email": "iam@alexindigo.com" - }, + "directories": {}, "dist": { "shasum": "938370a57b4a51dea2c77c15d5c5fdf895164009", "tarball": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" }, + "engines": { + "node": ">= 0.8" + }, + "gitHead": "cfc7b815d090a109bcedb5bb0f6713148d55a6b7", + "homepage": "https://github.com/felixge/node-combined-stream", + "license": "MIT", + "main": "./lib/combined_stream", "maintainers": [ { "name": "felixge", @@ -61,7 +78,14 @@ "email": "apeherder@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "readme": "ERROR: No README data found!" + "name": "combined-stream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/felixge/node-combined-stream.git" + }, + "scripts": { + "test": "node test/run.js" + }, + "version": "1.0.5" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/History.md b/deps/npm/node_modules/commander/History.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/History.md rename to deps/npm/node_modules/commander/History.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/LICENSE b/deps/npm/node_modules/commander/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/LICENSE rename to deps/npm/node_modules/commander/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/Readme.md b/deps/npm/node_modules/commander/Readme.md similarity index 99% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/Readme.md rename to deps/npm/node_modules/commander/Readme.md index af58e22c937eb63ac1e74cd8f476fd8bf968c638..5509996c7de69783ed79a6088447015542ca24bd 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/Readme.md +++ b/deps/npm/node_modules/commander/Readme.md @@ -6,7 +6,7 @@ [![NPM Downloads](https://img.shields.io/npm/dm/commander.svg?style=flat)](https://www.npmjs.org/package/commander) [![Join the chat at https://gitter.im/tj/commander.js](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/tj/commander.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby's [commander](https://github.com/tj/commander). + The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby's [commander](https://github.com/tj/commander). [API documentation](http://tj.github.com/commander.js/) @@ -95,7 +95,7 @@ program .option('-s --size ', 'Pizza size', /^(large|medium|small)$/i, 'medium') .option('-d --drink [drink]', 'Drink', /^(coke|pepsi|izze)$/i) .parse(process.argv); - + console.log(' size: %j', program.size); console.log(' drink: %j', program.drink); ``` @@ -171,7 +171,7 @@ program .parse(process.argv); ``` -When `.command()` is invoked with a description argument, no `.action(callback)` should be called to handle sub-commands, otherwise there will be an error. This tells commander that you're going to use separate executables for sub-commands, much like `git(1)` and other popular tools. +When `.command()` is invoked with a description argument, no `.action(callback)` should be called to handle sub-commands, otherwise there will be an error. This tells commander that you're going to use separate executables for sub-commands, much like `git(1)` and other popular tools. The commander will try to search the executables in the directory of the entry script (like `./examples/pm`) with the name `program-command`, like `pm-install`, `pm-search`. If the program is designed to be installed globally, make sure the executables have proper modes, like `755`. @@ -186,7 +186,7 @@ You can enable `--harmony` option in two ways: The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free: -``` +``` $ ./examples/pizza --help Usage: pizza [options] @@ -339,4 +339,3 @@ More Demos can be found in the [examples](https://github.com/tj/commander.js/tre ## License MIT - diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/index.js b/deps/npm/node_modules/commander/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/index.js rename to deps/npm/node_modules/commander/index.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/package.json b/deps/npm/node_modules/commander/package.json similarity index 66% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/package.json rename to deps/npm/node_modules/commander/package.json index 6b4595126ac33946f82c52ac9c89fb452e878d5e..ba89d2e64e1c891b52179e0247cf093128e6771a 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/package.json +++ b/deps/npm/node_modules/commander/package.json @@ -1,52 +1,72 @@ { - "name": "commander", - "version": "2.8.1", - "description": "the complete solution for node.js command-line programs", - "keywords": [ - "command", - "option", - "parser" + "_args": [ + [ + "commander@^2.8.1", + "/Users/rebecca/code/npm/node_modules/har-validator" + ] + ], + "_from": "commander@>=2.8.1 <3.0.0", + "_id": "commander@2.8.1", + "_inCache": true, + "_location": "/commander", + "_nodeVersion": "0.12.0", + "_npmUser": { + "email": "zhiyelee@gmail.com", + "name": "zhiyelee" + }, + "_npmVersion": "2.5.1", + "_phantomChildren": {}, + "_requested": { + "name": "commander", + "raw": "commander@^2.8.1", + "rawSpec": "^2.8.1", + "scope": null, + "spec": ">=2.8.1 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/har-validator" ], + "_resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "_shasum": "06be367febfda0c330aa1e2a072d3dc9762425d4", + "_shrinkwrap": null, + "_spec": "commander@^2.8.1", + "_where": "/Users/rebecca/code/npm/node_modules/har-validator", "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" + "email": "tj@vision-media.ca", + "name": "TJ Holowaychuk" }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/tj/commander.js.git" + "bugs": { + "url": "https://github.com/tj/commander.js/issues" + }, + "dependencies": { + "graceful-readlink": ">= 1.0.0" }, + "description": "the complete solution for node.js command-line programs", "devDependencies": { "should": ">= 0.0.1", "sinon": ">= 1.14.1" }, - "scripts": { - "test": "make test" + "directories": {}, + "dist": { + "shasum": "06be367febfda0c330aa1e2a072d3dc9762425d4", + "tarball": "http://registry.npmjs.org/commander/-/commander-2.8.1.tgz" }, - "main": "index", "engines": { "node": ">= 0.6.x" }, "files": [ "index.js" ], - "dependencies": { - "graceful-readlink": ">= 1.0.0" - }, "gitHead": "c6c84726050b19c0373de27cd359f3baddff579f", - "bugs": { - "url": "https://github.com/tj/commander.js/issues" - }, "homepage": "https://github.com/tj/commander.js", - "_id": "commander@2.8.1", - "_shasum": "06be367febfda0c330aa1e2a072d3dc9762425d4", - "_from": "commander@>=2.8.1 <3.0.0", - "_npmVersion": "2.5.1", - "_nodeVersion": "0.12.0", - "_npmUser": { - "name": "zhiyelee", - "email": "zhiyelee@gmail.com" - }, + "keywords": [ + "command", + "option", + "parser" + ], + "license": "MIT", + "main": "index", "maintainers": [ { "name": "tjholowaychuk", @@ -65,11 +85,14 @@ "email": "thethomaseffect@gmail.com" } ], - "dist": { - "shasum": "06be367febfda0c330aa1e2a072d3dc9762425d4", - "tarball": "http://registry.npmjs.org/commander/-/commander-2.8.1.tgz" + "name": "commander", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/tj/commander.js.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "make test" + }, + "version": "2.8.1" } diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/deps/npm/node_modules/concat-map/.travis.yml similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml rename to deps/npm/node_modules/concat-map/.travis.yml diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/deps/npm/node_modules/concat-map/LICENSE similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE rename to deps/npm/node_modules/concat-map/LICENSE diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/deps/npm/node_modules/concat-map/README.markdown similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown rename to deps/npm/node_modules/concat-map/README.markdown diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/deps/npm/node_modules/concat-map/example/map.js similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js rename to deps/npm/node_modules/concat-map/example/map.js diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/deps/npm/node_modules/concat-map/index.js similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js rename to deps/npm/node_modules/concat-map/index.js diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/deps/npm/node_modules/concat-map/package.json similarity index 66% rename from deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json rename to deps/npm/node_modules/concat-map/package.json index b516138098fba945c0c43a4f9b48699e09002467..6b398a35026372370f47eb72a78847ab527fbf68 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +++ b/deps/npm/node_modules/concat-map/package.json @@ -1,83 +1,107 @@ { - "name": "concat-map", + "_args": [ + [ + "concat-map@0.0.1", + "/Users/rebecca/code/npm/node_modules/brace-expansion" + ] + ], + "_from": "concat-map@0.0.1", + "_id": "concat-map@0.0.1", + "_inCache": true, + "_location": "/concat-map", + "_npmUser": { + "email": "mail@substack.net", + "name": "substack" + }, + "_npmVersion": "1.3.21", + "_phantomChildren": {}, + "_requested": { + "name": "concat-map", + "raw": "concat-map@0.0.1", + "rawSpec": "0.0.1", + "scope": null, + "spec": "0.0.1", + "type": "version" + }, + "_requiredBy": [ + "/brace-expansion" + ], + "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", + "_shrinkwrap": null, + "_spec": "concat-map@0.0.1", + "_where": "/Users/rebecca/code/npm/node_modules/brace-expansion", + "author": { + "email": "mail@substack.net", + "name": "James Halliday", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/node-concat-map/issues" + }, + "dependencies": {}, "description": "concatenative mapdashery", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-concat-map.git" + "devDependencies": { + "tape": "~2.4.0" }, - "main": "index.js", + "directories": { + "example": "example", + "test": "test" + }, + "dist": { + "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", + "tarball": "http://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + }, + "homepage": "https://github.com/substack/node-concat-map", "keywords": [ "concat", "concatMap", - "map", "functional", - "higher-order" + "higher-order", + "map" ], - "directories": { - "example": "example", - "test": "test" + "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "name": "substack", + "email": "mail@substack.net" + } + ], + "name": "concat-map", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/substack/node-concat-map.git" }, "scripts": { "test": "tape test/*.js" }, - "devDependencies": { - "tape": "~2.4.0" - }, - "license": "MIT", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, "testling": { - "files": "test/*.js", "browsers": { + "chrome": [ + 10, + 22 + ], + "ff": [ + 10, + 15, + 3.5 + ], "ie": [ 6, 7, 8, 9 ], - "ff": [ - 3.5, - 10, - 15 - ], - "chrome": [ - 10, - 22 + "opera": [ + 12 ], "safari": [ 5.1 - ], - "opera": [ - 12 ] - } - }, - "bugs": { - "url": "https://github.com/substack/node-concat-map/issues" - }, - "homepage": "https://github.com/substack/node-concat-map", - "_id": "concat-map@0.0.1", - "dist": { - "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "tarball": "http://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + }, + "files": "test/*.js" }, - "_from": "concat-map@0.0.1", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "readme": "ERROR: No README data found!" + "version": "0.0.1" } diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/deps/npm/node_modules/concat-map/test/map.js similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js rename to deps/npm/node_modules/concat-map/test/map.js diff --git a/deps/npm/node_modules/concat-stream/LICENSE b/deps/npm/node_modules/concat-stream/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..1e836b4760025f161a5e153ee0c09da17cc65a3a --- /dev/null +++ b/deps/npm/node_modules/concat-stream/LICENSE @@ -0,0 +1,24 @@ +The MIT License + +Copyright (c) 2013 Max Ogden + +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. \ No newline at end of file diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/index.js b/deps/npm/node_modules/concat-stream/index.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/index.js rename to deps/npm/node_modules/concat-stream/index.js diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.npmignore b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.npmignore rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.travis.yml b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/.travis.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.travis.yml rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.zuul.yml b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/.zuul.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/.zuul.yml rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/.zuul.yml diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/LICENSE b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/LICENSE rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/README.md b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/README.md rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/README.md diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/doc/stream.markdown b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/doc/stream.markdown similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/doc/stream.markdown rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/doc/stream.markdown diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/duplex.js b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/duplex.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/duplex.js rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/duplex.js diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_passthrough.js rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_transform.js rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/package.json b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/package.json similarity index 68% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/package.json rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/package.json index 70ad998cae2d453857c55aacba181759dbdf5205..a3289c74d132ba26ca0973ffbde34a7d037a0984 100644 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/package.json +++ b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/package.json @@ -1,8 +1,43 @@ { - "name": "readable-stream", - "version": "2.0.2", - "description": "Streams3, a user-land copy of the stream library from iojs v2.x", - "main": "readable.js", + "_args": [ + [ + "readable-stream@~2.0.0", + "/Users/rebecca/code/npm/node_modules/concat-stream" + ] + ], + "_from": "readable-stream@>=2.0.0 <2.1.0", + "_id": "readable-stream@2.0.2", + "_inCache": true, + "_location": "/concat-stream/readable-stream", + "_nodeVersion": "2.3.0", + "_npmUser": { + "email": "calvin.metcalf@gmail.com", + "name": "cwmma" + }, + "_npmVersion": "2.11.1", + "_phantomChildren": {}, + "_requested": { + "name": "readable-stream", + "raw": "readable-stream@~2.0.0", + "rawSpec": "~2.0.0", + "scope": null, + "spec": ">=2.0.0 <2.1.0", + "type": "range" + }, + "_requiredBy": [ + "/concat-stream" + ], + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", + "_shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", + "_shrinkwrap": null, + "_spec": "readable-stream@~2.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/concat-stream", + "browser": { + "util": false + }, + "bugs": { + "url": "https://github.com/nodejs/readable-stream/issues" + }, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -11,46 +46,26 @@ "string_decoder": "~0.10.x", "util-deprecate": "~1.0.1" }, + "description": "Streams3, a user-land copy of the stream library from iojs v2.x", "devDependencies": { "tap": "~0.2.6", "tape": "~4.0.0", "zuul": "~3.0.0" }, - "scripts": { - "test": "tap test/parallel/*.js", - "browser": "zuul --browser-name $BROWSER_NAME --browser-version $BROWSER_VERSION -- test/browser.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream.git" + "directories": {}, + "dist": { + "shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", + "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz" }, + "gitHead": "1a70134a71196eeabb5e27bc7580faaa68d30513", + "homepage": "https://github.com/nodejs/readable-stream#readme", "keywords": [ + "pipe", "readable", - "stream", - "pipe" + "stream" ], - "browser": { - "util": false - }, "license": "MIT", - "gitHead": "1a70134a71196eeabb5e27bc7580faaa68d30513", - "bugs": { - "url": "https://github.com/nodejs/readable-stream/issues" - }, - "homepage": "https://github.com/nodejs/readable-stream#readme", - "_id": "readable-stream@2.0.2", - "_shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", - "_from": "readable-stream@>=2.0.0 <2.1.0", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - }, - "dist": { - "shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", - "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz" - }, + "main": "readable.js", "maintainers": [ { "name": "isaacs", @@ -69,7 +84,15 @@ "email": "calvin.metcalf@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", - "readme": "ERROR: No README data found!" + "name": "readable-stream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/nodejs/readable-stream.git" + }, + "scripts": { + "browser": "zuul --browser-name $BROWSER_NAME --browser-version $BROWSER_VERSION -- test/browser.js", + "test": "tap test/parallel/*.js" + }, + "version": "2.0.2" } diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/passthrough.js b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/passthrough.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/passthrough.js rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/passthrough.js diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/readable.js b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/readable.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/readable.js rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/readable.js diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/transform.js b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/transform.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/transform.js rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/transform.js diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/writable.js b/deps/npm/node_modules/concat-stream/node_modules/readable-stream/writable.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/writable.js rename to deps/npm/node_modules/concat-stream/node_modules/readable-stream/writable.js diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json b/deps/npm/node_modules/concat-stream/package.json similarity index 60% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json rename to deps/npm/node_modules/concat-stream/package.json index caa06817b0e47ad296c515dd9a87325fb55b37a5..276492319d8eb1cf9dbc0cab239df459572bc7a2 100644 --- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json +++ b/deps/npm/node_modules/concat-stream/package.json @@ -1,81 +1,111 @@ { - "name": "concat-stream", - "version": "1.5.0", - "description": "writable stream that concatenates strings or binary data and calls a callback with the result", - "tags": [ - "stream", - "simple", - "util", - "utility" + "_args": [ + [ + "concat-stream@^1.4.6", + "/Users/rebecca/code/npm/node_modules/npm-registry-client" + ] ], - "author": { - "name": "Max Ogden", - "email": "max@maxogden.com" + "_from": "concat-stream@>=1.4.6 <2.0.0", + "_id": "concat-stream@1.5.0", + "_inCache": true, + "_location": "/concat-stream", + "_nodeVersion": "1.8.2", + "_npmUser": { + "email": "max@maxogden.com", + "name": "maxogden" }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/maxogden/concat-stream.git" + "_npmVersion": "2.9.0", + "_phantomChildren": { + "core-util-is": "1.0.1", + "inherits": "2.0.1", + "isarray": "0.0.1", + "process-nextick-args": "1.0.1", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.1" }, - "bugs": { - "url": "http://github.com/maxogden/concat-stream/issues" + "_requested": { + "name": "concat-stream", + "raw": "concat-stream@^1.4.6", + "rawSpec": "^1.4.6", + "scope": null, + "spec": ">=1.4.6 <2.0.0", + "type": "range" }, - "engines": [ - "node >= 0.8" - ], - "main": "index.js", - "files": [ - "index.js" + "_requiredBy": [ + "/npm-registry-client" ], - "scripts": { - "test": "tape test/*.js test/server/*.js" + "_resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", + "_shasum": "53f7d43c51c5e43f81c8fdd03321c631be68d611", + "_shrinkwrap": null, + "_spec": "concat-stream@^1.4.6", + "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client", + "author": { + "email": "max@maxogden.com", + "name": "Max Ogden" + }, + "bugs": { + "url": "http://github.com/maxogden/concat-stream/issues" }, - "license": "MIT", "dependencies": { "inherits": "~2.0.1", - "typedarray": "~0.0.5", - "readable-stream": "~2.0.0" + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" }, + "description": "writable stream that concatenates strings or binary data and calls a callback with the result", "devDependencies": { "tape": "~2.3.2" }, - "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" - ] + "directories": {}, + "dist": { + "shasum": "53f7d43c51c5e43f81c8fdd03321c631be68d611", + "tarball": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz" }, + "engines": [ + "node >= 0.8" + ], + "files": [ + "index.js" + ], "gitHead": "7cb37c8ddc0fd2ea03c104d07d44d84b83a31185", "homepage": "https://github.com/maxogden/concat-stream#readme", - "_id": "concat-stream@1.5.0", - "_shasum": "53f7d43c51c5e43f81c8fdd03321c631be68d611", - "_from": "concat-stream@>=1.4.6 <2.0.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "1.8.2", - "_npmUser": { - "name": "maxogden", - "email": "max@maxogden.com" - }, + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "maxogden", "email": "max@maxogden.com" } ], - "dist": { - "shasum": "53f7d43c51c5e43f81c8fdd03321c631be68d611", - "tarball": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz" + "name": "concat-stream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/maxogden/concat-stream.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tape test/*.js test/server/*.js" + }, + "tags": [ + "simple", + "stream", + "util", + "utility" + ], + "testling": { + "browsers": [ + "android-browser/4.2..latest", + "chrome/22..latest", + "chrome/canary", + "firefox/17..latest", + "firefox/nightly", + "ie/8..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "opera/12..latest", + "opera/next", + "safari/5.1..latest" + ], + "files": "test/*.js" + }, + "version": "1.5.0" } diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md b/deps/npm/node_modules/concat-stream/readme.md similarity index 98% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md rename to deps/npm/node_modules/concat-stream/readme.md index 69234d52a535bb8c731d2eb3c8de24b472e533db..587ff7a4dc8ef91b0df165227f8d80399ec0c081 100644 --- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md +++ b/deps/npm/node_modules/concat-stream/readme.md @@ -73,7 +73,7 @@ var concat = require('concat-stream') Return a `writable` stream that will fire `cb(data)` with all of the data that was written to the stream. Data can be written to `writable` as strings, -Buffers, arrays of byte integers, and Uint8Arrays. +Buffers, arrays of byte integers, and Uint8Arrays. By default `concat-stream` will give you back the same data type as the type of the first buffer written to the stream. Use `opts.encoding` to set what format `data` should be returned as, e.g. if you if you don't want to rely on the built-in type checking or for some other reason. diff --git a/deps/npm/node_modules/config-chain/package.json b/deps/npm/node_modules/config-chain/package.json index b25913cab0143b89dc38bf5f9169a08df6751833..b9ab7365b72804d35fea0031599e712e45cc3ed6 100644 --- a/deps/npm/node_modules/config-chain/package.json +++ b/deps/npm/node_modules/config-chain/package.json @@ -1,46 +1,66 @@ { - "name": "config-chain", - "version": "1.1.9", - "licenses": [ - { - "type": "MIT", - "url": "https://raw.githubusercontent.com/dominictarr/config-chain/master/LICENCE" - } + "_args": [ + [ + "config-chain@~1.1.9", + "/Users/rebecca/code/npm" + ] ], - "description": "HANDLE CONFIGURATION ONCE AND FOR ALL", - "homepage": "http://github.com/dominictarr/config-chain", - "repository": { - "type": "git", - "url": "https://github.com/dominictarr/config-chain.git" - }, - "dependencies": { - "proto-list": "~1.2.1", - "ini": "1" + "_from": "config-chain@>=1.1.9 <1.2.0", + "_id": "config-chain@1.1.9", + "_inCache": true, + "_location": "/config-chain", + "_nodeVersion": "0.12.4", + "_npmUser": { + "email": "dominic.tarr@gmail.com", + "name": "dominictarr" }, - "devDependencies": { - "tap": "0.3.0" + "_npmVersion": "2.11.0", + "_phantomChildren": {}, + "_requested": { + "name": "config-chain", + "raw": "config-chain@~1.1.9", + "rawSpec": "~1.1.9", + "scope": null, + "spec": ">=1.1.9 <1.2.0", + "type": "range" }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.9.tgz", + "_shasum": "39ac7d4dca84faad926124c54cff25a53aa8bf6e", + "_shrinkwrap": null, + "_spec": "config-chain@~1.1.9", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Dominic Tarr", "email": "dominic.tarr@gmail.com", + "name": "Dominic Tarr", "url": "http://dominictarr.com" }, - "scripts": { - "test": "tap test/" - }, - "gitHead": "832609897082a0a887c59dadb105f4db6de1ab4c", "bugs": { "url": "https://github.com/dominictarr/config-chain/issues" }, - "_id": "config-chain@1.1.9", - "_shasum": "39ac7d4dca84faad926124c54cff25a53aa8bf6e", - "_from": "config-chain@>=1.1.9 <1.2.0", - "_npmVersion": "2.11.0", - "_nodeVersion": "0.12.4", - "_npmUser": { - "name": "dominictarr", - "email": "dominic.tarr@gmail.com" + "dependencies": { + "ini": "1", + "proto-list": "~1.2.1" + }, + "description": "HANDLE CONFIGURATION ONCE AND FOR ALL", + "devDependencies": { + "tap": "0.3.0" }, + "directories": {}, + "dist": { + "shasum": "39ac7d4dca84faad926124c54cff25a53aa8bf6e", + "tarball": "http://registry.npmjs.org/config-chain/-/config-chain-1.1.9.tgz" + }, + "gitHead": "832609897082a0a887c59dadb105f4db6de1ab4c", + "homepage": "http://github.com/dominictarr/config-chain", + "licenses": [ + { + "type": "MIT", + "url": "https://raw.githubusercontent.com/dominictarr/config-chain/master/LICENCE" + } + ], "maintainers": [ { "name": "dominictarr", @@ -51,10 +71,14 @@ "email": "i@izs.me" } ], - "dist": { - "shasum": "39ac7d4dca84faad926124c54cff25a53aa8bf6e", - "tarball": "http://registry.npmjs.org/config-chain/-/config-chain-1.1.9.tgz" + "name": "config-chain", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/dominictarr/config-chain.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.9.tgz" + "scripts": { + "test": "tap test/" + }, + "version": "1.1.9" } diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/README.md b/deps/npm/node_modules/core-util-is/README.md similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/README.md rename to deps/npm/node_modules/core-util-is/README.md diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/float.patch b/deps/npm/node_modules/core-util-is/float.patch similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/float.patch rename to deps/npm/node_modules/core-util-is/float.patch diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/lib/util.js b/deps/npm/node_modules/core-util-is/lib/util.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/lib/util.js rename to deps/npm/node_modules/core-util-is/lib/util.js diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/package.json b/deps/npm/node_modules/core-util-is/package.json similarity index 58% rename from deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/package.json rename to deps/npm/node_modules/core-util-is/package.json index 466dfdfe0139b3e73ec7b334f353866ba6a499af..3e3708371a710a673f4c882a6ba9a4621f06997f 100644 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/package.json +++ b/deps/npm/node_modules/core-util-is/package.json @@ -1,53 +1,81 @@ { - "name": "core-util-is", - "version": "1.0.1", - "description": "The `util.is*` functions introduced in Node v0.12.", - "main": "lib/util.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/core-util-is.git" + "_args": [ + [ + "core-util-is@~1.0.0", + "/Users/rebecca/code/npm/node_modules/readable-stream" + ] + ], + "_from": "core-util-is@>=1.0.0 <1.1.0", + "_id": "core-util-is@1.0.1", + "_inCache": true, + "_location": "/core-util-is", + "_npmUser": { + "email": "i@izs.me", + "name": "isaacs" }, - "keywords": [ - "util", - "isBuffer", - "isArray", - "isNumber", - "isString", - "isRegExp", - "isThis", - "isThat", - "polyfill" + "_npmVersion": "1.3.23", + "_phantomChildren": {}, + "_requested": { + "name": "core-util-is", + "raw": "core-util-is@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/bl/readable-stream", + "/concat-stream/readable-stream", + "/readable-stream" ], + "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", + "_shasum": "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538", + "_shrinkwrap": null, + "_spec": "core-util-is@~1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/readable-stream", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "license": "MIT", "bugs": { "url": "https://github.com/isaacs/core-util-is/issues" }, - "readme": "# core-util-is\n\nThe `util.is*` functions introduced in Node v0.12.\n", - "readmeFilename": "README.md", - "homepage": "https://github.com/isaacs/core-util-is", - "_id": "core-util-is@1.0.1", + "dependencies": {}, + "description": "The `util.is*` functions introduced in Node v0.12.", + "devDependencies": {}, + "directories": {}, "dist": { "shasum": "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538", "tarball": "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" }, - "_from": "core-util-is@>=1.0.0 <1.1.0", - "_npmVersion": "1.3.23", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, + "homepage": "https://github.com/isaacs/core-util-is", + "keywords": [ + "isArray", + "isBuffer", + "isNumber", + "isRegExp", + "isString", + "isThat", + "isThis", + "polyfill", + "util" + ], + "license": "MIT", + "main": "lib/util.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_shasum": "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538", - "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + "name": "core-util-is", + "optionalDependencies": {}, + "readme": "# core-util-is\n\nThe `util.is*` functions introduced in Node v0.12.\n", + "readmeFilename": "README.md", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/core-util-is" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/util.js b/deps/npm/node_modules/core-util-is/util.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/util.js rename to deps/npm/node_modules/core-util-is/util.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/.npmignore b/deps/npm/node_modules/cryptiles/.npmignore similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/.npmignore rename to deps/npm/node_modules/cryptiles/.npmignore index 77ba16cb055ca541749d23cb973e1cdfc41504e1..b0939eabe34d2defcf4061394f2d22475f0c36af 100644 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/.npmignore +++ b/deps/npm/node_modules/cryptiles/.npmignore @@ -15,4 +15,3 @@ config.json */*/._* coverage.* lib-cov - diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/.travis.yml b/deps/npm/node_modules/cryptiles/.travis.yml old mode 100644 new mode 100755 similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/.travis.yml rename to deps/npm/node_modules/cryptiles/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE b/deps/npm/node_modules/cryptiles/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE rename to deps/npm/node_modules/cryptiles/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md b/deps/npm/node_modules/cryptiles/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md rename to deps/npm/node_modules/cryptiles/README.md diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js b/deps/npm/node_modules/cryptiles/lib/index.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js rename to deps/npm/node_modules/cryptiles/lib/index.js index f385870ee68e3a17f8cfc99f08131482d1c9dfea..c8a046d7433235efa0adaab8aa77ffb007b83e99 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js +++ b/deps/npm/node_modules/cryptiles/lib/index.js @@ -64,5 +64,3 @@ exports.fixedTimeComparison = function (a, b) { return (mismatch === 0); }; - - diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json b/deps/npm/node_modules/cryptiles/package.json similarity index 68% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json rename to deps/npm/node_modules/cryptiles/package.json index c65fd094047c732fd28490fde59d195a542f8e67..75d997644a6fe9e357233107c8d090e777b2b00d 100644 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json +++ b/deps/npm/node_modules/cryptiles/package.json @@ -1,50 +1,67 @@ { - "name": "cryptiles", - "description": "General purpose crypto utilities", - "version": "2.0.5", - "repository": { - "type": "git", - "url": "git://github.com/hapijs/cryptiles.git" + "_args": [ + [ + "cryptiles@2.x.x", + "/Users/rebecca/code/npm/node_modules/hawk" + ] + ], + "_from": "cryptiles@>=2.0.0 <3.0.0", + "_id": "cryptiles@2.0.5", + "_inCache": true, + "_location": "/cryptiles", + "_nodeVersion": "4.0.0", + "_npmUser": { + "email": "eran@hammer.io", + "name": "hueniverse" }, - "main": "lib/index.js", - "keywords": [ - "cryptography", - "security", - "utilites" + "_npmVersion": "2.14.2", + "_phantomChildren": {}, + "_requested": { + "name": "cryptiles", + "raw": "cryptiles@2.x.x", + "rawSpec": "2.x.x", + "scope": null, + "spec": ">=2.0.0 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/follow/hawk", + "/hawk" ], - "engines": { - "node": ">=0.10.40" + "_resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "_shasum": "3bdfecdc608147c1c67202fa291e7dca59eaa3b8", + "_shrinkwrap": null, + "_spec": "cryptiles@2.x.x", + "_where": "/Users/rebecca/code/npm/node_modules/hawk", + "bugs": { + "url": "https://github.com/hapijs/cryptiles/issues" }, "dependencies": { "boom": "2.x.x" }, + "description": "General purpose crypto utilities", "devDependencies": { "code": "1.x.x", "lab": "5.x.x" }, - "scripts": { - "test": "lab -a code -t 100 -L", - "test-cov-html": "lab -a code -r html -o coverage.html" - }, - "license": "BSD-3-Clause", - "gitHead": "9bc5a852f01cd51e615814e1cb255fe2df810649", - "bugs": { - "url": "https://github.com/hapijs/cryptiles/issues" - }, - "homepage": "https://github.com/hapijs/cryptiles#readme", - "_id": "cryptiles@2.0.5", - "_shasum": "3bdfecdc608147c1c67202fa291e7dca59eaa3b8", - "_from": "cryptiles@>=2.0.0 <3.0.0", - "_npmVersion": "2.14.2", - "_nodeVersion": "4.0.0", - "_npmUser": { - "name": "hueniverse", - "email": "eran@hammer.io" - }, + "directories": {}, "dist": { "shasum": "3bdfecdc608147c1c67202fa291e7dca59eaa3b8", "tarball": "http://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, + "engines": { + "node": ">=0.10.40" + }, + "gitHead": "9bc5a852f01cd51e615814e1cb255fe2df810649", + "homepage": "https://github.com/hapijs/cryptiles#readme", + "installable": true, + "keywords": [ + "cryptography", + "security", + "utilites" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", "maintainers": [ { "name": "hueniverse", @@ -55,7 +72,15 @@ "email": "ceejceej@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "readme": "ERROR: No README data found!" + "name": "cryptiles", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/hapijs/cryptiles.git" + }, + "scripts": { + "test": "lab -a code -t 100 -L", + "test-cov-html": "lab -a code -r html -o coverage.html" + }, + "version": "2.0.5" } diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/test/index.js b/deps/npm/node_modules/cryptiles/test/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/test/index.js rename to deps/npm/node_modules/cryptiles/test/index.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/.npmignore b/deps/npm/node_modules/ctype/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/.npmignore rename to deps/npm/node_modules/ctype/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/CHANGELOG b/deps/npm/node_modules/ctype/CHANGELOG similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/CHANGELOG rename to deps/npm/node_modules/ctype/CHANGELOG diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/LICENSE b/deps/npm/node_modules/ctype/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/LICENSE rename to deps/npm/node_modules/ctype/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/README b/deps/npm/node_modules/ctype/README similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/README rename to deps/npm/node_modules/ctype/README diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/README.old b/deps/npm/node_modules/ctype/README.old similarity index 99% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/README.old rename to deps/npm/node_modules/ctype/README.old index 9326b725f5641e18542b5c4e778b9a2185ae66d0..c6270bd1c9375adb1f5d181f0a82903b7d9a6512 100644 --- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/README.old +++ b/deps/npm/node_modules/ctype/README.old @@ -295,4 +295,3 @@ void wsint64(Number[], endian, buffer offset); Write floating point numbers from a buffer: void wfloat(Number, buffer, endian, offset); /* IEEE-754 Single precision */ void wdouble(Number, buffer, endian, offset); /* IEEE-754 Double precision */ - diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctf.js b/deps/npm/node_modules/ctype/ctf.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctf.js rename to deps/npm/node_modules/ctype/ctf.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctio.js b/deps/npm/node_modules/ctype/ctio.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctio.js rename to deps/npm/node_modules/ctype/ctio.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctype.js b/deps/npm/node_modules/ctype/ctype.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/ctype.js rename to deps/npm/node_modules/ctype/ctype.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/man/man3ctype/ctio.3ctype b/deps/npm/node_modules/ctype/man/man3ctype/ctio.3ctype similarity index 99% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/man/man3ctype/ctio.3ctype rename to deps/npm/node_modules/ctype/man/man3ctype/ctio.3ctype index 3f94986a1b3af6e6a3e349709af0e2ed022ab975..483ad95560558839870a0f90db14a59bc704e2d8 100644 --- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/man/man3ctype/ctio.3ctype +++ b/deps/npm/node_modules/ctype/man/man3ctype/ctio.3ctype @@ -11,7 +11,7 @@ .\" .\" 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 @@ -204,7 +204,7 @@ IEEE-754 floating point value instead. .SS "\fBwfloat()\fR, \fBwdouble()\fR" .sp .LP -The functions "\fBrfloat()\fR and \fBrdouble()\fR" work like the other write +The functions "\fBrfloat()\fR and \fBrdouble()\fR" work like the other write functions, except that the domain for a float is that of a single precision 4 byte value. The domain for a double is any \fBNumber\fR in ECMAScript, which is defined to be represented by a double. diff --git a/deps/npm/node_modules/ctype/package.json b/deps/npm/node_modules/ctype/package.json new file mode 100644 index 0000000000000000000000000000000000000000..a4d41f6d5cbd492db436222d04b4ca325537dc65 --- /dev/null +++ b/deps/npm/node_modules/ctype/package.json @@ -0,0 +1,64 @@ +{ + "_args": [ + [ + "ctype@0.5.3", + "/Users/rebecca/code/npm/node_modules/http-signature" + ] + ], + "_from": "ctype@0.5.3", + "_id": "ctype@0.5.3", + "_inCache": true, + "_location": "/ctype", + "_npmUser": { + "email": "rm@fingolfin.org", + "name": "rm" + }, + "_npmVersion": "1.1.59", + "_phantomChildren": {}, + "_requested": { + "name": "ctype", + "raw": "ctype@0.5.3", + "rawSpec": "0.5.3", + "scope": null, + "spec": "0.5.3", + "type": "version" + }, + "_requiredBy": [ + "/http-signature" + ], + "_resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "_shasum": "82c18c2461f74114ef16c135224ad0b9144ca12f", + "_shrinkwrap": null, + "_spec": "ctype@0.5.3", + "_where": "/Users/rebecca/code/npm/node_modules/http-signature", + "author": { + "email": "rm@fingolfin.org", + "name": "Robert Mustacchi" + }, + "dependencies": {}, + "description": "read and write binary structures and data types", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "82c18c2461f74114ef16c135224ad0b9144ca12f", + "tarball": "http://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + }, + "engines": { + "node": ">= 0.4" + }, + "homepage": "https://github.com/rmustacc/node-ctype", + "main": "ctype.js", + "maintainers": [ + { + "name": "rm", + "email": "rm@fingolfin.org" + } + ], + "name": "ctype", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/rmustacc/node-ctype.git" + }, + "version": "0.5.3" +} diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsl.conf b/deps/npm/node_modules/ctype/tools/jsl.conf similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsl.conf rename to deps/npm/node_modules/ctype/tools/jsl.conf diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsstyle b/deps/npm/node_modules/ctype/tools/jsstyle similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/tools/jsstyle rename to deps/npm/node_modules/ctype/tools/jsstyle diff --git a/deps/npm/node_modules/read-installed/node_modules/debuglog/LICENSE b/deps/npm/node_modules/debuglog/LICENSE similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/debuglog/LICENSE rename to deps/npm/node_modules/debuglog/LICENSE diff --git a/deps/npm/node_modules/read-installed/node_modules/debuglog/README.md b/deps/npm/node_modules/debuglog/README.md similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/debuglog/README.md rename to deps/npm/node_modules/debuglog/README.md diff --git a/deps/npm/node_modules/read-installed/node_modules/debuglog/debuglog.js b/deps/npm/node_modules/debuglog/debuglog.js similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/debuglog/debuglog.js rename to deps/npm/node_modules/debuglog/debuglog.js diff --git a/deps/npm/node_modules/read-installed/node_modules/debuglog/package.json b/deps/npm/node_modules/debuglog/package.json similarity index 54% rename from deps/npm/node_modules/read-installed/node_modules/debuglog/package.json rename to deps/npm/node_modules/debuglog/package.json index 39fac076703ce029c3aac07fb243476c7511370c..e7fe99f56e34f1cf3fd0a760e4edd2dc41610547 100644 --- a/deps/npm/node_modules/read-installed/node_modules/debuglog/package.json +++ b/deps/npm/node_modules/debuglog/package.json @@ -1,19 +1,41 @@ { - "name": "debuglog", - "version": "1.0.1", - "description": "backport of util.debuglog from node v0.11", - "license": "MIT", - "main": "debuglog.js", - "repository": { - "type": "git", - "url": "https://github.com/sam-github/node-debuglog.git" + "_args": [ + [ + "debuglog@^1.0.1", + "/Users/rebecca/code/npm/node_modules/read-installed" + ] + ], + "_from": "debuglog@>=1.0.1 <2.0.0", + "_id": "debuglog@1.0.1", + "_inCache": true, + "_location": "/debuglog", + "_npmUser": { + "email": "sam@strongloop.com", + "name": "octet" }, - "author": { - "name": "Sam Roberts", - "email": "sam@strongloop.com" + "_npmVersion": "1.4.3", + "_phantomChildren": {}, + "_requested": { + "name": "debuglog", + "raw": "debuglog@^1.0.1", + "rawSpec": "^1.0.1", + "scope": null, + "spec": ">=1.0.1 <2.0.0", + "type": "range" }, - "engines": { - "node": "*" + "_requiredBy": [ + "/read-installed", + "/read-package-tree", + "/readdir-scoped-modules" + ], + "_resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "_shasum": "aa24ffb9ac3df9a2351837cfb2d279360cd78492", + "_shrinkwrap": null, + "_spec": "debuglog@^1.0.1", + "_where": "/Users/rebecca/code/npm/node_modules/read-installed", + "author": { + "email": "sam@strongloop.com", + "name": "Sam Roberts" }, "browser": { "util": false @@ -21,25 +43,31 @@ "bugs": { "url": "https://github.com/sam-github/node-debuglog/issues" }, - "homepage": "https://github.com/sam-github/node-debuglog", - "_id": "debuglog@1.0.1", + "dependencies": {}, + "description": "backport of util.debuglog from node v0.11", + "devDependencies": {}, + "directories": {}, "dist": { "shasum": "aa24ffb9ac3df9a2351837cfb2d279360cd78492", "tarball": "http://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz" }, - "_from": "debuglog@>=1.0.1 <2.0.0", - "_npmVersion": "1.4.3", - "_npmUser": { - "name": "octet", - "email": "sam@strongloop.com" + "engines": { + "node": "*" }, + "homepage": "https://github.com/sam-github/node-debuglog", + "license": "MIT", + "main": "debuglog.js", "maintainers": [ { "name": "octet", "email": "sam@strongloop.com" } ], - "directories": {}, - "_shasum": "aa24ffb9ac3df9a2351837cfb2d279360cd78492", - "_resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz" + "name": "debuglog", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sam-github/node-debuglog.git" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore b/deps/npm/node_modules/defaults/.npmignore similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore rename to deps/npm/node_modules/defaults/.npmignore diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE b/deps/npm/node_modules/defaults/LICENSE similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE rename to deps/npm/node_modules/defaults/LICENSE diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md b/deps/npm/node_modules/defaults/README.md similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md rename to deps/npm/node_modules/defaults/README.md diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js b/deps/npm/node_modules/defaults/index.js similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js rename to deps/npm/node_modules/defaults/index.js diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json b/deps/npm/node_modules/defaults/package.json similarity index 62% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json rename to deps/npm/node_modules/defaults/package.json index fdd074d0f4afbb87de53ba7a7d0774ba6510318a..7c025a16873369d633936355ee3968fb3a13870e 100644 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json +++ b/deps/npm/node_modules/defaults/package.json @@ -1,53 +1,77 @@ { - "name": "defaults", - "version": "1.0.2", - "description": "merge single level defaults over a config object", - "main": "index.js", - "scripts": { - "test": "node test.js" + "_args": [ + [ + "defaults@^1.0.0", + "/Users/rebecca/code/npm/node_modules/wcwidth" + ] + ], + "_from": "defaults@>=1.0.0 <2.0.0", + "_id": "defaults@1.0.2", + "_inCache": true, + "_location": "/defaults", + "_npmUser": { + "email": "tmpvar@gmail.com", + "name": "tmpvar" }, - "repository": { - "type": "git", - "url": "git://github.com/tmpvar/defaults.git" + "_npmVersion": "1.4.23", + "_phantomChildren": {}, + "_requested": { + "name": "defaults", + "raw": "defaults@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" }, - "keywords": [ - "config", - "defaults" + "_requiredBy": [ + "/wcwidth" ], + "_resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.2.tgz", + "_shasum": "6902e25aa047649a501e19ef9e98f3e8365c109a", + "_shrinkwrap": null, + "_spec": "defaults@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/wcwidth", "author": { - "name": "Elijah Insua", - "email": "tmpvar@gmail.com" + "email": "tmpvar@gmail.com", + "name": "Elijah Insua" + }, + "bugs": { + "url": "https://github.com/tmpvar/defaults/issues" }, - "license": "MIT", "dependencies": { "clone": "~0.1.5" }, + "description": "merge single level defaults over a config object", "devDependencies": { "tap": "~0.4.0" }, - "gitHead": "22c57d1f87a2f03c1f9d21bd39c67db8553a0064", - "bugs": { - "url": "https://github.com/tmpvar/defaults/issues" + "directories": {}, + "dist": { + "shasum": "6902e25aa047649a501e19ef9e98f3e8365c109a", + "tarball": "http://registry.npmjs.org/defaults/-/defaults-1.0.2.tgz" }, + "gitHead": "22c57d1f87a2f03c1f9d21bd39c67db8553a0064", "homepage": "https://github.com/tmpvar/defaults", - "_id": "defaults@1.0.2", - "_shasum": "6902e25aa047649a501e19ef9e98f3e8365c109a", - "_from": "defaults@>=1.0.0 <2.0.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "tmpvar", - "email": "tmpvar@gmail.com" - }, + "keywords": [ + "config", + "defaults" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "tmpvar", "email": "tmpvar@gmail.com" } ], - "dist": { - "shasum": "6902e25aa047649a501e19ef9e98f3e8365c109a", - "tarball": "http://registry.npmjs.org/defaults/-/defaults-1.0.2.tgz" + "name": "defaults", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/tmpvar/defaults.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.2.tgz" + "scripts": { + "test": "node test.js" + }, + "version": "1.0.2" } diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js b/deps/npm/node_modules/defaults/test.js similarity index 99% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js rename to deps/npm/node_modules/defaults/test.js index 60e0ffba8b4aaba74b490f15da57957da6d9b37e..eab79ff71f149826bdae047424fa776d1df18ed3 100644 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js +++ b/deps/npm/node_modules/defaults/test.js @@ -31,4 +31,3 @@ test("ensure defaults clone nested objects", function(t) { t.ok(result.b !== d.b, 'objects should be clones'); t.end(); }); - diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/.npmignore b/deps/npm/node_modules/delayed-stream/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/.npmignore rename to deps/npm/node_modules/delayed-stream/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/License b/deps/npm/node_modules/delayed-stream/License similarity index 100% rename from deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/License rename to deps/npm/node_modules/delayed-stream/License diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile b/deps/npm/node_modules/delayed-stream/Makefile similarity index 98% rename from deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile rename to deps/npm/node_modules/delayed-stream/Makefile index b4ff85a33b6eb482476385b7c3e6661ec9c9eb0c..2d7580746d0b84926de5c6998a405ed2ce21ac31 100644 --- a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile +++ b/deps/npm/node_modules/delayed-stream/Makefile @@ -4,4 +4,3 @@ test: @./test/run.js .PHONY: test - diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Readme.md b/deps/npm/node_modules/delayed-stream/Readme.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Readme.md rename to deps/npm/node_modules/delayed-stream/Readme.md diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js b/deps/npm/node_modules/delayed-stream/lib/delayed_stream.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js rename to deps/npm/node_modules/delayed-stream/lib/delayed_stream.js diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json b/deps/npm/node_modules/delayed-stream/package.json similarity index 69% rename from deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json rename to deps/npm/node_modules/delayed-stream/package.json index 8ac66b814c8162caddd228e2c522aa01f1813f9c..7f4cb7f97feab161a3370312e1768c0649f80cdf 100644 --- a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json +++ b/deps/npm/node_modules/delayed-stream/package.json @@ -1,53 +1,69 @@ { + "_args": [ + [ + "delayed-stream@~1.0.0", + "/Users/rebecca/code/npm/node_modules/combined-stream" + ] + ], + "_from": "delayed-stream@>=1.0.0 <1.1.0", + "_id": "delayed-stream@1.0.0", + "_inCache": true, + "_location": "/delayed-stream", + "_nodeVersion": "1.6.4", + "_npmUser": { + "email": "apeherder@gmail.com", + "name": "apechimp" + }, + "_npmVersion": "2.8.3", + "_phantomChildren": {}, + "_requested": { + "name": "delayed-stream", + "raw": "delayed-stream@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/combined-stream" + ], + "_resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "_shasum": "df3ae199acadfb7d440aaae0b29e2272b24ec619", + "_shrinkwrap": null, + "_spec": "delayed-stream@~1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/combined-stream", "author": { - "name": "Felix Geisendörfer", "email": "felix@debuggable.com", + "name": "Felix Geisendörfer", "url": "http://debuggable.com/" }, + "bugs": { + "url": "https://github.com/felixge/node-delayed-stream/issues" + }, "contributors": [ { "name": "Mike Atkins", "email": "apeherder@gmail.com" } ], - "name": "delayed-stream", - "description": "Buffers events from a stream until you are ready to handle them.", - "license": "MIT", - "version": "1.0.0", - "homepage": "https://github.com/felixge/node-delayed-stream", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-delayed-stream.git" - }, - "main": "./lib/delayed_stream", - "engines": { - "node": ">=0.4.0" - }, - "scripts": { - "test": "make test" - }, "dependencies": {}, + "description": "Buffers events from a stream until you are ready to handle them.", "devDependencies": { "fake": "0.2.0", "far": "0.0.1" }, - "gitHead": "07a9dc99fb8f1a488160026b9ad77493f766fb84", - "bugs": { - "url": "https://github.com/felixge/node-delayed-stream/issues" - }, - "_id": "delayed-stream@1.0.0", - "_shasum": "df3ae199acadfb7d440aaae0b29e2272b24ec619", - "_from": "delayed-stream@>=1.0.0 <1.1.0", - "_npmVersion": "2.8.3", - "_nodeVersion": "1.6.4", - "_npmUser": { - "name": "apechimp", - "email": "apeherder@gmail.com" - }, + "directories": {}, "dist": { "shasum": "df3ae199acadfb7d440aaae0b29e2272b24ec619", "tarball": "http://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" }, + "engines": { + "node": ">=0.4.0" + }, + "gitHead": "07a9dc99fb8f1a488160026b9ad77493f766fb84", + "homepage": "https://github.com/felixge/node-delayed-stream", + "license": "MIT", + "main": "./lib/delayed_stream", "maintainers": [ { "name": "felixge", @@ -58,7 +74,14 @@ "email": "apeherder@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "readme": "ERROR: No README data found!" + "name": "delayed-stream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/felixge/node-delayed-stream.git" + }, + "scripts": { + "test": "make test" + }, + "version": "1.0.0" } diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore b/deps/npm/node_modules/delegates/.npmignore similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore rename to deps/npm/node_modules/delegates/.npmignore diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md b/deps/npm/node_modules/delegates/History.md similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md rename to deps/npm/node_modules/delegates/History.md diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile b/deps/npm/node_modules/delegates/Makefile similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile rename to deps/npm/node_modules/delegates/Makefile diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md b/deps/npm/node_modules/delegates/Readme.md similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md rename to deps/npm/node_modules/delegates/Readme.md diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js b/deps/npm/node_modules/delegates/index.js similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js rename to deps/npm/node_modules/delegates/index.js diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json b/deps/npm/node_modules/delegates/package.json similarity index 59% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json rename to deps/npm/node_modules/delegates/package.json index ea3c1da0d490b29e2bd4fc1105827c8c03593960..3d6aaa8fa4d88320ee470c8e506307d235be9bdc 100644 --- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json +++ b/deps/npm/node_modules/delegates/package.json @@ -1,33 +1,56 @@ { - "name": "delegates", - "version": "0.1.0", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/node-delegates.git" + "_args": [ + [ + "delegates@^0.1.0", + "/Users/rebecca/code/npm/node_modules/are-we-there-yet" + ] + ], + "_from": "delegates@>=0.1.0 <0.2.0", + "_id": "delegates@0.1.0", + "_inCache": true, + "_location": "/delegates", + "_npmUser": { + "email": "dominic@dbarnes.info", + "name": "dominicbarnes" }, - "description": "delegate methods and accessors to another property", - "keywords": [ - "delegate", - "delegation" + "_npmVersion": "1.4.9", + "_phantomChildren": {}, + "_requested": { + "name": "delegates", + "raw": "delegates@^0.1.0", + "rawSpec": "^0.1.0", + "scope": null, + "spec": ">=0.1.0 <0.2.0", + "type": "range" + }, + "_requiredBy": [ + "/are-we-there-yet" ], + "_resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz", + "_shasum": "b4b57be11a1653517a04b27f0949bdc327dfe390", + "_shrinkwrap": null, + "_spec": "delegates@^0.1.0", + "_where": "/Users/rebecca/code/npm/node_modules/are-we-there-yet", + "bugs": { + "url": "https://github.com/visionmedia/node-delegates/issues" + }, "dependencies": {}, + "description": "delegate methods and accessors to another property", "devDependencies": { "mocha": "*", "should": "*" }, - "license": "MIT", - "bugs": { - "url": "https://github.com/visionmedia/node-delegates/issues" + "directories": {}, + "dist": { + "shasum": "b4b57be11a1653517a04b27f0949bdc327dfe390", + "tarball": "http://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" }, "homepage": "https://github.com/visionmedia/node-delegates", - "_id": "delegates@0.1.0", - "_shasum": "b4b57be11a1653517a04b27f0949bdc327dfe390", - "_from": "delegates@>=0.1.0 <0.2.0", - "_npmVersion": "1.4.9", - "_npmUser": { - "name": "dominicbarnes", - "email": "dominic@dbarnes.info" - }, + "keywords": [ + "delegate", + "delegation" + ], + "license": "MIT", "maintainers": [ { "name": "tjholowaychuk", @@ -38,11 +61,11 @@ "email": "dominic@dbarnes.info" } ], - "dist": { - "shasum": "b4b57be11a1653517a04b27f0949bdc327dfe390", - "tarball": "http://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" + "name": "delegates", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/node-delegates" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz", - "readme": "ERROR: No README data found!" + "version": "0.1.0" } diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js b/deps/npm/node_modules/delegates/test/index.js similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js rename to deps/npm/node_modules/delegates/test/index.js diff --git a/deps/npm/node_modules/dezalgo/package.json b/deps/npm/node_modules/dezalgo/package.json index ea2b1a6d30d219004c5459dabfcee5384e4654e4..b59399450ddc4ce29591a04c22b5473f0c6143f7 100644 --- a/deps/npm/node_modules/dezalgo/package.json +++ b/deps/npm/node_modules/dezalgo/package.json @@ -1,52 +1,99 @@ { - "name": "dezalgo", - "version": "1.0.3", - "description": "Contain async insanity so that the dark pony lord doesn't eat souls", - "main": "dezalgo.js", - "directories": { - "test": "test" + "_args": [ + [ + "dezalgo@~1.0.3", + "/Users/rebecca/code/npm" + ] + ], + "_from": "dezalgo@>=1.0.3 <1.1.0", + "_id": "dezalgo@1.0.3", + "_inCache": true, + "_location": "/dezalgo", + "_nodeVersion": "2.0.2", + "_npmUser": { + "email": "ogd@aoaioxxysz.net", + "name": "othiym23" + }, + "_npmVersion": "2.11.3", + "_phantomChildren": {}, + "_requested": { + "name": "dezalgo", + "raw": "dezalgo@~1.0.3", + "rawSpec": "~1.0.3", + "scope": null, + "spec": ">=1.0.3 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/async-some", + "/read-package-tree", + "/readdir-scoped-modules", + "/realize-package-specifier" + ], + "_resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "_shasum": "7f742de066fc748bc8db820569dddce49bf0d456", + "_shrinkwrap": null, + "_spec": "dezalgo@~1.0.3", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/npm/dezalgo/issues" }, "dependencies": { "asap": "^2.0.0", "wrappy": "1" }, + "description": "Contain async insanity so that the dark pony lord doesn't eat souls", "devDependencies": { "tap": "^1.2.0" }, - "scripts": { - "test": "tap test/*.js" + "directories": { + "test": "test" }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/dezalgo.git" + "dist": { + "shasum": "7f742de066fc748bc8db820569dddce49bf0d456", + "tarball": "http://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz" }, + "gitHead": "d4d3f3f6f47b1a326194d5281349c83dde258458", + "homepage": "https://github.com/npm/dezalgo", "keywords": [ + "H̝̪̜͓̀̌̂̒E̢̙̠̣ ̴̳͇̥̟̠͍̐C̹̓̑̐̆͝Ó̶̭͓̚M̬̼Ĕ̖̤͔͔̟̹̽̿̊ͥ̍ͫS̻̰̦̻̖̘̱̒ͪ͌̅͟", + "H̴̱̦̗̬̣͓̺e̮ ͉̠̰̞͎̖͟ẁh̛̺̯ͅo̖̫͡ ̢Ẁa̡̗i̸t͖̣͉̀ş͔̯̩ ̤̦̮͇̞̦̲B͎̭͇̦̼e̢hin͏͙̟̪d̴̰͓̻̣̮͕ͅ T͖̮̕h͖e̘̺̰̙͘ ̥Ẁ̦͔̻͚a̞͖̪͉l̪̠̻̰̣̠l̲͎͞", + "T̯̪ͅo̯͖̹ ̻̮̖̲͢i̥̖n̢͈͇̝͍v͏͉ok̭̬̝ͅe̞͍̩̫͍̩͝ ̩̮̖̟͇͉́t͔͔͎̗h͏̗̟e̘͉̰̦̠̞͓ ͕h͉̟͎̪̠̱͠ḭ̮̩v̺͉͇̩e̵͖-̺̪m͍i̜n̪̲̲̲̮d̷ ̢r̠̼̯̹̦̦͘ͅe͓̳͓̙p̺̗̫͙͘ͅr͔̰͜e̴͓̞s͉̩̩͟ͅe͏̣n͚͇̗̭̺͍tì͙̣n͏̖̥̗͎̰̪g̞͓̭̱̯̫̕ ̣̱͜ͅc̦̰̰̠̮͎͙̀hao̺̜̻͍͙ͅs͉͓̘.͎̼̺̼͕̹͘", + "Z̘͍̼͎̣͔͝Ą̲̜̱̱̹̤͇L̶̝̰̭͔G͍̖͍O̫͜ͅ!̼̤ͅ", "async", - "zalgo", - "the dark pony", - "he comes", "asynchrony of all holy and good", - "T̯̪ͅo̯͖̹ ̻̮̖̲͢i̥̖n̢͈͇̝͍v͏͉ok̭̬̝ͅe̞͍̩̫͍̩͝ ̩̮̖̟͇͉́t͔͔͎̗h͏̗̟e̘͉̰̦̠̞͓ ͕h͉̟͎̪̠̱͠ḭ̮̩v̺͉͇̩e̵͖-̺̪m͍i̜n̪̲̲̲̮d̷ ̢r̠̼̯̹̦̦͘ͅe͓̳͓̙p̺̗̫͙͘ͅr͔̰͜e̴͓̞s͉̩̩͟ͅe͏̣n͚͇̗̭̺͍tì͙̣n͏̖̥̗͎̰̪g̞͓̭̱̯̫̕ ̣̱͜ͅc̦̰̰̠̮͎͙̀hao̺̜̻͍͙ͅs͉͓̘.͎̼̺̼͕̹͘", + "he comes", + "the dark pony", + "zalgo", "̠̞̱̰I͖͇̝̻n̦̰͍̰̟v̤̺̫̳̭̼̗͘ò̹̟̩̩͚k̢̥̠͍͉̦̬i̖͓͔̮̱̻͘n̶̳͙̫͎g̖̯̣̲̪͉ ̞͎̗͕͚ͅt̲͕̘̺̯̗̦h̘̦̲̜̻e̳͎͉̬͙ ̴̞̪̲̥f̜̯͓͓̭̭͢e̱̘͔̮e̜̤l̺̱͖̯͓͙͈͢i̵̦̬͉͔̫͚͕n͉g̨͖̙̙̹̹̟̤ ͉̪o̞̠͍̪̰͙ͅf̬̲̺ ͔͕̲͕͕̲̕c̙͉h̝͔̩̙̕ͅa̲͖̻̗̹o̥̼̫s̝̖̜̝͚̫̟.̺͚ ̸̱̲W̶̥̣͖̦i͏̤̬̱̳̣ͅt͉h̗̪̪ ̷̱͚̹̪ǫ͕̗̣̳̦͎u̼̦͔̥̮̕ţ͖͎̻͔͉ ̴͎̩òr̹̰̖͉͈͝d̷̲̦̖͓e̲͓̠r", - "̧͚̜͓̰̭̭Ṯ̫̹̜̮̟̮͝h͚̘̩̘̖̰́e ̥̘͓͉͔͙̼N̟̜̣̘͔̪e̞̞̤͢z̰̖̘͇p̠͟e̺̱̣͍͙̝ṛ̘̬͔̙͇̠d͝ḭ̯̱̥̗̩a̛ͅn͏̦ ̷̥hi̥v̖̳̹͉̮̱͝e̹̪̘̖̰̟-̴͙͓͚̜̻mi̗̺̻͙̺ͅn̪̯͈d ͏̘͓̫̳ͅơ̹͔̳̖̣͓f͈̹̘ ͕ͅc̗̤̠̜̮̥̥h̡͍̩̭̫͚̱a̤͉̤͔͜os͕̤̼͍̲̀ͅ.̡̱ ̦Za̯̱̗̭͍̣͚l̗͉̰̤g͏̣̭̬̗̲͖ͅo̶̭̩̳̟͈.̪̦̰̳", - "H̴̱̦̗̬̣͓̺e̮ ͉̠̰̞͎̖͟ẁh̛̺̯ͅo̖̫͡ ̢Ẁa̡̗i̸t͖̣͉̀ş͔̯̩ ̤̦̮͇̞̦̲B͎̭͇̦̼e̢hin͏͙̟̪d̴̰͓̻̣̮͕ͅ T͖̮̕h͖e̘̺̰̙͘ ̥Ẁ̦͔̻͚a̞͖̪͉l̪̠̻̰̣̠l̲͎͞", - "Z̘͍̼͎̣͔͝Ą̲̜̱̱̹̤͇L̶̝̰̭͔G͍̖͍O̫͜ͅ!̼̤ͅ", - "H̝̪̜͓̀̌̂̒E̢̙̠̣ ̴̳͇̥̟̠͍̐C̹̓̑̐̆͝Ó̶̭͓̚M̬̼Ĕ̖̤͔͔̟̹̽̿̊ͥ̍ͫS̻̰̦̻̖̘̱̒ͪ͌̅͟" + "̧͚̜͓̰̭̭Ṯ̫̹̜̮̟̮͝h͚̘̩̘̖̰́e ̥̘͓͉͔͙̼N̟̜̣̘͔̪e̞̞̤͢z̰̖̘͇p̠͟e̺̱̣͍͙̝ṛ̘̬͔̙͇̠d͝ḭ̯̱̥̗̩a̛ͅn͏̦ ̷̥hi̥v̖̳̹͉̮̱͝e̹̪̘̖̰̟-̴͙͓͚̜̻mi̗̺̻͙̺ͅn̪̯͈d ͏̘͓̫̳ͅơ̹͔̳̖̣͓f͈̹̘ ͕ͅc̗̤̠̜̮̥̥h̡͍̩̭̫͚̱a̤͉̤͔͜os͕̤̼͍̲̀ͅ.̡̱ ̦Za̯̱̗̭͍̣͚l̗͉̰̤g͏̣̭̬̗̲͖ͅo̶̭̩̳̟͈.̪̦̰̳" ], - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, "license": "ISC", - "bugs": { - "url": "https://github.com/npm/dezalgo/issues" + "main": "dezalgo.js", + "maintainers": [ + { + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + } + ], + "name": "dezalgo", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/npm/dezalgo.git" }, - "homepage": "https://github.com/npm/dezalgo", - "readme": "# dezalgo\n\nContain async insanity so that the dark pony lord doesn't eat souls\n\nSee [this blog\npost](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony).\n\n## USAGE\n\nPass a callback to `dezalgo` and it will ensure that it is *always*\ncalled in a future tick, and never in this tick.\n\n```javascript\nvar dz = require('dezalgo')\n\nvar cache = {}\nfunction maybeSync(arg, cb) {\n cb = dz(cb)\n\n // this will actually defer to nextTick\n if (cache[arg]) cb(null, cache[arg])\n\n fs.readFile(arg, function (er, data) {\n // since this is *already* defered, it will call immediately\n if (er) cb(er)\n cb(null, cache[arg] = data)\n })\n}\n```\n", - "readmeFilename": "README.md", - "gitHead": "d4d3f3f6f47b1a326194d5281349c83dde258458", - "_id": "dezalgo@1.0.3", - "_shasum": "7f742de066fc748bc8db820569dddce49bf0d456", - "_from": "dezalgo@>=1.0.3 <1.1.0" + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.3" } diff --git a/deps/npm/node_modules/editor/package.json b/deps/npm/node_modules/editor/package.json index 0e5abd3bfb2607504fec7ffae792029d4278cee4..8627e32661956d7d7829c152a6b262ec5e940bca 100644 --- a/deps/npm/node_modules/editor/package.json +++ b/deps/npm/node_modules/editor/package.json @@ -1,60 +1,84 @@ { - "name": "editor", - "version": "1.0.0", - "description": "launch $EDITOR in your program", - "main": "index.js", - "directories": { - "example": "example", - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "~0.4.4" - }, - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "editor@~1.0.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "editor@>=1.0.0 <1.1.0", + "_id": "editor@1.0.0", + "_inCache": true, + "_location": "/editor", + "_nodeVersion": "1.6.3", + "_npmUser": { + "email": "substack@gmail.com", + "name": "substack" }, - "repository": { - "type": "git", - "url": "git://github.com/substack/node-editor.git" + "_npmVersion": "2.7.5", + "_phantomChildren": {}, + "_requested": { + "name": "editor", + "raw": "editor@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" }, - "homepage": "https://github.com/substack/node-editor", - "keywords": [ - "text", - "edit", - "shell" + "_requiredBy": [ + "/" ], + "_resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", + "_shasum": "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742", + "_shrinkwrap": null, + "_spec": "editor@~1.0.0", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "James Halliday", "email": "mail@substack.net", + "name": "James Halliday", "url": "http://substack.net" }, - "license": "MIT", - "engine": { - "node": ">=0.6" - }, - "gitHead": "15200af2c417c65a4df153f39f32143dcd476375", "bugs": { "url": "https://github.com/substack/node-editor/issues" }, - "_id": "editor@1.0.0", - "_shasum": "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742", - "_from": "editor@>=1.0.0 <1.1.0", - "_npmVersion": "2.7.5", - "_nodeVersion": "1.6.3", - "_npmUser": { - "name": "substack", - "email": "substack@gmail.com" + "dependencies": {}, + "description": "launch $EDITOR in your program", + "devDependencies": { + "tap": "~0.4.4" + }, + "directories": { + "example": "example", + "test": "test" }, "dist": { "shasum": "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742", "tarball": "http://registry.npmjs.org/editor/-/editor-1.0.0.tgz" }, + "engine": { + "node": ">=0.6" + }, + "gitHead": "15200af2c417c65a4df153f39f32143dcd476375", + "homepage": "https://github.com/substack/node-editor", + "keywords": [ + "edit", + "shell", + "text" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "substack", "email": "mail@substack.net" } ], - "_resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz" + "name": "editor", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/substack/node-editor.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.0" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/escape-string-regexp/index.js b/deps/npm/node_modules/escape-string-regexp/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/escape-string-regexp/index.js rename to deps/npm/node_modules/escape-string-regexp/index.js diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/license b/deps/npm/node_modules/escape-string-regexp/license similarity index 100% rename from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/license rename to deps/npm/node_modules/escape-string-regexp/license diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/escape-string-regexp/package.json b/deps/npm/node_modules/escape-string-regexp/package.json similarity index 65% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/escape-string-regexp/package.json rename to deps/npm/node_modules/escape-string-regexp/package.json index 813c9089d2776040e0d341748c9c45aabb07eb43..18bc92013065f92dcb0278aa62400eb4eac88048 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/escape-string-regexp/package.json +++ b/deps/npm/node_modules/escape-string-regexp/package.json @@ -1,70 +1,94 @@ { - "name": "escape-string-regexp", - "version": "1.0.3", - "description": "Escape RegExp special characters", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/escape-string-regexp.git" + "_args": [ + [ + "escape-string-regexp@^1.0.2", + "/Users/rebecca/code/npm/node_modules/chalk" + ] + ], + "_from": "escape-string-regexp@>=1.0.2 <2.0.0", + "_id": "escape-string-regexp@1.0.3", + "_inCache": true, + "_location": "/escape-string-regexp", + "_nodeVersion": "0.10.35", + "_npmUser": { + "email": "jappelman@xebia.com", + "name": "jbnicolai" + }, + "_npmVersion": "2.1.16", + "_phantomChildren": {}, + "_requested": { + "name": "escape-string-regexp", + "raw": "escape-string-regexp@^1.0.2", + "rawSpec": "^1.0.2", + "scope": null, + "spec": ">=1.0.2 <2.0.0", + "type": "range" }, + "_requiredBy": [ + "/chalk" + ], + "_resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz", + "_shasum": "9e2d8b25bc2555c3336723750e03f099c2735bb5", + "_shrinkwrap": null, + "_spec": "escape-string-regexp@^1.0.2", + "_where": "/Users/rebecca/code/npm/node_modules/chalk", "author": { - "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", "url": "http://sindresorhus.com" }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - } - ], + "bugs": { + "url": "https://github.com/sindresorhus/escape-string-regexp/issues" + }, + "dependencies": {}, + "description": "Escape RegExp special characters", + "devDependencies": { + "mocha": "*" + }, + "directories": {}, + "dist": { + "shasum": "9e2d8b25bc2555c3336723750e03f099c2735bb5", + "tarball": "http://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, "engines": { "node": ">=0.8.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "gitHead": "1e446e6b4449b5f1f8868cd31bf8fd25ee37fb4b", + "homepage": "https://github.com/sindresorhus/escape-string-regexp", "keywords": [ + "characters", + "escape", + "expression", + "re", "regex", "regexp", - "re", "regular", - "expression", - "escape", - "string", - "str", "special", - "characters" + "str", + "string" ], - "devDependencies": { - "mocha": "*" - }, - "gitHead": "1e446e6b4449b5f1f8868cd31bf8fd25ee37fb4b", - "bugs": { - "url": "https://github.com/sindresorhus/escape-string-regexp/issues" - }, - "homepage": "https://github.com/sindresorhus/escape-string-regexp", - "_id": "escape-string-regexp@1.0.3", - "_shasum": "9e2d8b25bc2555c3336723750e03f099c2735bb5", - "_from": "escape-string-regexp@>=1.0.2 <2.0.0", - "_npmVersion": "2.1.16", - "_nodeVersion": "0.10.35", - "_npmUser": { - "name": "jbnicolai", - "email": "jappelman@xebia.com" + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + }, + { + "name": "jbnicolai", + "email": "jappelman@xebia.com" + } + ], + "name": "escape-string-regexp", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/escape-string-regexp" }, - "dist": { - "shasum": "9e2d8b25bc2555c3336723750e03f099c2735bb5", - "tarball": "http://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + "scripts": { + "test": "mocha" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz", - "readme": "ERROR: No README data found!" + "version": "1.0.3" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/escape-string-regexp/readme.md b/deps/npm/node_modules/escape-string-regexp/readme.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/escape-string-regexp/readme.md rename to deps/npm/node_modules/escape-string-regexp/readme.md diff --git a/deps/npm/node_modules/request/node_modules/extend/.jscs.json b/deps/npm/node_modules/extend/.jscs.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/extend/.jscs.json rename to deps/npm/node_modules/extend/.jscs.json diff --git a/deps/npm/node_modules/request/node_modules/extend/.npmignore b/deps/npm/node_modules/extend/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/extend/.npmignore rename to deps/npm/node_modules/extend/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/extend/.travis.yml b/deps/npm/node_modules/extend/.travis.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/extend/.travis.yml rename to deps/npm/node_modules/extend/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/extend/CHANGELOG.md b/deps/npm/node_modules/extend/CHANGELOG.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/extend/CHANGELOG.md rename to deps/npm/node_modules/extend/CHANGELOG.md diff --git a/deps/npm/node_modules/request/node_modules/extend/LICENSE b/deps/npm/node_modules/extend/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/extend/LICENSE rename to deps/npm/node_modules/extend/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/extend/README.md b/deps/npm/node_modules/extend/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/extend/README.md rename to deps/npm/node_modules/extend/README.md diff --git a/deps/npm/node_modules/request/node_modules/extend/component.json b/deps/npm/node_modules/extend/component.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/extend/component.json rename to deps/npm/node_modules/extend/component.json diff --git a/deps/npm/node_modules/request/node_modules/extend/index.js b/deps/npm/node_modules/extend/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/extend/index.js rename to deps/npm/node_modules/extend/index.js diff --git a/deps/npm/node_modules/request/node_modules/extend/package.json b/deps/npm/node_modules/extend/package.json similarity index 70% rename from deps/npm/node_modules/request/node_modules/extend/package.json rename to deps/npm/node_modules/extend/package.json index c8c7cac996792470f02c25058ce3c80923ce35a6..64d1715fd7f49f1500dc8c06c4b7491a54bcefae 100644 --- a/deps/npm/node_modules/request/node_modules/extend/package.json +++ b/deps/npm/node_modules/extend/package.json @@ -1,20 +1,44 @@ { - "name": "extend", + "_args": [ + [ + "extend@~3.0.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "extend@>=3.0.0 <3.1.0", + "_id": "extend@3.0.0", + "_inCache": true, + "_location": "/extend", + "_nodeVersion": "2.3.1", + "_npmUser": { + "email": "ljharb@gmail.com", + "name": "ljharb" + }, + "_npmVersion": "2.11.3", + "_phantomChildren": {}, + "_requested": { + "name": "extend", + "raw": "extend@~3.0.0", + "rawSpec": "~3.0.0", + "scope": null, + "spec": ">=3.0.0 <3.1.0", + "type": "range" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "_shasum": "5a474353b9f3353ddd8176dfd37b91c83a46f1d4", + "_shrinkwrap": null, + "_spec": "extend@~3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", "author": { - "name": "Stefan Thomas", "email": "justmoon@members.fsf.org", + "name": "Stefan Thomas", "url": "http://www.justmoon.net" }, - "version": "3.0.0", - "description": "Port of jQuery.extend for node.js and the browser", - "main": "index", - "scripts": { - "test": "npm run lint && node test/index.js && npm run coverage-quiet", - "coverage": "covert test/index.js", - "coverage-quiet": "covert test/index.js --quiet", - "lint": "npm run jscs && npm run eslint", - "jscs": "jscs *.js */*.js", - "eslint": "eslint *.js */*.js" + "bugs": { + "url": "https://github.com/justmoon/node-extend/issues" }, "contributors": [ { @@ -22,41 +46,28 @@ "url": "https://github.com/ljharb" } ], - "keywords": [ - "extend", - "clone", - "merge" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/justmoon/node-extend.git" - }, "dependencies": {}, + "description": "Port of jQuery.extend for node.js and the browser", "devDependencies": { - "tape": "^4.0.0", "covert": "^1.1.0", + "eslint": "^0.24.0", "jscs": "^1.13.1", - "eslint": "^0.24.0" - }, - "license": "MIT", - "gitHead": "148e7270cab2e9413af2cd0cab147070d755ed6d", - "bugs": { - "url": "https://github.com/justmoon/node-extend/issues" - }, - "homepage": "https://github.com/justmoon/node-extend#readme", - "_id": "extend@3.0.0", - "_shasum": "5a474353b9f3353ddd8176dfd37b91c83a46f1d4", - "_from": "extend@>=3.0.0 <3.1.0", - "_npmVersion": "2.11.3", - "_nodeVersion": "2.3.1", - "_npmUser": { - "name": "ljharb", - "email": "ljharb@gmail.com" + "tape": "^4.0.0" }, + "directories": {}, "dist": { "shasum": "5a474353b9f3353ddd8176dfd37b91c83a46f1d4", "tarball": "http://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, + "gitHead": "148e7270cab2e9413af2cd0cab147070d755ed6d", + "homepage": "https://github.com/justmoon/node-extend#readme", + "keywords": [ + "clone", + "extend", + "merge" + ], + "license": "MIT", + "main": "index", "maintainers": [ { "name": "justmoon", @@ -67,7 +78,19 @@ "email": "ljharb@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "readme": "ERROR: No README data found!" + "name": "extend", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/justmoon/node-extend.git" + }, + "scripts": { + "coverage": "covert test/index.js", + "coverage-quiet": "covert test/index.js --quiet", + "eslint": "eslint *.js */*.js", + "jscs": "jscs *.js */*.js", + "lint": "npm run jscs && npm run eslint", + "test": "npm run lint && node test/index.js && npm run coverage-quiet" + }, + "version": "3.0.0" } diff --git a/deps/npm/node_modules/request/node_modules/forever-agent/LICENSE b/deps/npm/node_modules/forever-agent/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/forever-agent/LICENSE rename to deps/npm/node_modules/forever-agent/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/forever-agent/README.md b/deps/npm/node_modules/forever-agent/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/forever-agent/README.md rename to deps/npm/node_modules/forever-agent/README.md diff --git a/deps/npm/node_modules/request/node_modules/forever-agent/index.js b/deps/npm/node_modules/forever-agent/index.js similarity index 98% rename from deps/npm/node_modules/request/node_modules/forever-agent/index.js rename to deps/npm/node_modules/forever-agent/index.js index 416c7abd7092332918838b4e8ed782d0b072fec7..d7276fd97391c644f7146a86ca864d2cc4226836 100644 --- a/deps/npm/node_modules/request/node_modules/forever-agent/index.js +++ b/deps/npm/node_modules/forever-agent/index.js @@ -6,8 +6,8 @@ var util = require('util') , net = require('net') , tls = require('tls') , AgentSSL = require('https').Agent - -function getConnectionName(host, port) { + +function getConnectionName(host, port) { var name = '' if (typeof host === 'string') { name = host + ':' + port @@ -16,7 +16,7 @@ function getConnectionName(host, port) { name = host.host + ':' + host.port + ':' + (host.localAddress ? (host.localAddress + ':') : ':') } return name -} +} function ForeverAgent(options) { var self = this @@ -34,7 +34,7 @@ function ForeverAgent(options) { } else if (self.sockets[name].length < self.minSockets) { if (!self.freeSockets[name]) self.freeSockets[name] = [] self.freeSockets[name].push(socket) - + // if an error happens while we don't use the socket anyway, meh, throw the socket away var onIdleError = function() { socket.destroy() @@ -60,7 +60,7 @@ ForeverAgent.prototype.createConnection = net.createConnection ForeverAgent.prototype.addRequestNoreuse = Agent.prototype.addRequest ForeverAgent.prototype.addRequest = function(req, host, port) { var name = getConnectionName(host, port) - + if (typeof host !== 'string') { var options = host port = options.port @@ -89,7 +89,7 @@ ForeverAgent.prototype.removeSocket = function(s, name, host, port) { delete this.sockets[name] delete this.requests[name] } - + if (this.freeSockets[name]) { var index = this.freeSockets[name].indexOf(s) if (index !== -1) { diff --git a/deps/npm/node_modules/request/node_modules/forever-agent/package.json b/deps/npm/node_modules/forever-agent/package.json similarity index 67% rename from deps/npm/node_modules/request/node_modules/forever-agent/package.json rename to deps/npm/node_modules/forever-agent/package.json index ef074a51063a85246ecd47c26a797c7895973a02..d22d4c0322311809f1d4d89e7aa579d14f0ccb80 100644 --- a/deps/npm/node_modules/request/node_modules/forever-agent/package.json +++ b/deps/npm/node_modules/forever-agent/package.json @@ -1,37 +1,59 @@ { + "_args": [ + [ + "forever-agent@~0.6.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "forever-agent@>=0.6.0 <0.7.0", + "_id": "forever-agent@0.6.1", + "_inCache": true, + "_location": "/forever-agent", + "_npmUser": { + "email": "simeonvelichkov@gmail.com", + "name": "simov" + }, + "_npmVersion": "1.4.28", + "_phantomChildren": {}, + "_requested": { + "name": "forever-agent", + "raw": "forever-agent@~0.6.0", + "rawSpec": "~0.6.0", + "scope": null, + "spec": ">=0.6.0 <0.7.0", + "type": "range" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "_shasum": "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91", + "_shrinkwrap": null, + "_spec": "forever-agent@~0.6.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", "author": { - "name": "Mikeal Rogers", "email": "mikeal.rogers@gmail.com", + "name": "Mikeal Rogers", "url": "http://www.futurealoof.com" }, - "name": "forever-agent", - "description": "HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.", - "version": "0.6.1", - "license": "Apache-2.0", - "repository": { - "url": "git+https://github.com/mikeal/forever-agent.git" + "bugs": { + "url": "https://github.com/mikeal/forever-agent/issues" }, - "main": "index.js", "dependencies": {}, + "description": "HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.", "devDependencies": {}, - "optionalDependencies": {}, + "directories": {}, + "dist": { + "shasum": "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91", + "tarball": "http://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + }, "engines": { "node": "*" }, "gitHead": "1b3b6163f2b3c2c4122bbfa288c1325c0df9871d", - "bugs": { - "url": "https://github.com/mikeal/forever-agent/issues" - }, "homepage": "https://github.com/mikeal/forever-agent", - "_id": "forever-agent@0.6.1", - "scripts": {}, - "_shasum": "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91", - "_from": "forever-agent@>=0.6.0 <0.7.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - }, + "license": "Apache-2.0", + "main": "index.js", "maintainers": [ { "name": "mikeal", @@ -46,11 +68,11 @@ "email": "simeonvelichkov@gmail.com" } ], - "dist": { - "shasum": "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91", - "tarball": "http://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + "name": "forever-agent", + "optionalDependencies": {}, + "repository": { + "url": "https://github.com/mikeal/forever-agent" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "readme": "ERROR: No README data found!" + "scripts": {}, + "version": "0.6.1" } diff --git a/deps/npm/node_modules/request/node_modules/form-data/License b/deps/npm/node_modules/form-data/License similarity index 100% rename from deps/npm/node_modules/request/node_modules/form-data/License rename to deps/npm/node_modules/form-data/License diff --git a/deps/npm/node_modules/request/node_modules/form-data/Readme.md b/deps/npm/node_modules/form-data/Readme.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/form-data/Readme.md rename to deps/npm/node_modules/form-data/Readme.md diff --git a/deps/npm/node_modules/request/node_modules/form-data/lib/browser.js b/deps/npm/node_modules/form-data/lib/browser.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/form-data/lib/browser.js rename to deps/npm/node_modules/form-data/lib/browser.js diff --git a/deps/npm/node_modules/request/node_modules/form-data/lib/form_data.js b/deps/npm/node_modules/form-data/lib/form_data.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/form-data/lib/form_data.js rename to deps/npm/node_modules/form-data/lib/form_data.js diff --git a/deps/npm/node_modules/request/node_modules/form-data/package.json b/deps/npm/node_modules/form-data/package.json similarity index 74% rename from deps/npm/node_modules/request/node_modules/form-data/package.json rename to deps/npm/node_modules/form-data/package.json index 8fba29b8002baa892ad8ba496aca3f65ffacd508..01f1798646a0d26b66a1bdc7708e3b4e23ee46a0 100644 --- a/deps/npm/node_modules/request/node_modules/form-data/package.json +++ b/deps/npm/node_modules/form-data/package.json @@ -1,33 +1,52 @@ { + "_args": [ + [ + "form-data@1.0.0-rc3", + "/Users/rebecca/code/npm" + ] + ], + "_from": "form-data@1.0.0-rc3", + "_id": "form-data@1.0.0-rc3", + "_inCache": true, + "_location": "/form-data", + "_nodeVersion": "2.2.1", + "_npmUser": { + "email": "pierceydylan@gmail.com", + "name": "dylanpiercey" + }, + "_npmVersion": "2.11.0", + "_phantomChildren": {}, + "_requested": { + "name": "form-data", + "raw": "form-data@1.0.0-rc3", + "rawSpec": "1.0.0-rc3", + "scope": null, + "spec": "1.0.0-rc3", + "type": "version" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", + "_shasum": "d35bc62e7fbc2937ae78f948aaa0d38d90607577", + "_shrinkwrap": null, + "_spec": "form-data@1.0.0-rc3", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Felix Geisendörfer", "email": "felix@debuggable.com", + "name": "Felix Geisendörfer", "url": "http://debuggable.com/" }, - "name": "form-data", - "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.", - "version": "1.0.0-rc3", - "repository": { - "type": "git", - "url": "git://github.com/form-data/form-data.git" - }, - "main": "./lib/form_data", "browser": "./lib/browser", - "scripts": { - "test": "./test/run.js" - }, - "pre-commit": [ - "test" - ], - "engines": { - "node": ">= 0.10" + "bugs": { + "url": "https://github.com/form-data/form-data/issues" }, "dependencies": { "async": "^1.4.0", "combined-stream": "^1.0.5", "mime-types": "^2.1.3" }, - "license": "MIT", + "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.", "devDependencies": { "fake": "^0.2.2", "far": "^0.0.7", @@ -35,24 +54,19 @@ "pre-commit": "^1.0.10", "request": "^2.60.0" }, - "gitHead": "c174f1b7f3a78a00ec5af0360469280445e37804", - "bugs": { - "url": "https://github.com/form-data/form-data/issues" - }, - "homepage": "https://github.com/form-data/form-data#readme", - "_id": "form-data@1.0.0-rc3", - "_shasum": "d35bc62e7fbc2937ae78f948aaa0d38d90607577", - "_from": "form-data@>=1.0.0-rc1 <1.1.0", - "_npmVersion": "2.11.0", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "dylanpiercey", - "email": "pierceydylan@gmail.com" - }, + "directories": {}, "dist": { "shasum": "d35bc62e7fbc2937ae78f948aaa0d38d90607577", "tarball": "http://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz" }, + "engines": { + "node": ">= 0.10" + }, + "gitHead": "c174f1b7f3a78a00ec5af0360469280445e37804", + "homepage": "https://github.com/form-data/form-data#readme", + "installable": true, + "license": "MIT", + "main": "./lib/form_data", "maintainers": [ { "name": "felixge", @@ -79,7 +93,17 @@ "email": "pierceydylan@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", - "readme": "ERROR: No README data found!" + "name": "form-data", + "optionalDependencies": {}, + "pre-commit": [ + "test" + ], + "repository": { + "type": "git", + "url": "git://github.com/form-data/form-data.git" + }, + "scripts": { + "test": "./test/run.js" + }, + "version": "1.0.0-rc3" } diff --git a/deps/npm/node_modules/fs-vacuum/package.json b/deps/npm/node_modules/fs-vacuum/package.json index c7d9895a924d722b07aa9d677156d7ed1dd0e5a0..da4465c95ad119d5bb9fb1e33b2954e0087f4a51 100644 --- a/deps/npm/node_modules/fs-vacuum/package.json +++ b/deps/npm/node_modules/fs-vacuum/package.json @@ -1,43 +1,88 @@ { - "name": "fs-vacuum", - "version": "1.2.7", - "description": "recursively remove empty directories -- to a point", - "main": "vacuum.js", - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "fs-vacuum@~1.2.6", + "/Users/rebecca/code/npm" + ] + ], + "_from": "fs-vacuum@>=1.2.6 <1.3.0", + "_id": "fs-vacuum@1.2.7", + "_inCache": true, + "_location": "/fs-vacuum", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/fs-vacuum.git" + "_npmVersion": "2.14.3", + "_phantomChildren": {}, + "_requested": { + "name": "fs-vacuum", + "raw": "fs-vacuum@~1.2.6", + "rawSpec": "~1.2.6", + "scope": null, + "spec": ">=1.2.6 <1.3.0", + "type": "range" }, - "keywords": [ - "rm", - "rimraf", - "clean" + "_requiredBy": [ + "/" ], + "_resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.7.tgz", + "_shasum": "75e501f9d2889ba2fe9fe12f936ba5dad50ca35a", + "_shrinkwrap": null, + "_spec": "fs-vacuum@~1.2.6", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Forrest L Norvell", - "email": "ogd@aoaioxxysz.net" + "email": "ogd@aoaioxxysz.net", + "name": "Forrest L Norvell" }, - "license": "ISC", "bugs": { "url": "https://github.com/npm/fs-vacuum/issues" }, - "homepage": "https://github.com/npm/fs-vacuum", + "dependencies": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.2.8" + }, + "description": "recursively remove empty directories -- to a point", "devDependencies": { "mkdirp": "^0.5.0", "tap": "^0.4.11", "tmp": "0.0.24" }, - "dependencies": { - "graceful-fs": "^4.1.2", - "path-is-inside": "^1.0.1", - "rimraf": "^2.2.8" + "directories": {}, + "dist": { + "shasum": "75e501f9d2889ba2fe9fe12f936ba5dad50ca35a", + "tarball": "http://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.7.tgz" }, - "readme": "# fs-vacuum\n\nRemove the empty branches of a directory tree, optionally up to (but not\nincluding) a specified base directory. Optionally nukes the leaf directory.\n\n## Usage\n\n```javascript\nvar logger = require(\"npmlog\");\nvar vacuum = require(\"fs-vacuum\");\n\nvar options = {\n base : \"/path/to/my/tree/root\",\n purge : true,\n log : logger.silly.bind(logger, \"myCleanup\")\n};\n\n/* Assuming there are no other files or directories in \"out\", \"to\", or \"my\",\n * the final path will just be \"/path/to/my/tree/root\".\n */\nvacuum(\"/path/to/my/tree/root/out/to/my/files\", function (error) {\n if (error) console.error(\"Unable to cleanly vacuum:\", error.message);\n});\n```\n# vacuum(directory, options, callback)\n\n* `directory` {String} Leaf node to remove. **Must be a directory, symlink, or file.**\n* `options` {Object}\n * `base` {String} No directories at or above this level of the filesystem will be removed.\n * `purge` {Boolean} If set, nuke the whole leaf directory, including its contents.\n * `log` {Function} A logging function that takes `npmlog`-compatible argument lists.\n* `callback` {Function} Function to call once vacuuming is complete.\n * `error` {Error} What went wrong along the way, if anything.\n", - "readmeFilename": "README.md", "gitHead": "498a44d987ee11bc355fe1ec479d55a689fc37ef", - "_id": "fs-vacuum@1.2.7", - "_shasum": "75e501f9d2889ba2fe9fe12f936ba5dad50ca35a", - "_from": "fs-vacuum@1.2.7" + "homepage": "https://github.com/npm/fs-vacuum", + "installable": true, + "keywords": [ + "clean", + "rimraf", + "rm" + ], + "license": "ISC", + "main": "vacuum.js", + "maintainers": [ + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" + } + ], + "name": "fs-vacuum", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/npm/fs-vacuum.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.2.7" } diff --git a/deps/npm/node_modules/fs-write-stream-atomic/package.json b/deps/npm/node_modules/fs-write-stream-atomic/package.json index a94785682a9f910364c65d2747ed7cbb5b39f9b2..46a8546ba8befd2d5874fead3b04cc58d7536a75 100644 --- a/deps/npm/node_modules/fs-write-stream-atomic/package.json +++ b/deps/npm/node_modules/fs-write-stream-atomic/package.json @@ -1,38 +1,86 @@ { - "name": "fs-write-stream-atomic", - "version": "1.0.4", - "description": "Like `fs.createWriteStream(...)`, but atomic.", - "main": "index.js", - "directories": { - "test": "test" + "_args": [ + [ + "fs-write-stream-atomic@~1.0.3", + "/Users/rebecca/code/npm" + ] + ], + "_from": "fs-write-stream-atomic@>=1.0.3 <1.1.0", + "_id": "fs-write-stream-atomic@1.0.4", + "_inCache": true, + "_location": "/fs-write-stream-atomic", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" + }, + "_npmVersion": "2.14.3", + "_phantomChildren": {}, + "_requested": { + "name": "fs-write-stream-atomic", + "raw": "fs-write-stream-atomic@~1.0.3", + "rawSpec": "~1.0.3", + "scope": null, + "spec": ">=1.0.3 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.4.tgz", + "_shasum": "c1ea55889f036ceebdead7d1055edbad998fe5e9", + "_shrinkwrap": null, + "_spec": "fs-write-stream-atomic@~1.0.3", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/npm/fs-write-stream-atomic/issues" }, "dependencies": { "graceful-fs": "^4.1.2" }, + "description": "Like `fs.createWriteStream(...)`, but atomic.", "devDependencies": { "tap": "^1.2.0" }, - "scripts": { - "test": "tap test/*.js" + "directories": { + "test": "test" }, + "dist": { + "shasum": "c1ea55889f036ceebdead7d1055edbad998fe5e9", + "tarball": "http://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.4.tgz" + }, + "gitHead": "6ca2651b913149543c5390c6c4f7d370bdca42b5", + "homepage": "https://github.com/npm/fs-write-stream-atomic", + "installable": true, + "license": "ISC", + "main": "index.js", + "maintainers": [ + { + "name": "iarna", + "email": "me@re-becca.org" + }, + { + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" + } + ], + "name": "fs-write-stream-atomic", + "optionalDependencies": {}, "repository": { "type": "git", "url": "git+https://github.com/npm/fs-write-stream-atomic.git" }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/fs-write-stream-atomic/issues" + "scripts": { + "test": "tap test/*.js" }, - "homepage": "https://github.com/npm/fs-write-stream-atomic", - "readme": "# fs-write-stream-atomic\n\nLike `fs.createWriteStream(...)`, but atomic.\n\nWrites to a tmp file and does an atomic `fs.rename` to move it into\nplace when it's done.\n\nFirst rule of debugging: **It's always a race condition.**\n\n## USAGE\n\n```javascript\nvar fsWriteStreamAtomic = require('fs-write-stream-atomic')\n// options are optional.\nvar write = fsWriteStreamAtomic('output.txt', options)\nvar read = fs.createReadStream('input.txt')\nread.pipe(write)\n\n// When the write stream emits a 'finish' or 'close' event,\n// you can be sure that it is moved into place, and contains\n// all the bytes that were written to it, even if something else\n// was writing to `output.txt` at the same time.\n```\n\n### `fsWriteStreamAtomic(filename, [options])`\n\n* `filename` {String} The file we want to write to\n* `options` {Object}\n * `chown` {Object} User and group to set ownership after write\n * `uid` {Number}\n * `gid` {Number}\n * `encoding` {String} default = 'utf8'\n * `mode` {Number} default = `0666`\n * `flags` {String} default = `'w'`\n\n", - "readmeFilename": "README.md", - "gitHead": "6ca2651b913149543c5390c6c4f7d370bdca42b5", - "_id": "fs-write-stream-atomic@1.0.4", - "_shasum": "c1ea55889f036ceebdead7d1055edbad998fe5e9", - "_from": "fs-write-stream-atomic@1.0.4" + "version": "1.0.4" } diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/.npmignore b/deps/npm/node_modules/fstream-ignore/.npmignore similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/.npmignore rename to deps/npm/node_modules/fstream-ignore/.npmignore diff --git a/deps/npm/node_modules/chmodr/LICENSE b/deps/npm/node_modules/fstream-ignore/LICENSE similarity index 100% rename from deps/npm/node_modules/chmodr/LICENSE rename to deps/npm/node_modules/fstream-ignore/LICENSE diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/README.md b/deps/npm/node_modules/fstream-ignore/README.md similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/README.md rename to deps/npm/node_modules/fstream-ignore/README.md diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/example/basic.js b/deps/npm/node_modules/fstream-ignore/example/basic.js similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/example/basic.js rename to deps/npm/node_modules/fstream-ignore/example/basic.js diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/ignore.js b/deps/npm/node_modules/fstream-ignore/ignore.js similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/ignore.js rename to deps/npm/node_modules/fstream-ignore/ignore.js diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/package.json b/deps/npm/node_modules/fstream-ignore/package.json similarity index 65% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/package.json rename to deps/npm/node_modules/fstream-ignore/package.json index 1a505bd4a2afc26f71fbd4bedb7e4c340430ff0d..05416ea99b21840bb9ecdc84f8a13a50de644de8 100644 --- a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/package.json +++ b/deps/npm/node_modules/fstream-ignore/package.json @@ -1,56 +1,79 @@ { + "_args": [ + [ + "fstream-ignore@^1.0.0", + "/Users/rebecca/code/npm/node_modules/fstream-npm" + ] + ], + "_from": "fstream-ignore@>=1.0.0 <2.0.0", + "_id": "fstream-ignore@1.0.2", + "_inCache": true, + "_location": "/fstream-ignore", + "_nodeVersion": "0.10.16", + "_npmUser": { + "email": "i@izs.me", + "name": "isaacs" + }, + "_npmVersion": "2.1.11", + "_phantomChildren": {}, + "_requested": { + "name": "fstream-ignore", + "raw": "fstream-ignore@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/fstream-npm" + ], + "_resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.2.tgz", + "_shasum": "18c891db01b782a74a7bff936a0f24997741c7ab", + "_shrinkwrap": null, + "_spec": "fstream-ignore@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/fstream-npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "fstream-ignore", - "description": "A thing for ignoring files based on globs", - "version": "1.0.2", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/fstream-ignore.git" - }, - "main": "ignore.js", - "scripts": { - "test": "tap test/*.js" + "bugs": { + "url": "https://github.com/isaacs/fstream-ignore/issues" }, "dependencies": { "fstream": "^1.0.0", "inherits": "2", "minimatch": "^2.0.1" }, + "description": "A thing for ignoring files based on globs", "devDependencies": { - "tap": "", + "mkdirp": "", "rimraf": "", - "mkdirp": "" + "tap": "" }, - "license": "ISC", - "gitHead": "20363d39660671c0de746bd07a0d07de7090d085", - "bugs": { - "url": "https://github.com/isaacs/fstream-ignore/issues" + "directories": {}, + "dist": { + "shasum": "18c891db01b782a74a7bff936a0f24997741c7ab", + "tarball": "http://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.2.tgz" }, + "gitHead": "20363d39660671c0de746bd07a0d07de7090d085", "homepage": "https://github.com/isaacs/fstream-ignore", - "_id": "fstream-ignore@1.0.2", - "_shasum": "18c891db01b782a74a7bff936a0f24997741c7ab", - "_from": "fstream-ignore@>=1.0.0 <2.0.0", - "_npmVersion": "2.1.11", - "_nodeVersion": "0.10.16", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, + "license": "ISC", + "main": "ignore.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "dist": { - "shasum": "18c891db01b782a74a7bff936a0f24997741c7ab", - "tarball": "http://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.2.tgz" + "name": "fstream-ignore", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/fstream-ignore.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.2.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.2" } diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/.ignore b/deps/npm/node_modules/fstream-ignore/test/.ignore similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/.ignore rename to deps/npm/node_modules/fstream-ignore/test/.ignore diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/.npmignore b/deps/npm/node_modules/fstream-ignore/test/.npmignore similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/.npmignore rename to deps/npm/node_modules/fstream-ignore/test/.npmignore diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/00-setup.js b/deps/npm/node_modules/fstream-ignore/test/00-setup.js similarity index 99% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/00-setup.js rename to deps/npm/node_modules/fstream-ignore/test/00-setup.js index 7d7e4a1b784c2384e46ff7a5e596a1f67899e57f..351bcd10f157824b2bcfe475e82c494ea1cda96d 100644 --- a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/00-setup.js +++ b/deps/npm/node_modules/fstream-ignore/test/00-setup.js @@ -68,4 +68,3 @@ tap.test("create fixtures", function (t) { }) t.end() }) - diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/basic.js b/deps/npm/node_modules/fstream-ignore/test/basic.js similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/basic.js rename to deps/npm/node_modules/fstream-ignore/test/basic.js diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/common.js b/deps/npm/node_modules/fstream-ignore/test/common.js similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/common.js rename to deps/npm/node_modules/fstream-ignore/test/common.js diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/ignore-most.js b/deps/npm/node_modules/fstream-ignore/test/ignore-most.js similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/ignore-most.js rename to deps/npm/node_modules/fstream-ignore/test/ignore-most.js diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/nested-ignores.js b/deps/npm/node_modules/fstream-ignore/test/nested-ignores.js similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/nested-ignores.js rename to deps/npm/node_modules/fstream-ignore/test/nested-ignores.js diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/read-file-order.js b/deps/npm/node_modules/fstream-ignore/test/read-file-order.js similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/read-file-order.js rename to deps/npm/node_modules/fstream-ignore/test/read-file-order.js diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/unignore-child.js b/deps/npm/node_modules/fstream-ignore/test/unignore-child.js similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/unignore-child.js rename to deps/npm/node_modules/fstream-ignore/test/unignore-child.js diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/zz-cleanup.js b/deps/npm/node_modules/fstream-ignore/test/zz-cleanup.js similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/test/zz-cleanup.js rename to deps/npm/node_modules/fstream-ignore/test/zz-cleanup.js diff --git a/deps/npm/node_modules/fstream-npm/package.json b/deps/npm/node_modules/fstream-npm/package.json index f3ab7b8faf1adc7f65b08d2a6fe403d7dc145439..f4deee360d7c7cdfa379d7277da550925920bb62 100644 --- a/deps/npm/node_modules/fstream-npm/package.json +++ b/deps/npm/node_modules/fstream-npm/package.json @@ -1,24 +1,50 @@ { + "_args": [ + [ + "fstream-npm@~1.0.5", + "/Users/rebecca/code/npm" + ] + ], + "_from": "fstream-npm@>=1.0.5 <1.1.0", + "_id": "fstream-npm@1.0.5", + "_inCache": true, + "_location": "/fstream-npm", + "_nodeVersion": "2.5.0", + "_npmUser": { + "email": "ogd@aoaioxxysz.net", + "name": "othiym23" + }, + "_npmVersion": "2.14.0", + "_phantomChildren": {}, + "_requested": { + "name": "fstream-npm", + "raw": "fstream-npm@~1.0.5", + "rawSpec": "~1.0.5", + "scope": null, + "spec": ">=1.0.5 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/fstream-npm/-/fstream-npm-1.0.5.tgz", + "_shasum": "4c1d1cbc6da95c745f8d2c52077a1d2e7b337206", + "_shrinkwrap": null, + "_spec": "fstream-npm@~1.0.5", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "fstream-npm", - "description": "fstream class for creating npm packages", - "version": "1.0.5", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/fstream-npm.git" - }, - "scripts": { - "test": "standard && tap test/*.js" + "bugs": { + "url": "https://github.com/isaacs/fstream-npm/issues" }, - "main": "./fstream-npm.js", "dependencies": { "fstream-ignore": "^1.0.0", "inherits": "2" }, + "description": "fstream class for creating npm packages", "devDependencies": { "graceful-fs": "^4.1.2", "mkdirp": "^0.5.1", @@ -26,15 +52,38 @@ "standard": "^4.3.1", "tap": "^1.3.2" }, - "license": "ISC", - "readme": "# fstream-npm\n\nThis is an fstream DirReader class that will read a directory and filter\nthings according to the semantics of what goes in an npm package.\n\nFor example:\n\n```javascript\n// This will print out all the files that would be included\n// by 'npm publish' or 'npm install' of this directory.\n\nvar FN = require(\"fstream-npm\")\nFN({ path: \"./\" })\n .on(\"child\", function (e) {\n console.error(e.path.substr(e.root.path.length + 1))\n })\n```\n\n", - "readmeFilename": "README.md", - "gitHead": "f6ec06b9c45d7330213a5b446fff424b5a74e197", - "bugs": { - "url": "https://github.com/isaacs/fstream-npm/issues" + "directories": {}, + "dist": { + "shasum": "4c1d1cbc6da95c745f8d2c52077a1d2e7b337206", + "tarball": "http://registry.npmjs.org/fstream-npm/-/fstream-npm-1.0.5.tgz" }, + "gitHead": "f6ec06b9c45d7330213a5b446fff424b5a74e197", "homepage": "https://github.com/isaacs/fstream-npm#readme", - "_id": "fstream-npm@1.0.5", - "_shasum": "4c1d1cbc6da95c745f8d2c52077a1d2e7b337206", - "_from": "fstream-npm@>=1.0.5 <1.1.0" + "installable": true, + "license": "ISC", + "main": "./fstream-npm.js", + "maintainers": [ + { + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "iarna", + "email": "me@re-becca.org" + } + ], + "name": "fstream-npm", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/fstream-npm.git" + }, + "scripts": { + "test": "standard && tap test/*.js" + }, + "version": "1.0.5" } diff --git a/deps/npm/node_modules/fstream/package.json b/deps/npm/node_modules/fstream/package.json index 8c0081954428230f27c2a198ba62cb9dab7b60e9..6eeeffe499607b88306f2e86a9e8dc0409b33024 100644 --- a/deps/npm/node_modules/fstream/package.json +++ b/deps/npm/node_modules/fstream/package.json @@ -1,19 +1,48 @@ { + "_args": [ + [ + "fstream@~1.0.7", + "/Users/rebecca/code/npm" + ] + ], + "_from": "fstream@>=1.0.7 <1.1.0", + "_id": "fstream@1.0.8", + "_inCache": true, + "_location": "/fstream", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" + }, + "_npmVersion": "2.14.3", + "_phantomChildren": {}, + "_requested": { + "name": "fstream", + "raw": "fstream@~1.0.7", + "rawSpec": "~1.0.7", + "scope": null, + "spec": ">=1.0.7 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/fstream-ignore", + "/node-gyp", + "/node-gyp/tar", + "/tar" + ], + "_resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", + "_shasum": "7e8d7a73abb3647ef36e4b8a15ca801dba03d038", + "_shrinkwrap": null, + "_spec": "fstream@~1.0.7", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "fstream", - "description": "Advanced file system stream things", - "version": "1.0.8", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/fstream.git" - }, - "main": "fstream.js", - "engines": { - "node": ">=0.6" + "bugs": { + "url": "https://github.com/isaacs/fstream/issues" }, "dependencies": { "graceful-fs": "^4.1.2", @@ -21,22 +50,50 @@ "mkdirp": ">=0.5 0", "rimraf": "2" }, + "description": "Advanced file system stream things", "devDependencies": { "standard": "^4.0.0", "tap": "^1.2.0" }, - "scripts": { - "test": "standard && tap examples/*.js" + "directories": {}, + "dist": { + "shasum": "7e8d7a73abb3647ef36e4b8a15ca801dba03d038", + "tarball": "http://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz" }, - "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", - "bugs": { - "url": "https://github.com/isaacs/fstream/issues" + "engines": { + "node": ">=0.6" }, + "gitHead": "d9f81146c50e687f1df04c1a0e7e4c173eb3dae2", "homepage": "https://github.com/isaacs/fstream#readme", - "_id": "fstream@1.0.8", - "_shasum": "7e8d7a73abb3647ef36e4b8a15ca801dba03d038", - "_from": "fstream@1.0.8" + "installable": true, + "license": "ISC", + "main": "fstream.js", + "maintainers": [ + { + "name": "iarna", + "email": "me@re-becca.org" + }, + { + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" + } + ], + "name": "fstream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/fstream.git" + }, + "scripts": { + "test": "standard && tap examples/*.js" + }, + "version": "1.0.8" } diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/.npmignore b/deps/npm/node_modules/gauge/.npmignore similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/.npmignore rename to deps/npm/node_modules/gauge/.npmignore diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/LICENSE b/deps/npm/node_modules/gauge/LICENSE similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/LICENSE rename to deps/npm/node_modules/gauge/LICENSE diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/README.md b/deps/npm/node_modules/gauge/README.md similarity index 93% rename from deps/npm/node_modules/npmlog/node_modules/gauge/README.md rename to deps/npm/node_modules/gauge/README.md index fb9eb0a7d1e125faed6d55689c21637174fdbf53..ca0a8cd773d6d2bd930459f333c6126dfc7de8dd 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/README.md +++ b/deps/npm/node_modules/gauge/README.md @@ -30,6 +30,11 @@ gauge.hide() Constructs a new gauge. Gauges are drawn on a single line, and are not drawn if the current terminal isn't a tty. +If you resize your terminal in a way that can be detected then the gauge +will be drawn at the new size. As a general rule, growing your terminal will +be clean, but shrinking your terminal will result in cruft as we don't have +enough information to know where what we wrote previously is now located. + The **options** object can have the following properties, all of which are optional: @@ -117,7 +122,7 @@ will be turned into the gauge line. The default template is: ```javascript [ - {type: "name", separated: true, maxLength: 25, minWidth: 25, align: "left"}, + {type: "name", separated: true, maxLength: 25, minLength: 25, align: "left"}, {type: "spinner", separated: true}, {type: "startgroup"}, {type: "completionbar"}, @@ -131,7 +136,7 @@ be be included verbatum in the output. If the template element is an object, it can have the following keys: * *type* can be: - * `name` – The most recent name passed to `show`; if this is in response to a + * `name` – The most recent name passed to `show`; if this is in response to a `pulse` then the name passed to `pulse` will be appended along with the subsection property from the theme. * `spinner` – If you've ever called `pulse` this will be one of the characters @@ -148,7 +153,7 @@ If the template element is an object, it can have the following keys: will be padded according to the *align* value. * *align* – (Default: left) Possible values "left", "right" and "center". Works as you'd expect from word processors. -* *length* – Provides a single value for both *minLength* and *maxLength*. If both +* *length* – Provides a single value for both *minLength* and *maxLength*. If both *length* and *minLength or *maxLength* are specifed then the latter take precedence. ### Tracking Completion diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/example.png b/deps/npm/node_modules/gauge/example.png similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/example.png rename to deps/npm/node_modules/gauge/example.png diff --git a/deps/npm/node_modules/gauge/package.json b/deps/npm/node_modules/gauge/package.json new file mode 100644 index 0000000000000000000000000000000000000000..a7777aa17e77c084e1fa68441d015635980901f9 --- /dev/null +++ b/deps/npm/node_modules/gauge/package.json @@ -0,0 +1,82 @@ +{ + "_args": [ + [ + "gauge", + "/Users/rebecca/code/npm" + ] + ], + "_from": "gauge@*", + "_id": "gauge@1.2.2", + "_inCache": true, + "_location": "/gauge", + "_nodeVersion": "0.10.38", + "_npmUser": { + "email": "me@re-becca.org", + "name": "iarna" + }, + "_npmVersion": "3.1.0", + "_phantomChildren": {}, + "_requested": { + "name": "gauge", + "raw": "gauge", + "rawSpec": "", + "scope": null, + "spec": "*", + "type": "range" + }, + "_requiredBy": [ + "/npmlog" + ], + "_shasum": "05b6730a19a8fcad3c340a142f0945222a3f815b", + "_shrinkwrap": null, + "_spec": "gauge", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "me@re-becca.org", + "name": "Rebecca Turner" + }, + "bugs": { + "url": "https://github.com/iarna/gauge/issues" + }, + "dependencies": { + "ansi": "^0.3.0", + "has-unicode": "^1.0.0", + "lodash.pad": "^3.0.0", + "lodash.padleft": "^3.0.0", + "lodash.padright": "^3.0.0" + }, + "description": "A terminal based horizontal guage", + "devDependencies": { + "tap": "^0.4.13" + }, + "directories": {}, + "dist": { + "shasum": "05b6730a19a8fcad3c340a142f0945222a3f815b", + "tarball": "http://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz" + }, + "gitHead": "9f7eeeeed3b74a70f30b721d570435f6ffbc0168", + "homepage": "https://github.com/iarna/gauge", + "keywords": [ + "gauge", + "progress", + "progressbar" + ], + "license": "ISC", + "main": "progress-bar.js", + "maintainers": [ + { + "name": "iarna", + "email": "me@re-becca.org" + } + ], + "name": "gauge", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/gauge.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.2.2" +} diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js b/deps/npm/node_modules/gauge/progress-bar.js similarity index 90% rename from deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js rename to deps/npm/node_modules/gauge/progress-bar.js index 39dbf2ac43dd9a71ba7518c721854c99102baa9c..16bdadc5103eeebf57cdfea1d66fdfc88b284a5e 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js +++ b/deps/npm/node_modules/gauge/progress-bar.js @@ -11,8 +11,10 @@ function isTTY() { return process.stderr.isTTY } function getWritableTTYColumns() { - // One less than the actual as writing to the final column wraps the line - return process.stderr.columns - 1 + // Writing to the final column wraps the line + // We have to use stdout here, because Node's magic SIGWINCH handler only + // updates process.stdout, not process.stderr + return process.stdout.columns - 1 } var ProgressBar = module.exports = function (options, cursor) { @@ -39,6 +41,13 @@ var ProgressBar = module.exports = function (options, cursor) { this.lastCompleted = 0 this.spun = 0 this.last = new Date(0) + + var self = this + this._handleSizeChange = function () { + if (!self.showing) return + self.hide() + self.show() + } } ProgressBar.prototype = {} @@ -68,6 +77,14 @@ ProgressBar.prototype.setTemplate = function(template) { this.template = template } +ProgressBar.prototype._enableResizeEvents = function() { + process.stdout.on('resize', this._handleSizeChange) +} + +ProgressBar.prototype._disableResizeEvents = function() { + process.stdout.removeListener('resize', this._handleSizeChange) +} + ProgressBar.prototype.disable = function() { this.hide() this.disabled = true diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/test/progress-bar.js b/deps/npm/node_modules/gauge/test/progress-bar.js similarity index 87% rename from deps/npm/node_modules/npmlog/node_modules/gauge/test/progress-bar.js rename to deps/npm/node_modules/gauge/test/progress-bar.js index 8e2a5ad6438fdde8491d60378ea7bdbc231f2b0e..39939269f5b630f7b113b72fbfd2869f9f123d46 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/test/progress-bar.js +++ b/deps/npm/node_modules/gauge/test/progress-bar.js @@ -70,7 +70,7 @@ test("hide", function (t) { test("renderTemplate", function (t) { t.plan(16) - process.stderr.columns = 11 + process.stdout.columns = 11 var result = bar.renderTemplate(ProgressBar.ascii,[{type: "name"}],{name: "NAME"}) t.is(result, "NAME", "name substitution") var result = bar.renderTemplate(ProgressBar.ascii,[{type: "completionbar"}],{completed: 0}) @@ -108,7 +108,7 @@ test("renderTemplate", function (t) { test("show & pulse", function (t) { t.plan(23) - process.stderr.columns = 16 + process.stdout.columns = 16 cursor = [] process.stderr.isTTY = false bar.template[0].length = 6 @@ -146,3 +146,31 @@ test("show & pulse", function (t) { [ 'write', 'S -> P | |----|\n' ], [ 'show' ] ]) }) + +test("window resizing", function (t) { + t.plan(16) + process.stderr.isTTY = true + process.stdout.columns = 32 + bar.show("NAME", 0.1) + cursor = [] + bar.last = new Date(0) + bar.pulse() + isOutput(t, "32 columns", + [ [ 'up', 1 ], + [ 'hide' ], + [ 'horizontalAbsolute', 0 ], + [ 'write', 'NAME / |##------------------|\n' ], + [ 'show' ] ]) + + process.stdout.columns = 16 + bar.show("NAME", 0.5) + cursor = [] + bar.last = new Date(0) + bar.pulse() + isOutput(t, "16 columns", + [ [ 'up', 1 ], + [ 'hide' ], + [ 'horizontalAbsolute', 0 ], + [ 'write', 'NAME - |##--|\n' ], + [ 'show' ] ]); +}); diff --git a/deps/npm/node_modules/github-url-from-git/.npmignore b/deps/npm/node_modules/generate-function/.npmignore similarity index 100% rename from deps/npm/node_modules/github-url-from-git/.npmignore rename to deps/npm/node_modules/generate-function/.npmignore diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/.travis.yml b/deps/npm/node_modules/generate-function/.travis.yml similarity index 100% rename from deps/npm/node_modules/minimatch/node_modules/brace-expansion/.travis.yml rename to deps/npm/node_modules/generate-function/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/README.md b/deps/npm/node_modules/generate-function/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/README.md rename to deps/npm/node_modules/generate-function/README.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/example.js b/deps/npm/node_modules/generate-function/example.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/example.js rename to deps/npm/node_modules/generate-function/example.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/index.js b/deps/npm/node_modules/generate-function/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/index.js rename to deps/npm/node_modules/generate-function/index.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/package.json b/deps/npm/node_modules/generate-function/package.json similarity index 61% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/package.json rename to deps/npm/node_modules/generate-function/package.json index db1ac2aa364f5d27dfd1cd1b69a282a038a59f59..5980efe9995320505279806934f48bf4ab4c4617 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/package.json +++ b/deps/npm/node_modules/generate-function/package.json @@ -1,53 +1,77 @@ { - "name": "generate-function", - "version": "2.0.0", - "description": "Module that helps you write generated functions in Node", - "main": "index.js", - "scripts": { - "test": "tape test.js" + "_args": [ + [ + "generate-function@^2.0.0", + "/Users/rebecca/code/npm/node_modules/is-my-json-valid" + ] + ], + "_from": "generate-function@>=2.0.0 <3.0.0", + "_id": "generate-function@2.0.0", + "_inCache": true, + "_location": "/generate-function", + "_npmUser": { + "email": "mathiasbuus@gmail.com", + "name": "mafintosh" }, - "repository": { - "type": "git", - "url": "git+https://github.com/mafintosh/generate-function.git" + "_npmVersion": "1.4.23", + "_phantomChildren": {}, + "_requested": { + "name": "generate-function", + "raw": "generate-function@^2.0.0", + "rawSpec": "^2.0.0", + "scope": null, + "spec": ">=2.0.0 <3.0.0", + "type": "range" }, - "keywords": [ - "generate", - "code", - "generation", - "function", - "performance" + "_requiredBy": [ + "/is-my-json-valid" ], + "_resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "_shasum": "6858fe7c0969b7d4e9093337647ac79f60dfbe74", + "_shrinkwrap": null, + "_spec": "generate-function@^2.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/is-my-json-valid", "author": { "name": "Mathias Buus" }, - "license": "MIT", "bugs": { "url": "https://github.com/mafintosh/generate-function/issues" }, - "homepage": "https://github.com/mafintosh/generate-function", + "dependencies": {}, + "description": "Module that helps you write generated functions in Node", "devDependencies": { "tape": "^2.13.4" }, - "gitHead": "3d5fc8de5859be95f58e3af9bfb5f663edd95149", - "_id": "generate-function@2.0.0", - "_shasum": "6858fe7c0969b7d4e9093337647ac79f60dfbe74", - "_from": "generate-function@>=2.0.0 <3.0.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "mafintosh", - "email": "mathiasbuus@gmail.com" + "directories": {}, + "dist": { + "shasum": "6858fe7c0969b7d4e9093337647ac79f60dfbe74", + "tarball": "http://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" }, + "gitHead": "3d5fc8de5859be95f58e3af9bfb5f663edd95149", + "homepage": "https://github.com/mafintosh/generate-function", + "keywords": [ + "code", + "function", + "generate", + "generation", + "performance" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "mafintosh", "email": "mathiasbuus@gmail.com" } ], - "dist": { - "shasum": "6858fe7c0969b7d4e9093337647ac79f60dfbe74", - "tarball": "http://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + "name": "generate-function", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/mafintosh/generate-function" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tape test.js" + }, + "version": "2.0.0" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/test.js b/deps/npm/node_modules/generate-function/test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/test.js rename to deps/npm/node_modules/generate-function/test.js diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.npmignore b/deps/npm/node_modules/generate-object-property/.npmignore similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/.npmignore rename to deps/npm/node_modules/generate-object-property/.npmignore diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml b/deps/npm/node_modules/generate-object-property/.travis.yml similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml rename to deps/npm/node_modules/generate-object-property/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/LICENSE b/deps/npm/node_modules/generate-object-property/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/LICENSE rename to deps/npm/node_modules/generate-object-property/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/README.md b/deps/npm/node_modules/generate-object-property/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/README.md rename to deps/npm/node_modules/generate-object-property/README.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/index.js b/deps/npm/node_modules/generate-object-property/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/index.js rename to deps/npm/node_modules/generate-object-property/index.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/package.json b/deps/npm/node_modules/generate-object-property/package.json similarity index 61% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/package.json rename to deps/npm/node_modules/generate-object-property/package.json index 8bc73da759fde05e939b22e186d90fdafde3462d..ac179d2e368314827243453c76c73de8351222f8 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/package.json +++ b/deps/npm/node_modules/generate-object-property/package.json @@ -1,51 +1,74 @@ { - "name": "generate-object-property", - "version": "1.2.0", - "description": "Generate safe JS code that can used to reference a object property", - "repository": { - "type": "git", - "url": "git+https://github.com/mafintosh/generate-object-property.git" + "_args": [ + [ + "generate-object-property@^1.1.0", + "/Users/rebecca/code/npm/node_modules/is-my-json-valid" + ] + ], + "_from": "generate-object-property@>=1.1.0 <2.0.0", + "_id": "generate-object-property@1.2.0", + "_inCache": true, + "_location": "/generate-object-property", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "mathiasbuus@gmail.com", + "name": "mafintosh" }, - "devDependencies": { - "tape": "^2.13.0" + "_npmVersion": "2.9.0", + "_phantomChildren": {}, + "_requested": { + "name": "generate-object-property", + "raw": "generate-object-property@^1.1.0", + "rawSpec": "^1.1.0", + "scope": null, + "spec": ">=1.1.0 <2.0.0", + "type": "range" }, - "scripts": { - "test": "tape test.js" + "_requiredBy": [ + "/is-my-json-valid" + ], + "_resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "_shasum": "9c0e1c40308ce804f4783618b937fa88f99d50d0", + "_shrinkwrap": null, + "_spec": "generate-object-property@^1.1.0", + "_where": "/Users/rebecca/code/npm/node_modules/is-my-json-valid", + "author": { + "name": "Mathias Buus", + "url": "@mafintosh" + }, + "bugs": { + "url": "https://github.com/mafintosh/generate-object-property/issues" }, "dependencies": { "is-property": "^1.0.0" }, - "bugs": { - "url": "https://github.com/mafintosh/generate-object-property/issues" + "description": "Generate safe JS code that can used to reference a object property", + "devDependencies": { + "tape": "^2.13.0" }, - "homepage": "https://github.com/mafintosh/generate-object-property", - "main": "index.js", - "author": { - "name": "Mathias Buus", - "url": "@mafintosh" + "directories": {}, + "dist": { + "shasum": "9c0e1c40308ce804f4783618b937fa88f99d50d0", + "tarball": "http://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" }, - "license": "MIT", "gitHead": "0dd7d411018de54b2eae63b424c15b3e50bd678c", - "_id": "generate-object-property@1.2.0", - "_shasum": "9c0e1c40308ce804f4783618b937fa88f99d50d0", - "_from": "generate-object-property@>=1.1.0 <2.0.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "mafintosh", - "email": "mathiasbuus@gmail.com" - }, + "homepage": "https://github.com/mafintosh/generate-object-property", + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "mafintosh", "email": "mathiasbuus@gmail.com" } ], - "dist": { - "shasum": "9c0e1c40308ce804f4783618b937fa88f99d50d0", - "tarball": "http://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" + "name": "generate-object-property", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/mafintosh/generate-object-property" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tape test.js" + }, + "version": "1.2.0" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/test.js b/deps/npm/node_modules/generate-object-property/test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/test.js rename to deps/npm/node_modules/generate-object-property/test.js diff --git a/deps/npm/node_modules/github-url-from-git/Makefile b/deps/npm/node_modules/github-url-from-git/Makefile deleted file mode 100644 index 37f330e81b98c1c880622c73a07278139c75cb79..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-git/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -test: - @./node_modules/.bin/mocha test.js --reporter spec --require should - -.PHONY: test diff --git a/deps/npm/node_modules/github-url-from-git/Readme.md b/deps/npm/node_modules/github-url-from-git/Readme.md deleted file mode 100644 index 9dccaa8db696fa47d42a26f6ebc27336caa9eec4..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-git/Readme.md +++ /dev/null @@ -1,92 +0,0 @@ - -# github-url-from-git - -```js -describe('parse(url)', function(){ - it('should support git://*', function(){ - var url = 'git://github.com/jamesor/mongoose-versioner'; - parse(url).should.equal('https://github.com/jamesor/mongoose-versioner'); - }) - - it('should support git://*.git', function(){ - var url = 'git://github.com/treygriffith/cellar.git'; - parse(url).should.equal('https://github.com/treygriffith/cellar'); - }) - - it('should support https://*', function(){ - var url = 'https://github.com/Empeeric/i18n-node'; - parse(url).should.equal('https://github.com/Empeeric/i18n-node'); - }) - - it('should support https://*.git', function(){ - var url = 'https://jpillora@github.com/banchee/tranquil.git'; - parse(url).should.equal('https://github.com/banchee/tranquil'); - }) - - it('should return undefined on failure', function(){ - var url = 'git://github.com/justgord/.git'; - assert(null == parse(url)); - }) - - it('should parse git@github.com:bcoe/thumbd.git', function() { - var url = 'git@github.com:bcoe/thumbd.git'; - parse(url).should.eql('https://github.com/bcoe/thumbd'); - }) - - it('should parse git@github.com:bcoe/thumbd.git#2.7.0', function() { - var url = 'git@github.com:bcoe/thumbd.git#2.7.0'; - parse(url).should.eql('https://github.com/bcoe/thumbd'); - }) - - it('should parse git+https://github.com/bcoe/thumbd.git', function() { - var url = 'git+https://github.com/bcoe/thumbd.git'; - parse(url).should.eql('https://github.com/bcoe/thumbd'); - }) - - it('should parse git+ssh://github.com/bcoe/thumbd.git', function() { - var url = 'git+ssh://github.com/bcoe/thumbd.git'; - parse(url).should.eql('https://github.com/bcoe/thumbd'); - }) - - it('should parse https://EastCloud@github.com/EastCloud/node-websockets.git', function() { - var url = 'https://EastCloud@github.com/EastCloud/node-websockets.git'; - parse(url).should.eql('https://github.com/EastCloud/node-websockets'); - }) - - // gist urls. - - it('should parse git@gist urls', function() { - var url = 'git@gist.github.com:3135914.git'; - parse(url).should.equal('https://gist.github.com/3135914') - }) - - it('should parse https://gist urls', function() { - var url = 'https://gist.github.com/3135914.git'; - parse(url).should.equal('https://gist.github.com/3135914') - }) - - // Handle arbitrary GitHub Enterprise domains. - - it('should parse parse extra GHE urls provided', function() { - var url = 'git://github.example.com/treygriffith/cellar.git'; - parse( - url, {extraBaseUrls: ['github.example.com']} - ).should.equal('https://github.example.com/treygriffith/cellar'); - }); - - it('should parse GHE urls with multiple subdomains', function() { - var url = 'git://github.internal.example.com/treygriffith/cellar.git'; - parse( - url, {extraBaseUrls: ['github.internal.example.com']} - ).should.equal('https://github.internal.example.com/treygriffith/cellar'); - }); -}) - -describe('re', function() { - it('should expose GitHub url parsing regex', function() { - parse.re.source.should.equal( - /^(?:https?:\/\/|git:\/\/)?(?:[^@]+@)?(gist.github.com|github.com)[:\/]([^\/]+\/[^\/]+?|[0-9]+)$/.source - ) - }); -}) -``` diff --git a/deps/npm/node_modules/github-url-from-git/index.js b/deps/npm/node_modules/github-url-from-git/index.js deleted file mode 100644 index 44872e8c10c2f88baebfa040c819d85d87d41178..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-git/index.js +++ /dev/null @@ -1,32 +0,0 @@ -// convert git:// form url to github URL, e.g., -// git://github.com/bcoe/foo.git -// https://github.com/bcoe/foo. -function githubUrlFromGit(url, opts){ - try { - var m = re(opts).exec(url.replace(/\.git(#.*)?$/, '')); - var host = m[1]; - var path = m[2]; - return 'https://' + host + '/' + path; - } catch (err) { - // ignore - } -}; - -// generate the git:// parsing regex -// with options, e.g., the ability -// to specify multiple GHE domains. -function re(opts) { - opts = opts || {}; - // whitelist of URLs that should be treated as GitHub repos. - var baseUrls = ['gist.github.com', 'github.com'].concat(opts.extraBaseUrls || []); - // build regex from whitelist. - return new RegExp( - /^(?:https?:\/\/|git:\/\/|git\+ssh:\/\/|git\+https:\/\/)?(?:[^@]+@)?/.source + - '(' + baseUrls.join('|') + ')' + - /[:\/]([^\/]+\/[^\/]+?|[0-9]+)$/.source - ); -} - -githubUrlFromGit.re = re(); - -module.exports = githubUrlFromGit; diff --git a/deps/npm/node_modules/github-url-from-git/package.json b/deps/npm/node_modules/github-url-from-git/package.json deleted file mode 100644 index 229af333ca41464a63b46908d81eaaa5f2c268c2..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-git/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "github-url-from-git", - "version": "1.4.0", - "description": "Parse a github git url and return the github repo url", - "main": "index.js", - "scripts": { - "test": "mocha test.js --reporter spec --require should" - }, - "repository": { - "type": "git", - "url": "https://github.com/visionmedia/node-github-url-from-git.git" - }, - "keywords": [ - "github", - "git", - "url", - "parser" - ], - "author": { - "name": "TJ Holowaychuk" - }, - "license": "MIT", - "devDependencies": { - "better-assert": "~1.0.0", - "mocha": "~1.9.0", - "should": "~1.2.2" - }, - "gitHead": "154df00b0b590c29be5d2a5822e7b2e160b75345", - "bugs": { - "url": "https://github.com/visionmedia/node-github-url-from-git/issues" - }, - "homepage": "https://github.com/visionmedia/node-github-url-from-git", - "_id": "github-url-from-git@1.4.0", - "_shasum": "285e6b520819001bde128674704379e4ff03e0de", - "_from": "github-url-from-git@>=1.4.0-0 <2.0.0-0", - "_npmVersion": "2.0.0-alpha.7", - "_npmUser": { - "name": "bcoe", - "email": "bencoe@gmail.com" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "bcoe", - "email": "bencoe@gmail.com" - } - ], - "dist": { - "shasum": "285e6b520819001bde128674704379e4ff03e0de", - "tarball": "http://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.4.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.4.0.tgz" -} diff --git a/deps/npm/node_modules/github-url-from-git/test.js b/deps/npm/node_modules/github-url-from-git/test.js deleted file mode 100644 index 93aa38bb1f9f9fab360ab2cc1e2b32781d2c7bd1..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-git/test.js +++ /dev/null @@ -1,90 +0,0 @@ -var parse = require('./'); -var assert = require('better-assert'); - -describe('parse(url)', function(){ - it('should support git://*', function(){ - var url = 'git://github.com/jamesor/mongoose-versioner'; - parse(url).should.equal('https://github.com/jamesor/mongoose-versioner'); - }) - - it('should support git://*.git', function(){ - var url = 'git://github.com/treygriffith/cellar.git'; - parse(url).should.equal('https://github.com/treygriffith/cellar'); - }) - - it('should support https://*', function(){ - var url = 'https://github.com/Empeeric/i18n-node'; - parse(url).should.equal('https://github.com/Empeeric/i18n-node'); - }) - - it('should support https://*.git', function(){ - var url = 'https://jpillora@github.com/banchee/tranquil.git'; - parse(url).should.equal('https://github.com/banchee/tranquil'); - }) - - it('should return undefined on failure', function(){ - var url = 'git://github.com/justgord/.git'; - assert(null == parse(url)); - }) - - it('should parse git@github.com:bcoe/thumbd.git', function() { - var url = 'git@github.com:bcoe/thumbd.git'; - parse(url).should.eql('https://github.com/bcoe/thumbd'); - }) - - it('should parse git@github.com:bcoe/thumbd.git#2.7.0', function() { - var url = 'git@github.com:bcoe/thumbd.git#2.7.0'; - parse(url).should.eql('https://github.com/bcoe/thumbd'); - }) - - it('should parse git+https://github.com/bcoe/thumbd.git', function() { - var url = 'git+https://github.com/bcoe/thumbd.git'; - parse(url).should.eql('https://github.com/bcoe/thumbd'); - }) - - it('should parse git+ssh://github.com/bcoe/thumbd.git', function() { - var url = 'git+ssh://github.com/bcoe/thumbd.git'; - parse(url).should.eql('https://github.com/bcoe/thumbd'); - }) - - it('should parse https://EastCloud@github.com/EastCloud/node-websockets.git', function() { - var url = 'https://EastCloud@github.com/EastCloud/node-websockets.git'; - parse(url).should.eql('https://github.com/EastCloud/node-websockets'); - }) - - // gist urls. - - it('should parse git@gist urls', function() { - var url = 'git@gist.github.com:3135914.git'; - parse(url).should.equal('https://gist.github.com/3135914') - }) - - it('should parse https://gist urls', function() { - var url = 'https://gist.github.com/3135914.git'; - parse(url).should.equal('https://gist.github.com/3135914') - }) - - // Handle arbitrary GitHub Enterprise domains. - - it('should parse parse extra GHE urls provided', function() { - var url = 'git://github.example.com/treygriffith/cellar.git'; - parse( - url, {extraBaseUrls: ['github.example.com']} - ).should.equal('https://github.example.com/treygriffith/cellar'); - }); - - it('should parse GHE urls with multiple subdomains', function() { - var url = 'git://github.internal.example.com/treygriffith/cellar.git'; - parse( - url, {extraBaseUrls: ['github.internal.example.com']} - ).should.equal('https://github.internal.example.com/treygriffith/cellar'); - }); -}) - -describe('re', function() { - it('should expose GitHub url parsing regex', function() { - parse.re.source.should.equal( - /^(?:https?:\/\/|git:\/\/|git\+ssh:\/\/|git\+https:\/\/)?(?:[^@]+@)?(gist.github.com|github.com)[:\/]([^\/]+\/[^\/]+?|[0-9]+)$/.source - ) - }); -}) diff --git a/deps/npm/node_modules/github-url-from-username-repo/.npmignore b/deps/npm/node_modules/github-url-from-username-repo/.npmignore deleted file mode 100644 index 39747c08b4dc95998513470902bcf83800dad3fd..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-username-repo/.npmignore +++ /dev/null @@ -1,13 +0,0 @@ -*.swp -.*.swp - -.DS_Store -*~ -.project -.settings -npm-debug.log -coverage.html -.idea -lib-cov - -node_modules \ No newline at end of file diff --git a/deps/npm/node_modules/github-url-from-username-repo/.travis.yml b/deps/npm/node_modules/github-url-from-username-repo/.travis.yml deleted file mode 100644 index a12e3f0fdebc13d237b6796a2b5b4c2d08a2c617..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-username-repo/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" \ No newline at end of file diff --git a/deps/npm/node_modules/github-url-from-username-repo/LICENSE b/deps/npm/node_modules/github-url-from-username-repo/LICENSE deleted file mode 100644 index 44c152ba75756ce378c1d3eff8703174372ea1b7..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-username-repo/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) Robert Kowalski ("Author") -All rights reserved. - -The BSD License - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/deps/npm/node_modules/github-url-from-username-repo/README.md b/deps/npm/node_modules/github-url-from-username-repo/README.md deleted file mode 100644 index 9adbee0ea38635de28ade53338eb877aab59e827..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-username-repo/README.md +++ /dev/null @@ -1,21 +0,0 @@ -[![Build Status](https://travis-ci.org/robertkowalski/github-url-from-username-repo.png?branch=master)](https://travis-ci.org/robertkowalski/github-url-from-username-repo) -[![Dependency Status](https://gemnasium.com/robertkowalski/github-url-from-username-repo.png)](https://gemnasium.com/robertkowalski/github-url-from-username-repo) - - -# github-url-from-username-repo - -## API - -### getUrl(url, [forBrowser]) - -Get's the url normalized for npm. -If `forBrowser` is true, return a GitHub url that is usable in a webbrowser. - -## Usage - -```javascript - -var getUrl = require("github-url-from-username-repo") -getUrl("visionmedia/express") // https://github.com/visionmedia/express - -``` diff --git a/deps/npm/node_modules/github-url-from-username-repo/index.js b/deps/npm/node_modules/github-url-from-username-repo/index.js deleted file mode 100644 index f9d77f952f59fa4cfb6a457dc29ddcb32ae62c7e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-username-repo/index.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = getUrl - -function getUrl (r, forBrowser) { - if (!r) return null - // Regex taken from https://github.com/npm/npm-package-arg/commit/01dce583c64afae07b66a2a8a6033aeba871c3cd - // Note: This does not fully test the git ref format. - // See https://www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html - // - // The only way to do this properly would be to shell out to - // git-check-ref-format, and as this is a fast sync function, - // we don't want to do that. Just let git fail if it turns - // out that the commit-ish is invalid. - // GH usernames cannot start with . or - - if (/^[^@%\/\s\.-][^:@%\/\s]*\/[^@\s\/%]+(?:#.*)?$/.test(r)) { - if (forBrowser) - r = r.replace("#", "/tree/") - return "https://github.com/" + r - } - - return null -} diff --git a/deps/npm/node_modules/github-url-from-username-repo/package.json b/deps/npm/node_modules/github-url-from-username-repo/package.json deleted file mode 100644 index f8aa80d5b6fb0bd1b874d74412a505d0a5dc41a1..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-username-repo/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "github-url-from-username-repo", - "version": "1.0.2", - "description": "Create urls from username/repo", - "main": "index.js", - "scripts": { - "test": "mocha -R spec" - }, - "devDependencies": { - "mocha": "~1.13.0" - }, - "repository": { - "type": "git", - "url": "git@github.com:robertkowalski/github-url-from-username-repo.git" - }, - "author": { - "name": "Robert Kowalski", - "email": "rok@kowalski.gd" - }, - "license": "BSD-2-Clause", - "bugs": { - "url": "https://github.com/robertkowalski/github-url-from-username-repo/issues" - }, - "keywords": [ - "git", - "github", - "repo" - ], - "readme": "[![Build Status](https://travis-ci.org/robertkowalski/github-url-from-username-repo.png?branch=master)](https://travis-ci.org/robertkowalski/github-url-from-username-repo)\n[![Dependency Status](https://gemnasium.com/robertkowalski/github-url-from-username-repo.png)](https://gemnasium.com/robertkowalski/github-url-from-username-repo)\n\n\n# github-url-from-username-repo\n\n## API\n\n### getUrl(url, [forBrowser])\n\nGet's the url normalized for npm.\nIf `forBrowser` is true, return a GitHub url that is usable in a webbrowser.\n\n## Usage\n\n```javascript\n\nvar getUrl = require(\"github-url-from-username-repo\")\ngetUrl(\"visionmedia/express\") // https://github.com/visionmedia/express\n\n```\n", - "readmeFilename": "README.md", - "gitHead": "d404a13f7f04edaed0e2f068a43b81230b8c7aee", - "homepage": "https://github.com/robertkowalski/github-url-from-username-repo", - "_id": "github-url-from-username-repo@1.0.2", - "_shasum": "7dd79330d2abe69c10c2cef79714c97215791dfa", - "_from": "github-url-from-username-repo@>=1.0.2-0 <2.0.0-0" -} diff --git a/deps/npm/node_modules/github-url-from-username-repo/test/index.js b/deps/npm/node_modules/github-url-from-username-repo/test/index.js deleted file mode 100644 index 10fe3a34cc37c387406367623c5dabf731ac7988..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/github-url-from-username-repo/test/index.js +++ /dev/null @@ -1,70 +0,0 @@ -var assert = require("assert") -var getUrl = require("../") - -describe("github url from username/repo", function () { - it("returns a github url for the username/repo", function () { - var url = getUrl("visionmedia/express") - assert.equal("https://github.com/visionmedia/express", url) - }) - - it("returns null if it does not match", function () { - var url = getUrl("package") - assert.deepEqual(null, url) - }) - - it("returns null if no repo/user was given", function () { - var url = getUrl() - assert.deepEqual(null, url) - }) - - it("returns null for something that's already a URI", function () { - var url = getUrl("file:../relative") - assert.deepEqual(null, url) - }) - - it("works with .", function () { - var url = getUrl("component/.download.er.js.") - assert.equal("https://github.com/component/.download.er.js.", url) - }) - - it("works with . in the beginning", function () { - var url = getUrl("component/.downloader.js") - assert.equal("https://github.com/component/.downloader.js", url) - }) - - it("works with -", function () { - var url = getUrl("component/-dow-nloader.j-s") - assert.equal("https://github.com/component/-dow-nloader.j-s", url) - }) - - it("can handle branches with #", function () { - var url = getUrl( - "component/entejs#1c3e1fe71640b4b477f04d947bd53c473799b277") - - assert.equal("https://github.com/component/entejs#1c3e1fe71640b" + - "4b477f04d947bd53c473799b277", url) - }) - - it("can handle branches with slashes", function () { - var url = getUrl( - "component/entejs#some/branch/name") - - assert.equal("https://github.com/component/entejs#some/branch/name", url) - }) - - describe("browser mode", function () { - it("is able to return urls for branches", function () { - var url = getUrl( - "component/entejs#1c3e1fe71640b4b477f04d947bd53c473799b277", true) - - assert.equal("https://github.com/component/entejs/tree/1c3e1fe71640b" + - "4b477f04d947bd53c473799b277", url) - }) - it("is able to return urls without a branch for the browser", function () { - var url = getUrl( - "component/entejs", true) - - assert.equal("https://github.com/component/entejs", url) - }) - }) -}) diff --git a/deps/npm/node_modules/glob/package.json b/deps/npm/node_modules/glob/package.json index 2949b83be0637f5b7ddb74f40eec98d37cf5742e..d93b6fcc167e24a4e40da7964c2375e7eabb2868 100644 --- a/deps/npm/node_modules/glob/package.json +++ b/deps/npm/node_modules/glob/package.json @@ -1,24 +1,47 @@ { + "_args": [ + [ + "glob@~5.0.15", + "/Users/rebecca/code/npm" + ] + ], + "_from": "glob@>=5.0.15 <5.1.0", + "_id": "glob@5.0.15", + "_inCache": true, + "_location": "/glob", + "_nodeVersion": "4.0.0", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "3.3.2", + "_phantomChildren": {}, + "_requested": { + "name": "glob", + "raw": "glob@~5.0.15", + "rawSpec": "~5.0.15", + "scope": null, + "spec": ">=5.0.15 <5.1.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/init-package-json", + "/read-package-json", + "/rimraf" + ], + "_resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "_shasum": "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1", + "_shrinkwrap": null, + "_spec": "glob@~5.0.15", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "glob", - "description": "a little globber", - "version": "5.0.15", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" - }, - "main": "glob.js", - "files": [ - "glob.js", - "sync.js", - "common.js" - ], - "engines": { - "node": "*" + "bugs": { + "url": "https://github.com/isaacs/node-glob/issues" }, "dependencies": { "inflight": "^1.0.4", @@ -27,47 +50,51 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, + "description": "a little globber", "devDependencies": { "mkdirp": "0", "rimraf": "^2.2.8", "tap": "^1.1.4", "tick": "0.0.6" }, - "scripts": { - "prepublish": "npm run benchclean", - "profclean": "rm -f v8.log profile.txt", - "test": "tap test/*.js --cov", - "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js", - "bench": "bash benchmark.sh", - "prof": "bash prof.sh && cat profile.txt", - "benchclean": "node benchclean.js" - }, - "license": "ISC", - "gitHead": "3a7e71d453dd80e75b196fd262dd23ed54beeceb", - "bugs": { - "url": "https://github.com/isaacs/node-glob/issues" - }, - "homepage": "https://github.com/isaacs/node-glob#readme", - "_id": "glob@5.0.15", - "_shasum": "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1", - "_from": "glob@5.0.15", - "_npmVersion": "3.3.2", - "_nodeVersion": "4.0.0", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, + "directories": {}, "dist": { "shasum": "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1", "tarball": "http://registry.npmjs.org/glob/-/glob-5.0.15.tgz" }, + "engines": { + "node": "*" + }, + "files": [ + "common.js", + "glob.js", + "sync.js" + ], + "gitHead": "3a7e71d453dd80e75b196fd262dd23ed54beeceb", + "homepage": "https://github.com/isaacs/node-glob#readme", + "installable": true, + "license": "ISC", + "main": "glob.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "readme": "ERROR: No README data found!" + "name": "glob", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-glob.git" + }, + "scripts": { + "bench": "bash benchmark.sh", + "benchclean": "node benchclean.js", + "prepublish": "npm run benchclean", + "prof": "bash prof.sh && cat profile.txt", + "profclean": "rm -f v8.log profile.txt", + "test": "tap test/*.js --cov", + "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" + }, + "version": "5.0.15" } diff --git a/deps/npm/node_modules/graceful-fs/package.json b/deps/npm/node_modules/graceful-fs/package.json index f9e1598a6545ea23c5b49d3401efc75b596b3f4c..b01932d06af216dd86ca9052fddaa6b8f70b6a79 100644 --- a/deps/npm/node_modules/graceful-fs/package.json +++ b/deps/npm/node_modules/graceful-fs/package.json @@ -36,14 +36,10 @@ }, "dependencies": {}, "description": "A drop-in replacement for fs, making various improvements.", - "version": "3.0.8", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-graceful-fs.git" - }, - "main": "graceful-fs.js", - "engines": { - "node": ">=0.4.0" + "devDependencies": { + "mkdirp": "^0.5.0", + "rimraf": "^2.2.8", + "tap": "^1.2.0" }, "directories": { "test": "test" @@ -64,45 +60,23 @@ "gitHead": "c286080071b6be9aa9ba108b0bb9b44ff122926d", "homepage": "https://github.com/isaacs/node-graceful-fs#readme", "keywords": [ + "EACCESS", + "EAGAIN", + "EINVAL", + "EMFILE", + "EPERM", + "error", + "errors", "fs", + "handling", "module", + "queue", "reading", - "retry", "retries", - "queue", - "error", - "errors", - "handling", - "EMFILE", - "EAGAIN", - "EINVAL", - "EPERM", - "EACCESS" + "retry" ], "license": "ISC", - "devDependencies": { - "mkdirp": "^0.5.0", - "rimraf": "^2.2.8", - "tap": "^1.2.0" - }, - "gitHead": "45c57aa5e323c35a985a525de6f0c9a6ef59e1f8", - "bugs": { - "url": "https://github.com/isaacs/node-graceful-fs/issues" - }, - "homepage": "https://github.com/isaacs/node-graceful-fs#readme", - "_id": "graceful-fs@3.0.8", - "_shasum": "ce813e725fa82f7e6147d51c9a5ca68270551c22", - "_from": "graceful-fs@>=3.0.8 <3.1.0", - "_npmVersion": "2.10.1", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "ce813e725fa82f7e6147d51c9a5ca68270551c22", - "tarball": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" - }, + "main": "graceful-fs.js", "maintainers": [ { "name": "isaacs", diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/.npmignore b/deps/npm/node_modules/graceful-readlink/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/.npmignore rename to deps/npm/node_modules/graceful-readlink/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/.travis.yml b/deps/npm/node_modules/graceful-readlink/.travis.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/.travis.yml rename to deps/npm/node_modules/graceful-readlink/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/LICENSE b/deps/npm/node_modules/graceful-readlink/LICENSE similarity index 99% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/LICENSE rename to deps/npm/node_modules/graceful-readlink/LICENSE index d1f842f0bb2722b310f364cc7a5d6642a548d012..50d1e5c666c05b0bc9c301289739e3e02486131b 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/LICENSE +++ b/deps/npm/node_modules/graceful-readlink/LICENSE @@ -19,4 +19,3 @@ 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/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/README.md b/deps/npm/node_modules/graceful-readlink/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/README.md rename to deps/npm/node_modules/graceful-readlink/README.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/index.js b/deps/npm/node_modules/graceful-readlink/index.js similarity index 98% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/index.js rename to deps/npm/node_modules/graceful-readlink/index.js index 7e9fc70f0ac25112945e1b3a44ed99c627c2b108..c4a79d1afad211b0270d1e0a3fcb248410f54aa4 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/index.js +++ b/deps/npm/node_modules/graceful-readlink/index.js @@ -8,5 +8,3 @@ exports.readlinkSync = function (p) { return p; } }; - - diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/package.json b/deps/npm/node_modules/graceful-readlink/package.json similarity index 62% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/package.json rename to deps/npm/node_modules/graceful-readlink/package.json index 5b8486a16f8bc443861dc9c7878f8a027d2cc9e5..60665a7562a630b74a666752b8e799a044a6da05 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink/package.json +++ b/deps/npm/node_modules/graceful-readlink/package.json @@ -1,48 +1,73 @@ { - "name": "graceful-readlink", - "version": "1.0.1", - "description": "graceful fs.readlink", - "main": "index.js", - "repository": { - "type": "git", - "url": "git://github.com/zhiyelee/graceful-readlink.git" + "_args": [ + [ + "graceful-readlink@>= 1.0.0", + "/Users/rebecca/code/npm/node_modules/commander" + ] + ], + "_from": "graceful-readlink@>=1.0.0", + "_id": "graceful-readlink@1.0.1", + "_inCache": true, + "_location": "/graceful-readlink", + "_nodeVersion": "0.11.14", + "_npmUser": { + "email": "zhiyelee@gmail.com", + "name": "zhiyelee" + }, + "_npmVersion": "2.1.17", + "_phantomChildren": {}, + "_requested": { + "name": "graceful-readlink", + "raw": "graceful-readlink@>= 1.0.0", + "rawSpec": ">= 1.0.0", + "scope": null, + "spec": ">=1.0.0", + "type": "range" + }, + "_requiredBy": [ + "/commander" + ], + "_resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "_shasum": "4cafad76bc62f02fa039b2f94e9a3dd3a391a725", + "_shrinkwrap": null, + "_spec": "graceful-readlink@>= 1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/commander", + "author": { + "name": "zhiyelee" }, - "homepage": "https://github.com/zhiyelee/graceful-readlink", "bugs": { "url": "https://github.com/zhiyelee/graceful-readlink/issues" }, + "dependencies": {}, + "description": "graceful fs.readlink", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "4cafad76bc62f02fa039b2f94e9a3dd3a391a725", + "tarball": "http://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + }, + "gitHead": "f6655275bebef706fb63fd01b5f062a7052419a5", + "homepage": "https://github.com/zhiyelee/graceful-readlink", "keywords": [ "fs.readlink", "readlink" ], - "author": { - "name": "zhiyelee" - }, "license": "MIT", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "gitHead": "f6655275bebef706fb63fd01b5f062a7052419a5", - "_id": "graceful-readlink@1.0.1", - "_shasum": "4cafad76bc62f02fa039b2f94e9a3dd3a391a725", - "_from": "graceful-readlink@>=1.0.0", - "_npmVersion": "2.1.17", - "_nodeVersion": "0.11.14", - "_npmUser": { - "name": "zhiyelee", - "email": "zhiyelee@gmail.com" - }, + "main": "index.js", "maintainers": [ { "name": "zhiyelee", "email": "zhiyelee@gmail.com" } ], - "dist": { - "shasum": "4cafad76bc62f02fa039b2f94e9a3dd3a391a725", - "tarball": "http://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + "name": "graceful-readlink", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/zhiyelee/graceful-readlink.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/LICENSE b/deps/npm/node_modules/har-validator/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/LICENSE rename to deps/npm/node_modules/har-validator/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/har-validator/README.md b/deps/npm/node_modules/har-validator/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/README.md rename to deps/npm/node_modules/har-validator/README.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/bin/har-validator b/deps/npm/node_modules/har-validator/bin/har-validator similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/bin/har-validator rename to deps/npm/node_modules/har-validator/bin/har-validator diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/error.js b/deps/npm/node_modules/har-validator/lib/error.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/error.js rename to deps/npm/node_modules/har-validator/lib/error.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/index.js b/deps/npm/node_modules/har-validator/lib/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/index.js rename to deps/npm/node_modules/har-validator/lib/index.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/cache.json b/deps/npm/node_modules/har-validator/lib/schemas/cache.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/cache.json rename to deps/npm/node_modules/har-validator/lib/schemas/cache.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/cacheEntry.json b/deps/npm/node_modules/har-validator/lib/schemas/cacheEntry.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/cacheEntry.json rename to deps/npm/node_modules/har-validator/lib/schemas/cacheEntry.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/content.json b/deps/npm/node_modules/har-validator/lib/schemas/content.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/content.json rename to deps/npm/node_modules/har-validator/lib/schemas/content.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/cookie.json b/deps/npm/node_modules/har-validator/lib/schemas/cookie.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/cookie.json rename to deps/npm/node_modules/har-validator/lib/schemas/cookie.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/creator.json b/deps/npm/node_modules/har-validator/lib/schemas/creator.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/creator.json rename to deps/npm/node_modules/har-validator/lib/schemas/creator.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/entry.json b/deps/npm/node_modules/har-validator/lib/schemas/entry.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/entry.json rename to deps/npm/node_modules/har-validator/lib/schemas/entry.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/har.json b/deps/npm/node_modules/har-validator/lib/schemas/har.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/har.json rename to deps/npm/node_modules/har-validator/lib/schemas/har.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/index.js b/deps/npm/node_modules/har-validator/lib/schemas/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/index.js rename to deps/npm/node_modules/har-validator/lib/schemas/index.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/log.json b/deps/npm/node_modules/har-validator/lib/schemas/log.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/log.json rename to deps/npm/node_modules/har-validator/lib/schemas/log.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/page.json b/deps/npm/node_modules/har-validator/lib/schemas/page.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/page.json rename to deps/npm/node_modules/har-validator/lib/schemas/page.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/pageTimings.json b/deps/npm/node_modules/har-validator/lib/schemas/pageTimings.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/pageTimings.json rename to deps/npm/node_modules/har-validator/lib/schemas/pageTimings.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/postData.json b/deps/npm/node_modules/har-validator/lib/schemas/postData.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/postData.json rename to deps/npm/node_modules/har-validator/lib/schemas/postData.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/record.json b/deps/npm/node_modules/har-validator/lib/schemas/record.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/record.json rename to deps/npm/node_modules/har-validator/lib/schemas/record.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/request.json b/deps/npm/node_modules/har-validator/lib/schemas/request.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/request.json rename to deps/npm/node_modules/har-validator/lib/schemas/request.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/response.json b/deps/npm/node_modules/har-validator/lib/schemas/response.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/response.json rename to deps/npm/node_modules/har-validator/lib/schemas/response.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/timings.json b/deps/npm/node_modules/har-validator/lib/schemas/timings.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/lib/schemas/timings.json rename to deps/npm/node_modules/har-validator/lib/schemas/timings.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/package.json b/deps/npm/node_modules/har-validator/package.json similarity index 73% rename from deps/npm/node_modules/request/node_modules/har-validator/package.json rename to deps/npm/node_modules/har-validator/package.json index 7a32287fa4aad6551328d753fcc53c31cd090ab6..0604cfc10c337501784fbc8b69f4aa032818f663 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/package.json +++ b/deps/npm/node_modules/har-validator/package.json @@ -1,51 +1,55 @@ { - "version": "1.8.0", - "name": "har-validator", - "description": "Extremely fast HTTP Archive (HAR) validator using JSON Schema", + "_args": [ + [ + "har-validator@^1.6.1", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "har-validator@>=1.6.1 <2.0.0", + "_id": "har-validator@1.8.0", + "_inCache": true, + "_location": "/har-validator", + "_nodeVersion": "0.12.2", + "_npmUser": { + "email": "ahmad@ahmadnassri.com", + "name": "ahmadnassri" + }, + "_npmVersion": "2.11.2", + "_phantomChildren": {}, + "_requested": { + "name": "har-validator", + "raw": "har-validator@^1.6.1", + "rawSpec": "^1.6.1", + "scope": null, + "spec": ">=1.6.1 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", + "_shasum": "d83842b0eb4c435960aeb108a067a3aa94c0eeb2", + "_shrinkwrap": null, + "_spec": "har-validator@^1.6.1", + "_where": "/Users/rebecca/code/npm/node_modules/request", "author": { - "name": "Ahmad Nassri", "email": "ahmad@ahmadnassri.com", + "name": "Ahmad Nassri", "url": "https://www.ahmadnassri.com/" }, - "homepage": "https://github.com/ahmadnassri/har-validator", - "repository": { - "type": "git", - "url": "git+https://github.com/ahmadnassri/har-validator.git" - }, - "license": "ISC", - "main": "lib/index", "bin": { "har-validator": "bin/har-validator" }, - "keywords": [ - "har", - "http", - "archive", - "validate", - "validator" - ], - "engines": { - "node": ">=0.10" - }, - "files": [ - "bin", - "lib" - ], "bugs": { "url": "https://github.com/ahmadnassri/har-validator/issues" }, - "scripts": { - "pretest": "standard && echint", - "test": "mocha", - "posttest": "npm run coverage", - "coverage": "istanbul cover --dir coverage _mocha -- -R dot", - "codeclimate": "codeclimate < coverage/lcov.info" - }, - "echint": { - "ignore": [ - "coverage/**" - ] + "dependencies": { + "bluebird": "^2.9.30", + "chalk": "^1.0.0", + "commander": "^2.8.1", + "is-my-json-valid": "^2.12.0" }, + "description": "Extremely fast HTTP Archive (HAR) validator using JSON Schema", "devDependencies": { "codeclimate-test-reporter": "0.0.4", "echint": "^1.3.0", @@ -55,33 +59,52 @@ "should": "^7.0.1", "standard": "^4.3.1" }, - "dependencies": { - "bluebird": "^2.9.30", - "chalk": "^1.0.0", - "commander": "^2.8.1", - "is-my-json-valid": "^2.12.0" + "directories": {}, + "dist": { + "shasum": "d83842b0eb4c435960aeb108a067a3aa94c0eeb2", + "tarball": "http://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz" }, - "gitHead": "8fd21c30edb23a1fed2d50b934d055d1be3dd7c9", - "_id": "har-validator@1.8.0", - "_shasum": "d83842b0eb4c435960aeb108a067a3aa94c0eeb2", - "_from": "har-validator@>=1.6.1 <2.0.0", - "_npmVersion": "2.11.2", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "ahmadnassri", - "email": "ahmad@ahmadnassri.com" + "echint": { + "ignore": [ + "coverage/**" + ] }, + "engines": { + "node": ">=0.10" + }, + "files": [ + "bin", + "lib" + ], + "gitHead": "8fd21c30edb23a1fed2d50b934d055d1be3dd7c9", + "homepage": "https://github.com/ahmadnassri/har-validator", + "keywords": [ + "archive", + "har", + "http", + "validate", + "validator" + ], + "license": "ISC", + "main": "lib/index", "maintainers": [ { "name": "ahmadnassri", "email": "ahmad@ahmadnassri.com" } ], - "dist": { - "shasum": "d83842b0eb4c435960aeb108a067a3aa94c0eeb2", - "tarball": "http://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz" + "name": "har-validator", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/ahmadnassri/har-validator.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "codeclimate": "codeclimate < coverage/lcov.info", + "coverage": "istanbul cover --dir coverage _mocha -- -R dot", + "posttest": "npm run coverage", + "pretest": "standard && echint", + "test": "mocha" + }, + "version": "1.8.0" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/index.js b/deps/npm/node_modules/has-ansi/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/index.js rename to deps/npm/node_modules/has-ansi/index.js diff --git a/deps/npm/node_modules/osenv/node_modules/os-homedir/license b/deps/npm/node_modules/has-ansi/license similarity index 100% rename from deps/npm/node_modules/osenv/node_modules/os-homedir/license rename to deps/npm/node_modules/has-ansi/license diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/package.json b/deps/npm/node_modules/has-ansi/package.json similarity index 69% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/package.json rename to deps/npm/node_modules/has-ansi/package.json index d39a62eb9150d744a5293933c399db8b490a8456..a7ec031ca3082ca812781a25e80448e6e18a854a 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/package.json +++ b/deps/npm/node_modules/has-ansi/package.json @@ -1,85 +1,108 @@ { - "name": "has-ansi", - "version": "2.0.0", - "description": "Check if a string has ANSI escape codes", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/has-ansi.git" + "_args": [ + [ + "has-ansi@^2.0.0", + "/Users/rebecca/code/npm/node_modules/chalk" + ] + ], + "_from": "has-ansi@>=2.0.0 <3.0.0", + "_id": "has-ansi@2.0.0", + "_inCache": true, + "_location": "/has-ansi", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" }, + "_npmVersion": "2.11.2", + "_phantomChildren": {}, + "_requested": { + "name": "has-ansi", + "raw": "has-ansi@^2.0.0", + "rawSpec": "^2.0.0", + "scope": null, + "spec": ">=2.0.0 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/chalk" + ], + "_resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "_shasum": "34f5049ce1ecdf2b0649af3ef24e45ed35416d91", + "_shrinkwrap": null, + "_spec": "has-ansi@^2.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/chalk", "author": { - "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", "url": "sindresorhus.com" }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - } - ], + "bugs": { + "url": "https://github.com/sindresorhus/has-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "description": "Check if a string has ANSI escape codes", + "devDependencies": { + "ava": "0.0.4" + }, + "directories": {}, + "dist": { + "shasum": "34f5049ce1ecdf2b0649af3ef24e45ed35416d91", + "tarball": "http://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "gitHead": "0722275e1bef139fcd09137da6e5550c3cd368b9", + "homepage": "https://github.com/sindresorhus/has-ansi", "keywords": [ "ansi", - "styles", "color", - "colour", "colors", - "terminal", + "colour", + "command-line", "console", - "string", - "tty", "escape", - "shell", - "xterm", - "command-line", - "text", + "find", + "has", + "match", + "pattern", + "re", "regex", "regexp", - "re", - "match", + "shell", + "string", + "styles", + "terminal", "test", - "find", - "pattern", - "has" + "text", + "tty", + "xterm" ], - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "devDependencies": { - "ava": "0.0.4" - }, - "gitHead": "0722275e1bef139fcd09137da6e5550c3cd368b9", - "bugs": { - "url": "https://github.com/sindresorhus/has-ansi/issues" - }, - "homepage": "https://github.com/sindresorhus/has-ansi", - "_id": "has-ansi@2.0.0", - "_shasum": "34f5049ce1ecdf2b0649af3ef24e45ed35416d91", - "_from": "has-ansi@>=2.0.0 <3.0.0", - "_npmVersion": "2.11.2", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + }, + { + "name": "jbnicolai", + "email": "jappelman@xebia.com" + } + ], + "name": "has-ansi", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/has-ansi" }, - "dist": { - "shasum": "34f5049ce1ecdf2b0649af3ef24e45ed35416d91", - "tarball": "http://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + "scripts": { + "test": "node test.js" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "readme": "ERROR: No README data found!" + "version": "2.0.0" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/readme.md b/deps/npm/node_modules/has-ansi/readme.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/readme.md rename to deps/npm/node_modules/has-ansi/readme.md diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/.npmignore b/deps/npm/node_modules/has-unicode/.npmignore similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/.npmignore rename to deps/npm/node_modules/has-unicode/.npmignore diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/LICENSE b/deps/npm/node_modules/has-unicode/LICENSE similarity index 99% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/LICENSE rename to deps/npm/node_modules/has-unicode/LICENSE index d42e25e95655bb0abefe88b7cc6a6ec5a44519aa..e756052969b780422bfa99d0bbc6fe2ece45bb74 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/LICENSE +++ b/deps/npm/node_modules/has-unicode/LICENSE @@ -11,4 +11,3 @@ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/README.md b/deps/npm/node_modules/has-unicode/README.md similarity index 98% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/README.md rename to deps/npm/node_modules/has-unicode/README.md index e9d3cc326c144a2718cde3c59750ca66fbf1693c..4393106fda3a0ac0a8ed2129fb29c3d567ab3365 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/README.md +++ b/deps/npm/node_modules/has-unicode/README.md @@ -33,8 +33,7 @@ As such, we report any Windows installation as unicode capable. ### Unix Like Operating Systems We look at the environment variables `LC_ALL`, `LC_CTYPE`, and `LANG` in -that order. For `LC_ALL` and `LANG`, it looks for `.UTF-8` in the value. +that order. For `LC_ALL` and `LANG`, it looks for `.UTF-8` in the value. For `LC_CTYPE` it looks to see if the value is `UTF-8`. This is sufficient for most POSIX systems. While locale data can be put in `/etc/locale.conf` as well, AFAIK it's always copied into the environment. - diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/index.js b/deps/npm/node_modules/has-unicode/index.js similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/index.js rename to deps/npm/node_modules/has-unicode/index.js diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/package.json b/deps/npm/node_modules/has-unicode/package.json similarity index 56% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/package.json rename to deps/npm/node_modules/has-unicode/package.json index fd552a9e4096eebe8c74dc80aabf6dd4bde97ab2..de92acfcac4a3288adc6e3a0a86c8c9a4bc5bdd5 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/package.json +++ b/deps/npm/node_modules/has-unicode/package.json @@ -1,53 +1,78 @@ { - "name": "has-unicode", - "version": "1.0.0", - "description": "Try to guess if your terminal supports unicode", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "has-unicode@~1.0.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "has-unicode@>=1.0.0 <1.1.0", + "_id": "has-unicode@1.0.0", + "_inCache": true, + "_location": "/has-unicode", + "_nodeVersion": "0.10.33", + "_npmUser": { + "email": "me@re-becca.org", + "name": "iarna" }, - "repository": { - "type": "git", - "url": "git+https://github.com/iarna/has-unicode.git" + "_npmVersion": "2.1.11", + "_phantomChildren": {}, + "_requested": { + "name": "has-unicode", + "raw": "has-unicode@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" }, - "keywords": [ - "unicode", - "terminal" + "_requiredBy": [ + "/", + "/gauge" ], + "_resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz", + "_shasum": "bac5c44e064c2ffc3b8fcbd8c71afe08f9afc8cc", + "_shrinkwrap": null, + "_spec": "has-unicode@~1.0.0", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Rebecca Turner", - "email": "me@re-becca.org" + "email": "me@re-becca.org", + "name": "Rebecca Turner" }, - "license": "ISC", "bugs": { "url": "https://github.com/iarna/has-unicode/issues" }, - "homepage": "https://github.com/iarna/has-unicode", + "dependencies": {}, + "description": "Try to guess if your terminal supports unicode", "devDependencies": { "require-inject": "^1.1.1", "tap": "^0.4.13" }, - "gitHead": "a8c3dcf3be5f0c8f8e26a3e7ffea7da24344a006", - "_id": "has-unicode@1.0.0", - "_shasum": "bac5c44e064c2ffc3b8fcbd8c71afe08f9afc8cc", - "_from": "has-unicode@>=1.0.0 <2.0.0", - "_npmVersion": "2.1.11", - "_nodeVersion": "0.10.33", - "_npmUser": { - "name": "iarna", - "email": "me@re-becca.org" + "directories": {}, + "dist": { + "shasum": "bac5c44e064c2ffc3b8fcbd8c71afe08f9afc8cc", + "tarball": "http://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz" }, + "gitHead": "a8c3dcf3be5f0c8f8e26a3e7ffea7da24344a006", + "homepage": "https://github.com/iarna/has-unicode", + "keywords": [ + "terminal", + "unicode" + ], + "license": "ISC", + "main": "index.js", "maintainers": [ { "name": "iarna", "email": "me@re-becca.org" } ], - "dist": { - "shasum": "bac5c44e064c2ffc3b8fcbd8c71afe08f9afc8cc", - "tarball": "http://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz" + "name": "has-unicode", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/iarna/has-unicode" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.0" } diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/test/index.js b/deps/npm/node_modules/has-unicode/test/index.js similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-unicode/test/index.js rename to deps/npm/node_modules/has-unicode/test/index.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/.npmignore b/deps/npm/node_modules/hawk/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/.npmignore rename to deps/npm/node_modules/hawk/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/hawk/.travis.yml b/deps/npm/node_modules/hawk/.travis.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/.travis.yml rename to deps/npm/node_modules/hawk/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/hawk/LICENSE b/deps/npm/node_modules/hawk/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/LICENSE rename to deps/npm/node_modules/hawk/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/hawk/README.md b/deps/npm/node_modules/hawk/README.md similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/README.md rename to deps/npm/node_modules/hawk/README.md index 4aff23f3a3f7c551d787290813b3cdd51c85c122..63725034fc5e723a10b2cd03688b170592cc2bde 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/README.md +++ b/deps/npm/node_modules/hawk/README.md @@ -75,12 +75,12 @@ and the server. ## Replay Protection -Without replay protection, an attacker can use a compromised (but otherwise valid and authenticated) request more -than once, gaining access to a protected resource. To mitigate this, clients include both a nonce and a timestamp when +Without replay protection, an attacker can use a compromised (but otherwise valid and authenticated) request more +than once, gaining access to a protected resource. To mitigate this, clients include both a nonce and a timestamp when making requests. This gives the server enough information to prevent replay attacks. The nonce is generated by the client, and is a string unique across all requests with the same timestamp and -key identifier combination. +key identifier combination. The timestamp enables the server to restrict the validity period of the credentials where requests occuring afterwards are rejected. It also removes the need for the server to retain an unbounded number of nonce values for future checks. @@ -373,7 +373,7 @@ and for a finite period of time. Both the client and server can issue bewit cred credentials as the client to maintain clear traceability as to who issued which credentials. In order to simplify implementation, bewit credentials do not support single-use policy and can be replayed multiple times within -the granted access timeframe. +the granted access timeframe. ## Bewit Usage Example @@ -496,7 +496,7 @@ which can often affect how the request body is interpreted by the server. If the or value of such headers, an attacker can manipulate the request headers without being detected. Implementers should use the `ext` feature to pass application-specific information via the `Authorization` header which is protected by the request MAC. -The response authentication, when performed, only covers the response payload, content-type, and the request information +The response authentication, when performed, only covers the response payload, content-type, and the request information provided by the client in it's request (method, resource, timestamp, nonce, etc.). It does not cover the HTTP status code or any other response header field (e.g. Location) which can affect the client's behaviour. diff --git a/deps/npm/node_modules/request/node_modules/hawk/bower.json b/deps/npm/node_modules/hawk/bower.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/bower.json rename to deps/npm/node_modules/hawk/bower.json diff --git a/deps/npm/node_modules/request/node_modules/hawk/component.json b/deps/npm/node_modules/hawk/component.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/component.json rename to deps/npm/node_modules/hawk/component.json diff --git a/deps/npm/node_modules/request/node_modules/hawk/example/usage.js b/deps/npm/node_modules/hawk/example/usage.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/example/usage.js rename to deps/npm/node_modules/hawk/example/usage.js index 13b860b4c5ad8abbf61f2f8e9bd83075472b2092..64fe17674a5753edff0698a142317da98e8a3765 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/example/usage.js +++ b/deps/npm/node_modules/hawk/example/usage.js @@ -75,4 +75,3 @@ credentialsFunc('dh37fgj492je', function (err, credentials) { process.exit(0); }); }); - diff --git a/deps/npm/node_modules/request/node_modules/hawk/images/hawk.png b/deps/npm/node_modules/hawk/images/hawk.png similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/images/hawk.png rename to deps/npm/node_modules/hawk/images/hawk.png diff --git a/deps/npm/node_modules/request/node_modules/hawk/images/logo.png b/deps/npm/node_modules/hawk/images/logo.png similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/images/logo.png rename to deps/npm/node_modules/hawk/images/logo.png diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/browser.js b/deps/npm/node_modules/hawk/lib/browser.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/lib/browser.js rename to deps/npm/node_modules/hawk/lib/browser.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/client.js b/deps/npm/node_modules/hawk/lib/client.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/lib/client.js rename to deps/npm/node_modules/hawk/lib/client.js index b3e8649e3a6215806ad5777cca2e1e893cae5ec0..f9ae69171343bd59f20d17579c1e67bad946eee7 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/lib/client.js +++ b/deps/npm/node_modules/hawk/lib/client.js @@ -364,6 +364,3 @@ exports.message = function (host, port, message, options) { return result; }; - - - diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/crypto.js b/deps/npm/node_modules/hawk/lib/crypto.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/lib/crypto.js rename to deps/npm/node_modules/hawk/lib/crypto.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/index.js b/deps/npm/node_modules/hawk/lib/index.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/lib/index.js rename to deps/npm/node_modules/hawk/lib/index.js index a883882c8c538c95f7c005e12a64feb82bf92e5f..911b906aabdaedfe536257b3d4b77f5b84d272d4 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/lib/index.js +++ b/deps/npm/node_modules/hawk/lib/index.js @@ -12,4 +12,3 @@ exports.uri = { authenticate: exports.server.authenticateBewit, getBewit: exports.client.getBewit }; - diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/server.js b/deps/npm/node_modules/hawk/lib/server.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/lib/server.js rename to deps/npm/node_modules/hawk/lib/server.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/utils.js b/deps/npm/node_modules/hawk/lib/utils.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/lib/utils.js rename to deps/npm/node_modules/hawk/lib/utils.js index 8d2719abc68218d91c96a64ee00f1df4c87b27c7..8b192ace661de32df26addad7d86200be8de0cee 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/lib/utils.js +++ b/deps/npm/node_modules/hawk/lib/utils.js @@ -161,4 +161,3 @@ exports.unauthorized = function (message, attributes) { return Boom.unauthorized(message, 'Hawk', attributes); }; - diff --git a/deps/npm/node_modules/request/node_modules/hawk/package.json b/deps/npm/node_modules/hawk/package.json similarity index 70% rename from deps/npm/node_modules/request/node_modules/hawk/package.json rename to deps/npm/node_modules/hawk/package.json index 5a835b2e42a95948f468f57415c890fa1110e8dd..81abc2e1c658c3ee4b1a101a440f17e8cf87aea4 100644 --- a/deps/npm/node_modules/request/node_modules/hawk/package.json +++ b/deps/npm/node_modules/hawk/package.json @@ -1,68 +1,91 @@ { - "name": "hawk", - "description": "HTTP Hawk Authentication Scheme", - "version": "3.1.0", - "author": { - "name": "Eran Hammer", + "_args": [ + [ + "hawk@~3.1.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "hawk@>=3.1.0 <3.2.0", + "_id": "hawk@3.1.0", + "_inCache": true, + "_location": "/hawk", + "_nodeVersion": "0.10.38", + "_npmUser": { "email": "eran@hammer.io", - "url": "http://hueniverse.com" + "name": "hueniverse" }, - "contributors": [], - "repository": { - "type": "git", - "url": "git://github.com/hueniverse/hawk.git" + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "hawk", + "raw": "hawk@~3.1.0", + "rawSpec": "~3.1.0", + "scope": null, + "spec": ">=3.1.0 <3.2.0", + "type": "range" }, - "main": "lib/index.js", - "keywords": [ - "http", - "authentication", - "scheme", - "hawk" + "_requiredBy": [ + "/request" ], - "engines": { - "node": ">=0.10.32" + "_resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz", + "_shasum": "8a13ae19977ec607602f3f0b9fd676f18c384e44", + "_shrinkwrap": null, + "_spec": "hawk@~3.1.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", + "author": { + "email": "eran@hammer.io", + "name": "Eran Hammer", + "url": "http://hueniverse.com" }, "browser": "./lib/browser.js", + "bugs": { + "url": "https://github.com/hueniverse/hawk/issues" + }, + "contributors": [], "dependencies": { - "hoek": "2.x.x", "boom": "^2.8.x", "cryptiles": "2.x.x", + "hoek": "2.x.x", "sntp": "1.x.x" }, + "description": "HTTP Hawk Authentication Scheme", "devDependencies": { "code": "1.x.x", "lab": "5.x.x" }, - "scripts": { - "test": "lab -a code -t 100 -L", - "test-cov-html": "lab -a code -r html -o coverage.html" - }, - "license": "BSD-3-Clause", - "gitHead": "fdb9d05e383d5237631eaddc4f51422e54fa8b52", - "bugs": { - "url": "https://github.com/hueniverse/hawk/issues" - }, - "homepage": "https://github.com/hueniverse/hawk#readme", - "_id": "hawk@3.1.0", - "_shasum": "8a13ae19977ec607602f3f0b9fd676f18c384e44", - "_from": "hawk@>=3.1.0 <3.2.0", - "_npmVersion": "2.10.0", - "_nodeVersion": "0.10.38", - "_npmUser": { - "name": "hueniverse", - "email": "eran@hammer.io" - }, + "directories": {}, "dist": { "shasum": "8a13ae19977ec607602f3f0b9fd676f18c384e44", "tarball": "http://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz" }, + "engines": { + "node": ">=0.10.32" + }, + "gitHead": "fdb9d05e383d5237631eaddc4f51422e54fa8b52", + "homepage": "https://github.com/hueniverse/hawk#readme", + "keywords": [ + "authentication", + "hawk", + "http", + "scheme" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", "maintainers": [ { "name": "hueniverse", "email": "eran@hueniverse.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz", - "readme": "ERROR: No README data found!" + "name": "hawk", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/hueniverse/hawk.git" + }, + "scripts": { + "test": "lab -a code -t 100 -L", + "test-cov-html": "lab -a code -r html -o coverage.html" + }, + "version": "3.1.0" } diff --git a/deps/npm/node_modules/request/node_modules/hawk/test/browser.js b/deps/npm/node_modules/hawk/test/browser.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/test/browser.js rename to deps/npm/node_modules/hawk/test/browser.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/test/client.js b/deps/npm/node_modules/hawk/test/client.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/test/client.js rename to deps/npm/node_modules/hawk/test/client.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/test/crypto.js b/deps/npm/node_modules/hawk/test/crypto.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/test/crypto.js rename to deps/npm/node_modules/hawk/test/crypto.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/test/index.js b/deps/npm/node_modules/hawk/test/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/test/index.js rename to deps/npm/node_modules/hawk/test/index.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/test/readme.js b/deps/npm/node_modules/hawk/test/readme.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/test/readme.js rename to deps/npm/node_modules/hawk/test/readme.js index a466264667ee64ae12ff142dd091a8fdb455a7ab..7a343f5e219c617be5179f3400114817c6af09c5 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/test/readme.js +++ b/deps/npm/node_modules/hawk/test/readme.js @@ -92,4 +92,3 @@ describe('README', function () { }); }); }); - diff --git a/deps/npm/node_modules/request/node_modules/hawk/test/server.js b/deps/npm/node_modules/hawk/test/server.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/test/server.js rename to deps/npm/node_modules/hawk/test/server.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/test/uri.js b/deps/npm/node_modules/hawk/test/uri.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/test/uri.js rename to deps/npm/node_modules/hawk/test/uri.js index 1b623c09126c324eb0b361b0761b4b4b66eaee57..03491328b538957ce2e998e39e9d987abc2800f2 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/test/uri.js +++ b/deps/npm/node_modules/hawk/test/uri.js @@ -846,4 +846,3 @@ describe('Uri', function () { }); }); }); - diff --git a/deps/npm/node_modules/request/node_modules/hawk/test/utils.js b/deps/npm/node_modules/hawk/test/utils.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/test/utils.js rename to deps/npm/node_modules/hawk/test/utils.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/.npmignore b/deps/npm/node_modules/hoek/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/.npmignore rename to deps/npm/node_modules/hoek/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/qs/.travis.yml b/deps/npm/node_modules/hoek/.travis.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/.travis.yml rename to deps/npm/node_modules/hoek/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/CONTRIBUTING.md b/deps/npm/node_modules/hoek/CONTRIBUTING.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/CONTRIBUTING.md rename to deps/npm/node_modules/hoek/CONTRIBUTING.md diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE b/deps/npm/node_modules/hoek/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE rename to deps/npm/node_modules/hoek/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/README.md b/deps/npm/node_modules/hoek/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/README.md rename to deps/npm/node_modules/hoek/README.md diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/images/hoek.png b/deps/npm/node_modules/hoek/images/hoek.png similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/images/hoek.png rename to deps/npm/node_modules/hoek/images/hoek.png diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js b/deps/npm/node_modules/hoek/lib/escape.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js rename to deps/npm/node_modules/hoek/lib/escape.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js b/deps/npm/node_modules/hoek/lib/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js rename to deps/npm/node_modules/hoek/lib/index.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json b/deps/npm/node_modules/hoek/package.json similarity index 68% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json rename to deps/npm/node_modules/hoek/package.json index 4e3968f48bc998854ab5ab973cbdbdc72d8e12de..58a346a4360456c894a035b339c7af9d49b2e27b 100644 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json +++ b/deps/npm/node_modules/hoek/package.json @@ -1,46 +1,64 @@ { - "name": "hoek", - "description": "General purpose node utilities", - "version": "2.16.3", - "repository": { - "type": "git", - "url": "git://github.com/hapijs/hoek.git" + "_args": [ + [ + "hoek@2.x.x", + "/Users/rebecca/code/npm/node_modules/hawk" + ] + ], + "_from": "hoek@>=2.0.0 <3.0.0", + "_id": "hoek@2.16.3", + "_inCache": true, + "_location": "/hoek", + "_nodeVersion": "4.1.0", + "_npmUser": { + "email": "quitlahok@gmail.com", + "name": "nlf" }, - "main": "lib/index.js", - "keywords": [ - "utilities" + "_npmVersion": "3.3.3", + "_phantomChildren": {}, + "_requested": { + "name": "hoek", + "raw": "hoek@2.x.x", + "rawSpec": "2.x.x", + "scope": null, + "spec": ">=2.0.0 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/boom", + "/hawk", + "/sntp" ], - "engines": { - "node": ">=0.10.40" + "_resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "_shasum": "20bb7403d3cea398e91dc4710a8ff1b8274a25ed", + "_shrinkwrap": null, + "_spec": "hoek@2.x.x", + "_where": "/Users/rebecca/code/npm/node_modules/hawk", + "bugs": { + "url": "https://github.com/hapijs/hoek/issues" }, "dependencies": {}, + "description": "General purpose node utilities", "devDependencies": { "code": "1.x.x", "lab": "5.x.x" }, - "scripts": { - "test": "lab -a code -t 100 -L", - "test-cov-html": "lab -a code -t 100 -L -r html -o coverage.html" - }, - "license": "BSD-3-Clause", - "gitHead": "20f36e85616264d4b73a64a374803175213a9121", - "bugs": { - "url": "https://github.com/hapijs/hoek/issues" - }, - "homepage": "https://github.com/hapijs/hoek#readme", - "_id": "hoek@2.16.3", - "_shasum": "20bb7403d3cea398e91dc4710a8ff1b8274a25ed", - "_from": "hoek@>=2.0.0 <3.0.0", - "_npmVersion": "3.3.3", - "_nodeVersion": "4.1.0", - "_npmUser": { - "name": "nlf", - "email": "quitlahok@gmail.com" - }, + "directories": {}, "dist": { "shasum": "20bb7403d3cea398e91dc4710a8ff1b8274a25ed", "tarball": "http://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, + "engines": { + "node": ">=0.10.40" + }, + "gitHead": "20f36e85616264d4b73a64a374803175213a9121", + "homepage": "https://github.com/hapijs/hoek#readme", + "installable": true, + "keywords": [ + "utilities" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", "maintainers": [ { "name": "hueniverse", @@ -55,7 +73,15 @@ "email": "quitlahok@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "readme": "ERROR: No README data found!" + "name": "hoek", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/hapijs/hoek.git" + }, + "scripts": { + "test": "lab -a code -t 100 -L", + "test-cov-html": "lab -a code -t 100 -L -r html -o coverage.html" + }, + "version": "2.16.3" } diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/escaper.js b/deps/npm/node_modules/hoek/test/escaper.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/escaper.js rename to deps/npm/node_modules/hoek/test/escaper.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/index.js b/deps/npm/node_modules/hoek/test/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/index.js rename to deps/npm/node_modules/hoek/test/index.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/ignore.txt b/deps/npm/node_modules/hoek/test/modules/ignore.txt similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/ignore.txt rename to deps/npm/node_modules/hoek/test/modules/ignore.txt diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test1.js b/deps/npm/node_modules/hoek/test/modules/test1.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test1.js rename to deps/npm/node_modules/hoek/test/modules/test1.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test2.js b/deps/npm/node_modules/hoek/test/modules/test2.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test2.js rename to deps/npm/node_modules/hoek/test/modules/test2.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test3.js b/deps/npm/node_modules/hoek/test/modules/test3.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/test/modules/test3.js rename to deps/npm/node_modules/hoek/test/modules/test3.js diff --git a/deps/npm/node_modules/hosted-git-info/package.json b/deps/npm/node_modules/hosted-git-info/package.json index 8d34aca2d722230b4718a5722a3e355748e2d9c7..e77f5f18329c69bbe603d3c62652204d1e427d0e 100644 --- a/deps/npm/node_modules/hosted-git-info/package.json +++ b/deps/npm/node_modules/hosted-git-info/package.json @@ -1,49 +1,68 @@ { - "name": "hosted-git-info", - "version": "2.1.4", - "description": "Provides metadata and conversions from repository urls for Github, Bitbucket and Gitlab", - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/hosted-git-info.git" + "_args": [ + [ + "hosted-git-info@~2.1.4", + "/Users/rebecca/code/npm" + ] + ], + "_from": "hosted-git-info@>=2.1.4 <2.2.0", + "_id": "hosted-git-info@2.1.4", + "_inCache": true, + "_location": "/hosted-git-info", + "_nodeVersion": "2.0.2", + "_npmUser": { + "email": "ogd@aoaioxxysz.net", + "name": "othiym23" }, - "keywords": [ - "git", - "github", - "bitbucket", - "gitlab" + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "hosted-git-info", + "raw": "hosted-git-info@~2.1.4", + "rawSpec": "~2.1.4", + "scope": null, + "spec": ">=2.1.4 <2.2.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/normalize-package-data", + "/npm-package-arg" ], + "_resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.4.tgz", + "_shasum": "d9e953b26988be88096c46e926494d9604c300f8", + "_shrinkwrap": null, + "_spec": "hosted-git-info@~2.1.4", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Rebecca Turner", "email": "me@re-becca.org", + "name": "Rebecca Turner", "url": "http://re-becca.org" }, - "license": "ISC", "bugs": { "url": "https://github.com/npm/hosted-git-info/issues" }, - "homepage": "https://github.com/npm/hosted-git-info", - "scripts": { - "test": "standard && tap test/*.js" - }, + "dependencies": {}, + "description": "Provides metadata and conversions from repository urls for Github, Bitbucket and Gitlab", "devDependencies": { "standard": "^3.3.2", "tap": "^0.4.13" }, - "gitHead": "9e1a36df8eb050a663713c79e56d89dadba2bd8d", - "_id": "hosted-git-info@2.1.4", - "_shasum": "d9e953b26988be88096c46e926494d9604c300f8", - "_from": "hosted-git-info@>=2.1.2 <2.2.0", - "_npmVersion": "2.10.1", - "_nodeVersion": "2.0.2", - "_npmUser": { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, + "directories": {}, "dist": { "shasum": "d9e953b26988be88096c46e926494d9604c300f8", "tarball": "http://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.4.tgz" }, + "gitHead": "9e1a36df8eb050a663713c79e56d89dadba2bd8d", + "homepage": "https://github.com/npm/hosted-git-info", + "keywords": [ + "bitbucket", + "git", + "github", + "gitlab" + ], + "license": "ISC", + "main": "index.js", "maintainers": [ { "name": "iarna", @@ -54,6 +73,14 @@ "email": "ogd@aoaioxxysz.net" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.4.tgz" + "name": "hosted-git-info", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/npm/hosted-git-info.git" + }, + "scripts": { + "test": "standard && tap test/*.js" + }, + "version": "2.1.4" } diff --git a/deps/npm/node_modules/request/node_modules/http-signature/.dir-locals.el b/deps/npm/node_modules/http-signature/.dir-locals.el similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/.dir-locals.el rename to deps/npm/node_modules/http-signature/.dir-locals.el diff --git a/deps/npm/node_modules/request/node_modules/http-signature/.npmignore b/deps/npm/node_modules/http-signature/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/.npmignore rename to deps/npm/node_modules/http-signature/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/http-signature/LICENSE b/deps/npm/node_modules/http-signature/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/LICENSE rename to deps/npm/node_modules/http-signature/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/http-signature/README.md b/deps/npm/node_modules/http-signature/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/README.md rename to deps/npm/node_modules/http-signature/README.md diff --git a/deps/npm/node_modules/request/node_modules/http-signature/http_signing.md b/deps/npm/node_modules/http-signature/http_signing.md similarity index 99% rename from deps/npm/node_modules/request/node_modules/http-signature/http_signing.md rename to deps/npm/node_modules/http-signature/http_signing.md index dd81ee5b59e08fdd0c4b775b69c8eb73ea42fb55..8108885015d4cbd6b4c409eecf012e2528e9bed3 100644 --- a/deps/npm/node_modules/request/node_modules/http-signature/http_signing.md +++ b/deps/npm/node_modules/http-signature/http_signing.md @@ -293,4 +293,3 @@ inserted for readability): The Authorization header would be: Authorization: Signature keyId="Test",algorithm="rsa-sha256",headers="request-line host date content-type content-md5 content-length",signature="H/AaTDkJvLELy4i1RujnKlS6dm8QWiJvEpn9cKRMi49kKF+mohZ15z1r+mF+XiKS5kOOscyS83olfBtsVhYjPg2Ei3/D9D4Mvb7bFm9IaLJgYTFFuQCghrKQQFPiqJN320emjHxFowpIm1BkstnEU7lktH/XdXVBo8a6Uteiztw=" - diff --git a/deps/npm/node_modules/request/node_modules/http-signature/lib/index.js b/deps/npm/node_modules/http-signature/lib/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/lib/index.js rename to deps/npm/node_modules/http-signature/lib/index.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/lib/parser.js b/deps/npm/node_modules/http-signature/lib/parser.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/lib/parser.js rename to deps/npm/node_modules/http-signature/lib/parser.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/lib/signer.js b/deps/npm/node_modules/http-signature/lib/signer.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/lib/signer.js rename to deps/npm/node_modules/http-signature/lib/signer.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/lib/util.js b/deps/npm/node_modules/http-signature/lib/util.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/lib/util.js rename to deps/npm/node_modules/http-signature/lib/util.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/lib/verify.js b/deps/npm/node_modules/http-signature/lib/verify.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/http-signature/lib/verify.js rename to deps/npm/node_modules/http-signature/lib/verify.js diff --git a/deps/npm/node_modules/request/node_modules/http-signature/package.json b/deps/npm/node_modules/http-signature/package.json similarity index 71% rename from deps/npm/node_modules/request/node_modules/http-signature/package.json rename to deps/npm/node_modules/http-signature/package.json index 47d76cffcf91872bb0c2718c2d00c514393950ed..910f81181144173a407c6372faa19ea9a42764df 100644 --- a/deps/npm/node_modules/request/node_modules/http-signature/package.json +++ b/deps/npm/node_modules/http-signature/package.json @@ -1,11 +1,43 @@ { - "name": "http-signature", - "description": "Reference implementation of Joyent's HTTP Signature scheme.", - "version": "0.11.0", - "license": "MIT", + "_args": [ + [ + "http-signature@~0.11.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "http-signature@>=0.11.0 <0.12.0", + "_id": "http-signature@0.11.0", + "_inCache": true, + "_location": "/http-signature", + "_nodeVersion": "0.10.36", + "_npmUser": { + "email": "patrick.f.mooney@gmail.com", + "name": "pfmooney" + }, + "_npmVersion": "2.5.1", + "_phantomChildren": {}, + "_requested": { + "name": "http-signature", + "raw": "http-signature@~0.11.0", + "rawSpec": "~0.11.0", + "scope": null, + "spec": ">=0.11.0 <0.12.0", + "type": "range" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", + "_shasum": "1796cf67a001ad5cd6849dca0991485f09089fe6", + "_shrinkwrap": null, + "_spec": "http-signature@~0.11.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", "author": { "name": "Joyent, Inc" }, + "bugs": { + "url": "https://github.com/joyent/node-http-signature/issues" + }, "contributors": [ { "name": "Mark Cavage", @@ -20,44 +52,31 @@ "email": "patrick.f.mooney@gmail.com" } ], - "repository": { - "type": "git", - "url": "git://github.com/joyent/node-http-signature.git" - }, - "homepage": "https://github.com/joyent/node-http-signature/", - "bugs": { - "url": "https://github.com/joyent/node-http-signature/issues" - }, - "keywords": [ - "https", - "request" - ], - "engines": { - "node": ">=0.8" - }, - "main": "lib/index.js", - "scripts": { - "test": "tap test/*.js" - }, "dependencies": { - "assert-plus": "^0.1.5", "asn1": "0.1.11", + "assert-plus": "^0.1.5", "ctype": "0.5.3" }, + "description": "Reference implementation of Joyent's HTTP Signature scheme.", "devDependencies": { "node-uuid": "^1.4.1", "tap": "0.4.2" }, - "_id": "http-signature@0.11.0", - "_shasum": "1796cf67a001ad5cd6849dca0991485f09089fe6", - "_resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", - "_from": "http-signature@>=0.11.0 <0.12.0", - "_npmVersion": "2.5.1", - "_nodeVersion": "0.10.36", - "_npmUser": { - "name": "pfmooney", - "email": "patrick.f.mooney@gmail.com" + "directories": {}, + "dist": { + "shasum": "1796cf67a001ad5cd6849dca0991485f09089fe6", + "tarball": "http://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz" }, + "engines": { + "node": ">=0.8" + }, + "homepage": "https://github.com/joyent/node-http-signature/", + "keywords": [ + "https", + "request" + ], + "license": "MIT", + "main": "lib/index.js", "maintainers": [ { "name": "mcavage", @@ -68,10 +87,14 @@ "email": "patrick.f.mooney@gmail.com" } ], - "dist": { - "shasum": "1796cf67a001ad5cd6849dca0991485f09089fe6", - "tarball": "http://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz" + "name": "http-signature", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/joyent/node-http-signature.git" }, - "directories": {}, - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tap test/*.js" + }, + "version": "0.11.0" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/.npmignore b/deps/npm/node_modules/iferr/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/.npmignore rename to deps/npm/node_modules/iferr/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/license.md b/deps/npm/node_modules/iferr/LICENSE similarity index 87% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/license.md rename to deps/npm/node_modules/iferr/LICENSE index c67e3532b542455fad8c4004ef297534d7f480b2..19d5f4bce547ba5d9fa2f195a394429a883ef6b4 100644 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/license.md +++ b/deps/npm/node_modules/iferr/LICENSE @@ -1,4 +1,6 @@ -# Copyright (c) 2015 Calvin Metcalf +The MIT License (MIT) + +Copyright (c) 2014 Nadav Ivgi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -10,10 +12,10 @@ 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 +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.** +SOFTWARE. \ No newline at end of file diff --git a/deps/npm/node_modules/iferr/README.md b/deps/npm/node_modules/iferr/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0940763fa94137aa2e3ba04ce30813984bda89df --- /dev/null +++ b/deps/npm/node_modules/iferr/README.md @@ -0,0 +1,40 @@ +# iferr + +Higher-order functions for easier error handling. + +`if (err) return cb(err);` be gone! + +## Install +```bash +npm install iferr +``` + +## Use + +### JavaScript example +```js +var iferr = require('iferr'); + +function get_friends_count(id, cb) { + User.load_user(id, iferr(cb, function(user) { + user.load_friends(iferr(cb, function(friends) { + cb(null, friends.length); + })); + })); +} +``` + +### CoffeeScript example +```coffee +iferr = require 'iferr' + +get_friends_count = (id, cb) -> + User.load_user id, iferr cb, (user) -> + user.load_friends iferr cb, (friends) -> + cb null, friends.length +``` + +(TODO: document tiferr, throwerr and printerr) + +## License +MIT diff --git a/deps/npm/node_modules/iferr/index.coffee b/deps/npm/node_modules/iferr/index.coffee new file mode 100644 index 0000000000000000000000000000000000000000..da6d00719f10c4348fab98e70a348922f6bc5392 --- /dev/null +++ b/deps/npm/node_modules/iferr/index.coffee @@ -0,0 +1,24 @@ +# Delegates to `succ` on sucecss or to `fail` on error +# ex: Thing.load 123, iferr cb, (thing) -> ... +iferr = (fail, succ) -> (err, a...) -> + if err? then fail err + else succ? a... + +# Like iferr, but also catches errors thrown from `succ` and passes to `fail` +tiferr = (fail, succ) -> iferr fail, (a...) -> + try succ a... + catch err then fail err + +# Delegate to the success function on success, or throw the error otherwise +# ex: Thing.load 123, throwerr (thing) -> ... +throwerr = iferr.bind null, (err) -> throw err + +# Prints errors when one is passed, or does nothing otherwise +# ex: thing.save printerr +printerr = iferr (err) -> console.error err.stack or err + +module.exports = exports = iferr +exports.iferr = iferr +exports.tiferr = tiferr +exports.throwerr = throwerr +exports.printerr = printerr diff --git a/deps/npm/node_modules/iferr/index.js b/deps/npm/node_modules/iferr/index.js new file mode 100644 index 0000000000000000000000000000000000000000..78fce3d2b0965a4c60341cd8d3d90222edf0060a --- /dev/null +++ b/deps/npm/node_modules/iferr/index.js @@ -0,0 +1,49 @@ +// Generated by CoffeeScript 1.7.1 +(function() { + var exports, iferr, printerr, throwerr, tiferr, + __slice = [].slice; + + iferr = function(fail, succ) { + return function() { + var a, err; + err = arguments[0], a = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + if (err != null) { + return fail(err); + } else { + return typeof succ === "function" ? succ.apply(null, a) : void 0; + } + }; + }; + + tiferr = function(fail, succ) { + return iferr(fail, function() { + var a, err; + a = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + try { + return succ.apply(null, a); + } catch (_error) { + err = _error; + return fail(err); + } + }); + }; + + throwerr = iferr.bind(null, function(err) { + throw err; + }); + + printerr = iferr(function(err) { + return console.error(err.stack || err); + }); + + module.exports = exports = iferr; + + exports.iferr = iferr; + + exports.tiferr = tiferr; + + exports.throwerr = throwerr; + + exports.printerr = printerr; + +}).call(this); diff --git a/deps/npm/node_modules/iferr/package.json b/deps/npm/node_modules/iferr/package.json new file mode 100644 index 0000000000000000000000000000000000000000..f746e2862c9125dc41fd1cd924716e5897983c5e --- /dev/null +++ b/deps/npm/node_modules/iferr/package.json @@ -0,0 +1,75 @@ +{ + "_args": [ + [ + "iferr@~0.1.5", + "/Users/rebecca/code/npm" + ] + ], + "_from": "iferr@>=0.1.5 <0.2.0", + "_id": "iferr@0.1.5", + "_inCache": true, + "_location": "/iferr", + "_npmUser": { + "email": "npm@shesek.info", + "name": "nadav" + }, + "_npmVersion": "1.4.4", + "_phantomChildren": {}, + "_requested": { + "name": "iferr", + "raw": "iferr@~0.1.5", + "rawSpec": "~0.1.5", + "scope": null, + "spec": ">=0.1.5 <0.2.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "_shasum": "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501", + "_shrinkwrap": null, + "_spec": "iferr@~0.1.5", + "_where": "/Users/rebecca/code/npm", + "author": { + "name": "Nadav Ivgi" + }, + "bugs": { + "url": "https://github.com/shesek/iferr/issues" + }, + "dependencies": {}, + "description": "Higher-order functions for easier error handling", + "devDependencies": { + "coffee-script": "^1.7.1", + "mocha": "^1.18.2" + }, + "directories": {}, + "dist": { + "shasum": "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501", + "tarball": "http://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" + }, + "homepage": "https://github.com/shesek/iferr", + "keywords": [ + "error", + "errors" + ], + "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "name": "nadav", + "email": "npm@shesek.info" + } + ], + "name": "iferr", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/shesek/iferr" + }, + "scripts": { + "prepublish": "coffee -c index.coffee", + "test": "mocha" + }, + "version": "0.1.5" +} diff --git a/deps/npm/node_modules/iferr/test/index.coffee b/deps/npm/node_modules/iferr/test/index.coffee new file mode 100644 index 0000000000000000000000000000000000000000..be0bc56fdf1b96eebf03d2f0d51a5a04bec895e9 --- /dev/null +++ b/deps/npm/node_modules/iferr/test/index.coffee @@ -0,0 +1,42 @@ +{ iferr, tiferr, throwerr } = require '../index.coffee' +{ equal: eq, throws } = require 'assert' + +invoke_fail = (cb) -> cb new Error 'callback error' +invoke_succ = (cb) -> cb null +throw_error = -> throw new Error 'thrown' + +describe 'iferr', -> + it 'calls the error callback on errors', (done) -> + invoke_fail iferr( + (err) -> + eq err.message, 'callback error' + do done + -> + done new Error 'shouldn\'t call the success callback' + ) + + it 'calls the success callback on success', (done) -> + invoke_succ iferr( + -> done new Error 'shouldn\'t call the error callback' + done + ) + +describe 'tiferr', -> + it 'catches errors in the success callback', (done) -> + invoke_succ tiferr( + (err) -> + eq err.message, 'thrown' + do done + throw_error + ) + +describe 'throwerr', -> + it 'throws errors passed to the callback', (done)-> + try invoke_fail throwerr -> + done 'shouldn\'t call the success callback' + catch err + eq err.message, 'callback error' + do done + + it 'delegates to the success callback otherwise', (done) -> + invoke_succ throwerr done diff --git a/deps/npm/node_modules/iferr/test/mocha.opts b/deps/npm/node_modules/iferr/test/mocha.opts new file mode 100644 index 0000000000000000000000000000000000000000..019defcf152a8416e25492fa9c3053d0ba6fbe86 --- /dev/null +++ b/deps/npm/node_modules/iferr/test/mocha.opts @@ -0,0 +1,2 @@ +--compilers coffee:coffee-script/register +--reporter spec diff --git a/deps/npm/node_modules/inflight/package.json b/deps/npm/node_modules/inflight/package.json index e0b63729cc6dc8d8775a51981ab52b176e596927..7e3c816bd39ea44cc7a29488d1874130ed0725c9 100644 --- a/deps/npm/node_modules/inflight/package.json +++ b/deps/npm/node_modules/inflight/package.json @@ -1,36 +1,87 @@ { - "name": "inflight", - "version": "1.0.4", - "description": "Add callbacks to requests in flight to avoid async duplication", - "main": "inflight.js", + "_args": [ + [ + "inflight@~1.0.4", + "/Users/rebecca/code/npm" + ] + ], + "_from": "inflight@>=1.0.4 <1.1.0", + "_id": "inflight@1.0.4", + "_inCache": true, + "_location": "/inflight", + "_nodeVersion": "0.10.32", + "_npmUser": { + "email": "ogd@aoaioxxysz.net", + "name": "othiym23" + }, + "_npmVersion": "2.1.3", + "_phantomChildren": {}, + "_requested": { + "name": "inflight", + "raw": "inflight@~1.0.4", + "rawSpec": "~1.0.4", + "scope": null, + "spec": ">=1.0.4 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/glob", + "/node-gyp/glob", + "/rimraf/glob" + ], + "_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "_shasum": "6cbb4521ebd51ce0ec0a936bfd7657ef7e9b172a", + "_shrinkwrap": null, + "_spec": "inflight@~1.0.4", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/inflight/issues" + }, "dependencies": { "once": "^1.3.0", "wrappy": "1" }, + "description": "Add callbacks to requests in flight to avoid async duplication", "devDependencies": { "tap": "^0.4.10" }, - "scripts": { - "test": "tap test.js" + "directories": {}, + "dist": { + "shasum": "6cbb4521ebd51ce0ec0a936bfd7657ef7e9b172a", + "tarball": "http://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz" }, + "gitHead": "c7b5531d572a867064d4a1da9e013e8910b7d1ba", + "homepage": "https://github.com/isaacs/inflight", + "license": "ISC", + "main": "inflight.js", + "maintainers": [ + { + "name": "isaacs", + "email": "i@izs.me" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "iarna", + "email": "me@re-becca.org" + } + ], + "name": "inflight", + "optionalDependencies": {}, "repository": { "type": "git", "url": "git://github.com/isaacs/inflight" }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/inflight/issues" + "scripts": { + "test": "tap test.js" }, - "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" + "version": "1.0.4" } diff --git a/deps/npm/node_modules/inherits/package.json b/deps/npm/node_modules/inherits/package.json index a0cd42683614fdbe103bfb09d09c58cfc15d0d04..9407a1962e3b7187f2297068eb052c219b1fbbc0 100644 --- a/deps/npm/node_modules/inherits/package.json +++ b/deps/npm/node_modules/inherits/package.json @@ -1,51 +1,87 @@ { - "name": "inherits", - "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.1", - "keywords": [ - "inheritance", - "class", - "klass", - "oop", - "object-oriented", - "inherits", - "browser", - "browserify" + "_args": [ + [ + "inherits@~2.0.1", + "/Users/rebecca/code/npm" + ] ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/inherits" + "_from": "inherits@>=2.0.1 <2.1.0", + "_id": "inherits@2.0.1", + "_inCache": true, + "_location": "/inherits", + "_npmUser": { + "email": "i@izs.me", + "name": "isaacs" }, - "license": "ISC", - "scripts": { - "test": "node test" + "_npmVersion": "1.3.8", + "_phantomChildren": {}, + "_requested": { + "name": "inherits", + "raw": "inherits@~2.0.1", + "rawSpec": "~2.0.1", + "scope": null, + "spec": ">=2.0.1 <2.1.0", + "type": "range" }, - "readme": "Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom it.\n\nIt's recommended to use this package instead of\n`require('util').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require('inherits');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n superclass\n* new version overwrites current prototype while old one preserves any\n existing fields on it\n", - "readmeFilename": "README.md", + "_requiredBy": [ + "/", + "/bl/readable-stream", + "/block-stream", + "/concat-stream", + "/concat-stream/readable-stream", + "/fstream", + "/fstream-ignore", + "/fstream-npm", + "/glob", + "/node-gyp/glob", + "/node-gyp/tar", + "/readable-stream", + "/rimraf/glob", + "/tar" + ], + "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "_shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1", + "_shrinkwrap": null, + "_spec": "inherits@~2.0.1", + "_where": "/Users/rebecca/code/npm", + "browser": "./inherits_browser.js", "bugs": { "url": "https://github.com/isaacs/inherits/issues" }, - "_id": "inherits@2.0.1", + "dependencies": {}, + "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", + "devDependencies": {}, + "directories": {}, "dist": { "shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1", "tarball": "http://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, - "_from": "inherits@latest", - "_npmVersion": "1.3.8", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, + "keywords": [ + "browser", + "browserify", + "class", + "inheritance", + "inherits", + "klass", + "object-oriented", + "oop" + ], + "license": "ISC", + "main": "./inherits.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1", - "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "homepage": "https://github.com/isaacs/inherits" + "name": "inherits", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/inherits" + }, + "scripts": { + "test": "node test" + }, + "version": "2.0.1" } diff --git a/deps/npm/node_modules/ini/package.json b/deps/npm/node_modules/ini/package.json index e9b9d5396c0e0912402f19310929e09c5f2841c4..ca9e5bfd546f6c96c7d299375910a5b9af6ae649 100644 --- a/deps/npm/node_modules/ini/package.json +++ b/deps/npm/node_modules/ini/package.json @@ -1,56 +1,80 @@ { + "_args": [ + [ + "ini@~1.3.4", + "/Users/rebecca/code/npm" + ] + ], + "_from": "ini@>=1.3.4 <1.4.0", + "_id": "ini@1.3.4", + "_inCache": true, + "_location": "/ini", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "ini", + "raw": "ini@~1.3.4", + "rawSpec": "~1.3.4", + "scope": null, + "spec": ">=1.3.4 <1.4.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/config-chain" + ], + "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "_shasum": "0537cb79daf59b59a1a517dff706c86ec039162e", + "_shrinkwrap": null, + "_spec": "ini@~1.3.4", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "ini", + "bugs": { + "url": "https://github.com/isaacs/ini/issues" + }, + "dependencies": {}, "description": "An ini encoder/decoder for node", - "version": "1.3.4", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/ini.git" + "devDependencies": { + "tap": "^1.2.0" }, - "main": "ini.js", - "scripts": { - "test": "tap test/*.js" + "directories": {}, + "dist": { + "shasum": "0537cb79daf59b59a1a517dff706c86ec039162e", + "tarball": "http://registry.npmjs.org/ini/-/ini-1.3.4.tgz" }, "engines": { "node": "*" }, - "dependencies": {}, - "devDependencies": { - "tap": "^1.2.0" - }, - "license": "ISC", "files": [ "ini.js" ], "gitHead": "4a3001abc4c608e51add9f1d2b2cadf02b8e6dea", - "bugs": { - "url": "https://github.com/isaacs/ini/issues" - }, "homepage": "https://github.com/isaacs/ini#readme", - "_id": "ini@1.3.4", - "_shasum": "0537cb79daf59b59a1a517dff706c86ec039162e", - "_from": "ini@latest", - "_npmVersion": "2.10.1", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "0537cb79daf59b59a1a517dff706c86ec039162e", - "tarball": "http://registry.npmjs.org/ini/-/ini-1.3.4.tgz" - }, + "license": "ISC", + "main": "ini.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "readme": "ERROR: No README data found!" + "name": "ini", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/ini.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.3.4" } diff --git a/deps/npm/node_modules/init-package-json/package.json b/deps/npm/node_modules/init-package-json/package.json index 0cc543ece404f1f04c99c3309e4a75e2efd51be0..a3ee5eea9fed453c61460f35ff3b3562d84550c0 100644 --- a/deps/npm/node_modules/init-package-json/package.json +++ b/deps/npm/node_modules/init-package-json/package.json @@ -1,21 +1,48 @@ { - "name": "init-package-json", - "version": "1.9.1", - "main": "init-package-json.js", - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "init-package-json@~1.9.1", + "/Users/ogd/Documents/projects/npm/npm" + ] + ], + "_from": "init-package-json@>=1.9.1 <1.10.0", + "_id": "init-package-json@1.9.1", + "_inCache": true, + "_location": "/init-package-json", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/init-package-json.git" + "_npmVersion": "2.14.1", + "_phantomChildren": { + "spdx-correct": "1.0.0", + "spdx-expression-parse": "1.0.0" }, + "_requested": { + "name": "init-package-json", + "raw": "init-package-json@~1.9.1", + "rawSpec": "~1.9.1", + "scope": null, + "spec": ">=1.9.1 <1.10.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.1.tgz", + "_shasum": "a28e05b5baeb3363cd473df68d30d3a80523a31c", + "_shrinkwrap": null, + "_spec": "init-package-json@~1.9.1", + "_where": "/Users/ogd/Documents/projects/npm/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "license": "ISC", - "description": "A node module to get your node module started", + "bugs": { + "url": "https://github.com/isaacs/init-package-json/issues" + }, "dependencies": { "glob": "^5.0.3", "npm-package-arg": "^4.0.0", @@ -26,39 +53,32 @@ "validate-npm-package-license": "^3.0.1", "validate-npm-package-name": "^2.0.1" }, + "description": "A node module to get your node module started", "devDependencies": { "npm": "^2", "rimraf": "^2.1.4", "tap": "^1.2.0" }, + "directories": {}, + "dist": { + "shasum": "a28e05b5baeb3363cd473df68d30d3a80523a31c", + "tarball": "http://registry.npmjs.org/init-package-json/-/init-package-json-1.9.1.tgz" + }, + "gitHead": "37c38b4e23189eb5645901fa6851f343fddd4b73", + "homepage": "https://github.com/isaacs/init-package-json#readme", + "installable": true, "keywords": [ + "helper", "init", - "package.json", "package", - "helper", - "wizard", - "wizerd", + "package.json", "prompt", - "start" + "start", + "wizard", + "wizerd" ], - "gitHead": "37c38b4e23189eb5645901fa6851f343fddd4b73", - "bugs": { - "url": "https://github.com/isaacs/init-package-json/issues" - }, - "homepage": "https://github.com/isaacs/init-package-json#readme", - "_id": "init-package-json@1.9.1", - "_shasum": "a28e05b5baeb3363cd473df68d30d3a80523a31c", - "_from": "init-package-json@1.9.1", - "_npmVersion": "2.14.1", - "_nodeVersion": "2.2.2", - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" - }, - "dist": { - "shasum": "a28e05b5baeb3363cd473df68d30d3a80523a31c", - "tarball": "http://registry.npmjs.org/init-package-json/-/init-package-json-1.9.1.tgz" - }, + "license": "ISC", + "main": "init-package-json.js", "maintainers": [ { "name": "isaacs", @@ -77,6 +97,14 @@ "email": "kat@sykosomatic.org" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.1.tgz" + "name": "init-package-json", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/init-package-json.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.9.1" } diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/LICENSE b/deps/npm/node_modules/is-absolute/LICENSE similarity index 100% rename from deps/npm/node_modules/which/node_modules/is-absolute/LICENSE rename to deps/npm/node_modules/is-absolute/LICENSE diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/README.md b/deps/npm/node_modules/is-absolute/README.md similarity index 100% rename from deps/npm/node_modules/which/node_modules/is-absolute/README.md rename to deps/npm/node_modules/is-absolute/README.md diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/index.js b/deps/npm/node_modules/is-absolute/index.js similarity index 100% rename from deps/npm/node_modules/which/node_modules/is-absolute/index.js rename to deps/npm/node_modules/is-absolute/index.js diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/package.json b/deps/npm/node_modules/is-absolute/package.json similarity index 72% rename from deps/npm/node_modules/which/node_modules/is-absolute/package.json rename to deps/npm/node_modules/is-absolute/package.json index 4f954b855f11d495853eb1e35c8767905092960c..28c21dd109aabc92092d7fcc0c51943851acc002 100644 --- a/deps/npm/node_modules/which/node_modules/is-absolute/package.json +++ b/deps/npm/node_modules/is-absolute/package.json @@ -1,39 +1,64 @@ { - "name": "is-absolute", - "description": "Return true if a file path is absolute.", - "version": "0.1.7", - "homepage": "https://github.com/jonschlinkert/is-absolute", + "_args": [ + [ + "is-absolute@^0.1.7", + "/Users/rebecca/code/npm/node_modules/which" + ] + ], + "_from": "is-absolute@>=0.1.7 <0.2.0", + "_id": "is-absolute@0.1.7", + "_inCache": true, + "_location": "/is-absolute", + "_nodeVersion": "0.12.0", + "_npmUser": { + "email": "github@sellside.com", + "name": "jonschlinkert" + }, + "_npmVersion": "2.5.1", + "_phantomChildren": {}, + "_requested": { + "name": "is-absolute", + "raw": "is-absolute@^0.1.7", + "rawSpec": "^0.1.7", + "scope": null, + "spec": ">=0.1.7 <0.2.0", + "type": "range" + }, + "_requiredBy": [ + "/which" + ], + "_resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", + "_shasum": "847491119fccb5fb436217cc737f7faad50f603f", + "_shrinkwrap": null, + "_spec": "is-absolute@^0.1.7", + "_where": "/Users/rebecca/code/npm/node_modules/which", "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" }, + "description": "Return true if a file path is absolute.", "devDependencies": { "mocha": "*" }, + "directories": {}, + "dist": { + "shasum": "847491119fccb5fb436217cc737f7faad50f603f", + "tarball": "http://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "gitHead": "90cca7b671620bf28b778a61fddc8a986a2e1095", + "homepage": "https://github.com/jonschlinkert/is-absolute", "keywords": [ "absolute", "check", @@ -50,27 +75,25 @@ "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" + "license": { + "type": "MIT", + "url": "https://github.com/jonschlinkert/is-absolute/blob/master/LICENSE" }, + "main": "index.js", "maintainers": [ { "name": "jonschlinkert", "email": "github@sellside.com" } ], - "dist": { - "shasum": "847491119fccb5fb436217cc737f7faad50f603f", - "tarball": "http://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz" + "name": "is-absolute", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/jonschlinkert/is-absolute.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "mocha" + }, + "version": "0.1.7" } diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/index.js b/deps/npm/node_modules/is-builtin-module/index.js similarity index 100% rename from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/index.js rename to deps/npm/node_modules/is-builtin-module/index.js diff --git a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/license b/deps/npm/node_modules/is-builtin-module/license similarity index 100% rename from deps/npm/node_modules/osenv/node_modules/os-tmpdir/license rename to deps/npm/node_modules/is-builtin-module/license diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json b/deps/npm/node_modules/is-builtin-module/package.json similarity index 66% rename from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json rename to deps/npm/node_modules/is-builtin-module/package.json index 58feefdfb8884bae636b56636595668090010fe9..925fc9d27d66254519bcc838ab05a9c73a3f4222 100644 --- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json +++ b/deps/npm/node_modules/is-builtin-module/package.json @@ -1,72 +1,97 @@ { - "name": "is-builtin-module", - "version": "1.0.0", - "description": "Check if a string matches the name of a Node.js builtin module", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/sindresorhus/is-builtin-module" + "_args": [ + [ + "is-builtin-module@^1.0.0", + "/Users/rebecca/code/npm/node_modules/normalize-package-data" + ] + ], + "_from": "is-builtin-module@>=1.0.0 <2.0.0", + "_id": "is-builtin-module@1.0.0", + "_inCache": true, + "_location": "/is-builtin-module", + "_nodeVersion": "0.12.2", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.7.4", + "_phantomChildren": {}, + "_requested": { + "name": "is-builtin-module", + "raw": "is-builtin-module@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" }, + "_requiredBy": [ + "/normalize-package-data" + ], + "_resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "_shasum": "540572d34f7ac3119f8f76c30cbc1b1e037affbe", + "_shrinkwrap": null, + "_spec": "is-builtin-module@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/normalize-package-data", "author": { - "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-builtin-module/issues" + }, + "dependencies": { + "builtin-modules": "^1.0.0" + }, + "description": "Check if a string matches the name of a Node.js builtin module", + "devDependencies": { + "ava": "0.0.4" + }, + "directories": {}, + "dist": { + "shasum": "540572d34f7ac3119f8f76c30cbc1b1e037affbe", + "tarball": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "gitHead": "da55ebf031f3864c5d309e25e49ed816957d70a2", + "homepage": "https://github.com/sindresorhus/is-builtin-module", + "installable": true, "keywords": [ - "builtin", + "array", "built-in", + "builtin", "builtins", - "node", - "modules", - "core", "bundled", + "check", + "core", + "detect", + "is", "list", - "array", + "match", + "modules", "names", - "is", - "detect", - "check", - "match" + "node" ], - "dependencies": { - "builtin-modules": "^1.0.0" - }, - "devDependencies": { - "ava": "0.0.4" - }, - "gitHead": "da55ebf031f3864c5d309e25e49ed816957d70a2", - "bugs": { - "url": "https://github.com/sindresorhus/is-builtin-module/issues" - }, - "homepage": "https://github.com/sindresorhus/is-builtin-module", - "_id": "is-builtin-module@1.0.0", - "_shasum": "540572d34f7ac3119f8f76c30cbc1b1e037affbe", - "_from": "is-builtin-module@>=1.0.0 <2.0.0", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "540572d34f7ac3119f8f76c30cbc1b1e037affbe", - "tarball": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" - }, + "license": "MIT", "maintainers": [ { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" + "name": "is-builtin-module", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/is-builtin-module" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.0" } diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/readme.md b/deps/npm/node_modules/is-builtin-module/readme.md similarity index 100% rename from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/readme.md rename to deps/npm/node_modules/is-builtin-module/readme.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/.npmignore b/deps/npm/node_modules/is-my-json-valid/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/.npmignore rename to deps/npm/node_modules/is-my-json-valid/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/.travis.yml b/deps/npm/node_modules/is-my-json-valid/.travis.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/.travis.yml rename to deps/npm/node_modules/is-my-json-valid/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/LICENSE b/deps/npm/node_modules/is-my-json-valid/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/LICENSE rename to deps/npm/node_modules/is-my-json-valid/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/README.md b/deps/npm/node_modules/is-my-json-valid/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/README.md rename to deps/npm/node_modules/is-my-json-valid/README.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/example.js b/deps/npm/node_modules/is-my-json-valid/example.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/example.js rename to deps/npm/node_modules/is-my-json-valid/example.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/formats.js b/deps/npm/node_modules/is-my-json-valid/formats.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/formats.js rename to deps/npm/node_modules/is-my-json-valid/formats.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/index.js b/deps/npm/node_modules/is-my-json-valid/index.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/index.js rename to deps/npm/node_modules/is-my-json-valid/index.js index 7820e6497b5af16b747ab0585642ba5dfdee8755..b01417d3e558e095009886e7d7952b057538b11b 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/index.js +++ b/deps/npm/node_modules/is-my-json-valid/index.js @@ -190,7 +190,7 @@ var compile = function(schema, cache, root, reporter, opts) { validate('for (var %s = %d; %s < %s.length; %s++) {', i, node.items.length, i, name, i) visit(name+'['+i+']', node.additionalItems, reporter, filter) validate('}') - } + } } if (node.format && fmts[node.format]) { @@ -395,7 +395,7 @@ var compile = function(schema, cache, root, reporter, opts) { node.anyOf.forEach(function(sch, i) { if (i === 0) { validate('var %s = errors', prev) - } else { + } else { validate('if (errors !== %s) {', prev) ('errors = %s', prev) } @@ -446,7 +446,7 @@ var compile = function(schema, cache, root, reporter, opts) { if (node.maxProperties !== undefined) { if (type !== 'object') validate('if (%s) {', types.object(name)) - + validate('if (Object.keys(%s).length > %d) {', name, node.maxProperties) error('has more properties than allowed') validate('}') @@ -456,7 +456,7 @@ var compile = function(schema, cache, root, reporter, opts) { if (node.minProperties !== undefined) { if (type !== 'object') validate('if (%s) {', types.object(name)) - + validate('if (Object.keys(%s).length < %d) {', name, node.minProperties) error('has less properties than allowed') validate('}') @@ -466,7 +466,7 @@ var compile = function(schema, cache, root, reporter, opts) { if (node.maxItems !== undefined) { if (type !== 'array') validate('if (%s) {', types.array(name)) - + validate('if (%s.length > %d) {', name, node.maxItems) error('has more items than allowed') validate('}') @@ -476,7 +476,7 @@ var compile = function(schema, cache, root, reporter, opts) { if (node.minItems !== undefined) { if (type !== 'array') validate('if (%s) {', types.array(name)) - + validate('if (%s.length < %d) {', name, node.minItems) error('has less items than allowed') validate('}') diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/package.json b/deps/npm/node_modules/is-my-json-valid/package.json similarity index 66% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/package.json rename to deps/npm/node_modules/is-my-json-valid/package.json index 34a9f77acd52764da796ea881058509c7bde01c2..e217ecb50e4c2a0654e28ac0505796e8c6806bae 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/package.json +++ b/deps/npm/node_modules/is-my-json-valid/package.json @@ -1,52 +1,70 @@ { - "name": "is-my-json-valid", - "version": "2.12.2", - "description": "A JSONSchema validator that uses code generation to be extremely fast", - "main": "index.js", + "_args": [ + [ + "is-my-json-valid@~2.12.2", + "/Users/ogd/Documents/projects/npm/npm" + ] + ], + "_from": "is-my-json-valid@>=2.12.2 <2.13.0", + "_id": "is-my-json-valid@2.12.2", + "_inCache": true, + "_location": "/is-my-json-valid", + "_nodeVersion": "2.5.0", + "_npmUser": { + "email": "mathiasbuus@gmail.com", + "name": "mafintosh" + }, + "_npmVersion": "2.13.4", + "_phantomChildren": {}, + "_requested": { + "name": "is-my-json-valid", + "raw": "is-my-json-valid@~2.12.2", + "rawSpec": "~2.12.2", + "scope": null, + "spec": ">=2.12.2 <2.13.0", + "type": "range" + }, + "_requiredBy": [ + "/eslint", + "/har-validator" + ], + "_resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz", + "_shasum": "0d65859318c846ce3a134402fd3fbc504272ccc9", + "_shrinkwrap": null, + "_spec": "is-my-json-valid@~2.12.2", + "_where": "/Users/ogd/Documents/projects/npm/npm", + "author": { + "name": "Mathias Buus" + }, + "bugs": { + "url": "https://github.com/mafintosh/is-my-json-valid/issues" + }, "dependencies": { "generate-function": "^2.0.0", "generate-object-property": "^1.1.0", "jsonpointer": "2.0.0", "xtend": "^4.0.0" }, + "description": "A JSONSchema validator that uses code generation to be extremely fast", "devDependencies": { "tape": "^2.13.4" }, - "scripts": { - "test": "tape test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/mafintosh/is-my-json-valid.git" + "directories": {}, + "dist": { + "shasum": "0d65859318c846ce3a134402fd3fbc504272ccc9", + "tarball": "http://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz" }, + "gitHead": "48040cf001f661bcaa31f09bdc7fe3939ac2253b", + "homepage": "https://github.com/mafintosh/is-my-json-valid", + "installable": true, "keywords": [ "json", - "schema", + "jsonschema", "orderly", - "jsonschema" + "schema" ], - "author": { - "name": "Mathias Buus" - }, "license": "MIT", - "bugs": { - "url": "https://github.com/mafintosh/is-my-json-valid/issues" - }, - "homepage": "https://github.com/mafintosh/is-my-json-valid", - "gitHead": "48040cf001f661bcaa31f09bdc7fe3939ac2253b", - "_id": "is-my-json-valid@2.12.2", - "_shasum": "0d65859318c846ce3a134402fd3fbc504272ccc9", - "_from": "is-my-json-valid@>=2.12.0 <3.0.0", - "_npmVersion": "2.13.4", - "_nodeVersion": "2.5.0", - "_npmUser": { - "name": "mafintosh", - "email": "mathiasbuus@gmail.com" - }, - "dist": { - "shasum": "0d65859318c846ce3a134402fd3fbc504272ccc9", - "tarball": "http://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz" - }, + "main": "index.js", "maintainers": [ { "name": "mafintosh", @@ -61,7 +79,14 @@ "email": "freeall@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz", - "readme": "ERROR: No README data found!" + "name": "is-my-json-valid", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/mafintosh/is-my-json-valid.git" + }, + "scripts": { + "test": "tape test/*.js" + }, + "version": "2.12.2" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/require.js b/deps/npm/node_modules/is-my-json-valid/require.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/require.js rename to deps/npm/node_modules/is-my-json-valid/require.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/fixtures/cosmic.js b/deps/npm/node_modules/is-my-json-valid/test/fixtures/cosmic.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/fixtures/cosmic.js rename to deps/npm/node_modules/is-my-json-valid/test/fixtures/cosmic.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/additionalItems.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/additionalItems.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/additionalItems.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/additionalItems.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/additionalProperties.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/additionalProperties.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/additionalProperties.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/additionalProperties.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/allOf.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/allOf.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/allOf.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/allOf.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/anyOf.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/anyOf.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/anyOf.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/anyOf.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/bignum.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/bignum.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/bignum.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/bignum.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/default.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/default.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/default.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/default.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/definitions.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/definitions.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/definitions.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/definitions.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/dependencies.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/dependencies.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/dependencies.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/dependencies.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/enum.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/enum.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/enum.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/enum.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/format.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/format.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/format.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/format.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/items.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/items.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/items.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/items.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/maxItems.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/maxItems.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/maxItems.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/maxItems.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/maxLength.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/maxLength.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/maxLength.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/maxLength.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/maxProperties.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/maxProperties.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/maxProperties.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/maxProperties.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/maximum.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/maximum.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/maximum.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/maximum.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/minItems.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/minItems.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/minItems.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/minItems.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/minLength.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/minLength.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/minLength.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/minLength.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/minProperties.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/minProperties.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/minProperties.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/minProperties.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/minimum.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/minimum.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/minimum.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/minimum.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/multipleOf.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/multipleOf.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/multipleOf.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/multipleOf.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/not.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/not.json similarity index 98% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/not.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/not.json index cbb7f46bf8bc5b4890bcae5e27c27599ef1922d2..f66690fe1bbff56f0fc7ceb57c4a66f1975d0bc3 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/not.json +++ b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/not.json @@ -74,7 +74,7 @@ "description": "forbidden property", "schema": { "properties": { - "foo": { + "foo": { "not": {} } } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/nullAndFormat.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/nullAndFormat.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/nullAndFormat.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/nullAndFormat.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/nullAndObject.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/nullAndObject.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/nullAndObject.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/nullAndObject.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/oneOf.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/oneOf.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/oneOf.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/oneOf.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/pattern.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/pattern.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/pattern.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/pattern.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/patternProperties.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/patternProperties.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/patternProperties.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/patternProperties.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/properties.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/properties.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/properties.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/properties.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/ref.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/ref.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/ref.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/ref.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/refRemote.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/refRemote.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/refRemote.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/refRemote.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/required.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/required.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/required.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/required.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/type.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/type.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/type.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/type.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/uniqueItems.json b/deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/uniqueItems.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema-draft4/uniqueItems.json rename to deps/npm/node_modules/is-my-json-valid/test/json-schema-draft4/uniqueItems.json diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema.js b/deps/npm/node_modules/is-my-json-valid/test/json-schema.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/json-schema.js rename to deps/npm/node_modules/is-my-json-valid/test/json-schema.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/misc.js b/deps/npm/node_modules/is-my-json-valid/test/misc.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/test/misc.js rename to deps/npm/node_modules/is-my-json-valid/test/misc.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/.npmignore b/deps/npm/node_modules/is-property/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/.npmignore rename to deps/npm/node_modules/is-property/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/LICENSE b/deps/npm/node_modules/is-property/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/LICENSE rename to deps/npm/node_modules/is-property/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/README.md b/deps/npm/node_modules/is-property/README.md similarity index 93% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/README.md rename to deps/npm/node_modules/is-property/README.md index ef1d00b62f8022ad49b6de9e451834137a5aa57a..9846a8bb9fc51b5e21e73913b595eaba56759c9b 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/README.md +++ b/deps/npm/node_modules/is-property/README.md @@ -16,7 +16,7 @@ Install ------- npm install is-property - + ### `require("is-property")(str)` Checks if str is a property diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/is-property.js b/deps/npm/node_modules/is-property/is-property.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/is-property.js rename to deps/npm/node_modules/is-property/is-property.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/package.json b/deps/npm/node_modules/is-property/package.json similarity index 64% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/package.json rename to deps/npm/node_modules/is-property/package.json index 9f23619477398c7fa3df52a0c78886b2b18d5380..1842f7e7a2498899d95c3f8238b08c3adacce557 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/package.json +++ b/deps/npm/node_modules/is-property/package.json @@ -1,59 +1,82 @@ { - "name": "is-property", - "version": "1.0.2", - "description": "Tests if a JSON property can be accessed using . syntax", - "main": "is-property.js", - "directories": { - "test": "test" + "_args": [ + [ + "is-property@^1.0.0", + "/Users/rebecca/code/npm/node_modules/generate-object-property" + ] + ], + "_from": "is-property@>=1.0.0 <2.0.0", + "_id": "is-property@1.0.2", + "_inCache": true, + "_location": "/is-property", + "_nodeVersion": "0.10.26", + "_npmUser": { + "email": "mikolalysenko@gmail.com", + "name": "mikolalysenko" + }, + "_npmVersion": "2.1.4", + "_phantomChildren": {}, + "_requested": { + "name": "is-property", + "raw": "is-property@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/generate-object-property" + ], + "_resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "_shasum": "57fe1c4e48474edd65b09911f26b1cd4095dda84", + "_shrinkwrap": null, + "_spec": "is-property@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/generate-object-property", + "author": { + "name": "Mikola Lysenko" + }, + "bugs": { + "url": "https://github.com/mikolalysenko/is-property/issues" }, "dependencies": {}, + "description": "Tests if a JSON property can be accessed using . syntax", "devDependencies": { "tape": "~1.0.4" }, - "scripts": { - "test": "tap test/*.js" + "directories": { + "test": "test" }, - "repository": { - "type": "git", - "url": "git://github.com/mikolalysenko/is-property.git" + "dist": { + "shasum": "57fe1c4e48474edd65b09911f26b1cd4095dda84", + "tarball": "http://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" }, + "gitHead": "0a85ea5b6b1264ea1cdecc6e5cf186adbb3ffc50", + "homepage": "https://github.com/mikolalysenko/is-property", "keywords": [ + ".", + "[]", + "bracket", + "dot", "is", - "property", "json", - "dot", - "bracket", - ".", - "[]" + "property" ], - "author": { - "name": "Mikola Lysenko" - }, "license": "MIT", - "gitHead": "0a85ea5b6b1264ea1cdecc6e5cf186adbb3ffc50", - "bugs": { - "url": "https://github.com/mikolalysenko/is-property/issues" - }, - "homepage": "https://github.com/mikolalysenko/is-property", - "_id": "is-property@1.0.2", - "_shasum": "57fe1c4e48474edd65b09911f26b1cd4095dda84", - "_from": "is-property@>=1.0.0 <2.0.0", - "_npmVersion": "2.1.4", - "_nodeVersion": "0.10.26", - "_npmUser": { - "name": "mikolalysenko", - "email": "mikolalysenko@gmail.com" - }, + "main": "is-property.js", "maintainers": [ { "name": "mikolalysenko", "email": "mikolalysenko@gmail.com" } ], - "dist": { - "shasum": "57fe1c4e48474edd65b09911f26b1cd4095dda84", - "tarball": "http://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + "name": "is-property", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/mikolalysenko/is-property.git" }, - "_resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.2" } diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/LICENSE-MIT b/deps/npm/node_modules/is-relative/LICENSE-MIT similarity index 100% rename from deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/LICENSE-MIT rename to deps/npm/node_modules/is-relative/LICENSE-MIT diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/README.md b/deps/npm/node_modules/is-relative/README.md similarity index 100% rename from deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/README.md rename to deps/npm/node_modules/is-relative/README.md diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/index.js b/deps/npm/node_modules/is-relative/index.js similarity index 100% rename from deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/index.js rename to deps/npm/node_modules/is-relative/index.js diff --git a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/package.json b/deps/npm/node_modules/is-relative/package.json similarity index 69% rename from deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/package.json rename to deps/npm/node_modules/is-relative/package.json index d582081dd157ca3612e3f3b2ae89b125f315c0f6..70618409329c92539efc304b907c87adaeb26f33 100644 --- a/deps/npm/node_modules/which/node_modules/is-absolute/node_modules/is-relative/package.json +++ b/deps/npm/node_modules/is-relative/package.json @@ -1,25 +1,63 @@ { - "name": "is-relative", - "description": "Returns `true` if the path appears to be relative.", - "version": "0.1.3", - "homepage": "https://github.com/jonschlinkert/is-relative", + "_args": [ + [ + "is-relative@^0.1.0", + "/Users/rebecca/code/npm/node_modules/is-absolute" + ] + ], + "_from": "is-relative@>=0.1.0 <0.2.0", + "_id": "is-relative@0.1.3", + "_inCache": true, + "_location": "/is-relative", + "_npmUser": { + "email": "github@sellside.com", + "name": "jonschlinkert" + }, + "_npmVersion": "1.4.9", + "_phantomChildren": {}, + "_requested": { + "name": "is-relative", + "raw": "is-relative@^0.1.0", + "rawSpec": "^0.1.0", + "scope": null, + "spec": ">=0.1.0 <0.2.0", + "type": "range" + }, + "_requiredBy": [ + "/is-absolute" + ], + "_resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", + "_shasum": "905fee8ae86f45b3ec614bc3c15c869df0876e82", + "_shrinkwrap": null, + "_spec": "is-relative@^0.1.0", + "_where": "/Users/rebecca/code/npm/node_modules/is-absolute", "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" - } + "dependencies": {}, + "description": "Returns `true` if the path appears to be relative.", + "devDependencies": { + "mocha": "*", + "verb": ">= 0.2.6", + "verb-tag-jscomments": "^0.1.4" + }, + "directories": {}, + "dist": { + "shasum": "905fee8ae86f45b3ec614bc3c15c869df0876e82", + "tarball": "http://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "LICENSE-MIT", + "index.js" ], + "homepage": "https://github.com/jonschlinkert/is-relative", "keywords": [ "absolute", "check", @@ -36,41 +74,27 @@ "uri", "url" ], - "main": "index.js", - "files": [ - "index.js", - "LICENSE-MIT" + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/jonschlinkert/is-relative/blob/master/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" - }, + "main": "index.js", "maintainers": [ { "name": "jonschlinkert", "email": "github@sellside.com" } ], - "dist": { - "shasum": "905fee8ae86f45b3ec614bc3c15c869df0876e82", - "tarball": "http://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz" + "name": "is-relative", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/jonschlinkert/is-relative.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "mocha -R spec" + }, + "version": "0.1.3" } 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/isarray/README.md similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/README.md rename to deps/npm/node_modules/isarray/README.md 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/isarray/build/build.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/build/build.js rename to deps/npm/node_modules/isarray/build/build.js diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/component.json b/deps/npm/node_modules/isarray/component.json similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/component.json rename to deps/npm/node_modules/isarray/component.json 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/isarray/index.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/index.js rename to deps/npm/node_modules/isarray/index.js 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/isarray/package.json similarity index 59% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/package.json rename to deps/npm/node_modules/isarray/package.json index 19228ab6fdcaaf30f7c4d598c8b85563de5e3238..7a923d7baf3bc1272c7d2b564dc0a3a9832f4c4e 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/isarray/package.json @@ -1,53 +1,75 @@ { - "name": "isarray", - "description": "Array#isArray for older browsers", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "homepage": "https://github.com/juliangruber/isarray", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "isarray@0.0.1", + "/Users/rebecca/code/npm/node_modules/readable-stream" + ] + ], + "_from": "isarray@0.0.1", + "_id": "isarray@0.0.1", + "_inCache": true, + "_location": "/isarray", + "_npmUser": { + "email": "julian@juliangruber.com", + "name": "juliangruber" }, - "dependencies": {}, - "devDependencies": { - "tap": "*" + "_npmVersion": "1.2.18", + "_phantomChildren": {}, + "_requested": { + "name": "isarray", + "raw": "isarray@0.0.1", + "rawSpec": "0.0.1", + "scope": null, + "spec": "0.0.1", + "type": "version" }, - "keywords": [ - "browser", - "isarray", - "array" + "_requiredBy": [ + "/bl/readable-stream", + "/concat-stream/readable-stream", + "/readable-stream" ], + "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", + "_shrinkwrap": null, + "_spec": "isarray@0.0.1", + "_where": "/Users/rebecca/code/npm/node_modules/readable-stream", "author": { - "name": "Julian Gruber", "email": "mail@juliangruber.com", + "name": "Julian Gruber", "url": "http://juliangruber.com" }, - "license": "MIT", - "_id": "isarray@0.0.1", + "dependencies": {}, + "description": "Array#isArray for older browsers", + "devDependencies": { + "tap": "*" + }, + "directories": {}, "dist": { "shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", "tarball": "http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, - "_from": "isarray@0.0.1", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, + "homepage": "https://github.com/juliangruber/isarray", + "keywords": [ + "array", + "browser", + "isarray" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "juliangruber", "email": "julian@juliangruber.com" } ], - "directories": {}, - "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" + "name": "isarray", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/isarray.git" + }, + "scripts": { + "test": "tap test/*.js" }, - "readme": "ERROR: No README data found!" + "version": "0.0.1" } diff --git a/deps/npm/node_modules/request/node_modules/isstream/.npmignore b/deps/npm/node_modules/isstream/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/isstream/.npmignore rename to deps/npm/node_modules/isstream/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/isstream/.travis.yml b/deps/npm/node_modules/isstream/.travis.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/isstream/.travis.yml rename to deps/npm/node_modules/isstream/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/isstream/LICENSE.md b/deps/npm/node_modules/isstream/LICENSE.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/isstream/LICENSE.md rename to deps/npm/node_modules/isstream/LICENSE.md diff --git a/deps/npm/node_modules/request/node_modules/isstream/README.md b/deps/npm/node_modules/isstream/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/isstream/README.md rename to deps/npm/node_modules/isstream/README.md diff --git a/deps/npm/node_modules/request/node_modules/isstream/isstream.js b/deps/npm/node_modules/isstream/isstream.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/isstream/isstream.js rename to deps/npm/node_modules/isstream/isstream.js diff --git a/deps/npm/node_modules/request/node_modules/isstream/package.json b/deps/npm/node_modules/isstream/package.json similarity index 62% rename from deps/npm/node_modules/request/node_modules/isstream/package.json rename to deps/npm/node_modules/isstream/package.json index 74e97e608cc11e457ef86c061d86447d1d8f016f..54d8b76a0b6e498d44e4e7f69b85b7882226f0c8 100644 --- a/deps/npm/node_modules/request/node_modules/isstream/package.json +++ b/deps/npm/node_modules/isstream/package.json @@ -1,59 +1,83 @@ { - "name": "isstream", - "version": "0.1.2", - "description": "Determine if an object is a Stream", - "main": "isstream.js", - "scripts": { - "test": "tar --xform 's/^package/readable-stream-1.0/' -zxf readable-stream-1.0.*.tgz && tar --xform 's/^package/readable-stream-1.1/' -zxf readable-stream-1.1.*.tgz && node test.js; rm -rf readable-stream-1.?/" + "_args": [ + [ + "isstream@~0.1.1", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "isstream@>=0.1.1 <0.2.0", + "_id": "isstream@0.1.2", + "_inCache": true, + "_location": "/isstream", + "_nodeVersion": "1.4.3", + "_npmUser": { + "email": "rod@vagg.org", + "name": "rvagg" }, - "repository": { - "type": "git", - "url": "git+https://github.com/rvagg/isstream.git" + "_npmVersion": "2.6.1", + "_phantomChildren": {}, + "_requested": { + "name": "isstream", + "raw": "isstream@~0.1.1", + "rawSpec": "~0.1.1", + "scope": null, + "spec": ">=0.1.1 <0.2.0", + "type": "range" }, - "keywords": [ - "stream", - "type", - "streams", - "readable-stream", - "hippo" + "_requiredBy": [ + "/request" ], + "_resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "_shasum": "47e63f7af55afa6f92e1500e690eb8b8529c099a", + "_shrinkwrap": null, + "_spec": "isstream@~0.1.1", + "_where": "/Users/rebecca/code/npm/node_modules/request", + "author": { + "email": "rod@vagg.org", + "name": "Rod Vagg" + }, + "bugs": { + "url": "https://github.com/rvagg/isstream/issues" + }, + "dependencies": {}, + "description": "Determine if an object is a Stream", "devDependencies": { - "tape": "~2.12.3", "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", "string_decoder": "~0.10.x", - "inherits": "~2.0.1" - }, - "author": { - "name": "Rod Vagg", - "email": "rod@vagg.org" + "tape": "~2.12.3" }, - "license": "MIT", - "bugs": { - "url": "https://github.com/rvagg/isstream/issues" + "directories": {}, + "dist": { + "shasum": "47e63f7af55afa6f92e1500e690eb8b8529c099a", + "tarball": "http://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, - "homepage": "https://github.com/rvagg/isstream", "gitHead": "cd39cba6da939b4fc9110825203adc506422c3dc", - "_id": "isstream@0.1.2", - "_shasum": "47e63f7af55afa6f92e1500e690eb8b8529c099a", - "_from": "isstream@>=0.1.1 <0.2.0", - "_npmVersion": "2.6.1", - "_nodeVersion": "1.4.3", - "_npmUser": { - "name": "rvagg", - "email": "rod@vagg.org" - }, + "homepage": "https://github.com/rvagg/isstream", + "keywords": [ + "hippo", + "readable-stream", + "stream", + "streams", + "type" + ], + "license": "MIT", + "main": "isstream.js", "maintainers": [ { "name": "rvagg", "email": "rod@vagg.org" } ], - "dist": { - "shasum": "47e63f7af55afa6f92e1500e690eb8b8529c099a", - "tarball": "http://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + "name": "isstream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/rvagg/isstream.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tar --xform 's/^package/readable-stream-1.0/' -zxf readable-stream-1.0.*.tgz && tar --xform 's/^package/readable-stream-1.1/' -zxf readable-stream-1.1.*.tgz && node test.js; rm -rf readable-stream-1.?/" + }, + "version": "0.1.2" } diff --git a/deps/npm/node_modules/request/node_modules/isstream/test.js b/deps/npm/node_modules/isstream/test.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/isstream/test.js rename to deps/npm/node_modules/isstream/test.js index 8c950c55e6375f01b196cd492983422620dc509e..881e70b3098ff7d878237d4ec6ee634b259d223c 100644 --- a/deps/npm/node_modules/request/node_modules/isstream/test.js +++ b/deps/npm/node_modules/isstream/test.js @@ -163,6 +163,3 @@ testDuplex(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrou }) }) - - - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/.npmignore b/deps/npm/node_modules/jju/.npmignore similarity index 62% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/.npmignore rename to deps/npm/node_modules/jju/.npmignore index b561496c91d48f020e79137a61c6776d3725e48b..5ae40150eea106cba32ae927da97f50770dc583d 100644 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/.npmignore +++ b/deps/npm/node_modules/jju/.npmignore @@ -1,6 +1,9 @@ package.json node_modules -test/external +test +benchmark +docs examples +/.editorconfig /.eslint* /.travis.yml diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/README.md b/deps/npm/node_modules/jju/README.md similarity index 99% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/README.md rename to deps/npm/node_modules/jju/README.md index 85d52a2dcea0303b404a5a7b94306979dc3c2902..3d61083fb04dd0ff1ed20b4fbb3eec8378b1a2c9 100644 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/README.md +++ b/deps/npm/node_modules/jju/README.md @@ -240,4 +240,3 @@ JSON.stringify will split this into 15 lines, and it's hard to read. Yet again, this feature comes with a performance hit, so if user experience matters to you more than performance, use this module. If your JSON will be consumed by machines, use JSON.stringify instead. As a rule of thumb, if you use "space" argument to indent your JSON, you'd better use this module instead. - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/index.js b/deps/npm/node_modules/jju/index.js similarity index 100% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/index.js rename to deps/npm/node_modules/jju/index.js diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/analyze.js b/deps/npm/node_modules/jju/lib/analyze.js similarity index 99% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/analyze.js rename to deps/npm/node_modules/jju/lib/analyze.js index 9b0f9af01cd9e8db8860285309abab6814ae9afe..39303b0969081c54d006dc75bcc9a82def8506a2 100644 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/analyze.js +++ b/deps/npm/node_modules/jju/lib/analyze.js @@ -89,4 +89,3 @@ module.exports.analyze = function analyzeJSON(input, options) { return result } - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/document.js b/deps/npm/node_modules/jju/lib/document.js similarity index 99% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/document.js rename to deps/npm/node_modules/jju/lib/document.js index cfab8691fc9aba4e470e44289120871aef670692..af1a01a03d062b580412d8fe119cb2076cc53455 100644 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/document.js +++ b/deps/npm/node_modules/jju/lib/document.js @@ -482,4 +482,3 @@ module.exports.Document = Document module.exports.update = function updateJSON(source, new_value, options) { return Document(source, options).update(new_value).toString() } - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/parse.js b/deps/npm/node_modules/jju/lib/parse.js similarity index 99% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/parse.js rename to deps/npm/node_modules/jju/lib/parse.js index 5f9fe998610d0fda32546a9d16f3d9b71d1287a8..2b7894937862d51798be9e729c73feabf98a1b20 100644 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/parse.js +++ b/deps/npm/node_modules/jju/lib/parse.js @@ -749,4 +749,3 @@ module.exports.tokenize = function tokenizeJSON(input, options) { tokens.data = module.exports.parse(input, options) return tokens } - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/stringify.js b/deps/npm/node_modules/jju/lib/stringify.js similarity index 99% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/stringify.js rename to deps/npm/node_modules/jju/lib/stringify.js index ce89d77ee1f43350045711a4e4264ba8116050a6..754019eac551c18f7f534df0570557833809f11f 100644 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/stringify.js +++ b/deps/npm/node_modules/jju/lib/stringify.js @@ -380,4 +380,3 @@ module.exports.stringify = function stringifyJSON(object, options, _space) { return _stringify(object, options, 0, '') } - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/unicode.js b/deps/npm/node_modules/jju/lib/unicode.js similarity index 100% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/unicode.js rename to deps/npm/node_modules/jju/lib/unicode.js diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/utils.js b/deps/npm/node_modules/jju/lib/utils.js similarity index 99% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/utils.js rename to deps/npm/node_modules/jju/lib/utils.js index a8476b6c4630e16d652534c0bb978acfcab77d0a..dd4752c73a4078aa46116a023b6fff12d6a3ee71 100644 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/lib/utils.js +++ b/deps/npm/node_modules/jju/lib/utils.js @@ -43,4 +43,3 @@ module.exports.middleware = function() { throw Error('this function is removed, use express-json5 instead') } } - diff --git a/deps/npm/node_modules/jju/package.json b/deps/npm/node_modules/jju/package.json new file mode 100644 index 0000000000000000000000000000000000000000..215d56ed2c9b9b9f5cf087ff3695f5c2bcd6fc8f --- /dev/null +++ b/deps/npm/node_modules/jju/package.json @@ -0,0 +1,88 @@ +{ + "_args": [ + [ + "jju@^1.1.0", + "/Users/rebecca/code/npm/node_modules/json-parse-helpfulerror" + ] + ], + "_from": "jju@>=1.1.0 <2.0.0", + "_id": "jju@1.2.1", + "_inCache": true, + "_location": "/jju", + "_nodeVersion": "2.2.1", + "_npmUser": { + "email": "alex@kocharin.ru", + "name": "rlidwka" + }, + "_npmVersion": "2.0.1", + "_phantomChildren": {}, + "_requested": { + "name": "jju", + "raw": "jju@^1.1.0", + "rawSpec": "^1.1.0", + "scope": null, + "spec": ">=1.1.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/json-parse-helpfulerror" + ], + "_resolved": "https://registry.npmjs.org/jju/-/jju-1.2.1.tgz", + "_shasum": "edf6ec20d5d668c80c2c00cea63f8a9422a4b528", + "_shrinkwrap": null, + "_spec": "jju@^1.1.0", + "_where": "/Users/rebecca/code/npm/node_modules/json-parse-helpfulerror", + "author": { + "email": "alex@kocharin.ru", + "name": "Alex Kocharin" + }, + "bugs": { + "url": "https://github.com/rlidwka/jju/issues" + }, + "dependencies": {}, + "description": "a set of utilities to work with JSON / JSON5 documents", + "devDependencies": { + "eslint": "~0.4.2", + "js-yaml": ">=3.1.0", + "mocha": ">=1.21.0" + }, + "directories": {}, + "dist": { + "shasum": "edf6ec20d5d668c80c2c00cea63f8a9422a4b528", + "tarball": "http://registry.npmjs.org/jju/-/jju-1.2.1.tgz" + }, + "gitHead": "8b079c1d03af527ab28a47c7b714d6f888abc53d", + "homepage": "http://rlidwka.github.io/jju/", + "installable": true, + "keywords": [ + "data", + "json", + "json5", + "parser", + "serializer" + ], + "license": { + "type": "WTFPL", + "url": "http://www.wtfpl.net/txt/copying/" + }, + "maintainers": [ + { + "name": "rlidwka", + "email": "alex@kocharin.ru" + } + ], + "name": "jju", + "optionalDependencies": {}, + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "repository": { + "type": "git", + "url": "git://github.com/rlidwka/jju" + }, + "scripts": { + "lint": "eslint -c ./.eslint.yaml ./lib", + "test": "mocha test/*.js" + }, + "version": "1.2.1" +} diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.yaml b/deps/npm/node_modules/jju/package.yaml similarity index 97% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.yaml rename to deps/npm/node_modules/jju/package.yaml index cab7b5d0bcad2898a5ae130ae80013f0347d7d0e..4d81c219f19511e7e9d4068c6eb78cac911c3080 100644 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.yaml +++ b/deps/npm/node_modules/jju/package.yaml @@ -3,7 +3,7 @@ # "jju" stands for "json/json5 utils" name: jju -version: 1.2.0 +version: 1.2.1 description: a set of utilities to work with JSON / JSON5 documents author: @@ -43,4 +43,3 @@ publishConfig: license: type: WTFPL url: http://www.wtfpl.net/txt/copying/ - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/.editorconfig b/deps/npm/node_modules/json-parse-helpfulerror/.editorconfig similarity index 100% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/.editorconfig rename to deps/npm/node_modules/json-parse-helpfulerror/.editorconfig diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/.npmignore b/deps/npm/node_modules/json-parse-helpfulerror/.npmignore similarity index 100% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/.npmignore rename to deps/npm/node_modules/json-parse-helpfulerror/.npmignore diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/LICENSE b/deps/npm/node_modules/json-parse-helpfulerror/LICENSE similarity index 99% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/LICENSE rename to deps/npm/node_modules/json-parse-helpfulerror/LICENSE index e637724b3bc595acaa569fcbeba2d459f3ac0f30..c3d2eb3550079ba3a613ba7c40e8f21d828f802b 100644 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/LICENSE +++ b/deps/npm/node_modules/json-parse-helpfulerror/LICENSE @@ -19,4 +19,3 @@ 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/read-package-json/node_modules/json-parse-helpfulerror/README.md b/deps/npm/node_modules/json-parse-helpfulerror/README.md similarity index 100% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/README.md rename to deps/npm/node_modules/json-parse-helpfulerror/README.md diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/index.js b/deps/npm/node_modules/json-parse-helpfulerror/index.js similarity index 100% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/index.js rename to deps/npm/node_modules/json-parse-helpfulerror/index.js diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/package.json b/deps/npm/node_modules/json-parse-helpfulerror/package.json similarity index 58% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/package.json rename to deps/npm/node_modules/json-parse-helpfulerror/package.json index 2a5a98fc32a02c7626f788cbb558824e0703b411..6ab518ee98694895f848dc8d864ce252d199fdb9 100644 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/package.json +++ b/deps/npm/node_modules/json-parse-helpfulerror/package.json @@ -1,61 +1,84 @@ { - "name": "json-parse-helpfulerror", - "version": "1.0.3", - "description": "A drop-in replacement for JSON.parse that uses `jju` to give helpful errors", - "main": "index.js", - "scripts": { - "test": "lab -c", - "lint": "jslint --edition=latest --terse *.js" + "_args": [ + [ + "json-parse-helpfulerror@^1.0.2", + "/Users/rebecca/code/npm/node_modules/read-package-json" + ] + ], + "_from": "json-parse-helpfulerror@>=1.0.2 <2.0.0", + "_id": "json-parse-helpfulerror@1.0.3", + "_inCache": true, + "_location": "/json-parse-helpfulerror", + "_nodeVersion": "0.10.35", + "_npmUser": { + "email": "smikes@cubane.com", + "name": "smikes" }, - "repository": { - "type": "git", - "url": "git+https://github.com/smikes/json-parse-helpfulerror.git" + "_npmVersion": "2.1.16", + "_phantomChildren": {}, + "_requested": { + "name": "json-parse-helpfulerror", + "raw": "json-parse-helpfulerror@^1.0.2", + "rawSpec": "^1.0.2", + "scope": null, + "spec": ">=1.0.2 <2.0.0", + "type": "range" }, - "keywords": [ - "json", - "parse", - "line", - "doublequote", - "error" + "_requiredBy": [ + "/read-package-json" ], + "_resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "_shasum": "13f14ce02eed4e981297b64eb9e3b932e2dd13dc", + "_shrinkwrap": null, + "_spec": "json-parse-helpfulerror@^1.0.2", + "_where": "/Users/rebecca/code/npm/node_modules/read-package-json", "author": { - "name": "Sam Mikes", - "email": "smikes@cubane.com" + "email": "smikes@cubane.com", + "name": "Sam Mikes" }, - "license": "MIT", "bugs": { "url": "https://github.com/smikes/json-parse-helpfulerror/issues" }, - "homepage": "https://github.com/smikes/json-parse-helpfulerror", + "dependencies": { + "jju": "^1.1.0" + }, + "description": "A drop-in replacement for JSON.parse that uses `jju` to give helpful errors", "devDependencies": { "code": "^1.2.1", "jslint": "^0.7.1", "lab": "^5.1.1" }, - "dependencies": { - "jju": "^1.1.0" + "directories": {}, + "dist": { + "shasum": "13f14ce02eed4e981297b64eb9e3b932e2dd13dc", + "tarball": "http://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz" }, "gitHead": "eedb116ec96b5c479be3919b526d6de0a521be5e", - "_id": "json-parse-helpfulerror@1.0.3", - "_shasum": "13f14ce02eed4e981297b64eb9e3b932e2dd13dc", - "_from": "json-parse-helpfulerror@>=1.0.2 <2.0.0", - "_npmVersion": "2.1.16", - "_nodeVersion": "0.10.35", - "_npmUser": { - "name": "smikes", - "email": "smikes@cubane.com" - }, + "homepage": "https://github.com/smikes/json-parse-helpfulerror", + "keywords": [ + "doublequote", + "error", + "json", + "line", + "parse" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "smikes", "email": "smikes@cubane.com" } ], - "dist": { - "shasum": "13f14ce02eed4e981297b64eb9e3b932e2dd13dc", - "tarball": "http://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz" + "name": "json-parse-helpfulerror", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/smikes/json-parse-helpfulerror.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "lint": "jslint --edition=latest --terse *.js", + "test": "lab -c" + }, + "version": "1.0.3" } diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/test/test.js b/deps/npm/node_modules/json-parse-helpfulerror/test/test.js similarity index 100% rename from deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/test/test.js rename to deps/npm/node_modules/json-parse-helpfulerror/test/test.js diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/.npmignore b/deps/npm/node_modules/json-stringify-safe/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/json-stringify-safe/.npmignore rename to deps/npm/node_modules/json-stringify-safe/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md b/deps/npm/node_modules/json-stringify-safe/CHANGELOG.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md rename to deps/npm/node_modules/json-stringify-safe/CHANGELOG.md diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE b/deps/npm/node_modules/json-stringify-safe/LICENSE similarity index 100% rename from deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE rename to deps/npm/node_modules/json-stringify-safe/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/Makefile b/deps/npm/node_modules/json-stringify-safe/Makefile similarity index 100% rename from deps/npm/node_modules/request/node_modules/json-stringify-safe/Makefile rename to deps/npm/node_modules/json-stringify-safe/Makefile diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/README.md b/deps/npm/node_modules/json-stringify-safe/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/json-stringify-safe/README.md rename to deps/npm/node_modules/json-stringify-safe/README.md diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/package.json b/deps/npm/node_modules/json-stringify-safe/package.json similarity index 68% rename from deps/npm/node_modules/request/node_modules/json-stringify-safe/package.json rename to deps/npm/node_modules/json-stringify-safe/package.json index e3cbf9a7471c7d164afd546ab9bb9b123e8760d5..812c93422961b0cc7e5d2c47b95907afc379d15d 100644 --- a/deps/npm/node_modules/request/node_modules/json-stringify-safe/package.json +++ b/deps/npm/node_modules/json-stringify-safe/package.json @@ -1,22 +1,45 @@ { - "name": "json-stringify-safe", - "version": "5.0.1", - "description": "Like JSON.stringify, but doesn't blow up on circular refs.", - "keywords": [ - "json", - "stringify", - "circular", - "safe" + "_args": [ + [ + "json-stringify-safe@~5.0.0", + "/Users/rebecca/code/npm/node_modules/request" + ] ], - "homepage": "https://github.com/isaacs/json-stringify-safe", - "bugs": { - "url": "https://github.com/isaacs/json-stringify-safe/issues" + "_from": "json-stringify-safe@>=5.0.0 <5.1.0", + "_id": "json-stringify-safe@5.0.1", + "_inCache": true, + "_location": "/json-stringify-safe", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" }, + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "json-stringify-safe", + "raw": "json-stringify-safe@~5.0.0", + "rawSpec": "~5.0.0", + "scope": null, + "spec": ">=5.0.0 <5.1.0", + "type": "range" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "_shasum": "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb", + "_shrinkwrap": null, + "_spec": "json-stringify-safe@~5.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me" }, + "bugs": { + "url": "https://github.com/isaacs/json-stringify-safe/issues" + }, "contributors": [ { "name": "Andri Möll", @@ -24,34 +47,28 @@ "url": "http://themoll.com" } ], - "license": "ISC", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/json-stringify-safe.git" - }, - "main": "stringify.js", - "scripts": { - "test": "node test.js" - }, + "dependencies": {}, + "description": "Like JSON.stringify, but doesn't blow up on circular refs.", "devDependencies": { "mocha": ">= 2.1.0 < 3", "must": ">= 0.12 < 0.13", "sinon": ">= 1.12.2 < 2" }, - "gitHead": "3890dceab3ad14f8701e38ca74f38276abc76de5", - "_id": "json-stringify-safe@5.0.1", - "_shasum": "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb", - "_from": "json-stringify-safe@>=5.0.0 <5.1.0", - "_npmVersion": "2.10.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, + "directories": {}, "dist": { "shasum": "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb", "tarball": "http://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, + "gitHead": "3890dceab3ad14f8701e38ca74f38276abc76de5", + "homepage": "https://github.com/isaacs/json-stringify-safe", + "keywords": [ + "circular", + "json", + "safe", + "stringify" + ], + "license": "ISC", + "main": "stringify.js", "maintainers": [ { "name": "isaacs", @@ -62,7 +79,14 @@ "email": "andri@dot.ee" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "readme": "ERROR: No README data found!" + "name": "json-stringify-safe", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/json-stringify-safe.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "5.0.1" } diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js b/deps/npm/node_modules/json-stringify-safe/stringify.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js rename to deps/npm/node_modules/json-stringify-safe/stringify.js diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts b/deps/npm/node_modules/json-stringify-safe/test/mocha.opts similarity index 100% rename from deps/npm/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts rename to deps/npm/node_modules/json-stringify-safe/test/mocha.opts diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js b/deps/npm/node_modules/json-stringify-safe/test/stringify_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js rename to deps/npm/node_modules/json-stringify-safe/test/stringify_test.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/.travis.yml b/deps/npm/node_modules/jsonpointer/.travis.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/.travis.yml rename to deps/npm/node_modules/jsonpointer/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/README.md b/deps/npm/node_modules/jsonpointer/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/README.md rename to deps/npm/node_modules/jsonpointer/README.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/jsonpointer.js b/deps/npm/node_modules/jsonpointer/jsonpointer.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/jsonpointer.js rename to deps/npm/node_modules/jsonpointer/jsonpointer.js diff --git a/deps/npm/node_modules/jsonpointer/package.json b/deps/npm/node_modules/jsonpointer/package.json new file mode 100644 index 0000000000000000000000000000000000000000..1a2dab559607094ab137d7e6a43e12253e59b290 --- /dev/null +++ b/deps/npm/node_modules/jsonpointer/package.json @@ -0,0 +1,93 @@ +{ + "_args": [ + [ + "jsonpointer@2.0.0", + "/Users/ogd/Documents/projects/npm/npm/node_modules/is-my-json-valid" + ] + ], + "_from": "jsonpointer@2.0.0", + "_id": "jsonpointer@2.0.0", + "_inCache": true, + "_location": "/jsonpointer", + "_nodeVersion": "0.10.36", + "_npmUser": { + "email": "marc.brookman@gmail.com", + "name": "marcbachmann" + }, + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "jsonpointer", + "raw": "jsonpointer@2.0.0", + "rawSpec": "2.0.0", + "scope": null, + "spec": "2.0.0", + "type": "version" + }, + "_requiredBy": [ + "/is-my-json-valid", + "/npm-registry-couchapp/is-my-json-valid" + ], + "_resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz", + "_shasum": "3af1dd20fe85463910d469a385e33017d2a030d9", + "_shrinkwrap": null, + "_spec": "jsonpointer@2.0.0", + "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/is-my-json-valid", + "author": { + "email": "jan@apache.org", + "name": "Jan Lehnardt" + }, + "bugs": { + "url": "http://github.com/janl/node-jsonpointer/issues" + }, + "contributors": [ + { + "name": "Joe Hildebrand", + "email": "joe-github@cursive.net" + } + ], + "dependencies": {}, + "description": "Simple JSON Addressing.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "3af1dd20fe85463910d469a385e33017d2a030d9", + "tarball": "http://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "engines": { + "node": ">=0.6.0" + }, + "gitHead": "26ea4a5c0fcb6d9a2e87f733403791dd05637af8", + "homepage": "https://github.com/janl/node-jsonpointer#readme", + "installable": true, + "license": "MIT", + "main": "./jsonpointer", + "maintainers": [ + { + "name": "jan", + "email": "jan@apache.org" + }, + { + "name": "marcbachmann", + "email": "marc.brookman@gmail.com" + } + ], + "name": "jsonpointer", + "optionalDependencies": {}, + "readme": "# JSON Pointer for nodejs\n\nThis is an implementation of [JSON Pointer](http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-08).\n\n## Usage\n\n var jsonpointer = require(\"jsonpointer\");\n var obj = { foo: 1, bar: { baz: 2}, qux: [3, 4, 5]};\n var one = jsonpointer.get(obj, \"/foo\");\n var two = jsonpointer.get(obj, \"/bar/baz\");\n var three = jsonpointer.get(obj, \"/qux/0\");\n var four = jsonpointer.get(obj, \"/qux/1\");\n var five = jsonpointer.get(obj, \"/qux/2\");\n var notfound = jsonpointer.get(obj, \"/quo\"); // returns null\n\n jsonpointer.set(obj, \"/foo\", 6); // obj.foo = 6;\n\n## Testing\n\n $ node test.js\n All tests pass.\n $\n\n[![Build Status](https://travis-ci.org/janl/node-jsonpointer.png?branch=master)](https://travis-ci.org/janl/node-jsonpointer)\n\n## Author\n\n(c) 2011 Jan Lehnardt \n\n## License\n\nMIT License.\n", + "readmeFilename": "README.md", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/janl/node-jsonpointer.git" + }, + "scripts": { + "test": "node test.js" + }, + "tags": [ + "simple", + "util", + "util", + "utility" + ], + "version": "2.0.0" +} diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/test.js b/deps/npm/node_modules/jsonpointer/test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/test.js rename to deps/npm/node_modules/jsonpointer/test.js diff --git a/deps/npm/node_modules/lockfile/package.json b/deps/npm/node_modules/lockfile/package.json index cd18aa2ed520fe7cc56500b65476a12005cef3c2..43a798e6e1ade2cc9ce2b870f3e27923b7ea3315 100644 --- a/deps/npm/node_modules/lockfile/package.json +++ b/deps/npm/node_modules/lockfile/package.json @@ -1,54 +1,69 @@ { - "name": "lockfile", - "version": "1.0.1", - "main": "lockfile.js", - "directories": { - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "~0.2.5", - "touch": "0" - }, - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "lockfile@~1.0.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "lockfile@>=1.0.1 <1.1.0", + "_id": "lockfile@1.0.1", + "_inCache": true, + "_location": "/lockfile", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/lockfile.git" + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "lockfile", + "raw": "lockfile@~1.0.1", + "rawSpec": "~1.0.1", + "scope": null, + "spec": ">=1.0.1 <1.1.0", + "type": "range" }, - "keywords": [ - "lockfile", - "lock", - "file", - "fs", - "O_EXCL" + "_requiredBy": [ + "/" ], + "_resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.1.tgz", + "_shasum": "9d353ecfe3f54d150bb57f89d51746935a39c4f5", + "_shrinkwrap": null, + "_spec": "lockfile@~1.0.1", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "license": "ISC", - "description": "A very polite lock file utility, which endeavors to not litter, and to wait patiently for others.", - "gitHead": "9d338ed8e3e3a166955d051f6b5fb6bb1e563ca8", "bugs": { "url": "https://github.com/isaacs/lockfile/issues" }, - "homepage": "https://github.com/isaacs/lockfile#readme", - "_id": "lockfile@1.0.1", - "_shasum": "9d353ecfe3f54d150bb57f89d51746935a39c4f5", - "_from": "lockfile@>=1.0.0 <1.1.0", - "_npmVersion": "2.10.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" + "dependencies": {}, + "description": "A very polite lock file utility, which endeavors to not litter, and to wait patiently for others.", + "devDependencies": { + "tap": "~0.2.5", + "touch": "0" + }, + "directories": { + "test": "test" }, "dist": { "shasum": "9d353ecfe3f54d150bb57f89d51746935a39c4f5", "tarball": "http://registry.npmjs.org/lockfile/-/lockfile-1.0.1.tgz" }, + "gitHead": "9d338ed8e3e3a166955d051f6b5fb6bb1e563ca8", + "homepage": "https://github.com/isaacs/lockfile#readme", + "keywords": [ + "O_EXCL", + "file", + "fs", + "lock", + "lockfile" + ], + "license": "ISC", + "main": "lockfile.js", "maintainers": [ { "name": "trevorburnham", @@ -59,5 +74,14 @@ "email": "i@izs.me" } ], - "_resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.1.tgz" + "name": "lockfile", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/lockfile.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._basetostring/LICENSE.txt b/deps/npm/node_modules/lodash._arraycopy/LICENSE.txt similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._basetostring/LICENSE.txt rename to deps/npm/node_modules/lodash._arraycopy/LICENSE.txt diff --git a/deps/npm/node_modules/lodash._arraycopy/README.md b/deps/npm/node_modules/lodash._arraycopy/README.md new file mode 100644 index 0000000000000000000000000000000000000000..16ee6fd242807c84509ebacd8810bbf7cccdc2f3 --- /dev/null +++ b/deps/npm/node_modules/lodash._arraycopy/README.md @@ -0,0 +1,20 @@ +# lodash._arraycopy v3.0.0 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `arrayCopy` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._arraycopy +``` + +In Node.js/io.js: + +```js +var arrayCopy = require('lodash._arraycopy'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.0.0-npm-packages/lodash._arraycopy) for more details. diff --git a/deps/npm/node_modules/lodash._arraycopy/index.js b/deps/npm/node_modules/lodash._arraycopy/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b9abb2253a1f57b9b140fad1ba1989587fca324f --- /dev/null +++ b/deps/npm/node_modules/lodash._arraycopy/index.js @@ -0,0 +1,29 @@ +/** + * lodash 3.0.0 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.7.0 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function arrayCopy(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} + +module.exports = arrayCopy; diff --git a/deps/npm/node_modules/lodash._arraycopy/package.json b/deps/npm/node_modules/lodash._arraycopy/package.json new file mode 100644 index 0000000000000000000000000000000000000000..acad533065ff8d4f37966f7917821990ae942aa9 --- /dev/null +++ b/deps/npm/node_modules/lodash._arraycopy/package.json @@ -0,0 +1,97 @@ +{ + "_args": [ + [ + "lodash._arraycopy@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._baseclone" + ] + ], + "_from": "lodash._arraycopy@>=3.0.0 <4.0.0", + "_id": "lodash._arraycopy@3.0.0", + "_inCache": true, + "_location": "/lodash._arraycopy", + "_nodeVersion": "0.10.35", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.3.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._arraycopy", + "raw": "lodash._arraycopy@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._baseclone" + ], + "_resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz", + "_shasum": "76e7b7c1f1fb92547374878a562ed06a3e50f6e1", + "_shrinkwrap": null, + "_spec": "lodash._arraycopy@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseclone", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s internal `arrayCopy` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "76e7b7c1f1fb92547374878a562ed06a3e50f6e1", + "tarball": "http://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + } + ], + "name": "lodash._arraycopy", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/lodash/lodash" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.0" +} diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE.txt b/deps/npm/node_modules/lodash._arrayeach/LICENSE.txt similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/node_modules/lodash.repeat/LICENSE.txt rename to deps/npm/node_modules/lodash._arrayeach/LICENSE.txt diff --git a/deps/npm/node_modules/lodash._arrayeach/README.md b/deps/npm/node_modules/lodash._arrayeach/README.md new file mode 100644 index 0000000000000000000000000000000000000000..1f3236ba0338f9bd5a3f3da07b657dda6dbb4c3f --- /dev/null +++ b/deps/npm/node_modules/lodash._arrayeach/README.md @@ -0,0 +1,20 @@ +# lodash._arrayeach v3.0.0 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `arrayEach` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._arrayeach +``` + +In Node.js/io.js: + +```js +var arrayEach = require('lodash._arrayeach'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.0.0-npm-packages/lodash._arrayeach) for more details. diff --git a/deps/npm/node_modules/lodash._arrayeach/index.js b/deps/npm/node_modules/lodash._arrayeach/index.js new file mode 100644 index 0000000000000000000000000000000000000000..7b31bcdb2534ef7826e6daf7db27536df7fe40b6 --- /dev/null +++ b/deps/npm/node_modules/lodash._arrayeach/index.js @@ -0,0 +1,31 @@ +/** + * lodash 3.0.0 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.7.0 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** + * A specialized version of `_.forEach` for arrays without support for callback + * shorthands or `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ +function arrayEach(array, iteratee) { + var index = -1, + length = array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; +} + +module.exports = arrayEach; diff --git a/deps/npm/node_modules/lodash._arrayeach/package.json b/deps/npm/node_modules/lodash._arrayeach/package.json new file mode 100644 index 0000000000000000000000000000000000000000..7036298dbf9013bd18b718154ebaa9adc03f5159 --- /dev/null +++ b/deps/npm/node_modules/lodash._arrayeach/package.json @@ -0,0 +1,97 @@ +{ + "_args": [ + [ + "lodash._arrayeach@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._baseclone" + ] + ], + "_from": "lodash._arrayeach@>=3.0.0 <4.0.0", + "_id": "lodash._arrayeach@3.0.0", + "_inCache": true, + "_location": "/lodash._arrayeach", + "_nodeVersion": "0.10.35", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.3.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._arrayeach", + "raw": "lodash._arrayeach@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._baseclone" + ], + "_resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz", + "_shasum": "bab156b2a90d3f1bbd5c653403349e5e5933ef9e", + "_shrinkwrap": null, + "_spec": "lodash._arrayeach@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseclone", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s internal `arrayEach` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "bab156b2a90d3f1bbd5c653403349e5e5933ef9e", + "tarball": "http://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + } + ], + "name": "lodash._arrayeach", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/lodash/lodash" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.0" +} diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/LICENSE.txt b/deps/npm/node_modules/lodash._baseassign/LICENSE.txt similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/LICENSE.txt rename to deps/npm/node_modules/lodash._baseassign/LICENSE.txt diff --git a/deps/npm/node_modules/lodash._baseassign/README.md b/deps/npm/node_modules/lodash._baseassign/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0aa23093730de6a92b923fa79460d3add29e776d --- /dev/null +++ b/deps/npm/node_modules/lodash._baseassign/README.md @@ -0,0 +1,20 @@ +# lodash._baseassign v3.2.0 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseAssign` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._baseassign +``` + +In Node.js/io.js: + +```js +var baseAssign = require('lodash._baseassign'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.2.0-npm-packages/lodash._baseassign) for more details. diff --git a/deps/npm/node_modules/lodash._baseassign/index.js b/deps/npm/node_modules/lodash._baseassign/index.js new file mode 100644 index 0000000000000000000000000000000000000000..f5612c85081563ca33523e691df71c3d62aaf067 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseassign/index.js @@ -0,0 +1,27 @@ +/** + * lodash 3.2.0 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var baseCopy = require('lodash._basecopy'), + keys = require('lodash.keys'); + +/** + * The base implementation of `_.assign` without support for argument juggling, + * multiple sources, and `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssign(object, source) { + return source == null + ? object + : baseCopy(source, keys(source), object); +} + +module.exports = baseAssign; diff --git a/deps/npm/node_modules/lodash._baseassign/package.json b/deps/npm/node_modules/lodash._baseassign/package.json new file mode 100644 index 0000000000000000000000000000000000000000..5c5c487719127c67bcce965091d7c9b60a339a84 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseassign/package.json @@ -0,0 +1,116 @@ +{ + "_args": [ + [ + "lodash._baseassign@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._baseclone" + ] + ], + "_from": "lodash._baseassign@>=3.0.0 <4.0.0", + "_id": "lodash._baseassign@3.2.0", + "_inCache": true, + "_location": "/lodash._baseassign", + "_nodeVersion": "0.12.3", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._baseassign", + "raw": "lodash._baseassign@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._baseclone" + ], + "_resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "_shasum": "8c38a099500f215ad09e59f1722fd0c52bfe0a4e", + "_shrinkwrap": null, + "_spec": "lodash._baseassign@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseclone", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" + }, + "description": "The modern build of lodash’s internal `baseAssign` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "8c38a099500f215ad09e59f1722fd0c52bfe0a4e", + "tarball": "http://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + } + ], + "name": "lodash._baseassign", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.2.0" +} diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE.txt b/deps/npm/node_modules/lodash._basecallback/LICENSE similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/LICENSE.txt rename to deps/npm/node_modules/lodash._basecallback/LICENSE diff --git a/deps/npm/node_modules/lodash._basecallback/README.md b/deps/npm/node_modules/lodash._basecallback/README.md new file mode 100644 index 0000000000000000000000000000000000000000..11f1a64b71187a449a63a6a05ff0438426ab31ca --- /dev/null +++ b/deps/npm/node_modules/lodash._basecallback/README.md @@ -0,0 +1,20 @@ +# lodash._basecallback v3.3.1 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseCallback` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._basecallback +``` + +In Node.js/io.js: + +```js +var baseCallback = require('lodash._basecallback'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.3.1-npm-packages/lodash._basecallback) for more details. diff --git a/deps/npm/node_modules/lodash._basecallback/index.js b/deps/npm/node_modules/lodash._basecallback/index.js new file mode 100644 index 0000000000000000000000000000000000000000..cd44f79ee883aeae35cbceb44b05fa9fee564d21 --- /dev/null +++ b/deps/npm/node_modules/lodash._basecallback/index.js @@ -0,0 +1,422 @@ +/** + * lodash 3.3.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var baseIsEqual = require('lodash._baseisequal'), + bindCallback = require('lodash._bindcallback'), + isArray = require('lodash.isarray'), + pairs = require('lodash.pairs'); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/, + rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `value` to a string if it's not one. An empty string is returned + * for `null` or `undefined` values. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + return value == null ? '' : (value + ''); +} + +/** + * The base implementation of `_.callback` which supports specifying the + * number of arguments to provide to `func`. + * + * @private + * @param {*} [func=_.identity] The value to convert to a callback. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ +function baseCallback(func, thisArg, argCount) { + var type = typeof func; + if (type == 'function') { + return thisArg === undefined + ? func + : bindCallback(func, thisArg, argCount); + } + if (func == null) { + return identity; + } + if (type == 'object') { + return baseMatches(func); + } + return thisArg === undefined + ? property(func) + : baseMatchesProperty(func, thisArg); +} + +/** + * The base implementation of `get` without support for string paths + * and default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path of the property to get. + * @param {string} [pathKey] The key representation of path. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path, pathKey) { + if (object == null) { + return; + } + if (pathKey !== undefined && pathKey in toObject(object)) { + path = [pathKey]; + } + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[path[index++]]; + } + return (index && index == length) ? object : undefined; +} + +/** + * The base implementation of `_.isMatch` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} matchData The propery names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparing objects. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ +function baseIsMatch(object, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = toObject(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var result = customizer ? customizer(objValue, srcValue, key) : undefined; + if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) { + return false; + } + } + } + return true; +} + +/** + * The base implementation of `_.matches` which does not clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + var key = matchData[0][0], + value = matchData[0][1]; + + return function(object) { + if (object == null) { + return false; + } + return object[key] === value && (value !== undefined || (key in toObject(object))); + }; + } + return function(object) { + return baseIsMatch(object, matchData); + }; +} + +/** + * The base implementation of `_.matchesProperty` which does not clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to compare. + * @returns {Function} Returns the new function. + */ +function baseMatchesProperty(path, srcValue) { + var isArr = isArray(path), + isCommon = isKey(path) && isStrictComparable(srcValue), + pathKey = (path + ''); + + path = toPath(path); + return function(object) { + if (object == null) { + return false; + } + var key = pathKey; + object = toObject(object); + if ((isArr || !isCommon) && !(key in object)) { + object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); + if (object == null) { + return false; + } + key = last(path); + object = toObject(object); + } + return object[key] === srcValue + ? (srcValue !== undefined || (key in object)) + : baseIsEqual(srcValue, object[key], undefined, true); + }; +} + +/** + * 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]; + }; +} + +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. + */ +function basePropertyDeep(path) { + var pathKey = (path + ''); + path = toPath(path); + return function(object) { + return baseGet(object, path, pathKey); + }; +} + +/** + * 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; + + start = start == null ? 0 : (+start || 0); + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = (end === undefined || end > length) ? length : (+end || 0); + 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; +} + +/** + * Gets the propery names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ +function getMatchData(object) { + var result = pairs(object), + length = result.length; + + while (length--) { + result[length][2] = isStrictComparable(result[length][1]); + } + return result; +} + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + var type = typeof value; + if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') { + return true; + } + if (isArray(value)) { + return false; + } + var result = !reIsDeepProp.test(value); + return result || (object != null && value in toObject(object)); +} + +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ +function isStrictComparable(value) { + return value === value && !isObject(value); +} + +/** + * Converts `value` to an object if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Object} Returns the object. + */ +function toObject(value) { + return isObject(value) ? value : Object(value); +} + +/** + * Converts `value` to property path array if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Array} Returns the property path array. + */ +function toPath(value) { + if (isArray(value)) { + return value; + } + var result = []; + baseToString(value).replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +} + +/** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ +function last(array) { + var length = array ? array.length : 0; + return length ? array[length - 1] : undefined; +} + +/** + * 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('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * This method returns the first argument provided to it. + * + * @static + * @memberOf _ + * @category Utility + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'user': 'fred' }; + * + * _.identity(object) === object; + * // => true + */ +function identity(value) { + return value; +} + +/** + * Creates a function that returns the property value at `path` on a + * given object. + * + * @static + * @memberOf _ + * @category Utility + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. + * @example + * + * var objects = [ + * { 'a': { 'b': { 'c': 2 } } }, + * { 'a': { 'b': { 'c': 1 } } } + * ]; + * + * _.map(objects, _.property('a.b.c')); + * // => [2, 1] + * + * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c'); + * // => [1, 2] + */ +function property(path) { + return isKey(path) ? baseProperty(path) : basePropertyDeep(path); +} + +module.exports = baseCallback; diff --git a/deps/npm/node_modules/lodash._basecallback/package.json b/deps/npm/node_modules/lodash._basecallback/package.json new file mode 100644 index 0000000000000000000000000000000000000000..26f29994f7a06034ba290a4a15bb4e3dd825c309 --- /dev/null +++ b/deps/npm/node_modules/lodash._basecallback/package.json @@ -0,0 +1,118 @@ +{ + "_args": [ + [ + "lodash._basecallback@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.uniq" + ] + ], + "_from": "lodash._basecallback@>=3.0.0 <4.0.0", + "_id": "lodash._basecallback@3.3.1", + "_inCache": true, + "_location": "/lodash._basecallback", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._basecallback", + "raw": "lodash._basecallback@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash.uniq" + ], + "_resolved": "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz", + "_shasum": "b7b2bb43dc2160424a21ccf26c57e443772a8e27", + "_shrinkwrap": null, + "_spec": "lodash._basecallback@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.uniq", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash._baseisequal": "^3.0.0", + "lodash._bindcallback": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.pairs": "^3.0.0" + }, + "description": "The modern build of lodash’s internal `baseCallback` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "b7b2bb43dc2160424a21ccf26c57e443772a8e27", + "tarball": "http://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + } + ], + "name": "lodash._basecallback", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.3.1" +} diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/LICENSE.txt b/deps/npm/node_modules/lodash._baseclone/LICENSE similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/LICENSE.txt rename to deps/npm/node_modules/lodash._baseclone/LICENSE diff --git a/deps/npm/node_modules/lodash._baseclone/README.md b/deps/npm/node_modules/lodash._baseclone/README.md new file mode 100644 index 0000000000000000000000000000000000000000..883a43c3a48435f9500008ce7d08c8f6e5a78d5b --- /dev/null +++ b/deps/npm/node_modules/lodash._baseclone/README.md @@ -0,0 +1,20 @@ +# lodash._baseclone v3.3.0 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseClone` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._baseclone +``` + +In Node.js/io.js: + +```js +var baseClone = require('lodash._baseclone'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.3.0-npm-packages/lodash._baseclone) for more details. diff --git a/deps/npm/node_modules/lodash._baseclone/index.js b/deps/npm/node_modules/lodash._baseclone/index.js new file mode 100644 index 0000000000000000000000000000000000000000..4024d58ad339cbf7302fb14ddcd23b615e07d4f1 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseclone/index.js @@ -0,0 +1,271 @@ +/** + * lodash 3.3.0 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var arrayCopy = require('lodash._arraycopy'), + arrayEach = require('lodash._arrayeach'), + baseAssign = require('lodash._baseassign'), + baseFor = require('lodash._basefor'), + isArray = require('lodash.isarray'), + keys = require('lodash.keys'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to match `RegExp` flags from their coerced string values. */ +var reFlags = /\w*$/; + +/** Used to identify `toStringTag` values supported by `_.clone`. */ +var cloneableTags = {}; +cloneableTags[argsTag] = cloneableTags[arrayTag] = +cloneableTags[arrayBufferTag] = cloneableTags[boolTag] = +cloneableTags[dateTag] = cloneableTags[float32Tag] = +cloneableTags[float64Tag] = cloneableTags[int8Tag] = +cloneableTags[int16Tag] = cloneableTags[int32Tag] = +cloneableTags[numberTag] = cloneableTags[objectTag] = +cloneableTags[regexpTag] = cloneableTags[stringTag] = +cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = +cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; +cloneableTags[errorTag] = cloneableTags[funcTag] = +cloneableTags[mapTag] = cloneableTags[setTag] = +cloneableTags[weakMapTag] = false; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** Native method references. */ +var ArrayBuffer = global.ArrayBuffer, + Uint8Array = global.Uint8Array; + +/** + * The base implementation of `_.clone` without support for argument juggling + * and `this` binding `customizer` functions. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @param {Function} [customizer] The function to customize cloning values. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The object `value` belongs to. + * @param {Array} [stackA=[]] Tracks traversed source objects. + * @param {Array} [stackB=[]] Associates clones with source counterparts. + * @returns {*} Returns the cloned value. + */ +function baseClone(value, isDeep, customizer, key, object, stackA, stackB) { + var result; + if (customizer) { + result = object ? customizer(value, key, object) : customizer(value); + } + if (result !== undefined) { + return result; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return arrayCopy(value, result); + } + } else { + var tag = objToString.call(value), + isFunc = tag == funcTag; + + if (tag == objectTag || tag == argsTag || (isFunc && !object)) { + result = initCloneObject(isFunc ? {} : value); + if (!isDeep) { + return baseAssign(result, value); + } + } else { + return cloneableTags[tag] + ? initCloneByTag(value, tag, isDeep) + : (object ? value : {}); + } + } + // Check for circular references and return its corresponding clone. + stackA || (stackA = []); + stackB || (stackB = []); + + var length = stackA.length; + while (length--) { + if (stackA[length] == value) { + return stackB[length]; + } + } + // Add the source value to the stack of traversed objects and associate it with its clone. + stackA.push(value); + stackB.push(result); + + // Recursively populate clone (susceptible to call stack limits). + (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) { + result[key] = baseClone(subValue, isDeep, customizer, key, value, stackA, stackB); + }); + return result; +} + +/** + * The base implementation of `_.forOwn` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForOwn(object, iteratee) { + return baseFor(object, iteratee, keys); +} + +/** + * Creates a clone of the given array buffer. + * + * @private + * @param {ArrayBuffer} buffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ +function bufferClone(buffer) { + var result = new ArrayBuffer(buffer.byteLength), + view = new Uint8Array(result); + + view.set(new Uint8Array(buffer)); + return result; +} + +/** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ +function initCloneArray(array) { + var length = array.length, + result = new array.constructor(length); + + // Add array properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; +} + +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneObject(object) { + var Ctor = object.constructor; + if (!(typeof Ctor == 'function' && Ctor instanceof Ctor)) { + Ctor = Object; + } + return new Ctor; +} + +/** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return bufferClone(object); + + case boolTag: + case dateTag: + return new Ctor(+object); + + case float32Tag: case float64Tag: + case int8Tag: case int16Tag: case int32Tag: + case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: + var buffer = object.buffer; + return new Ctor(isDeep ? bufferClone(buffer) : buffer, object.byteOffset, object.length); + + case numberTag: + case stringTag: + return new Ctor(object); + + case regexpTag: + var result = new Ctor(object.source, reFlags.exec(object)); + result.lastIndex = object.lastIndex; + } + return result; +} + +/** + * 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('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +module.exports = baseClone; diff --git a/deps/npm/node_modules/lodash._baseclone/package.json b/deps/npm/node_modules/lodash._baseclone/package.json new file mode 100644 index 0000000000000000000000000000000000000000..ebfea785ecf5193d1043114f97c7e380e597433d --- /dev/null +++ b/deps/npm/node_modules/lodash._baseclone/package.json @@ -0,0 +1,120 @@ +{ + "_args": [ + [ + "lodash._baseclone@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.clonedeep" + ] + ], + "_from": "lodash._baseclone@>=3.0.0 <4.0.0", + "_id": "lodash._baseclone@3.3.0", + "_inCache": true, + "_location": "/lodash._baseclone", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._baseclone", + "raw": "lodash._baseclone@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash.clonedeep" + ], + "_resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz", + "_shasum": "303519bf6393fe7e42f34d8b630ef7794e3542b7", + "_shrinkwrap": null, + "_spec": "lodash._baseclone@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.clonedeep", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash._arraycopy": "^3.0.0", + "lodash._arrayeach": "^3.0.0", + "lodash._baseassign": "^3.0.0", + "lodash._basefor": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.keys": "^3.0.0" + }, + "description": "The modern build of lodash’s internal `baseClone` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "303519bf6393fe7e42f34d8b630ef7794e3542b7", + "tarball": "http://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash._baseclone", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.3.0" +} diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/LICENSE.txt b/deps/npm/node_modules/lodash._basecopy/LICENSE.txt similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/LICENSE.txt rename to deps/npm/node_modules/lodash._basecopy/LICENSE.txt diff --git a/deps/npm/node_modules/lodash._basecopy/README.md b/deps/npm/node_modules/lodash._basecopy/README.md new file mode 100644 index 0000000000000000000000000000000000000000..acdfa29d3d210a349e10fb10165a10b33de4e64c --- /dev/null +++ b/deps/npm/node_modules/lodash._basecopy/README.md @@ -0,0 +1,20 @@ +# lodash._basecopy v3.0.1 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseCopy` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._basecopy +``` + +In Node.js/io.js: + +```js +var baseCopy = require('lodash._basecopy'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash._basecopy) for more details. diff --git a/deps/npm/node_modules/lodash._basecopy/index.js b/deps/npm/node_modules/lodash._basecopy/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b586d31d9d4345a2557f2a0ab48f48e23606ac46 --- /dev/null +++ b/deps/npm/node_modules/lodash._basecopy/index.js @@ -0,0 +1,32 @@ +/** + * lodash 3.0.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property names to copy. + * @param {Object} [object={}] The object to copy properties to. + * @returns {Object} Returns `object`. + */ +function baseCopy(source, props, object) { + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + object[key] = source[key]; + } + return object; +} + +module.exports = baseCopy; diff --git a/deps/npm/node_modules/lodash._basecopy/package.json b/deps/npm/node_modules/lodash._basecopy/package.json new file mode 100644 index 0000000000000000000000000000000000000000..34df84a4df08b31401c10990f0ee4d38de07f999 --- /dev/null +++ b/deps/npm/node_modules/lodash._basecopy/package.json @@ -0,0 +1,113 @@ +{ + "_args": [ + [ + "lodash._basecopy@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._baseassign" + ] + ], + "_from": "lodash._basecopy@>=3.0.0 <4.0.0", + "_id": "lodash._basecopy@3.0.1", + "_inCache": true, + "_location": "/lodash._basecopy", + "_nodeVersion": "0.12.2", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.7.6", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._basecopy", + "raw": "lodash._basecopy@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._baseassign" + ], + "_resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "_shasum": "8da0e6a876cf344c0ad8a54882111dd3c5c7ca36", + "_shrinkwrap": null, + "_spec": "lodash._basecopy@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseassign", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s internal `baseCopy` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "8da0e6a876cf344c0ad8a54882111dd3c5c7ca36", + "tarball": "http://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + } + ], + "name": "lodash._basecopy", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/lodash/lodash" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.1" +} diff --git a/deps/npm/node_modules/lodash._basedifference/LICENSE b/deps/npm/node_modules/lodash._basedifference/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._basedifference/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash._basedifference/README.md b/deps/npm/node_modules/lodash._basedifference/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d9b809cfd2a277909de83f903a55f7365eae4766 --- /dev/null +++ b/deps/npm/node_modules/lodash._basedifference/README.md @@ -0,0 +1,20 @@ +# lodash._basedifference v3.0.3 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseDifference` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._basedifference +``` + +In Node.js/io.js: + +```js +var baseDifference = require('lodash._basedifference'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.0.3-npm-packages/lodash._basedifference) for more details. diff --git a/deps/npm/node_modules/lodash._basedifference/index.js b/deps/npm/node_modules/lodash._basedifference/index.js new file mode 100644 index 0000000000000000000000000000000000000000..43c6460fd1e17f5c3bdb74ee313b99a2a343336c --- /dev/null +++ b/deps/npm/node_modules/lodash._basedifference/index.js @@ -0,0 +1,63 @@ +/** + * lodash 3.0.3 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var baseIndexOf = require('lodash._baseindexof'), + cacheIndexOf = require('lodash._cacheindexof'), + createCache = require('lodash._createcache'); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * The base implementation of `_.difference` which accepts a single array + * of values to exclude. + * + * @private + * @param {Array} array The array to inspect. + * @param {Array} values The values to exclude. + * @returns {Array} Returns the new array of filtered values. + */ +function baseDifference(array, values) { + var length = array ? array.length : 0, + result = []; + + if (!length) { + return result; + } + var index = -1, + indexOf = baseIndexOf, + isCommon = true, + cache = (isCommon && values.length >= LARGE_ARRAY_SIZE) ? createCache(values) : null, + valuesLength = values.length; + + if (cache) { + indexOf = cacheIndexOf; + isCommon = false; + values = cache; + } + outer: + while (++index < length) { + var value = array[index]; + + if (isCommon && value === value) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values[valuesIndex] === value) { + continue outer; + } + } + result.push(value); + } + else if (indexOf(values, value, 0) < 0) { + result.push(value); + } + } + return result; +} + +module.exports = baseDifference; diff --git a/deps/npm/node_modules/lodash._basedifference/package.json b/deps/npm/node_modules/lodash._basedifference/package.json new file mode 100644 index 0000000000000000000000000000000000000000..e44ef4e8fa750c1fc5d3e1ab80dda9eeb4e0a4f4 --- /dev/null +++ b/deps/npm/node_modules/lodash._basedifference/package.json @@ -0,0 +1,117 @@ +{ + "_args": [ + [ + "lodash._basedifference@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.without" + ] + ], + "_from": "lodash._basedifference@>=3.0.0 <4.0.0", + "_id": "lodash._basedifference@3.0.3", + "_inCache": true, + "_location": "/lodash._basedifference", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._basedifference", + "raw": "lodash._basedifference@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash.without" + ], + "_resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz", + "_shasum": "f2c204296c2a78e02b389081b6edcac933cf629c", + "_shrinkwrap": null, + "_spec": "lodash._basedifference@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.without", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash._baseindexof": "^3.0.0", + "lodash._cacheindexof": "^3.0.0", + "lodash._createcache": "^3.0.0" + }, + "description": "The modern build of lodash’s internal `baseDifference` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "f2c204296c2a78e02b389081b6edcac933cf629c", + "tarball": "http://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash._basedifference", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.3" +} diff --git a/deps/npm/node_modules/lodash._baseflatten/LICENSE b/deps/npm/node_modules/lodash._baseflatten/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._baseflatten/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash._baseflatten/README.md b/deps/npm/node_modules/lodash._baseflatten/README.md new file mode 100644 index 0000000000000000000000000000000000000000..f3e227779c4f8943387f02453d06bdd62eb249b9 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseflatten/README.md @@ -0,0 +1,20 @@ +# lodash._baseflatten v3.1.4 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseFlatten` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._baseflatten +``` + +In Node.js/io.js: + +```js +var baseFlatten = require('lodash._baseflatten'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.1.4-npm-packages/lodash._baseflatten) for more details. diff --git a/deps/npm/node_modules/lodash._baseflatten/index.js b/deps/npm/node_modules/lodash._baseflatten/index.js new file mode 100644 index 0000000000000000000000000000000000000000..c43acfa729179cc1e24a2690fd055c09e1fe4fc8 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseflatten/index.js @@ -0,0 +1,131 @@ +/** + * lodash 3.1.4 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var isArguments = require('lodash.isarguments'), + isArray = require('lodash.isarray'); + +/** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} + +/** + * The base implementation of `_.flatten` with added support for restricting + * flattening and specifying the start index. + * + * @private + * @param {Array} array The array to flatten. + * @param {boolean} [isDeep] Specify a deep flatten. + * @param {boolean} [isStrict] Restrict flattening to arrays-like objects. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ +function baseFlatten(array, isDeep, isStrict, result) { + result || (result = []); + + var index = -1, + length = array.length; + + while (++index < length) { + var value = array[index]; + if (isObjectLike(value) && isArrayLike(value) && + (isStrict || isArray(value) || isArguments(value))) { + if (isDeep) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, isDeep, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; +} + +/** + * 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]; + }; +} + +/** + * 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 `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ +function isArrayLike(value) { + return value != null && isLength(getLength(value)); +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = baseFlatten; diff --git a/deps/npm/node_modules/lodash._baseflatten/package.json b/deps/npm/node_modules/lodash._baseflatten/package.json new file mode 100644 index 0000000000000000000000000000000000000000..48b2545dcad0c9936d6eb80d249166d885135e34 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseflatten/package.json @@ -0,0 +1,116 @@ +{ + "_args": [ + [ + "lodash._baseflatten@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.union" + ] + ], + "_from": "lodash._baseflatten@>=3.0.0 <4.0.0", + "_id": "lodash._baseflatten@3.1.4", + "_inCache": true, + "_location": "/lodash._baseflatten", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._baseflatten", + "raw": "lodash._baseflatten@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash.union" + ], + "_resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz", + "_shasum": "0770ff80131af6e34f3b511796a7ba5214e65ff7", + "_shrinkwrap": null, + "_spec": "lodash._baseflatten@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.union", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + }, + "description": "The modern build of lodash’s internal `baseFlatten` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "0770ff80131af6e34f3b511796a7ba5214e65ff7", + "tarball": "http://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash._baseflatten", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.1.4" +} diff --git a/deps/npm/node_modules/lodash._basefor/LICENSE.txt b/deps/npm/node_modules/lodash._basefor/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._basefor/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash._basefor/README.md b/deps/npm/node_modules/lodash._basefor/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d9e33731b2fc90f1f68789fa0cc2f7092a65a572 --- /dev/null +++ b/deps/npm/node_modules/lodash._basefor/README.md @@ -0,0 +1,20 @@ +# lodash._basefor v3.0.2 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseFor` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._basefor +``` + +In Node.js/io.js: + +```js +var baseFor = require('lodash._basefor'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.0.2-npm-packages/lodash._basefor) for more details. diff --git a/deps/npm/node_modules/lodash._basefor/index.js b/deps/npm/node_modules/lodash._basefor/index.js new file mode 100644 index 0000000000000000000000000000000000000000..a3d7dcd1014da023f59ed3e9ea6fa6aeeaa97cd2 --- /dev/null +++ b/deps/npm/node_modules/lodash._basefor/index.js @@ -0,0 +1,86 @@ +/** + * lodash 3.0.2 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** + * The base implementation of `baseForIn` and `baseForOwn` which iterates + * over `object` properties returned by `keysFunc` invoking `iteratee` for + * each property. Iteratee functions may exit iteration early by explicitly + * returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +/** + * Creates a base function for `_.forIn` or `_.forInRight`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var iterable = toObject(object), + props = keysFunc(object), + length = props.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length)) { + var key = props[index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +/** + * Converts `value` to an object if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Object} Returns the object. + */ +function toObject(value) { + return isObject(value) ? value : Object(value); +} + +/** + * 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('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +module.exports = baseFor; diff --git a/deps/npm/node_modules/lodash._basefor/package.json b/deps/npm/node_modules/lodash._basefor/package.json new file mode 100644 index 0000000000000000000000000000000000000000..898b10c857e37d38df14e3a22cad8bd15e17fb9d --- /dev/null +++ b/deps/npm/node_modules/lodash._basefor/package.json @@ -0,0 +1,113 @@ +{ + "_args": [ + [ + "lodash._basefor@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._baseclone" + ] + ], + "_from": "lodash._basefor@>=3.0.0 <4.0.0", + "_id": "lodash._basefor@3.0.2", + "_inCache": true, + "_location": "/lodash._basefor", + "_nodeVersion": "0.12.3", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._basefor", + "raw": "lodash._basefor@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._baseclone" + ], + "_resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.tgz", + "_shasum": "3a4cece5b7031eae78a441c5416b90878eeee5a1", + "_shrinkwrap": null, + "_spec": "lodash._basefor@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseclone", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s internal `baseFor` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "3a4cece5b7031eae78a441c5416b90878eeee5a1", + "tarball": "http://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + } + ], + "name": "lodash._basefor", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.2" +} diff --git a/deps/npm/node_modules/lodash._baseindexof/LICENSE.txt b/deps/npm/node_modules/lodash._baseindexof/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..17764328c826b53917e2aeccb6f5fddad4b4ccb1 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseindexof/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js 1.7.0, copyright 2009-2015 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/lodash._baseindexof/README.md b/deps/npm/node_modules/lodash._baseindexof/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ddcc79d5d66aee758c94694583ff47717a3e3245 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseindexof/README.md @@ -0,0 +1,20 @@ +# lodash._baseindexof v3.1.0 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseIndexOf` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._baseindexof +``` + +In Node.js/io.js: + +```js +var baseIndexOf = require('lodash._baseindexof'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.1.0-npm-packages/lodash._baseindexof) for more details. diff --git a/deps/npm/node_modules/lodash._baseindexof/index.js b/deps/npm/node_modules/lodash._baseindexof/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e5da79147894ae115537e287d88e21d48ae7bdd5 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseindexof/index.js @@ -0,0 +1,57 @@ +/** + * lodash 3.1.0 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.2 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** + * The base implementation of `_.indexOf` without support for binary searches. + * + * @private + * @param {Array} array The array to search. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseIndexOf(array, value, fromIndex) { + if (value !== value) { + return indexOfNaN(array, fromIndex); + } + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; +} + +/** + * Gets the index at which the first occurrence of `NaN` is found in `array`. + * If `fromRight` is provided elements of `array` are iterated from right to left. + * + * @private + * @param {Array} array The array to search. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched `NaN`, else `-1`. + */ +function indexOfNaN(array, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 0 : -1); + + while ((fromRight ? index-- : ++index < length)) { + var other = array[index]; + if (other !== other) { + return index; + } + } + return -1; +} + +module.exports = baseIndexOf; diff --git a/deps/npm/node_modules/lodash._baseindexof/package.json b/deps/npm/node_modules/lodash._baseindexof/package.json new file mode 100644 index 0000000000000000000000000000000000000000..9c14340985446af1026ce162310331d8687e8dd6 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseindexof/package.json @@ -0,0 +1,114 @@ +{ + "_args": [ + [ + "lodash._baseindexof@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._baseuniq" + ] + ], + "_from": "lodash._baseindexof@>=3.0.0 <4.0.0", + "_id": "lodash._baseindexof@3.1.0", + "_inCache": true, + "_location": "/lodash._baseindexof", + "_nodeVersion": "0.12.0", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.6.1", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._baseindexof", + "raw": "lodash._baseindexof@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._basedifference", + "/lodash._baseuniq" + ], + "_resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", + "_shasum": "fe52b53a1c6761e42618d654e4a25789ed61822c", + "_shrinkwrap": null, + "_spec": "lodash._baseindexof@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseuniq", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s internal `baseIndexOf` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "fe52b53a1c6761e42618d654e4a25789ed61822c", + "tarball": "http://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash._baseindexof", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/lodash/lodash" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.1.0" +} diff --git a/deps/npm/node_modules/lodash._baseisequal/LICENSE.txt b/deps/npm/node_modules/lodash._baseisequal/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._baseisequal/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash._baseisequal/README.md b/deps/npm/node_modules/lodash._baseisequal/README.md new file mode 100644 index 0000000000000000000000000000000000000000..7261bf341cd90e30b66c2e78f9c2114531f20202 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseisequal/README.md @@ -0,0 +1,20 @@ +# lodash._baseisequal v3.0.7 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseIsEqual` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._baseisequal +``` + +In Node.js/io.js: + +```js +var baseIsEqual = require('lodash._baseisequal'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.0.7-npm-packages/lodash._baseisequal) for more details. diff --git a/deps/npm/node_modules/lodash._baseisequal/index.js b/deps/npm/node_modules/lodash._baseisequal/index.js new file mode 100644 index 0000000000000000000000000000000000000000..76aebe4a3998df2b80963ec99b53f7628411a827 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseisequal/index.js @@ -0,0 +1,342 @@ +/** + * lodash 3.0.7 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var isArray = require('lodash.isarray'), + isTypedArray = require('lodash.istypedarray'), + keys = require('lodash.keys'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + +/** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * A specialized version of `_.some` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +/** + * The base implementation of `_.isEqual` without support for `this` binding + * `customizer` functions. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB); +} + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing objects. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA=[]] Tracks traversed `value` objects. + * @param {Array} [stackB=[]] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = arrayTag, + othTag = arrayTag; + + if (!objIsArr) { + objTag = objToString.call(object); + if (objTag == argsTag) { + objTag = objectTag; + } else if (objTag != objectTag) { + objIsArr = isTypedArray(object); + } + } + if (!othIsArr) { + othTag = objToString.call(other); + if (othTag == argsTag) { + othTag = objectTag; + } else if (othTag != objectTag) { + othIsArr = isTypedArray(other); + } + } + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && !(objIsArr || objIsObj)) { + return equalByTag(object, other, objTag); + } + if (!isLoose) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB); + } + } + if (!isSameTag) { + return false; + } + // Assume cyclic values are equal. + // For more information on detecting circular references see https://es5.github.io/#JO. + stackA || (stackA = []); + stackB || (stackB = []); + + var length = stackA.length; + while (length--) { + if (stackA[length] == object) { + return stackB[length] == other; + } + } + // Add `object` and `other` to the stack of traversed objects. + stackA.push(object); + stackB.push(other); + + var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB); + + stackA.pop(); + stackB.pop(); + + return result; +} + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing arrays. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) { + var index = -1, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isLoose && othLength > arrLength)) { + return false; + } + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index], + result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined; + + if (result !== undefined) { + if (result) { + continue; + } + return false; + } + // Recursively compare arrays (susceptible to call stack limits). + if (isLoose) { + if (!arraySome(other, function(othValue) { + return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB); + })) { + return false; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) { + return false; + } + } + return true; +} + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} value The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag) { + switch (tag) { + case boolTag: + case dateTag: + // Coerce dates and booleans to numbers, dates to milliseconds and booleans + // to `1` or `0` treating invalid dates coerced to `NaN` as not equal. + return +object == +other; + + case errorTag: + return object.name == other.name && object.message == other.message; + + case numberTag: + // Treat `NaN` vs. `NaN` as equal. + return (object != +object) + ? other != +other + : object == +other; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings primitives and string + // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. + return object == (other + ''); + } + return false; +} + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; + + if (objLength != othLength && !isLoose) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + var skipCtor = isLoose; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key], + result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined; + + // Recursively compare objects (susceptible to call stack limits). + if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) { + return false; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (!skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + return false; + } + } + return true; +} + +/** + * 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('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +module.exports = baseIsEqual; diff --git a/deps/npm/node_modules/lodash._baseisequal/package.json b/deps/npm/node_modules/lodash._baseisequal/package.json new file mode 100644 index 0000000000000000000000000000000000000000..8fe01997710cbf208802ad5849fb7cef2b60b8d4 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseisequal/package.json @@ -0,0 +1,117 @@ +{ + "_args": [ + [ + "lodash._baseisequal@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._basecallback" + ] + ], + "_from": "lodash._baseisequal@>=3.0.0 <4.0.0", + "_id": "lodash._baseisequal@3.0.7", + "_inCache": true, + "_location": "/lodash._baseisequal", + "_nodeVersion": "2.0.2", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._baseisequal", + "raw": "lodash._baseisequal@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._basecallback" + ], + "_resolved": "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz", + "_shasum": "d8025f76339d29342767dcc887ce5cb95a5b51f1", + "_shrinkwrap": null, + "_spec": "lodash._baseisequal@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._basecallback", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash.isarray": "^3.0.0", + "lodash.istypedarray": "^3.0.0", + "lodash.keys": "^3.0.0" + }, + "description": "The modern build of lodash’s internal `baseIsEqual` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "d8025f76339d29342767dcc887ce5cb95a5b51f1", + "tarball": "http://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash._baseisequal", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.7" +} diff --git a/deps/npm/node_modules/lodash._basetostring/LICENSE b/deps/npm/node_modules/lodash._basetostring/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._basetostring/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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._basetostring/README.md b/deps/npm/node_modules/lodash._basetostring/README.md similarity index 84% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._basetostring/README.md rename to deps/npm/node_modules/lodash._basetostring/README.md index ad04ea956e4d206a756c85aba7b1947119575fec..f81145e6ebe76579f8a7a86a116c01a240f58baf 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._basetostring/README.md +++ b/deps/npm/node_modules/lodash._basetostring/README.md @@ -1,4 +1,4 @@ -# lodash._basetostring v3.0.0 +# lodash._basetostring v3.0.1 The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseToString` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. @@ -17,4 +17,4 @@ In Node.js/io.js: var baseToString = require('lodash._basetostring'); ``` -See the [package source](https://github.com/lodash/lodash/blob/3.0.0-npm-packages/lodash._basetostring) for more details. +See the [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash._basetostring) for more details. diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._basetostring/index.js b/deps/npm/node_modules/lodash._basetostring/index.js similarity index 68% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._basetostring/index.js rename to deps/npm/node_modules/lodash._basetostring/index.js index 71ac885889b9e685cc70d9ed44e51d533c28eace..db8ecc9fdd0094241d22349142d924387b8eff5e 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._basetostring/index.js +++ b/deps/npm/node_modules/lodash._basetostring/index.js @@ -1,14 +1,14 @@ /** - * lodash 3.0.0 (Custom Build) + * lodash 3.0.1 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.7.0 + * Based on Underscore.js 1.8.3 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ /** - * Converts `value` to a string if it is not one. An empty string is returned + * Converts `value` to a string if it's not one. An empty string is returned * for `null` or `undefined` values. * * @private @@ -16,9 +16,6 @@ * @returns {string} Returns the string. */ function baseToString(value) { - if (typeof value == 'string') { - return value; - } return value == null ? '' : (value + ''); } diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._basetostring/package.json b/deps/npm/node_modules/lodash._basetostring/package.json similarity index 52% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._basetostring/package.json rename to deps/npm/node_modules/lodash._basetostring/package.json index dfb815b75772c1c01d6321483d22e9b9c79a8715..072f16bd0207e2d05aa049d557c37f4cf83b7e60 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._basetostring/package.json +++ b/deps/npm/node_modules/lodash._basetostring/package.json @@ -1,15 +1,48 @@ { - "name": "lodash._basetostring", - "version": "3.0.0", - "description": "The modern build of lodash’s internal `baseToString` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", + "_args": [ + [ + "lodash._basetostring@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.pad" + ] + ], + "_from": "lodash._basetostring@>=3.0.0 <4.0.0", + "_id": "lodash._basetostring@3.0.1", + "_inCache": true, + "_location": "/lodash._basetostring", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._basetostring", + "raw": "lodash._basetostring@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash.pad", + "/lodash.padleft", + "/lodash.padright", + "/lodash.repeat" + ], + "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "_shasum": "d1861d877f824a52f669832dcaf3ee15566a07d5", + "_shrinkwrap": null, + "_spec": "lodash._basetostring@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.pad", "author": { - "name": "John-David Dalton", "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", "url": "http://allyoucanleet.com/" }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, "contributors": [ { "name": "John-David Dalton", @@ -37,36 +70,47 @@ "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@3.0.0", - "_shasum": "75a9a4aaaa2b2a8761111ff5431e7d83c1daf0e2", - "_from": "lodash._basetostring@3.0.0", - "_npmVersion": "2.3.0", - "_nodeVersion": "0.10.35", - "_npmUser": { - "name": "jdalton", - "email": "john.david.dalton@gmail.com" + "dependencies": {}, + "description": "The modern build of lodash’s internal `baseToString` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "d1861d877f824a52f669832dcaf3ee15566a07d5", + "tarball": "http://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", "maintainers": [ { "name": "jdalton", "email": "john.david.dalton@gmail.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" } ], - "dist": { - "shasum": "75a9a4aaaa2b2a8761111ff5431e7d83c1daf0e2", - "tarball": "http://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.0.tgz" + "name": "lodash._basetostring", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.1" } diff --git a/deps/npm/node_modules/lodash._baseuniq/LICENSE b/deps/npm/node_modules/lodash._baseuniq/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._baseuniq/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash._baseuniq/README.md b/deps/npm/node_modules/lodash._baseuniq/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ad71873dc903466b1e6d791406a543b61d8c35f6 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseuniq/README.md @@ -0,0 +1,20 @@ +# lodash._baseuniq v3.0.3 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseUniq` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._baseuniq +``` + +In Node.js/io.js: + +```js +var baseUniq = require('lodash._baseuniq'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.0.3-npm-packages/lodash._baseuniq) for more details. diff --git a/deps/npm/node_modules/lodash._baseuniq/index.js b/deps/npm/node_modules/lodash._baseuniq/index.js new file mode 100644 index 0000000000000000000000000000000000000000..bb7d433f8d6d3487d671793564e1e084e4643727 --- /dev/null +++ b/deps/npm/node_modules/lodash._baseuniq/index.js @@ -0,0 +1,68 @@ +/** + * lodash 3.0.3 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var baseIndexOf = require('lodash._baseindexof'), + cacheIndexOf = require('lodash._cacheindexof'), + createCache = require('lodash._createcache'); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * The base implementation of `_.uniq` without support for callback shorthands + * and `this` binding. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The function invoked per iteration. + * @returns {Array} Returns the new duplicate-value-free array. + */ +function baseUniq(array, iteratee) { + var index = -1, + indexOf = baseIndexOf, + length = array.length, + isCommon = true, + isLarge = isCommon && length >= LARGE_ARRAY_SIZE, + seen = isLarge ? createCache() : null, + result = []; + + if (seen) { + indexOf = cacheIndexOf; + isCommon = false; + } else { + isLarge = false; + seen = iteratee ? [] : result; + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value, index, array) : value; + + if (isCommon && value === value) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee) { + seen.push(computed); + } + result.push(value); + } + else if (indexOf(seen, computed, 0) < 0) { + if (iteratee || isLarge) { + seen.push(computed); + } + result.push(value); + } + } + return result; +} + +module.exports = baseUniq; diff --git a/deps/npm/node_modules/lodash._baseuniq/package.json b/deps/npm/node_modules/lodash._baseuniq/package.json new file mode 100644 index 0000000000000000000000000000000000000000..b98e6e7b2e669dd0433d9b40ca0b8072bf72221b --- /dev/null +++ b/deps/npm/node_modules/lodash._baseuniq/package.json @@ -0,0 +1,118 @@ +{ + "_args": [ + [ + "lodash._baseuniq@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.union" + ] + ], + "_from": "lodash._baseuniq@>=3.0.0 <4.0.0", + "_id": "lodash._baseuniq@3.0.3", + "_inCache": true, + "_location": "/lodash._baseuniq", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._baseuniq", + "raw": "lodash._baseuniq@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash.union", + "/lodash.uniq" + ], + "_resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-3.0.3.tgz", + "_shasum": "2123fa0db2d69c28d5beb1c1f36d61522a740234", + "_shrinkwrap": null, + "_spec": "lodash._baseuniq@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.union", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash._baseindexof": "^3.0.0", + "lodash._cacheindexof": "^3.0.0", + "lodash._createcache": "^3.0.0" + }, + "description": "The modern build of lodash’s internal `baseUniq` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "2123fa0db2d69c28d5beb1c1f36d61522a740234", + "tarball": "http://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-3.0.3.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash._baseuniq", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.3" +} diff --git a/deps/npm/node_modules/lodash._bindcallback/LICENSE.txt b/deps/npm/node_modules/lodash._bindcallback/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._bindcallback/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash._bindcallback/README.md b/deps/npm/node_modules/lodash._bindcallback/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d287f26d81bc3c52e90f7505fc57fdce02a35c09 --- /dev/null +++ b/deps/npm/node_modules/lodash._bindcallback/README.md @@ -0,0 +1,20 @@ +# lodash._bindcallback v3.0.1 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `bindCallback` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._bindcallback +``` + +In Node.js/io.js: + +```js +var bindCallback = require('lodash._bindcallback'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash._bindcallback) for more details. diff --git a/deps/npm/node_modules/lodash._bindcallback/index.js b/deps/npm/node_modules/lodash._bindcallback/index.js new file mode 100644 index 0000000000000000000000000000000000000000..ef6811d1a5ebf3d3ff88a8b4fb16d2ae8c5ce0d0 --- /dev/null +++ b/deps/npm/node_modules/lodash._bindcallback/index.js @@ -0,0 +1,65 @@ +/** + * lodash 3.0.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** + * A specialized version of `baseCallback` which only supports `this` binding + * and specifying the number of arguments to provide to `func`. + * + * @private + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ +function bindCallback(func, thisArg, argCount) { + if (typeof func != 'function') { + return identity; + } + if (thisArg === undefined) { + return func; + } + switch (argCount) { + case 1: return function(value) { + return func.call(thisArg, value); + }; + case 3: return function(value, index, collection) { + return func.call(thisArg, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(thisArg, accumulator, value, index, collection); + }; + case 5: return function(value, other, key, object, source) { + return func.call(thisArg, value, other, key, object, source); + }; + } + return function() { + return func.apply(thisArg, arguments); + }; +} + +/** + * This method returns the first argument provided to it. + * + * @static + * @memberOf _ + * @category Utility + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'user': 'fred' }; + * + * _.identity(object) === object; + * // => true + */ +function identity(value) { + return value; +} + +module.exports = bindCallback; diff --git a/deps/npm/node_modules/lodash._bindcallback/package.json b/deps/npm/node_modules/lodash._bindcallback/package.json new file mode 100644 index 0000000000000000000000000000000000000000..272cb6a29b71a9e6f74d095ed585de29c7687132 --- /dev/null +++ b/deps/npm/node_modules/lodash._bindcallback/package.json @@ -0,0 +1,114 @@ +{ + "_args": [ + [ + "lodash._bindcallback@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.clonedeep" + ] + ], + "_from": "lodash._bindcallback@>=3.0.0 <4.0.0", + "_id": "lodash._bindcallback@3.0.1", + "_inCache": true, + "_location": "/lodash._bindcallback", + "_nodeVersion": "0.12.2", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.7.6", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._bindcallback", + "raw": "lodash._bindcallback@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._basecallback", + "/lodash.clonedeep" + ], + "_resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "_shasum": "e531c27644cf8b57a99e17ed95b35c748789392e", + "_shrinkwrap": null, + "_spec": "lodash._bindcallback@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.clonedeep", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s internal `bindCallback` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "e531c27644cf8b57a99e17ed95b35c748789392e", + "tarball": "http://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + } + ], + "name": "lodash._bindcallback", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/lodash/lodash" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.1" +} diff --git a/deps/npm/node_modules/lodash._cacheindexof/LICENSE.txt b/deps/npm/node_modules/lodash._cacheindexof/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._cacheindexof/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash._cacheindexof/README.md b/deps/npm/node_modules/lodash._cacheindexof/README.md new file mode 100644 index 0000000000000000000000000000000000000000..69d2b62bf5dbeddd9ed3ef61b8321c78f5c70061 --- /dev/null +++ b/deps/npm/node_modules/lodash._cacheindexof/README.md @@ -0,0 +1,20 @@ +# lodash._cacheindexof v3.0.2 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `cacheIndexOf` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._cacheindexof +``` + +In Node.js/io.js: + +```js +var cacheIndexOf = require('lodash._cacheindexof'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.0.2-npm-packages/lodash._cacheindexof) for more details. diff --git a/deps/npm/node_modules/lodash._cacheindexof/index.js b/deps/npm/node_modules/lodash._cacheindexof/index.js new file mode 100644 index 0000000000000000000000000000000000000000..bc1d5afcfd5778bc2e7ae53bf83697cc0e9351cf --- /dev/null +++ b/deps/npm/node_modules/lodash._cacheindexof/index.js @@ -0,0 +1,53 @@ +/** + * lodash 3.0.2 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** + * Checks if `value` is in `cache` mimicking the return signature of + * `_.indexOf` by returning `0` if the value is found, else `-1`. + * + * @private + * @param {Object} cache The cache to search. + * @param {*} value The value to search for. + * @returns {number} Returns `0` if `value` is found, else `-1`. + */ +function cacheIndexOf(cache, value) { + var data = cache.data, + result = (typeof value == 'string' || isObject(value)) ? data.set.has(value) : data.hash[value]; + + return result ? 0 : -1; +} + +/** + * 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('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +module.exports = cacheIndexOf; diff --git a/deps/npm/node_modules/lodash._cacheindexof/package.json b/deps/npm/node_modules/lodash._cacheindexof/package.json new file mode 100644 index 0000000000000000000000000000000000000000..c87fc6b14d0f947691f4c309758c78eef5e57076 --- /dev/null +++ b/deps/npm/node_modules/lodash._cacheindexof/package.json @@ -0,0 +1,114 @@ +{ + "_args": [ + [ + "lodash._cacheindexof@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._baseuniq" + ] + ], + "_from": "lodash._cacheindexof@>=3.0.0 <4.0.0", + "_id": "lodash._cacheindexof@3.0.2", + "_inCache": true, + "_location": "/lodash._cacheindexof", + "_nodeVersion": "0.12.3", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._cacheindexof", + "raw": "lodash._cacheindexof@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._basedifference", + "/lodash._baseuniq" + ], + "_resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", + "_shasum": "3dc69ac82498d2ee5e3ce56091bafd2adc7bde92", + "_shrinkwrap": null, + "_spec": "lodash._cacheindexof@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseuniq", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s internal `cacheIndexOf` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "3dc69ac82498d2ee5e3ce56091bafd2adc7bde92", + "tarball": "http://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash._cacheindexof", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.2" +} diff --git a/deps/npm/node_modules/lodash._createcache/LICENSE b/deps/npm/node_modules/lodash._createcache/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._createcache/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash._createcache/README.md b/deps/npm/node_modules/lodash._createcache/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0ee4834d086a5beb644c89f5fda8436e5614faf7 --- /dev/null +++ b/deps/npm/node_modules/lodash._createcache/README.md @@ -0,0 +1,20 @@ +# lodash._createcache v3.1.2 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `createCache` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._createcache +``` + +In Node.js/io.js: + +```js +var createCache = require('lodash._createcache'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.1.2-npm-packages/lodash._createcache) for more details. diff --git a/deps/npm/node_modules/lodash._createcache/index.js b/deps/npm/node_modules/lodash._createcache/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6cf391c1497a4c64bd3bfc48138008909c693e13 --- /dev/null +++ b/deps/npm/node_modules/lodash._createcache/index.js @@ -0,0 +1,91 @@ +/** + * lodash 3.1.2 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var getNative = require('lodash._getnative'); + +/** Native method references. */ +var Set = getNative(global, 'Set'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeCreate = getNative(Object, 'create'); + +/** + * + * Creates a cache object to store unique values. + * + * @private + * @param {Array} [values] The values to cache. + */ +function SetCache(values) { + var length = values ? values.length : 0; + + this.data = { 'hash': nativeCreate(null), 'set': new Set }; + while (length--) { + this.push(values[length]); + } +} + +/** + * Adds `value` to the cache. + * + * @private + * @name push + * @memberOf SetCache + * @param {*} value The value to cache. + */ +function cachePush(value) { + var data = this.data; + if (typeof value == 'string' || isObject(value)) { + data.set.add(value); + } else { + data.hash[value] = true; + } +} + +/** + * Creates a `Set` cache object to optimize linear searches of large arrays. + * + * @private + * @param {Array} [values] The values to cache. + * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`. + */ +function createCache(values) { + return (nativeCreate && Set) ? new SetCache(values) : null; +} + +/** + * 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('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +// Add functions to the `Set` cache. +SetCache.prototype.push = cachePush; + +module.exports = createCache; diff --git a/deps/npm/node_modules/lodash._createcache/package.json b/deps/npm/node_modules/lodash._createcache/package.json new file mode 100644 index 0000000000000000000000000000000000000000..8417cf9d67cf4f7fd0837482a9a6829db343df05 --- /dev/null +++ b/deps/npm/node_modules/lodash._createcache/package.json @@ -0,0 +1,116 @@ +{ + "_args": [ + [ + "lodash._createcache@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._baseuniq" + ] + ], + "_from": "lodash._createcache@>=3.0.0 <4.0.0", + "_id": "lodash._createcache@3.1.2", + "_inCache": true, + "_location": "/lodash._createcache", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._createcache", + "raw": "lodash._createcache@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._basedifference", + "/lodash._baseuniq" + ], + "_resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", + "_shasum": "56d6a064017625e79ebca6b8018e17440bdcf093", + "_shrinkwrap": null, + "_spec": "lodash._createcache@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseuniq", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash._getnative": "^3.0.0" + }, + "description": "The modern build of lodash’s internal `createCache` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "56d6a064017625e79ebca6b8018e17440bdcf093", + "tarball": "http://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash._createcache", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.1.2" +} diff --git a/deps/npm/node_modules/lodash._createpadding/LICENSE b/deps/npm/node_modules/lodash._createpadding/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._createpadding/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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._createpadding/README.md b/deps/npm/node_modules/lodash._createpadding/README.md similarity index 83% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/README.md rename to deps/npm/node_modules/lodash._createpadding/README.md index 0e1c73128ce792316de54fb250379bca2a3c71d8..f9c9411c70412ee640d85312502ce211df7c2354 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/README.md +++ b/deps/npm/node_modules/lodash._createpadding/README.md @@ -1,4 +1,4 @@ -# lodash._createpadding v3.6.0 +# lodash._createpadding v3.6.1 The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `createPadding` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. @@ -17,4 +17,4 @@ In Node.js/io.js: var createPadding = require('lodash._createpadding'); ``` -See the [package source](https://github.com/lodash/lodash/blob/3.6.0-npm-packages/lodash._createpadding) for more details. +See the [package source](https://github.com/lodash/lodash/blob/3.6.1-npm-packages/lodash._createpadding) for more details. diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/index.js b/deps/npm/node_modules/lodash._createpadding/index.js similarity index 79% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/index.js rename to deps/npm/node_modules/lodash._createpadding/index.js index 72890bd2d8f4cf038bf509e93eb29067fb614b95..3541a8aae3293524ecdf79738ca2abb0bb3dda00 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/index.js +++ b/deps/npm/node_modules/lodash._createpadding/index.js @@ -1,18 +1,16 @@ /** - * lodash 3.6.0 (Custom Build) + * lodash 3.6.1 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.2 + * Based on Underscore.js 1.8.3 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ var repeat = require('lodash.repeat'); -/** Native method references. */ -var ceil = Math.ceil; - /* Native method references for those with the same name as other `lodash` methods. */ -var nativeIsFinite = global.isFinite; +var nativeCeil = Math.ceil, + nativeIsFinite = global.isFinite; /** * Creates the padding required for `string` based on the given `length`. @@ -33,7 +31,7 @@ function createPadding(string, length, chars) { } var padLength = length - strLength; chars = chars == null ? ' ' : (chars + ''); - return repeat(chars, ceil(padLength / chars.length)).slice(0, padLength); + return repeat(chars, nativeCeil(padLength / chars.length)).slice(0, padLength); } module.exports = createPadding; diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/package.json b/deps/npm/node_modules/lodash._createpadding/package.json similarity index 53% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/package.json rename to deps/npm/node_modules/lodash._createpadding/package.json index ffe797253ae92513a7405ded9178f9535d465980..9801837b99594d07fb122c04dfaa37dc9a474f89 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/package.json +++ b/deps/npm/node_modules/lodash._createpadding/package.json @@ -1,15 +1,47 @@ { - "name": "lodash._createpadding", - "version": "3.6.0", - "description": "The modern build of lodash’s internal `createPadding` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", + "_args": [ + [ + "lodash._createpadding@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.pad" + ] + ], + "_from": "lodash._createpadding@>=3.0.0 <4.0.0", + "_id": "lodash._createpadding@3.6.1", + "_inCache": true, + "_location": "/lodash._createpadding", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._createpadding", + "raw": "lodash._createpadding@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash.pad", + "/lodash.padleft", + "/lodash.padright" + ], + "_resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "_shasum": "4907b438595adc54ee8935527a6c424c02c81a87", + "_shrinkwrap": null, + "_spec": "lodash._createpadding@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.pad", "author": { - "name": "John-David Dalton", "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", "url": "http://allyoucanleet.com/" }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, "contributors": [ { "name": "John-David Dalton", @@ -37,39 +69,49 @@ "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.\"" - }, "dependencies": { "lodash.repeat": "^3.0.0" }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "_id": "lodash._createpadding@3.6.0", - "_shasum": "c466850dd1a05e6bfec54fd0cf0db28b68332d5e", - "_from": "lodash._createpadding@3.6.0", - "_npmVersion": "2.7.3", - "_nodeVersion": "0.12.0", - "_npmUser": { - "name": "jdalton", - "email": "john.david.dalton@gmail.com" + "description": "The modern build of lodash’s internal `createPadding` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "4907b438595adc54ee8935527a6c424c02c81a87", + "tarball": "http://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz" }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", "maintainers": [ { "name": "jdalton", "email": "john.david.dalton@gmail.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" } ], - "dist": { - "shasum": "c466850dd1a05e6bfec54fd0cf0db28b68332d5e", - "tarball": "http://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.0.tgz" + "name": "lodash._createpadding", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.6.1" } diff --git a/deps/npm/node_modules/lodash._getnative/LICENSE b/deps/npm/node_modules/lodash._getnative/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._getnative/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash._getnative/README.md b/deps/npm/node_modules/lodash._getnative/README.md new file mode 100644 index 0000000000000000000000000000000000000000..7835cec0ab1c02227587a5c482b8455cf1c2ac27 --- /dev/null +++ b/deps/npm/node_modules/lodash._getnative/README.md @@ -0,0 +1,20 @@ +# lodash._getnative v3.9.1 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `getNative` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._getnative +``` + +In Node.js/io.js: + +```js +var getNative = require('lodash._getnative'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.9.1-npm-packages/lodash._getnative) for more details. diff --git a/deps/npm/node_modules/lodash._getnative/index.js b/deps/npm/node_modules/lodash._getnative/index.js new file mode 100644 index 0000000000000000000000000000000000000000..a32063d27b9e74fc0eb958d3051ec97ea1ddaf36 --- /dev/null +++ b/deps/npm/node_modules/lodash._getnative/index.js @@ -0,0 +1,137 @@ +/** + * lodash 3.9.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** `Object#toString` result references. */ +var funcTag = '[object Function]'; + +/** Used to detect host constructors (Safari > 5). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var fnToString = Function.prototype.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; +} + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @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 older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; +} + +/** + * 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('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ +function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && reIsHostCtor.test(value); +} + +module.exports = getNative; diff --git a/deps/npm/node_modules/lodash._getnative/package.json b/deps/npm/node_modules/lodash._getnative/package.json new file mode 100644 index 0000000000000000000000000000000000000000..2f5c5eb3b58cb1a6077b9584bfa400d33a087ece --- /dev/null +++ b/deps/npm/node_modules/lodash._getnative/package.json @@ -0,0 +1,111 @@ +{ + "_args": [ + [ + "lodash._getnative@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.keys" + ] + ], + "_from": "lodash._getnative@>=3.0.0 <4.0.0", + "_id": "lodash._getnative@3.9.1", + "_inCache": true, + "_location": "/lodash._getnative", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._getnative", + "raw": "lodash._getnative@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._createcache", + "/lodash.keys", + "/lodash.uniq" + ], + "_resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "_shasum": "570bc7dede46d61cdcde687d65d3eecbaa3aaff5", + "_shrinkwrap": null, + "_spec": "lodash._getnative@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.keys", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s internal `getNative` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "570bc7dede46d61cdcde687d65d3eecbaa3aaff5", + "tarball": "http://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + } + ], + "name": "lodash._getnative", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.9.1" +} diff --git a/deps/npm/node_modules/lodash._isiterateecall/LICENSE.txt b/deps/npm/node_modules/lodash._isiterateecall/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash._isiterateecall/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash._isiterateecall/README.md b/deps/npm/node_modules/lodash._isiterateecall/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0c5c701db23f43616414a36fe707f2b31d348465 --- /dev/null +++ b/deps/npm/node_modules/lodash._isiterateecall/README.md @@ -0,0 +1,20 @@ +# lodash._isiterateecall v3.0.9 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `isIterateeCall` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash._isiterateecall +``` + +In Node.js/io.js: + +```js +var isIterateeCall = require('lodash._isiterateecall'); +``` + +See the [package source](https://github.com/lodash/lodash/blob/3.0.9-npm-packages/lodash._isiterateecall) for more details. diff --git a/deps/npm/node_modules/lodash._isiterateecall/index.js b/deps/npm/node_modules/lodash._isiterateecall/index.js new file mode 100644 index 0000000000000000000000000000000000000000..ea3761b6c41ca2442c0dba4811cd80539f49ff40 --- /dev/null +++ b/deps/npm/node_modules/lodash._isiterateecall/index.js @@ -0,0 +1,132 @@ +/** + * lodash 3.0.9 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** Used to detect unsigned integer values. */ +var reIsUint = /^\d+$/; + +/** + * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * 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]; + }; +} + +/** + * 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 `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ +function isArrayLike(value) { + return value != null && isLength(getLength(value)); +} + +/** + * 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; +} + +/** + * Checks if the provided 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)) { + var other = object[index]; + return value === value ? (value === other) : (other !== other); + } + return false; +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * 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('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +module.exports = isIterateeCall; diff --git a/deps/npm/node_modules/lodash._isiterateecall/package.json b/deps/npm/node_modules/lodash._isiterateecall/package.json new file mode 100644 index 0000000000000000000000000000000000000000..075ad22405f810d6b67dd42f9a0c0d1c22b8ec22 --- /dev/null +++ b/deps/npm/node_modules/lodash._isiterateecall/package.json @@ -0,0 +1,113 @@ +{ + "_args": [ + [ + "lodash._isiterateecall@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.uniq" + ] + ], + "_from": "lodash._isiterateecall@>=3.0.0 <4.0.0", + "_id": "lodash._isiterateecall@3.0.9", + "_inCache": true, + "_location": "/lodash._isiterateecall", + "_nodeVersion": "2.0.2", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "lodash._isiterateecall", + "raw": "lodash._isiterateecall@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash.uniq" + ], + "_resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "_shasum": "5203ad7ba425fae842460e696db9cf3e6aac057c", + "_shrinkwrap": null, + "_spec": "lodash._isiterateecall@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.uniq", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s internal `isIterateeCall` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "5203ad7ba425fae842460e696db9cf3e6aac057c", + "tarball": "http://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + } + ], + "name": "lodash._isiterateecall", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.9" +} diff --git a/deps/npm/node_modules/lodash.clonedeep/LICENSE b/deps/npm/node_modules/lodash.clonedeep/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.clonedeep/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash.clonedeep/README.md b/deps/npm/node_modules/lodash.clonedeep/README.md new file mode 100644 index 0000000000000000000000000000000000000000..7be9a82e463cb24c2dddbe12854f98ee0ebd89f9 --- /dev/null +++ b/deps/npm/node_modules/lodash.clonedeep/README.md @@ -0,0 +1,20 @@ +# lodash.clonedeep v3.0.2 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.cloneDeep` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.clonedeep +``` + +In Node.js/io.js: + +```js +var cloneDeep = require('lodash.clonedeep'); +``` + +See the [documentation](https://lodash.com/docs#cloneDeep) or [package source](https://github.com/lodash/lodash/blob/3.0.2-npm-packages/lodash.clonedeep) for more details. diff --git a/deps/npm/node_modules/lodash.clonedeep/index.js b/deps/npm/node_modules/lodash.clonedeep/index.js new file mode 100644 index 0000000000000000000000000000000000000000..f486c2246be0dd4ea2ea4269e17d50a1f79f9ad8 --- /dev/null +++ b/deps/npm/node_modules/lodash.clonedeep/index.js @@ -0,0 +1,63 @@ +/** + * lodash 3.0.2 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var baseClone = require('lodash._baseclone'), + bindCallback = require('lodash._bindcallback'); + +/** + * Creates a deep clone of `value`. If `customizer` is provided it's invoked + * to produce the cloned values. If `customizer` returns `undefined` cloning + * is handled by the method instead. The `customizer` is bound to `thisArg` + * and invoked with up to three argument; (value [, index|key, object]). + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm). + * The enumerable properties of `arguments` objects and objects created by + * constructors other than `Object` are cloned to plain `Object` objects. An + * empty object is returned for uncloneable values such as functions, DOM nodes, + * Maps, Sets, and WeakMaps. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to deep clone. + * @param {Function} [customizer] The function to customize cloning values. + * @param {*} [thisArg] The `this` binding of `customizer`. + * @returns {*} Returns the deep cloned value. + * @example + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * var deep = _.cloneDeep(users); + * deep[0] === users[0]; + * // => false + * + * // using a customizer callback + * var el = _.cloneDeep(document.body, function(value) { + * if (_.isElement(value)) { + * return value.cloneNode(true); + * } + * }); + * + * el === document.body + * // => false + * el.nodeName + * // => BODY + * el.childNodes.length; + * // => 20 + */ +function cloneDeep(value, customizer, thisArg) { + return typeof customizer == 'function' + ? baseClone(value, true, bindCallback(customizer, thisArg, 3)) + : baseClone(value, true); +} + +module.exports = cloneDeep; diff --git a/deps/npm/node_modules/lodash.clonedeep/package.json b/deps/npm/node_modules/lodash.clonedeep/package.json new file mode 100644 index 0000000000000000000000000000000000000000..83c6e3b1fc074480b9947995a556d4e0d6dc23bd --- /dev/null +++ b/deps/npm/node_modules/lodash.clonedeep/package.json @@ -0,0 +1,123 @@ +{ + "_args": [ + [ + "lodash.clonedeep@~3.0.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "lodash.clonedeep@>=3.0.1 <3.1.0", + "_id": "lodash.clonedeep@3.0.2", + "_inCache": true, + "_location": "/lodash.clonedeep", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.13.1", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.clonedeep", + "raw": "lodash.clonedeep@~3.0.1", + "rawSpec": "~3.0.1", + "scope": null, + "spec": ">=3.0.1 <3.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz", + "_shasum": "a0a1e40d82a5ea89ff5b147b8444ed63d92827db", + "_shrinkwrap": null, + "_spec": "lodash.clonedeep@~3.0.1", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash._baseclone": "^3.0.0", + "lodash._bindcallback": "^3.0.0" + }, + "description": "The modern build of lodash’s `_.cloneDeep` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "a0a1e40d82a5ea89ff5b147b8444ed63d92827db", + "tarball": "http://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "installable": true, + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash.clonedeep", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.2" +} diff --git a/deps/npm/node_modules/lodash.isarguments/LICENSE b/deps/npm/node_modules/lodash.isarguments/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.isarguments/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash.isarguments/README.md b/deps/npm/node_modules/lodash.isarguments/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2e94f790f6e4e49d5730f22d3a06bec0a20b23a5 --- /dev/null +++ b/deps/npm/node_modules/lodash.isarguments/README.md @@ -0,0 +1,20 @@ +# lodash.isarguments v3.0.4 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.isArguments` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.isarguments +``` + +In Node.js/io.js: + +```js +var isArguments = require('lodash.isarguments'); +``` + +See the [documentation](https://lodash.com/docs#isArguments) or [package source](https://github.com/lodash/lodash/blob/3.0.4-npm-packages/lodash.isarguments) for more details. diff --git a/deps/npm/node_modules/lodash.isarguments/index.js b/deps/npm/node_modules/lodash.isarguments/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b947b47dffdca886829e8a243521114500174b6b --- /dev/null +++ b/deps/npm/node_modules/lodash.isarguments/index.js @@ -0,0 +1,106 @@ +/** + * lodash 3.0.4 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Native method references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * 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]; + }; +} + +/** + * 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 `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ +function isArrayLike(value) { + return value != null && isLength(getLength(value)); +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * Checks if `value` is classified as an `arguments` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +function isArguments(value) { + return isObjectLike(value) && isArrayLike(value) && + hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); +} + +module.exports = isArguments; diff --git a/deps/npm/node_modules/lodash.isarguments/package.json b/deps/npm/node_modules/lodash.isarguments/package.json new file mode 100644 index 0000000000000000000000000000000000000000..de5c561d5eb2ea178c320876f3b517c7029e23fb --- /dev/null +++ b/deps/npm/node_modules/lodash.isarguments/package.json @@ -0,0 +1,120 @@ +{ + "_args": [ + [ + "lodash.isarguments@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.keys" + ] + ], + "_from": "lodash.isarguments@>=3.0.0 <4.0.0", + "_id": "lodash.isarguments@3.0.4", + "_inCache": true, + "_location": "/lodash.isarguments", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.isarguments", + "raw": "lodash.isarguments@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._baseflatten", + "/lodash.keys" + ], + "_resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz", + "_shasum": "ebbb884c48d27366a44ea6fee57ed7b5a32a81e0", + "_shrinkwrap": null, + "_spec": "lodash.isarguments@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.keys", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s `_.isArguments` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "ebbb884c48d27366a44ea6fee57ed7b5a32a81e0", + "tarball": "http://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash.isarguments", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.4" +} diff --git a/deps/npm/node_modules/lodash.isarray/LICENSE b/deps/npm/node_modules/lodash.isarray/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.isarray/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash.isarray/README.md b/deps/npm/node_modules/lodash.isarray/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ea274aae1be395a71b7b47ce91c62f2437213d80 --- /dev/null +++ b/deps/npm/node_modules/lodash.isarray/README.md @@ -0,0 +1,20 @@ +# lodash.isarray v3.0.4 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.isArray` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.isarray +``` + +In Node.js/io.js: + +```js +var isArray = require('lodash.isarray'); +``` + +See the [documentation](https://lodash.com/docs#isArray) or [package source](https://github.com/lodash/lodash/blob/3.0.4-npm-packages/lodash.isarray) for more details. diff --git a/deps/npm/node_modules/lodash.isarray/index.js b/deps/npm/node_modules/lodash.isarray/index.js new file mode 100644 index 0000000000000000000000000000000000000000..dd246584489df669b0dd54eaa9b815c662917582 --- /dev/null +++ b/deps/npm/node_modules/lodash.isarray/index.js @@ -0,0 +1,180 @@ +/** + * lodash 3.0.4 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** `Object#toString` result references. */ +var arrayTag = '[object Array]', + funcTag = '[object Function]'; + +/** Used to detect host constructors (Safari > 5). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var fnToString = Function.prototype.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeIsArray = getNative(Array, 'isArray'); + +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(function() { return arguments; }()); + * // => false + */ +var isArray = nativeIsArray || function(value) { + return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; +}; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @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 older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; +} + +/** + * 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('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ +function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && reIsHostCtor.test(value); +} + +module.exports = isArray; diff --git a/deps/npm/node_modules/lodash.isarray/package.json b/deps/npm/node_modules/lodash.isarray/package.json new file mode 100644 index 0000000000000000000000000000000000000000..47cb23f1e91886c0cd9cf53844a12ae567d974fc --- /dev/null +++ b/deps/npm/node_modules/lodash.isarray/package.json @@ -0,0 +1,124 @@ +{ + "_args": [ + [ + "lodash.isarray@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._baseclone" + ] + ], + "_from": "lodash.isarray@>=3.0.0 <4.0.0", + "_id": "lodash.isarray@3.0.4", + "_inCache": true, + "_location": "/lodash.isarray", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.isarray", + "raw": "lodash.isarray@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._basecallback", + "/lodash._baseclone", + "/lodash._baseflatten", + "/lodash._baseisequal", + "/lodash.keys", + "/lodash.uniq" + ], + "_resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "_shasum": "79e4eb88c36a8122af86f844aa9bcd851b5fbb55", + "_shrinkwrap": null, + "_spec": "lodash.isarray@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseclone", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s `_.isArray` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "79e4eb88c36a8122af86f844aa9bcd851b5fbb55", + "tarball": "http://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash.isarray", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.4" +} diff --git a/deps/npm/node_modules/lodash.istypedarray/LICENSE.txt b/deps/npm/node_modules/lodash.istypedarray/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.istypedarray/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash.istypedarray/README.md b/deps/npm/node_modules/lodash.istypedarray/README.md new file mode 100644 index 0000000000000000000000000000000000000000..b1779ccf7fcd17847681029d39f683eec89bc3f0 --- /dev/null +++ b/deps/npm/node_modules/lodash.istypedarray/README.md @@ -0,0 +1,20 @@ +# lodash.istypedarray v3.0.2 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.isTypedArray` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.istypedarray +``` + +In Node.js/io.js: + +```js +var isTypedArray = require('lodash.istypedarray'); +``` + +See the [documentation](https://lodash.com/docs#isTypedArray) or [package source](https://github.com/lodash/lodash/blob/3.0.2-npm-packages/lodash.istypedarray) for more details. diff --git a/deps/npm/node_modules/lodash.istypedarray/index.js b/deps/npm/node_modules/lodash.istypedarray/index.js new file mode 100644 index 0000000000000000000000000000000000000000..829a2d77a78ec74f5b234a693bcb5e3efa790a27 --- /dev/null +++ b/deps/npm/node_modules/lodash.istypedarray/index.js @@ -0,0 +1,110 @@ +/** + * lodash 3.0.2 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dateTag] = typedArrayTags[errorTag] = +typedArrayTags[funcTag] = typedArrayTags[mapTag] = +typedArrayTags[numberTag] = typedArrayTags[objectTag] = +typedArrayTags[regexpTag] = typedArrayTags[setTag] = +typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + +/** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +function isTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)]; +} + +module.exports = isTypedArray; diff --git a/deps/npm/node_modules/lodash.istypedarray/package.json b/deps/npm/node_modules/lodash.istypedarray/package.json new file mode 100644 index 0000000000000000000000000000000000000000..4177313505326b474f28ff292ab862629ee94fa5 --- /dev/null +++ b/deps/npm/node_modules/lodash.istypedarray/package.json @@ -0,0 +1,119 @@ +{ + "_args": [ + [ + "lodash.istypedarray@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._baseisequal" + ] + ], + "_from": "lodash.istypedarray@>=3.0.0 <4.0.0", + "_id": "lodash.istypedarray@3.0.2", + "_inCache": true, + "_location": "/lodash.istypedarray", + "_nodeVersion": "0.12.3", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.istypedarray", + "raw": "lodash.istypedarray@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._baseisequal" + ], + "_resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.2.tgz", + "_shasum": "9397b113c15f424f320af06caa59cc495e2093ce", + "_shrinkwrap": null, + "_spec": "lodash.istypedarray@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseisequal", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s `_.isTypedArray` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "9397b113c15f424f320af06caa59cc495e2093ce", + "tarball": "http://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.2.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + } + ], + "name": "lodash.istypedarray", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.2" +} diff --git a/deps/npm/node_modules/lodash.keys/LICENSE b/deps/npm/node_modules/lodash.keys/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.keys/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash.keys/README.md b/deps/npm/node_modules/lodash.keys/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5f69a1826f90e27bdf29d8880ef2e942ec0ae90b --- /dev/null +++ b/deps/npm/node_modules/lodash.keys/README.md @@ -0,0 +1,20 @@ +# lodash.keys v3.1.2 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.keys` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.keys +``` + +In Node.js/io.js: + +```js +var keys = require('lodash.keys'); +``` + +See the [documentation](https://lodash.com/docs#keys) or [package source](https://github.com/lodash/lodash/blob/3.1.2-npm-packages/lodash.keys) for more details. diff --git a/deps/npm/node_modules/lodash.keys/index.js b/deps/npm/node_modules/lodash.keys/index.js new file mode 100644 index 0000000000000000000000000000000000000000..f4c17749a17ae7c5099498577d188103d519f3a4 --- /dev/null +++ b/deps/npm/node_modules/lodash.keys/index.js @@ -0,0 +1,236 @@ +/** + * lodash 3.1.2 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var getNative = require('lodash._getnative'), + isArguments = require('lodash.isarguments'), + isArray = require('lodash.isarray'); + +/** Used to detect unsigned integer values. */ +var reIsUint = /^\d+$/; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeKeys = getNative(Object, 'keys'); + +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * 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]; + }; +} + +/** + * 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 `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ +function isArrayLike(value) { + return value != null && isLength(getLength(value)); +} + +/** + * 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; +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * A fallback implementation of `Object.keys` which creates an array of the + * own enumerable property names of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function shimKeys(object) { + var props = keysIn(object), + propsLength = props.length, + length = propsLength && object.length; + + var allowIndexes = !!length && isLength(length) && + (isArray(object) || isArguments(object)); + + var index = -1, + result = []; + + while (++index < propsLength) { + var key = props[index]; + if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { + result.push(key); + } + } + return result; +} + +/** + * 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('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) + * for more details. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +var keys = !nativeKeys ? shimKeys : function(object) { + var Ctor = object == null ? undefined : object.constructor; + if ((typeof Ctor == 'function' && Ctor.prototype === object) || + (typeof object != 'function' && isArrayLike(object))) { + return shimKeys(object); + } + return isObject(object) ? nativeKeys(object) : []; +}; + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + if (object == null) { + return []; + } + if (!isObject(object)) { + object = Object(object); + } + var length = object.length; + length = (length && isLength(length) && + (isArray(object) || isArguments(object)) && length) || 0; + + var Ctor = object.constructor, + index = -1, + isProto = typeof Ctor == 'function' && Ctor.prototype === object, + result = Array(length), + skipIndexes = length > 0; + + while (++index < length) { + result[index] = (index + ''); + } + for (var key in object) { + if (!(skipIndexes && isIndex(key, length)) && + !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} + +module.exports = keys; diff --git a/deps/npm/node_modules/lodash.keys/package.json b/deps/npm/node_modules/lodash.keys/package.json new file mode 100644 index 0000000000000000000000000000000000000000..606a4d98524817f8171b7dd6604f7dabaef51a78 --- /dev/null +++ b/deps/npm/node_modules/lodash.keys/package.json @@ -0,0 +1,126 @@ +{ + "_args": [ + [ + "lodash.keys@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._baseclone" + ] + ], + "_from": "lodash.keys@>=3.0.0 <4.0.0", + "_id": "lodash.keys@3.1.2", + "_inCache": true, + "_location": "/lodash.keys", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.keys", + "raw": "lodash.keys@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._baseassign", + "/lodash._baseclone", + "/lodash._baseisequal", + "/lodash.pairs" + ], + "_resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "_shasum": "4dbc0472b156be50a0b286855d1bd0b0c656098a", + "_shrinkwrap": null, + "_spec": "lodash.keys@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseclone", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + }, + "description": "The modern build of lodash’s `_.keys` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "4dbc0472b156be50a0b286855d1bd0b0c656098a", + "tarball": "http://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash.keys", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.1.2" +} diff --git a/deps/npm/node_modules/lodash.pad/LICENSE b/deps/npm/node_modules/lodash.pad/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.pad/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/README.md b/deps/npm/node_modules/lodash.pad/README.md similarity index 84% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md rename to deps/npm/node_modules/lodash.pad/README.md index 9b4891cd8c6f411c66502c4922f782b413ae124a..456d23ddf0c9689ff5f8bd942547785040114fb1 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/README.md +++ b/deps/npm/node_modules/lodash.pad/README.md @@ -1,4 +1,4 @@ -# lodash.pad v3.1.0 +# lodash.pad v3.1.1 The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.pad` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. @@ -17,4 +17,4 @@ In Node.js/io.js: var pad = require('lodash.pad'); ``` -See the [documentation](https://lodash.com/docs#pad) or [package source](https://github.com/lodash/lodash/blob/3.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/3.1.1-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/lodash.pad/index.js similarity index 78% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js rename to deps/npm/node_modules/lodash.pad/index.js index d08251ba5939ee6afd578280b37c1c1085af9859..a29ccea9ca189d409999b8a69f771f7cfdda870e 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/index.js +++ b/deps/npm/node_modules/lodash.pad/index.js @@ -1,23 +1,21 @@ /** - * lodash 3.1.0 (Custom Build) + * lodash 3.1.1 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.2 + * Based on Underscore.js 1.8.3 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ var baseToString = require('lodash._basetostring'), createPadding = require('lodash._createpadding'); -/** Native method references. */ -var ceil = Math.ceil, - floor = Math.floor; - /* Native method references for those with the same name as other `lodash` methods. */ -var nativeIsFinite = global.isFinite; +var nativeCeil = Math.ceil, + nativeFloor = Math.floor, + nativeIsFinite = global.isFinite; /** - * Pads `string` on the left and right sides if it is shorter than `length`. + * Pads `string` on the left and right sides if it's shorter than `length`. * Padding characters are truncated if they can't be evenly divided by `length`. * * @static @@ -47,8 +45,8 @@ function pad(string, length, chars) { return string; } var mid = (length - strLength) / 2, - leftLength = floor(mid), - rightLength = ceil(mid); + leftLength = nativeFloor(mid), + rightLength = nativeCeil(mid); chars = createPadding('', rightLength, chars); return chars.slice(0, leftLength) + string + chars; diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json b/deps/npm/node_modules/lodash.pad/package.json similarity index 70% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json rename to deps/npm/node_modules/lodash.pad/package.json index 6f028c0cc622d8922bbca08b3e1046cfe356b59d..283af352801a903989a6d15a95926a191c46a7c4 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.pad/package.json +++ b/deps/npm/node_modules/lodash.pad/package.json @@ -1,21 +1,45 @@ { - "name": "lodash.pad", - "version": "3.1.0", - "description": "The modern build of lodash’s `_.pad` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "keywords": [ - "lodash", - "lodash-modularized", - "stdlib", - "util" + "_args": [ + [ + "lodash.pad@^3.0.0", + "/Users/rebecca/code/npm/node_modules/gauge" + ] ], + "_from": "lodash.pad@>=3.0.0 <4.0.0", + "_id": "lodash.pad@3.1.1", + "_inCache": true, + "_location": "/lodash.pad", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.pad", + "raw": "lodash.pad@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/gauge" + ], + "_resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz", + "_shasum": "2e078ebc33b331d2ba34bf8732af129fd5c04624", + "_shrinkwrap": null, + "_spec": "lodash.pad@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/gauge", "author": { - "name": "John-David Dalton", "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", "url": "http://allyoucanleet.com/" }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, "contributors": [ { "name": "John-David Dalton", @@ -43,29 +67,26 @@ "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.\"" - }, "dependencies": { "lodash._basetostring": "^3.0.0", "lodash._createpadding": "^3.0.0" }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "_id": "lodash.pad@3.1.0", - "_shasum": "9f18b1f3749a95e197b5ff2ae752ea9851ada965", - "_from": "lodash.pad@>=3.0.0 <4.0.0", - "_npmVersion": "2.7.3", - "_nodeVersion": "0.12.0", - "_npmUser": { - "name": "jdalton", - "email": "john.david.dalton@gmail.com" + "description": "The modern build of lodash’s `_.pad` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "2e078ebc33b331d2ba34bf8732af129fd5c04624", + "tarball": "http://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz" }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", "maintainers": [ { "name": "jdalton", @@ -88,11 +109,14 @@ "email": "blaine@iceddev.com" } ], - "dist": { - "shasum": "9f18b1f3749a95e197b5ff2ae752ea9851ada965", - "tarball": "http://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.0.tgz" + "name": "lodash.pad", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.1.1" } diff --git a/deps/npm/node_modules/lodash.padleft/LICENSE.txt b/deps/npm/node_modules/lodash.padleft/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.padleft/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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.padleft/README.md b/deps/npm/node_modules/lodash.padleft/README.md similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/README.md rename to deps/npm/node_modules/lodash.padleft/README.md diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/index.js b/deps/npm/node_modules/lodash.padleft/index.js similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/index.js rename to deps/npm/node_modules/lodash.padleft/index.js diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/package.json b/deps/npm/node_modules/lodash.padleft/package.json similarity index 77% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/package.json rename to deps/npm/node_modules/lodash.padleft/package.json index 55b0c256f9d1bc785531e11894da9ee4537e16e2..be544bdce085a4f5b1af19f763ccbd589be85be1 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padleft/package.json +++ b/deps/npm/node_modules/lodash.padleft/package.json @@ -1,21 +1,45 @@ { - "name": "lodash.padleft", - "version": "3.1.1", - "description": "The modern build of lodash’s `_.padLeft` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "keywords": [ - "lodash", - "lodash-modularized", - "stdlib", - "util" + "_args": [ + [ + "lodash.padleft@^3.0.0", + "/Users/rebecca/code/npm/node_modules/gauge" + ] + ], + "_from": "lodash.padleft@>=3.0.0 <4.0.0", + "_id": "lodash.padleft@3.1.1", + "_inCache": true, + "_location": "/lodash.padleft", + "_nodeVersion": "0.12.2", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.9.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.padleft", + "raw": "lodash.padleft@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/gauge" ], + "_resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz", + "_shasum": "150151f1e0245edba15d50af2d71f1d5cff46530", + "_shrinkwrap": null, + "_spec": "lodash.padleft@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/gauge", "author": { - "name": "John-David Dalton", "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", "url": "http://allyoucanleet.com/" }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, "contributors": [ { "name": "John-David Dalton", @@ -43,29 +67,26 @@ "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.\"" - }, "dependencies": { "lodash._basetostring": "^3.0.0", "lodash._createpadding": "^3.0.0" }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "_id": "lodash.padleft@3.1.1", - "_shasum": "150151f1e0245edba15d50af2d71f1d5cff46530", - "_from": "lodash.padleft@>=3.0.0 <4.0.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "jdalton", - "email": "john.david.dalton@gmail.com" + "description": "The modern build of lodash’s `_.padLeft` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "150151f1e0245edba15d50af2d71f1d5cff46530", + "tarball": "http://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz" }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", "maintainers": [ { "name": "jdalton", @@ -88,11 +109,14 @@ "email": "blaine@iceddev.com" } ], - "dist": { - "shasum": "150151f1e0245edba15d50af2d71f1d5cff46530", - "tarball": "http://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz" + "name": "lodash.padleft", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.1.1" } diff --git a/deps/npm/node_modules/lodash.padright/LICENSE.txt b/deps/npm/node_modules/lodash.padright/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.padright/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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.padright/README.md b/deps/npm/node_modules/lodash.padright/README.md similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/README.md rename to deps/npm/node_modules/lodash.padright/README.md diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/index.js b/deps/npm/node_modules/lodash.padright/index.js similarity index 100% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/index.js rename to deps/npm/node_modules/lodash.padright/index.js diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/package.json b/deps/npm/node_modules/lodash.padright/package.json similarity index 77% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/package.json rename to deps/npm/node_modules/lodash.padright/package.json index 2a40f94bfc3bfd1d95acd5f5afe811a9c3e01d7b..13111367ff56c79ec887867c0aa104f481152f9c 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash.padright/package.json +++ b/deps/npm/node_modules/lodash.padright/package.json @@ -1,21 +1,45 @@ { - "name": "lodash.padright", - "version": "3.1.1", - "description": "The modern build of lodash’s `_.padRight` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "keywords": [ - "lodash", - "lodash-modularized", - "stdlib", - "util" + "_args": [ + [ + "lodash.padright@^3.0.0", + "/Users/rebecca/code/npm/node_modules/gauge" + ] + ], + "_from": "lodash.padright@>=3.0.0 <4.0.0", + "_id": "lodash.padright@3.1.1", + "_inCache": true, + "_location": "/lodash.padright", + "_nodeVersion": "0.12.2", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.9.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.padright", + "raw": "lodash.padright@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/gauge" ], + "_resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz", + "_shasum": "79f7770baaa39738c040aeb5465e8d88f2aacec0", + "_shrinkwrap": null, + "_spec": "lodash.padright@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/gauge", "author": { - "name": "John-David Dalton", "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", "url": "http://allyoucanleet.com/" }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, "contributors": [ { "name": "John-David Dalton", @@ -43,29 +67,26 @@ "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.\"" - }, "dependencies": { "lodash._basetostring": "^3.0.0", "lodash._createpadding": "^3.0.0" }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "_id": "lodash.padright@3.1.1", - "_shasum": "79f7770baaa39738c040aeb5465e8d88f2aacec0", - "_from": "lodash.padright@>=3.0.0 <4.0.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "jdalton", - "email": "john.david.dalton@gmail.com" + "description": "The modern build of lodash’s `_.padRight` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "79f7770baaa39738c040aeb5465e8d88f2aacec0", + "tarball": "http://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz" }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", "maintainers": [ { "name": "jdalton", @@ -88,11 +109,14 @@ "email": "blaine@iceddev.com" } ], - "dist": { - "shasum": "79f7770baaa39738c040aeb5465e8d88f2aacec0", - "tarball": "http://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz" + "name": "lodash.padright", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.1.1" } diff --git a/deps/npm/node_modules/lodash.pairs/LICENSE.txt b/deps/npm/node_modules/lodash.pairs/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.pairs/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash.pairs/README.md b/deps/npm/node_modules/lodash.pairs/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9edbbac4b155f192f78bb49113f6fc368b85e842 --- /dev/null +++ b/deps/npm/node_modules/lodash.pairs/README.md @@ -0,0 +1,20 @@ +# lodash.pairs v3.0.1 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.pairs` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.pairs +``` + +In Node.js/io.js: + +```js +var pairs = require('lodash.pairs'); +``` + +See the [documentation](https://lodash.com/docs#pairs) or [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash.pairs) for more details. diff --git a/deps/npm/node_modules/lodash.pairs/index.js b/deps/npm/node_modules/lodash.pairs/index.js new file mode 100644 index 0000000000000000000000000000000000000000..c0c1877553b7b07409e87f023376c134ced466e9 --- /dev/null +++ b/deps/npm/node_modules/lodash.pairs/index.js @@ -0,0 +1,78 @@ +/** + * lodash 3.0.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var keys = require('lodash.keys'); + +/** + * Converts `value` to an object if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Object} Returns the object. + */ +function toObject(value) { + return isObject(value) ? value : Object(value); +} + +/** + * 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('')`) + * + * @static + * @memberOf _ + * @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(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Creates a two dimensional array of the key-value pairs for `object`, + * e.g. `[[key1, value1], [key2, value2]]`. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the new array of key-value pairs. + * @example + * + * _.pairs({ 'barney': 36, 'fred': 40 }); + * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed) + */ +function pairs(object) { + object = toObject(object); + + var index = -1, + props = keys(object), + length = props.length, + result = Array(length); + + while (++index < length) { + var key = props[index]; + result[index] = [key, object[key]]; + } + return result; +} + +module.exports = pairs; diff --git a/deps/npm/node_modules/lodash.pairs/package.json b/deps/npm/node_modules/lodash.pairs/package.json new file mode 100644 index 0000000000000000000000000000000000000000..8a172572239dbe33981e7c8a066df17bd3fec61d --- /dev/null +++ b/deps/npm/node_modules/lodash.pairs/package.json @@ -0,0 +1,121 @@ +{ + "_args": [ + [ + "lodash.pairs@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._basecallback" + ] + ], + "_from": "lodash.pairs@>=3.0.0 <4.0.0", + "_id": "lodash.pairs@3.0.1", + "_inCache": true, + "_location": "/lodash.pairs", + "_nodeVersion": "0.12.3", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.pairs", + "raw": "lodash.pairs@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._basecallback" + ], + "_resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz", + "_shasum": "bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9", + "_shrinkwrap": null, + "_spec": "lodash.pairs@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._basecallback", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash.keys": "^3.0.0" + }, + "description": "The modern build of lodash’s `_.pairs` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9", + "tarball": "http://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash.pairs", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.1" +} diff --git a/deps/npm/node_modules/lodash.repeat/LICENSE b/deps/npm/node_modules/lodash.repeat/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.repeat/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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._createpadding/node_modules/lodash.repeat/README.md b/deps/npm/node_modules/lodash.repeat/README.md similarity index 84% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md rename to deps/npm/node_modules/lodash.repeat/README.md index d2796e3f739a4f9b8d2b6beacd44917bfa78028b..dec571a333a52a51b45287023763762fa1b87a08 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/node_modules/lodash.repeat/README.md +++ b/deps/npm/node_modules/lodash.repeat/README.md @@ -1,4 +1,4 @@ -# lodash.repeat v3.0.0 +# lodash.repeat v3.0.1 The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.repeat` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. @@ -17,4 +17,4 @@ In Node.js/io.js: var repeat = require('lodash.repeat'); ``` -See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/3.0.0-npm-packages/lodash.repeat) for more details. +See the [documentation](https://lodash.com/docs#repeat) or [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash.repeat) for more details. diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js b/deps/npm/node_modules/lodash.repeat/index.js similarity index 84% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js rename to deps/npm/node_modules/lodash.repeat/index.js index 68e100813461a4d5ebbb0a91cc4b235c5fec4a5a..367913f56e0ada67d6db66f5d181d2c5df6b14d7 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/node_modules/lodash.repeat/index.js +++ b/deps/npm/node_modules/lodash.repeat/index.js @@ -1,18 +1,16 @@ /** - * lodash 3.0.0 (Custom Build) + * lodash 3.0.1 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.7.0 + * Based on Underscore.js 1.8.3 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ var baseToString = require('lodash._basetostring'); -/** Native method references. */ -var floor = Math.floor; - /* Native method references for those with the same name as other `lodash` methods. */ -var nativeIsFinite = global.isFinite; +var nativeFloor = Math.floor, + nativeIsFinite = global.isFinite; /** * Repeats the given string `n` times. @@ -47,7 +45,7 @@ function repeat(string, n) { if (n % 2) { result += string; } - n = floor(n / 2); + n = nativeFloor(n / 2); string += string; } while (n); diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json b/deps/npm/node_modules/lodash.repeat/package.json similarity index 58% rename from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json rename to deps/npm/node_modules/lodash.repeat/package.json index de5156da130dc20c3e7efa800ff5cd1dbd772573..a7294ef351457530972c3c3272e3e85de009b71e 100644 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/lodash._createpadding/node_modules/lodash.repeat/package.json +++ b/deps/npm/node_modules/lodash.repeat/package.json @@ -1,21 +1,45 @@ { - "name": "lodash.repeat", - "version": "3.0.0", - "description": "The modern build of lodash’s `_.repeat` as a module.", - "homepage": "https://lodash.com/", - "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "keywords": [ - "lodash", - "lodash-modularized", - "stdlib", - "util" + "_args": [ + [ + "lodash.repeat@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash._createpadding" + ] + ], + "_from": "lodash.repeat@>=3.0.0 <4.0.0", + "_id": "lodash.repeat@3.0.1", + "_inCache": true, + "_location": "/lodash.repeat", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.repeat", + "raw": "lodash.repeat@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash._createpadding" ], + "_resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz", + "_shasum": "f4b98dc7ef67256ce61e7874e1865edb208e0edf", + "_shrinkwrap": null, + "_spec": "lodash.repeat@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash._createpadding", "author": { - "name": "John-David Dalton", "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", "url": "http://allyoucanleet.com/" }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, "contributors": [ { "name": "John-David Dalton", @@ -43,39 +67,55 @@ "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.\"" - }, "dependencies": { "lodash._basetostring": "^3.0.0" }, - "bugs": { - "url": "https://github.com/lodash/lodash/issues" - }, - "_id": "lodash.repeat@3.0.0", - "_shasum": "c340f4136c99dc5b2e397b3fd50cffbd172a94b0", - "_from": "lodash.repeat@>=3.0.0 <4.0.0", - "_npmVersion": "2.3.0", - "_nodeVersion": "0.10.35", - "_npmUser": { - "name": "jdalton", - "email": "john.david.dalton@gmail.com" + "description": "The modern build of lodash’s `_.repeat` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "f4b98dc7ef67256ce61e7874e1865edb208e0edf", + "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", "maintainers": [ { "name": "jdalton", "email": "john.david.dalton@gmail.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" } ], - "dist": { - "shasum": "c340f4136c99dc5b2e397b3fd50cffbd172a94b0", - "tarball": "http://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.0.tgz" + "name": "lodash.repeat", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.0.1" } diff --git a/deps/npm/node_modules/lodash.restparam/LICENSE.txt b/deps/npm/node_modules/lodash.restparam/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.restparam/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash.restparam/README.md b/deps/npm/node_modules/lodash.restparam/README.md new file mode 100644 index 0000000000000000000000000000000000000000..80e47a4f9b2093643c31a7628c2cc2a6773bb852 --- /dev/null +++ b/deps/npm/node_modules/lodash.restparam/README.md @@ -0,0 +1,20 @@ +# lodash.restparam v3.6.1 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.restParam` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.restparam +``` + +In Node.js/io.js: + +```js +var restParam = require('lodash.restparam'); +``` + +See the [documentation](https://lodash.com/docs#restParam) or [package source](https://github.com/lodash/lodash/blob/3.6.1-npm-packages/lodash.restparam) for more details. diff --git a/deps/npm/node_modules/lodash.restparam/index.js b/deps/npm/node_modules/lodash.restparam/index.js new file mode 100644 index 0000000000000000000000000000000000000000..932f47ac743461b5331ba71cb246a294edc07bbf --- /dev/null +++ b/deps/npm/node_modules/lodash.restparam/index.js @@ -0,0 +1,67 @@ +/** + * lodash 3.6.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + +/** Used as the `TypeError` message for "Functions" methods. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as an array. + * + * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters). + * + * @static + * @memberOf _ + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.restParam(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */ +function restParam(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + rest = Array(length); + + while (++index < length) { + rest[index] = args[start + index]; + } + switch (start) { + case 0: return func.call(this, rest); + case 1: return func.call(this, args[0], rest); + case 2: return func.call(this, args[0], args[1], rest); + } + var otherArgs = Array(start + 1); + index = -1; + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = rest; + return func.apply(this, otherArgs); + }; +} + +module.exports = restParam; diff --git a/deps/npm/node_modules/lodash.restparam/package.json b/deps/npm/node_modules/lodash.restparam/package.json new file mode 100644 index 0000000000000000000000000000000000000000..b57d381a17af732fb44ee5bdb1bef148e48e4a78 --- /dev/null +++ b/deps/npm/node_modules/lodash.restparam/package.json @@ -0,0 +1,120 @@ +{ + "_args": [ + [ + "lodash.restparam@^3.0.0", + "/Users/rebecca/code/npm/node_modules/lodash.union" + ] + ], + "_from": "lodash.restparam@>=3.0.0 <4.0.0", + "_id": "lodash.restparam@3.6.1", + "_inCache": true, + "_location": "/lodash.restparam", + "_nodeVersion": "0.12.2", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.7.6", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.restparam", + "raw": "lodash.restparam@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/lodash.union", + "/lodash.without" + ], + "_resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "_shasum": "936a4e309ef330a7645ed4145986c85ae5b20805", + "_shrinkwrap": null, + "_spec": "lodash.restparam@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/lodash.union", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": {}, + "description": "The modern build of lodash’s `_.restParam` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "936a4e309ef330a7645ed4145986c85ae5b20805", + "tarball": "http://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + } + ], + "name": "lodash.restparam", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/lodash/lodash" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.6.1" +} diff --git a/deps/npm/node_modules/lodash.union/LICENSE.txt b/deps/npm/node_modules/lodash.union/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.union/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash.union/README.md b/deps/npm/node_modules/lodash.union/README.md new file mode 100644 index 0000000000000000000000000000000000000000..62f67e410f1e1575fcef08f841b8282a06e01d4a --- /dev/null +++ b/deps/npm/node_modules/lodash.union/README.md @@ -0,0 +1,20 @@ +# lodash.union v3.1.0 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.union` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.union +``` + +In Node.js/io.js: + +```js +var union = require('lodash.union'); +``` + +See the [documentation](https://lodash.com/docs#union) or [package source](https://github.com/lodash/lodash/blob/3.1.0-npm-packages/lodash.union) for more details. diff --git a/deps/npm/node_modules/lodash.union/index.js b/deps/npm/node_modules/lodash.union/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b26b28c89cda4c60e40b4eed9018170f2df27a26 --- /dev/null +++ b/deps/npm/node_modules/lodash.union/index.js @@ -0,0 +1,35 @@ +/** + * lodash 3.1.0 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.2 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var baseFlatten = require('lodash._baseflatten'), + baseUniq = require('lodash._baseuniq'), + restParam = require('lodash.restparam'); + +/** + * Creates an array of unique values, in order, of the provided arrays using + * `SameValueZero` for equality comparisons. + * + * **Note:** [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) + * comparisons are like strict equality comparisons, e.g. `===`, except that + * `NaN` matches `NaN`. + * + * @static + * @memberOf _ + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.union([1, 2], [4, 2], [2, 1]); + * // => [1, 2, 4] + */ +var union = restParam(function(arrays) { + return baseUniq(baseFlatten(arrays, false, true)); +}); + +module.exports = union; diff --git a/deps/npm/node_modules/lodash.union/package.json b/deps/npm/node_modules/lodash.union/package.json new file mode 100644 index 0000000000000000000000000000000000000000..4359aa2c3a486a65209f6509882c5fa2832c187b --- /dev/null +++ b/deps/npm/node_modules/lodash.union/package.json @@ -0,0 +1,123 @@ +{ + "_args": [ + [ + "lodash.union@~3.1.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "lodash.union@>=3.1.0 <3.2.0", + "_id": "lodash.union@3.1.0", + "_inCache": true, + "_location": "/lodash.union", + "_nodeVersion": "0.12.0", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.7.3", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.union", + "raw": "lodash.union@~3.1.0", + "rawSpec": "~3.1.0", + "scope": null, + "spec": ">=3.1.0 <3.2.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-3.1.0.tgz", + "_shasum": "a4a3066fc15d6a7f8151cce9bdfe63dce7f5bcff", + "_shrinkwrap": null, + "_spec": "lodash.union@~3.1.0", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash._baseflatten": "^3.0.0", + "lodash._baseuniq": "^3.0.0", + "lodash.restparam": "^3.0.0" + }, + "description": "The modern build of lodash’s `_.union` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "a4a3066fc15d6a7f8151cce9bdfe63dce7f5bcff", + "tarball": "http://registry.npmjs.org/lodash.union/-/lodash.union-3.1.0.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash.union", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/lodash/lodash" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.1.0" +} diff --git a/deps/npm/node_modules/lodash.uniq/LICENSE b/deps/npm/node_modules/lodash.uniq/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.uniq/LICENSE @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash.uniq/README.md b/deps/npm/node_modules/lodash.uniq/README.md new file mode 100644 index 0000000000000000000000000000000000000000..7ec935c7aa7fbe23bb3eeed7ca04eda40f6269ce --- /dev/null +++ b/deps/npm/node_modules/lodash.uniq/README.md @@ -0,0 +1,20 @@ +# lodash.uniq v3.2.2 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.uniq` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.uniq +``` + +In Node.js/io.js: + +```js +var uniq = require('lodash.uniq'); +``` + +See the [documentation](https://lodash.com/docs#uniq) or [package source](https://github.com/lodash/lodash/blob/3.2.2-npm-packages/lodash.uniq) for more details. diff --git a/deps/npm/node_modules/lodash.uniq/index.js b/deps/npm/node_modules/lodash.uniq/index.js new file mode 100644 index 0000000000000000000000000000000000000000..7c9a845e6a491f6929c913f55900a7108acd3957 --- /dev/null +++ b/deps/npm/node_modules/lodash.uniq/index.js @@ -0,0 +1,106 @@ +/** + * lodash 3.2.2 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var baseCallback = require('lodash._basecallback'), + baseUniq = require('lodash._baseuniq'), + isIterateeCall = require('lodash._isiterateecall'); + +/** + * An implementation of `_.uniq` optimized for sorted arrays without support + * for callback shorthands and `this` binding. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The function invoked per iteration. + * @returns {Array} Returns the new duplicate-value-free array. + */ +function sortedUniq(array, iteratee) { + var seen, + index = -1, + length = array.length, + resIndex = -1, + result = []; + + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value, index, array) : value; + + if (!index || seen !== computed) { + seen = computed; + result[++resIndex] = value; + } + } + return result; +} + +/** + * Creates a duplicate-free version of an array, using + * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) + * for equality comparisons, in which only the first occurence of each element + * is kept. Providing `true` for `isSorted` performs a faster search algorithm + * for sorted arrays. If an iteratee function is provided it is invoked for + * each element in the array to generate the criterion by which uniqueness + * is computed. The `iteratee` is bound to `thisArg` and invoked with three + * arguments: (value, index, array). + * + * If a property name is provided for `iteratee` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `iteratee` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * @static + * @memberOf _ + * @alias unique + * @category Array + * @param {Array} array The array to inspect. + * @param {boolean} [isSorted] Specify the array is sorted. + * @param {Function|Object|string} [iteratee] The function invoked per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Array} Returns the new duplicate-value-free array. + * @example + * + * _.uniq([2, 1, 2]); + * // => [2, 1] + * + * // using `isSorted` + * _.uniq([1, 1, 2], true); + * // => [1, 2] + * + * // using an iteratee function + * _.uniq([1, 2.5, 1.5, 2], function(n) { + * return this.floor(n); + * }, Math); + * // => [1, 2.5] + * + * // using the `_.property` callback shorthand + * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */ +function uniq(array, isSorted, iteratee, thisArg) { + var length = array ? array.length : 0; + if (!length) { + return []; + } + if (isSorted != null && typeof isSorted != 'boolean') { + thisArg = iteratee; + iteratee = isIterateeCall(array, isSorted, thisArg) ? undefined : isSorted; + isSorted = false; + } + iteratee = iteratee == null ? iteratee : baseCallback(iteratee, thisArg, 3); + return (isSorted) + ? sortedUniq(array, iteratee) + : baseUniq(array, iteratee); +} + +module.exports = uniq; diff --git a/deps/npm/node_modules/lodash.uniq/package.json b/deps/npm/node_modules/lodash.uniq/package.json new file mode 100644 index 0000000000000000000000000000000000000000..0e06bfe287aa56e5bef2b01272f985a9866dab93 --- /dev/null +++ b/deps/npm/node_modules/lodash.uniq/package.json @@ -0,0 +1,125 @@ +{ + "_args": [ + [ + "lodash.uniq@~3.2.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "lodash.uniq@>=3.2.1 <3.3.0", + "_id": "lodash.uniq@3.2.2", + "_inCache": true, + "_location": "/lodash.uniq", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.12.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.uniq", + "raw": "lodash.uniq@~3.2.1", + "rawSpec": "~3.2.1", + "scope": null, + "spec": ">=3.2.1 <3.3.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-3.2.2.tgz", + "_shasum": "146c36f25e75d19501ba402e88ba14937f63cd8b", + "_shrinkwrap": null, + "_spec": "lodash.uniq@~3.2.1", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash._basecallback": "^3.0.0", + "lodash._baseuniq": "^3.0.0", + "lodash._getnative": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash.isarray": "^3.0.0" + }, + "description": "The modern build of lodash’s `_.uniq` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "146c36f25e75d19501ba402e88ba14937f63cd8b", + "tarball": "http://registry.npmjs.org/lodash.uniq/-/lodash.uniq-3.2.2.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash.uniq", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.2.2" +} diff --git a/deps/npm/node_modules/lodash.without/LICENSE.txt b/deps/npm/node_modules/lodash.without/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..9cd87e5dcefe5846a6d97e360edebf550639fb7d --- /dev/null +++ b/deps/npm/node_modules/lodash.without/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright 2012-2015 The Dojo Foundation +Based on Underscore.js, copyright 2009-2015 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/lodash.without/README.md b/deps/npm/node_modules/lodash.without/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5414eed6d39c0cdab0fb650fc9fadfaef56e38b4 --- /dev/null +++ b/deps/npm/node_modules/lodash.without/README.md @@ -0,0 +1,20 @@ +# lodash.without v3.2.1 + +The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.without` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. + +## Installation + +Using npm: + +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.without +``` + +In Node.js/io.js: + +```js +var without = require('lodash.without'); +``` + +See the [documentation](https://lodash.com/docs#without) or [package source](https://github.com/lodash/lodash/blob/3.2.1-npm-packages/lodash.without) for more details. diff --git a/deps/npm/node_modules/lodash.without/index.js b/deps/npm/node_modules/lodash.without/index.js new file mode 100644 index 0000000000000000000000000000000000000000..2febcd416bcd2f68a6654cd29f57c0ab994dac78 --- /dev/null +++ b/deps/npm/node_modules/lodash.without/index.js @@ -0,0 +1,89 @@ +/** + * lodash 3.2.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ +var baseDifference = require('lodash._basedifference'), + restParam = require('lodash.restparam'); + +/** + * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * 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]; + }; +} + +/** + * 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 `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ +function isArrayLike(value) { + return value != null && isLength(getLength(value)); +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * Creates an array excluding all provided values using + * [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) + * for equality comparisons. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to filter. + * @param {...*} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.without([1, 2, 1, 3], 1, 2); + * // => [3] + */ +var without = restParam(function(array, values) { + return isArrayLike(array) + ? baseDifference(array, values) + : []; +}); + +module.exports = without; diff --git a/deps/npm/node_modules/lodash.without/package.json b/deps/npm/node_modules/lodash.without/package.json new file mode 100644 index 0000000000000000000000000000000000000000..3463a8fc9faaafbb394ac529240f453eeec363ff --- /dev/null +++ b/deps/npm/node_modules/lodash.without/package.json @@ -0,0 +1,122 @@ +{ + "_args": [ + [ + "lodash.without@~3.2.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "lodash.without@>=3.2.1 <3.3.0", + "_id": "lodash.without@3.2.1", + "_inCache": true, + "_location": "/lodash.without", + "_nodeVersion": "0.12.3", + "_npmUser": { + "email": "john.david.dalton@gmail.com", + "name": "jdalton" + }, + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "lodash.without", + "raw": "lodash.without@~3.2.1", + "rawSpec": "~3.2.1", + "scope": null, + "spec": ">=3.2.1 <3.3.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-3.2.1.tgz", + "_shasum": "d69614b3512e52294b6abab782e7ca96538ce816", + "_shrinkwrap": null, + "_spec": "lodash.without@~3.2.1", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "john.david.dalton@gmail.com", + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine@iceddev.com", + "url": "http://www.iceddev.com/" + }, + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "dependencies": { + "lodash._basedifference": "^3.0.0", + "lodash.restparam": "^3.0.0" + }, + "description": "The modern build of lodash’s `_.without` as a module.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "d69614b3512e52294b6abab782e7ca96538ce816", + "tarball": "http://registry.npmjs.org/lodash.without/-/lodash.without-3.2.1.tgz" + }, + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "keywords": [ + "lodash", + "lodash-modularized", + "stdlib", + "util" + ], + "license": "MIT", + "maintainers": [ + { + "name": "jdalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "kitcambridge", + "email": "github@kitcambridge.be" + }, + { + "name": "mathias", + "email": "mathias@qiwi.be" + }, + { + "name": "phated", + "email": "blaine@iceddev.com" + }, + { + "name": "d10", + "email": "demoneaux@gmail.com" + } + ], + "name": "lodash.without", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "3.2.1" +} diff --git a/deps/npm/node_modules/lru-cache/README.md b/deps/npm/node_modules/lru-cache/README.md index 3fd6d0bcae478e405e658657a32e1343686e7f65..a8bba688f7202e659192123f87de44900134e625 100644 --- a/deps/npm/node_modules/lru-cache/README.md +++ b/deps/npm/node_modules/lru-cache/README.md @@ -36,7 +36,7 @@ away. * `length` Function that is used to calculate the length of stored items. If you're storing strings or buffers, then you probably want to do something like `function(n){return n.length}`. The default is - `function(n){return 1}`, which is fine if you want to store `max` + `function(n){return 1}`, which is fine if you want to store `n` like-sized things. * `dispose` Function that is called on items when they are dropped from the cache. This can be handy if you want to close file @@ -102,18 +102,8 @@ away. Return total length of objects in cache taking into account `length` options function. -* `itemCount` +* `itemCount()` Return total quantity of objects currently in cache. Note, that `stale` (see options) items are returned as part of this item count. - -* `dump()` - - Return an array of the cache entries ready for serialization and usage - with 'destinationCache.load(arr)`. - -* `load(cacheEntriesArray)` - - Loads another cache entries array, obtained with `sourceCache.dump()`, - into the cache. The destination cache is reset before loading new entries diff --git a/deps/npm/node_modules/lru-cache/lib/lru-cache.js b/deps/npm/node_modules/lru-cache/lib/lru-cache.js index 32c2d2d90be15077f04a9d21b9ea936ea3711f98..d66e7a2382f176027c1c6a1a06e2259c9dfcbc08 100644 --- a/deps/npm/node_modules/lru-cache/lib/lru-cache.js +++ b/deps/npm/node_modules/lru-cache/lib/lru-cache.js @@ -137,24 +137,10 @@ LRUCache.prototype.reset = function () { this._itemCount = 0 } +// Provided for debugging/dev purposes only. No promises whatsoever that +// this API stays stable. LRUCache.prototype.dump = function () { - var arr = [] - var i = 0 - - for (var k = this._mru - 1; k >= 0 && i < this._itemCount; k--) if (this._lruList[k]) { - var hit = this._lruList[k] - if (!isStale(this, hit)) { - //Do not store staled hits - ++i - arr.push({ - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - }); - } - } - //arr has the most read first - return arr + return this._cache } LRUCache.prototype.dumpLru = function () { @@ -164,13 +150,8 @@ LRUCache.prototype.dumpLru = function () { LRUCache.prototype.set = function (key, value, maxAge) { maxAge = maxAge || this._maxAge var now = maxAge ? Date.now() : 0 - var len = this._lengthCalculator(value) if (hOP(this._cache, key)) { - if (len > this._max) { - del(this, this._cache[key]) - return false - } // dispose of the old one before overwriting if (this._dispose) this._dispose(key, this._cache[key].value) @@ -178,16 +159,11 @@ LRUCache.prototype.set = function (key, value, maxAge) { this._cache[key].now = now this._cache[key].maxAge = maxAge this._cache[key].value = value - this._length += (len - this._cache[key].length) - this._cache[key].length = len this.get(key) - - if (this._length > this._max) - trim(this) - return true } + var len = this._lengthCalculator(value) var hit = new Entry(key, value, this._mru++, len, now, maxAge) // oversized objects fall out of cache automatically. @@ -233,26 +209,6 @@ LRUCache.prototype.del = function (key) { del(this, this._cache[key]) } -LRUCache.prototype.load = function (arr) { - //reset the cache - this.reset(); - - var now = Date.now() - //A previous serialized cache has the most recent items first - for (var l = arr.length - 1; l >= 0; l-- ) { - var hit = arr[l] - var expiresAt = hit.e || 0 - if (expiresAt === 0) { - //the item was created without expiration in a non aged cache - this.set(hit.k, hit.v) - } else { - var maxAge = expiresAt - now - //dont add already expired items - if (maxAge > 0) this.set(hit.k, hit.v, maxAge) - } - } -} - function get (self, key, doUse) { var hit = self._cache[key] if (hit) { diff --git a/deps/npm/node_modules/lru-cache/package.json b/deps/npm/node_modules/lru-cache/package.json index 5a9d76a1d5f455d4fe12e3df7c7593f20a0f299b..97472d1fb19cce13ff326938ed14af86af146e88 100644 --- a/deps/npm/node_modules/lru-cache/package.json +++ b/deps/npm/node_modules/lru-cache/package.json @@ -1,47 +1,64 @@ { - "name": "lru-cache", - "description": "A cache object that deletes the least-recently-used items.", - "version": "2.7.0", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me" - }, - "keywords": [ - "mru", - "lru", - "cache" + "_args": [ + [ + "lru-cache@2", + "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/minimatch" + ] ], - "scripts": { - "test": "tap test --gc" + "_from": "lru-cache@>=2.0.0 <3.0.0", + "_id": "lru-cache@2.6.5", + "_inCache": true, + "_location": "/lru-cache", + "_nodeVersion": "2.2.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" }, - "main": "lib/lru-cache.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-lru-cache.git" + "_npmVersion": "3.0.0", + "_phantomChildren": {}, + "_requested": { + "name": "lru-cache", + "raw": "lru-cache@2", + "rawSpec": "2", + "scope": null, + "spec": ">=2.0.0 <3.0.0", + "type": "range" }, - "devDependencies": { - "tap": "^1.2.0", - "weak": "" + "_requiredBy": [ + "/node-gyp/minimatch" + ], + "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz", + "_shasum": "e56d6354148ede8d7707b58d143220fd08df0fd5", + "_shrinkwrap": null, + "_spec": "lru-cache@2", + "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/minimatch", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter" }, - "license": "ISC", - "gitHead": "fc6ee93093f4e463e5946736d4c48adc013724d1", "bugs": { "url": "https://github.com/isaacs/node-lru-cache/issues" }, - "homepage": "https://github.com/isaacs/node-lru-cache#readme", - "_id": "lru-cache@2.7.0", - "_shasum": "aaa376a4cd970f9cebf5ec1909566ec034f07ee6", - "_from": "lru-cache@2.7.0", - "_npmVersion": "3.3.2", - "_nodeVersion": "4.0.0", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" + "dependencies": {}, + "description": "A cache object that deletes the least-recently-used items.", + "devDependencies": { + "tap": "^1.2.0", + "weak": "" }, + "directories": {}, "dist": { - "shasum": "aaa376a4cd970f9cebf5ec1909566ec034f07ee6", - "tarball": "http://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" + "shasum": "e56d6354148ede8d7707b58d143220fd08df0fd5", + "tarball": "http://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" }, + "gitHead": "7062a0c891bfb80a294be9217e4de0f882e75776", + "homepage": "https://github.com/isaacs/node-lru-cache#readme", + "keywords": [ + "cache", + "lru", + "mru" + ], + "license": "ISC", + "main": "lib/lru-cache.js", "maintainers": [ { "name": "isaacs", @@ -52,7 +69,14 @@ "email": "ogd@aoaioxxysz.net" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz", - "readme": "ERROR: No README data found!" + "name": "lru-cache", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-lru-cache.git" + }, + "scripts": { + "test": "tap test --gc" + }, + "version": "2.6.5" } diff --git a/deps/npm/node_modules/lru-cache/test/basic.js b/deps/npm/node_modules/lru-cache/test/basic.js index b47225f109891fbfb98f596976a19b931def7fad..949113e9ce8bd750b4bf3d45d80e7b0694770145 100644 --- a/deps/npm/node_modules/lru-cache/test/basic.js +++ b/deps/npm/node_modules/lru-cache/test/basic.js @@ -93,6 +93,31 @@ test("reset", function (t) { }) +// Note: `.dump()` is a debugging tool only. No guarantees are made +// about the format/layout of the response. +test("dump", function (t) { + var cache = new LRU(10) + var d = cache.dump(); + t.equal(Object.keys(d).length, 0, "nothing in dump for empty cache") + cache.set("a", "A") + var d = cache.dump() // { a: { key: "a", value: "A", lu: 0 } } + t.ok(d.a) + t.equal(d.a.key, "a") + t.equal(d.a.value, "A") + t.equal(d.a.lu, 0) + + cache.set("b", "B") + cache.get("b") + d = cache.dump() + t.ok(d.b) + t.equal(d.b.key, "b") + t.equal(d.b.value, "B") + t.equal(d.b.lu, 2) + + t.end() +}) + + test("basic with weighed length", function (t) { var cache = new LRU({ max: 100, @@ -157,32 +182,6 @@ test("lru recently gotten with weighed length", function (t) { t.end() }) -test("lru recently updated with weighed length", function (t) { - var cache = new LRU({ - max: 8, - length: function (item) { return item.length } - }) - cache.set("a", "A") - cache.set("b", "BB") - cache.set("c", "CCC") - t.equal(cache.length, 6) //CCC BB A - cache.set("a", "+A") - t.equal(cache.length, 7) //+A CCC BB - cache.set("b", "++BB") - t.equal(cache.length, 6) //++BB +A - t.equal(cache.get("c"), undefined) - - cache.set("c", "oversized") - t.equal(cache.length, 6) //++BB +A - t.equal(cache.get("c"), undefined) - - cache.set("a", "oversized") - t.equal(cache.length, 4) //++BB - t.equal(cache.get("a"), undefined) - t.equal(cache.get("b"), "++BB") - t.end() -}) - test("set returns proper booleans", function(t) { var cache = new LRU({ max: 5, diff --git a/deps/npm/node_modules/lru-cache/test/serialize.js b/deps/npm/node_modules/lru-cache/test/serialize.js deleted file mode 100644 index 5fe5dc3d371f1e2e68b480631a82cc4c0aa38ed4..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/lru-cache/test/serialize.js +++ /dev/null @@ -1,215 +0,0 @@ -var test = require('tap').test -var LRU = require('../') - -test('dump', function (t) { - var cache = new LRU() - - t.equal(cache.dump().length, 0, "nothing in dump for empty cache") - - cache.set("a", "A") - cache.set("b", "B") - t.deepEqual(cache.dump(), [ - { k: "b", v: "B", e: 0 }, - { k: "a", v: "A", e: 0 } - ]) - - cache.set("a", "A"); - t.deepEqual(cache.dump(), [ - { k: "a", v: "A", e: 0 }, - { k: "b", v: "B", e: 0 } - ]) - - cache.get("b"); - t.deepEqual(cache.dump(), [ - { k: "b", v: "B", e: 0 }, - { k: "a", v: "A", e: 0 } - ]) - - cache.del("a"); - t.deepEqual(cache.dump(), [ - { k: "b", v: "B", e: 0 } - ]) - - t.end() -}) - -test("do not dump stale items", function(t) { - var cache = new LRU({ - max: 5, - maxAge: 50 - }) - - //expires at 50 - cache.set("a", "A") - - setTimeout(function () { - //expires at 75 - cache.set("b", "B") - var s = cache.dump() - t.equal(s.length, 2) - t.equal(s[0].k, "b") - t.equal(s[1].k, "a") - }, 25) - - setTimeout(function () { - //expires at 110 - cache.set("c", "C") - var s = cache.dump() - t.equal(s.length, 2) - t.equal(s[0].k, "c") - t.equal(s[1].k, "b") - }, 60) - - setTimeout(function () { - //expires at 130 - cache.set("d", "D", 40) - var s = cache.dump() - t.equal(s.length, 2) - t.equal(s[0].k, "d") - t.equal(s[1].k, "c") - }, 90) - - setTimeout(function () { - var s = cache.dump() - t.equal(s.length, 1) - t.equal(s[0].k, "d") - }, 120) - - setTimeout(function () { - var s = cache.dump() - t.deepEqual(s, []) - t.end() - }, 155) -}) - -test("load basic cache", function(t) { - var cache = new LRU(), - copy = new LRU() - - cache.set("a", "A") - cache.set("b", "B") - - copy.load(cache.dump()) - t.deepEquals(cache.dump(), copy.dump()) - - t.end() -}) - - -test("load staled cache", function(t) { - var cache = new LRU({maxAge: 50}), - copy = new LRU({maxAge: 50}), - arr - - //expires at 50 - cache.set("a", "A") - setTimeout(function () { - //expires at 80 - cache.set("b", "B") - arr = cache.dump() - t.equal(arr.length, 2) - }, 30) - - setTimeout(function () { - copy.load(arr) - t.equal(copy.get("a"), undefined) - t.equal(copy.get("b"), "B") - }, 60) - - setTimeout(function () { - t.equal(copy.get("b"), undefined) - t.end() - }, 90) -}) - -test("load to other size cache", function(t) { - var cache = new LRU({max: 2}), - copy = new LRU({max: 1}) - - cache.set("a", "A") - cache.set("b", "B") - - copy.load(cache.dump()) - t.equal(copy.get("a"), undefined) - t.equal(copy.get("b"), "B") - - //update the last read from original cache - cache.get("a") - copy.load(cache.dump()) - t.equal(copy.get("a"), "A") - t.equal(copy.get("b"), undefined) - - t.end() -}) - - -test("load to other age cache", function(t) { - var cache = new LRU({maxAge: 50}), - aged = new LRU({maxAge: 100}), - simple = new LRU(), - arr, - expired - - //created at 0 - //a would be valid till 0 + 50 - cache.set("a", "A") - setTimeout(function () { - //created at 20 - //b would be valid till 20 + 50 - cache.set("b", "B") - //b would be valid till 20 + 70 - cache.set("c", "C", 70) - arr = cache.dump() - t.equal(arr.length, 3) - }, 20) - - setTimeout(function () { - t.equal(cache.get("a"), undefined) - t.equal(cache.get("b"), "B") - t.equal(cache.get("c"), "C") - - aged.load(arr) - t.equal(aged.get("a"), undefined) - t.equal(aged.get("b"), "B") - t.equal(aged.get("c"), "C") - - simple.load(arr) - t.equal(simple.get("a"), undefined) - t.equal(simple.get("b"), "B") - t.equal(simple.get("c"), "C") - }, 60) - - setTimeout(function () { - t.equal(cache.get("a"), undefined) - t.equal(cache.get("b"), undefined) - t.equal(cache.get("c"), "C") - - aged.load(arr) - t.equal(aged.get("a"), undefined) - t.equal(aged.get("b"), undefined) - t.equal(aged.get("c"), "C") - - simple.load(arr) - t.equal(simple.get("a"), undefined) - t.equal(simple.get("b"), undefined) - t.equal(simple.get("c"), "C") - }, 80) - - setTimeout(function () { - t.equal(cache.get("a"), undefined) - t.equal(cache.get("b"), undefined) - t.equal(cache.get("c"), undefined) - - aged.load(arr) - t.equal(aged.get("a"), undefined) - t.equal(aged.get("b"), undefined) - t.equal(aged.get("c"), undefined) - - simple.load(arr) - t.equal(simple.get("a"), undefined) - t.equal(simple.get("b"), undefined) - t.equal(simple.get("c"), undefined) - t.end() - }, 100) - -}) diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md b/deps/npm/node_modules/mime-db/HISTORY.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md rename to deps/npm/node_modules/mime-db/HISTORY.md diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE b/deps/npm/node_modules/mime-db/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE rename to deps/npm/node_modules/mime-db/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md b/deps/npm/node_modules/mime-db/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md rename to deps/npm/node_modules/mime-db/README.md diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json b/deps/npm/node_modules/mime-db/db.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json rename to deps/npm/node_modules/mime-db/db.json diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js b/deps/npm/node_modules/mime-db/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js rename to deps/npm/node_modules/mime-db/index.js diff --git a/deps/npm/node_modules/mime-db/package.json b/deps/npm/node_modules/mime-db/package.json new file mode 100644 index 0000000000000000000000000000000000000000..66acfaa43762cb9813672d09e98322b8b0fd4a9b --- /dev/null +++ b/deps/npm/node_modules/mime-db/package.json @@ -0,0 +1,121 @@ +{ + "_args": [ + [ + "mime-db@~1.19.0", + "/Users/rebecca/code/npm/node_modules/mime-types" + ] + ], + "_from": "mime-db@>=1.19.0 <1.20.0", + "_id": "mime-db@1.19.0", + "_inCache": true, + "_location": "/mime-db", + "_npmUser": { + "email": "doug@somethingdoug.com", + "name": "dougwilson" + }, + "_npmVersion": "1.4.28", + "_phantomChildren": {}, + "_requested": { + "name": "mime-db", + "raw": "mime-db@~1.19.0", + "rawSpec": "~1.19.0", + "scope": null, + "spec": ">=1.19.0 <1.20.0", + "type": "range" + }, + "_requiredBy": [ + "/mime-types" + ], + "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz", + "_shasum": "496a18198a7ce8244534e25bb102b74fb420fd56", + "_shrinkwrap": null, + "_spec": "mime-db@~1.19.0", + "_where": "/Users/rebecca/code/npm/node_modules/mime-types", + "bugs": { + "url": "https://github.com/jshttp/mime-db/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + { + "name": "Robert Kieffer", + "email": "robert@broofa.com", + "url": "http://github.com/broofa" + } + ], + "dependencies": {}, + "description": "Media Type Database", + "devDependencies": { + "bluebird": "2.10.0", + "co": "4.6.0", + "cogent": "1.0.1", + "csv-parse": "1.0.0", + "gnode": "0.1.1", + "istanbul": "0.3.20", + "mocha": "1.21.5", + "raw-body": "2.1.3", + "stream-to-array": "2" + }, + "directories": {}, + "dist": { + "shasum": "496a18198a7ce8244534e25bb102b74fb420fd56", + "tarball": "http://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "db.json", + "index.js" + ], + "gitHead": "46a40f0524a01fb3075a7ecde92e8e04fc93d599", + "homepage": "https://github.com/jshttp/mime-db", + "installable": true, + "keywords": [ + "charset", + "charsets", + "database", + "db", + "mime", + "type", + "types" + ], + "license": "MIT", + "maintainers": [ + { + "name": "jongleberry", + "email": "jonathanrichardong@gmail.com" + }, + { + "name": "dougwilson", + "email": "doug@somethingdoug.com" + } + ], + "name": "mime-db", + "optionalDependencies": {}, + "readme": "# mime-db\n\n[![NPM Version][npm-version-image]][npm-url]\n[![NPM Downloads][npm-downloads-image]][npm-url]\n[![Node.js Version][node-image]][node-url]\n[![Build Status][travis-image]][travis-url]\n[![Coverage Status][coveralls-image]][coveralls-url]\n\nThis is a database of all mime types.\nIt consists of a single, public JSON file and does not include any logic,\nallowing it to remain as un-opinionated as possible with an API.\nIt aggregates data from the following sources:\n\n- http://www.iana.org/assignments/media-types/media-types.xhtml\n- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types\n- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types\n\n## Installation\n\n```bash\nnpm install mime-db\n```\n\n### Database Download\n\nIf you're crazy enough to use this in the browser, you can just grab the\nJSON file using [RawGit](https://rawgit.com/). It is recommended to replace\n`master` with [a release tag](https://github.com/jshttp/mime-db/tags) as the\nJSON format may change in the future.\n\n```\nhttps://cdn.rawgit.com/jshttp/mime-db/master/db.json\n```\n\n## Usage\n\n```js\nvar db = require('mime-db');\n\n// grab data on .js files\nvar data = db['application/javascript'];\n```\n\n## Data Structure\n\nThe JSON file is a map lookup for lowercased mime types.\nEach mime type has the following properties:\n\n- `.source` - where the mime type is defined.\n If not set, it's probably a custom media type.\n - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types)\n - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml)\n - `nginx` - [nginx media types](http://hg.nginx.org/nginx/raw-file/default/conf/mime.types)\n- `.extensions[]` - known extensions associated with this mime type.\n- `.compressible` - whether a file of this type is can be gzipped.\n- `.charset` - the default charset associated with this type, if any.\n\nIf unknown, every property could be `undefined`.\n\n## Contributing\n\nTo edit the database, only make PRs against `src/custom.json` or\n`src/custom-suffix.json`.\n\nTo update the build, run `npm run build`.\n\n## Adding Custom Media Types\n\nThe best way to get new media types included in this library is to register\nthem with the IANA. The community registration procedure is outlined in\n[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types\nregistered with the IANA are automatically pulled into this library.\n\n[npm-version-image]: https://img.shields.io/npm/v/mime-db.svg\n[npm-downloads-image]: https://img.shields.io/npm/dm/mime-db.svg\n[npm-url]: https://npmjs.org/package/mime-db\n[travis-image]: https://img.shields.io/travis/jshttp/mime-db/master.svg\n[travis-url]: https://travis-ci.org/jshttp/mime-db\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-db/master.svg\n[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master\n[node-image]: https://img.shields.io/node/v/mime-db.svg\n[node-url]: http://nodejs.org/download/\n", + "readmeFilename": "README.md", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/mime-db.git" + }, + "scripts": { + "build": "node scripts/build", + "fetch": "gnode scripts/fetch-apache && gnode scripts/fetch-iana && gnode scripts/fetch-nginx", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "update": "npm run fetch && npm run build" + }, + "version": "1.19.0" +} diff --git a/deps/npm/node_modules/request/node_modules/mime-types/HISTORY.md b/deps/npm/node_modules/mime-types/HISTORY.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/mime-types/HISTORY.md rename to deps/npm/node_modules/mime-types/HISTORY.md diff --git a/deps/npm/node_modules/request/node_modules/mime-types/LICENSE b/deps/npm/node_modules/mime-types/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/mime-types/LICENSE rename to deps/npm/node_modules/mime-types/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/mime-types/README.md b/deps/npm/node_modules/mime-types/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/mime-types/README.md rename to deps/npm/node_modules/mime-types/README.md diff --git a/deps/npm/node_modules/request/node_modules/mime-types/index.js b/deps/npm/node_modules/mime-types/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/mime-types/index.js rename to deps/npm/node_modules/mime-types/index.js diff --git a/deps/npm/node_modules/request/node_modules/mime-types/package.json b/deps/npm/node_modules/mime-types/package.json similarity index 73% rename from deps/npm/node_modules/request/node_modules/mime-types/package.json rename to deps/npm/node_modules/mime-types/package.json index 73e16dde1e0ee5d87306135917ec00fb8378c033..5cd56a93b425217402a1dc3c82d747f575be4002 100644 --- a/deps/npm/node_modules/request/node_modules/mime-types/package.json +++ b/deps/npm/node_modules/mime-types/package.json @@ -1,7 +1,40 @@ { - "name": "mime-types", - "description": "The ultimate javascript content-type utility.", - "version": "2.1.7", + "_args": [ + [ + "mime-types@~2.1.2", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "mime-types@>=2.1.2 <2.2.0", + "_id": "mime-types@2.1.7", + "_inCache": true, + "_location": "/mime-types", + "_npmUser": { + "email": "doug@somethingdoug.com", + "name": "dougwilson" + }, + "_npmVersion": "1.4.28", + "_phantomChildren": {}, + "_requested": { + "name": "mime-types", + "raw": "mime-types@~2.1.2", + "rawSpec": "~2.1.2", + "scope": null, + "spec": ">=2.1.2 <2.2.0", + "type": "range" + }, + "_requiredBy": [ + "/form-data", + "/request" + ], + "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "_shasum": "ff603970e3c731ef6f7f4df3c9a0f463a13c2755", + "_shrinkwrap": null, + "_spec": "mime-types@~2.1.2", + "_where": "/Users/rebecca/code/npm/node_modules/request", + "bugs": { + "url": "https://github.com/jshttp/mime-types/issues" + }, "contributors": [ { "name": "Douglas Christopher Wilson", @@ -18,48 +51,35 @@ "url": "http://jongleberry.com" } ], - "license": "MIT", - "keywords": [ - "mime", - "types" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-types.git" - }, "dependencies": { "mime-db": "~1.19.0" }, + "description": "The ultimate javascript content-type utility.", "devDependencies": { "istanbul": "0.3.20", "mocha": "~1.21.5" }, + "directories": {}, + "dist": { + "shasum": "ff603970e3c731ef6f7f4df3c9a0f463a13c2755", + "tarball": "http://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz" + }, + "engines": { + "node": ">= 0.6" + }, "files": [ "HISTORY.md", "LICENSE", "index.js" ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "test": "mocha --reporter spec test/test.js", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/test.js", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot test/test.js" - }, "gitHead": "43f860c7df4a70246272194d601348865d550298", - "bugs": { - "url": "https://github.com/jshttp/mime-types/issues" - }, "homepage": "https://github.com/jshttp/mime-types", - "_id": "mime-types@2.1.7", - "_shasum": "ff603970e3c731ef6f7f4df3c9a0f463a13c2755", - "_from": "mime-types@>=2.1.2 <2.2.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, + "installable": true, + "keywords": [ + "mime", + "types" + ], + "license": "MIT", "maintainers": [ { "name": "jongleberry", @@ -74,11 +94,16 @@ "email": "doug@somethingdoug.com" } ], - "dist": { - "shasum": "ff603970e3c731ef6f7f4df3c9a0f463a13c2755", - "tarball": "http://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz" + "name": "mime-types", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/jshttp/mime-types" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "mocha --reporter spec test/test.js", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/test.js", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot test/test.js" + }, + "version": "2.1.7" } diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/README.md b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/README.md deleted file mode 100644 index 62bc7bae3fed28b9082a4884b4bfbe484a2f38ec..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,121 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -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/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile deleted file mode 100644 index fa5da71a6d0d34afeca5499bece067a1f2a9d35c..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -test: - @node_modules/.bin/tape test/*.js - -.PHONY: test - diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js deleted file mode 100644 index c02ad348e69aec7ad7f7175e5d67809183c9c442..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +++ /dev/null @@ -1,5 +0,0 @@ -var balanced = require('./'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); - diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json deleted file mode 100644 index 2f1bd3d5d241b8dbeb28bc1910043bf0f107bf0b..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "concat-map", - "description": "concatenative mapdashery", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-concat-map.git" - }, - "main": "index.js", - "keywords": [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "directories": { - "example": "example", - "test": "test" - }, - "scripts": { - "test": "tape test/*.js" - }, - "devDependencies": { - "tape": "~2.4.0" - }, - "license": "MIT", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "testling": { - "files": "test/*.js", - "browsers": { - "ie": [ - 6, - 7, - 8, - 9 - ], - "ff": [ - 3.5, - 10, - 15 - ], - "chrome": [ - 10, - 22 - ], - "safari": [ - 5.1 - ], - "opera": [ - 12 - ] - } - }, - "bugs": { - "url": "https://github.com/substack/node-concat-map/issues" - }, - "homepage": "https://github.com/substack/node-concat-map", - "_id": "concat-map@0.0.1", - "dist": { - "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "tarball": "https://registrytwo.npmjs.com/concat-map/-/concat-map-0.0.1.tgz" - }, - "_from": "concat-map@0.0.1", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "_resolved": "https://registrytwo.npmjs.com/concat-map/-/concat-map-0.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js deleted file mode 100644 index 5fe2b8ad48cc1c2a66c7cc2cc7aecb5fe09a86e0..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +++ /dev/null @@ -1,32 +0,0 @@ -var test = require('tape'); -var expand = require('..'); -var fs = require('fs'); -var resfile = __dirname + '/bash-results.txt'; -var cases = fs.readFileSync(resfile, 'utf8').split('><><><><'); - -// throw away the EOF marker -cases.pop() - -test('matches bash expansions', function(t) { - cases.forEach(function(testcase) { - var set = testcase.split('\n'); - var pattern = set.shift(); - var actual = expand(pattern); - - // If it expands to the empty string, then it's actually - // just nothing, but Bash is a singly typed language, so - // "nothing" is the same as "". - if (set.length === 1 && set[0] === '') { - set = [] - } else { - // otherwise, strip off the [] that were added so that - // "" expansions would be preserved properly. - set = set.map(function (s) { - return s.replace(/^\[|\]$/g, '') - }) - } - - t.same(actual, set, pattern); - }); - t.end(); -}) diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt deleted file mode 100644 index 958148d26aacb9bb4f3025149f5df3eb7db1d16f..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +++ /dev/null @@ -1,1075 +0,0 @@ -A{b,{d,e},{f,g}}Z -[AbZ] -[AdZ] -[AeZ] -[AfZ] -[AgZ]><><><><><><><\{a,b}{{a,b},a,b} -[{a,b}a] -[{a,b}b] -[{a,b}a] -[{a,b}b]><><><><{{a,b} -[{a] -[{b]><><><><{a,b}} -[a}] -[b}]><><><><{,} -><><><><><><><{,}b -[b] -[b]><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><{-01..5} -[-01] -[000] -[001] -[002] -[003] -[004] -[005]><><><><{-05..100..5} -[-05] -[000] -[005] -[010] -[015] -[020] -[025] -[030] -[035] -[040] -[045] -[050] -[055] -[060] -[065] -[070] -[075] -[080] -[085] -[090] -[095] -[100]><><><><{-05..100} -[-05] -[-04] -[-03] -[-02] -[-01] -[000] -[001] -[002] -[003] -[004] -[005] -[006] -[007] -[008] -[009] -[010] -[011] -[012] -[013] -[014] -[015] -[016] -[017] -[018] -[019] -[020] -[021] -[022] -[023] -[024] -[025] -[026] -[027] -[028] -[029] -[030] -[031] -[032] -[033] -[034] -[035] -[036] -[037] -[038] -[039] -[040] -[041] -[042] -[043] -[044] -[045] -[046] -[047] -[048] -[049] -[050] -[051] -[052] -[053] -[054] -[055] -[056] -[057] -[058] -[059] -[060] -[061] -[062] -[063] -[064] -[065] -[066] -[067] -[068] -[069] -[070] -[071] -[072] -[073] -[074] -[075] -[076] -[077] -[078] -[079] -[080] -[081] -[082] -[083] -[084] -[085] -[086] -[087] -[088] -[089] -[090] -[091] -[092] -[093] -[094] -[095] -[096] -[097] -[098] -[099] -[100]><><><><{0..5..2} -[0] -[2] -[4]><><><><{0001..05..2} -[0001] -[0003] -[0005]><><><><{0001..-5..2} -[0001] -[-001] -[-003] -[-005]><><><><{0001..-5..-2} -[0001] -[-001] -[-003] -[-005]><><><><{0001..5..-2} -[0001] -[0003] -[0005]><><><><{01..5} -[01] -[02] -[03] -[04] -[05]><><><><{1..05} -[01] -[02] -[03] -[04] -[05]><><><><{1..05..3} -[01] -[04]><><><><{05..100} -[005] -[006] -[007] -[008] -[009] -[010] -[011] -[012] -[013] -[014] -[015] -[016] -[017] -[018] -[019] -[020] -[021] -[022] -[023] -[024] -[025] -[026] -[027] -[028] -[029] -[030] -[031] -[032] -[033] -[034] -[035] -[036] -[037] -[038] -[039] -[040] -[041] -[042] -[043] -[044] -[045] -[046] -[047] -[048] -[049] -[050] -[051] -[052] -[053] -[054] -[055] -[056] -[057] -[058] -[059] -[060] -[061] -[062] -[063] -[064] -[065] -[066] -[067] -[068] -[069] -[070] -[071] -[072] -[073] -[074] -[075] -[076] -[077] -[078] -[079] -[080] -[081] -[082] -[083] -[084] -[085] -[086] -[087] -[088] -[089] -[090] -[091] -[092] -[093] -[094] -[095] -[096] -[097] -[098] -[099] -[100]><><><><{0a..0z} -[{0a..0z}]><><><><{a,b\}c,d} -[a] -[b}c] -[d]><><><><{a,b{c,d} -[{a,bc] -[{a,bd]><><><><{a,b}c,d} -[ac,d}] -[bc,d}]><><><><{a..F} -[a] -[`] -[_] -[^] -[]] -[] -[[] -[Z] -[Y] -[X] -[W] -[V] -[U] -[T] -[S] -[R] -[Q] -[P] -[O] -[N] -[M] -[L] -[K] -[J] -[I] -[H] -[G] -[F]><><><><{A..f} -[A] -[B] -[C] -[D] -[E] -[F] -[G] -[H] -[I] -[J] -[K] -[L] -[M] -[N] -[O] -[P] -[Q] -[R] -[S] -[T] -[U] -[V] -[W] -[X] -[Y] -[Z] -[[] -[] -[]] -[^] -[_] -[`] -[a] -[b] -[c] -[d] -[e] -[f]><><><><{a..Z} -[a] -[`] -[_] -[^] -[]] -[] -[[] -[Z]><><><><{A..z} -[A] -[B] -[C] -[D] -[E] -[F] -[G] -[H] -[I] -[J] -[K] -[L] -[M] -[N] -[O] -[P] -[Q] -[R] -[S] -[T] -[U] -[V] -[W] -[X] -[Y] -[Z] -[[] -[] -[]] -[^] -[_] -[`] -[a] -[b] -[c] -[d] -[e] -[f] -[g] -[h] -[i] -[j] -[k] -[l] -[m] -[n] -[o] -[p] -[q] -[r] -[s] -[t] -[u] -[v] -[w] -[x] -[y] -[z]><><><><{z..A} -[z] -[y] -[x] -[w] -[v] -[u] -[t] -[s] -[r] -[q] -[p] -[o] -[n] -[m] -[l] -[k] -[j] -[i] -[h] -[g] -[f] -[e] -[d] -[c] -[b] -[a] -[`] -[_] -[^] -[]] -[] -[[] -[Z] -[Y] -[X] -[W] -[V] -[U] -[T] -[S] -[R] -[Q] -[P] -[O] -[N] -[M] -[L] -[K] -[J] -[I] -[H] -[G] -[F] -[E] -[D] -[C] -[B] -[A]><><><><{Z..a} -[Z] -[[] -[] -[]] -[^] -[_] -[`] -[a]><><><><{a..F..2} -[a] -[_] -[]] -[[] -[Y] -[W] -[U] -[S] -[Q] -[O] -[M] -[K] -[I] -[G]><><><><{A..f..02} -[A] -[C] -[E] -[G] -[I] -[K] -[M] -[O] -[Q] -[S] -[U] -[W] -[Y] -[[] -[]] -[_] -[a] -[c] -[e]><><><><{a..Z..5} -[a] -[]><><><><><><><{A..z..10} -[A] -[K] -[U] -[_] -[i] -[s]><><><><{z..A..-2} -[z] -[x] -[v] -[t] -[r] -[p] -[n] -[l] -[j] -[h] -[f] -[d] -[b] -[`] -[^] -[] -[Z] -[X] -[V] -[T] -[R] -[P] -[N] -[L] -[J] -[H] -[F] -[D] -[B]><><><><{Z..a..20} -[Z]><><><><{a{,b} -[{a] -[{ab]><><><><{a},b} -[a}] -[b]><><><><{x,y{,}g} -[x] -[yg] -[yg]><><><><{x,y{}g} -[x] -[y{}g]><><><><{{a,b} -[{a] -[{b]><><><><{{a,b},c} -[a] -[b] -[c]><><><><{{a,b}c} -[{ac}] -[{bc}]><><><><{{a,b},} -[a] -[b]><><><><><><><{{a,b},}c -[ac] -[bc] -[c]><><><><{{a,b}.} -[{a.}] -[{b.}]><><><><{{a,b}} -[{a}] -[{b}]><><><><><><>< -><><><><{-10..00} -[-10] -[-09] -[-08] -[-07] -[-06] -[-05] -[-04] -[-03] -[-02] -[-01] -[000]><><><><{a,\\{a,b}c} -[a] -[\ac] -[\bc]><><><><{a,\{a,b}c} -[ac}] -[{ac}] -[bc}]><><><><><><><{-10.\.00} -[{-10..00}]><><><><><><><><><><{l,n,m}xyz -[lxyz] -[nxyz] -[mxyz]><><><><{abc\,def} -[{abc,def}]><><><><{abc} -[{abc}]><><><><{x\,y,\{abc\},trie} -[x,y] -[{abc}] -[trie]><><><><{} -[{}]><><><><} -[}]><><><><{ -[{]><><><><><><><{1..10} -[1] -[2] -[3] -[4] -[5] -[6] -[7] -[8] -[9] -[10]><><><><{0..10,braces} -[0..10] -[braces]><><><><{{0..10},braces} -[0] -[1] -[2] -[3] -[4] -[5] -[6] -[7] -[8] -[9] -[10] -[braces]><><><><><><><{3..3} -[3]><><><><><><><{10..1} -[10] -[9] -[8] -[7] -[6] -[5] -[4] -[3] -[2] -[1]><><><><{10..1}y -[10y] -[9y] -[8y] -[7y] -[6y] -[5y] -[4y] -[3y] -[2y] -[1y]><><><><><><><{a..f} -[a] -[b] -[c] -[d] -[e] -[f]><><><><{f..a} -[f] -[e] -[d] -[c] -[b] -[a]><><><><{a..A} -[a] -[`] -[_] -[^] -[]] -[] -[[] -[Z] -[Y] -[X] -[W] -[V] -[U] -[T] -[S] -[R] -[Q] -[P] -[O] -[N] -[M] -[L] -[K] -[J] -[I] -[H] -[G] -[F] -[E] -[D] -[C] -[B] -[A]><><><><{A..a} -[A] -[B] -[C] -[D] -[E] -[F] -[G] -[H] -[I] -[J] -[K] -[L] -[M] -[N] -[O] -[P] -[Q] -[R] -[S] -[T] -[U] -[V] -[W] -[X] -[Y] -[Z] -[[] -[] -[]] -[^] -[_] -[`] -[a]><><><><{f..f} -[f]><><><><{1..f} -[{1..f}]><><><><{f..1} -[{f..1}]><><><><{-1..-10} -[-1] -[-2] -[-3] -[-4] -[-5] -[-6] -[-7] -[-8] -[-9] -[-10]><><><><{-20..0} -[-20] -[-19] -[-18] -[-17] -[-16] -[-15] -[-14] -[-13] -[-12] -[-11] -[-10] -[-9] -[-8] -[-7] -[-6] -[-5] -[-4] -[-3] -[-2] -[-1] -[0]><><><><><><><><><><{klklkl}{1,2,3} -[{klklkl}1] -[{klklkl}2] -[{klklkl}3]><><><><{1..10..2} -[1] -[3] -[5] -[7] -[9]><><><><{-1..-10..2} -[-1] -[-3] -[-5] -[-7] -[-9]><><><><{-1..-10..-2} -[-1] -[-3] -[-5] -[-7] -[-9]><><><><{10..1..-2} -[10] -[8] -[6] -[4] -[2]><><><><{10..1..2} -[10] -[8] -[6] -[4] -[2]><><><><{1..20..2} -[1] -[3] -[5] -[7] -[9] -[11] -[13] -[15] -[17] -[19]><><><><{1..20..20} -[1]><><><><{100..0..5} -[100] -[95] -[90] -[85] -[80] -[75] -[70] -[65] -[60] -[55] -[50] -[45] -[40] -[35] -[30] -[25] -[20] -[15] -[10] -[5] -[0]><><><><{100..0..-5} -[100] -[95] -[90] -[85] -[80] -[75] -[70] -[65] -[60] -[55] -[50] -[45] -[40] -[35] -[30] -[25] -[20] -[15] -[10] -[5] -[0]><><><><{a..z} -[a] -[b] -[c] -[d] -[e] -[f] -[g] -[h] -[i] -[j] -[k] -[l] -[m] -[n] -[o] -[p] -[q] -[r] -[s] -[t] -[u] -[v] -[w] -[x] -[y] -[z]><><><><{a..z..2} -[a] -[c] -[e] -[g] -[i] -[k] -[m] -[o] -[q] -[s] -[u] -[w] -[y]><><><><{z..a..-2} -[z] -[x] -[v] -[t] -[r] -[p] -[n] -[l] -[j] -[h] -[f] -[d] -[b]><><><><{2147483645..2147483649} -[2147483645] -[2147483646] -[2147483647] -[2147483648] -[2147483649]><><><><{10..0..2} -[10] -[8] -[6] -[4] -[2] -[0]><><><><{10..0..-2} -[10] -[8] -[6] -[4] -[2] -[0]><><><><{-50..-0..5} -[-50] -[-45] -[-40] -[-35] -[-30] -[-25] -[-20] -[-15] -[-10] -[-5] -[0]><><><><{1..10.f} -[{1..10.f}]><><><><{1..ff} -[{1..ff}]><><><><{1..10..ff} -[{1..10..ff}]><><><><{1.20..2} -[{1.20..2}]><><><><{1..20..f2} -[{1..20..f2}]><><><><{1..20..2f} -[{1..20..2f}]><><><><{1..2f..2} -[{1..2f..2}]><><><><{1..ff..2} -[{1..ff..2}]><><><><{1..ff} -[{1..ff}]><><><><{1..f} -[{1..f}]><><><><{1..0f} -[{1..0f}]><><><><{1..10f} -[{1..10f}]><><><><{1..10.f} -[{1..10.f}]><><><><{1..10.f} -[{1..10.f}]><><><>< \ No newline at end of file diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt deleted file mode 100644 index e5161c3da869f3a81247dc8a06c3592a1302c73b..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +++ /dev/null @@ -1,182 +0,0 @@ -# skip quotes for now -# "{x,x}" -# {"x,x"} -# {x","x} -# '{a,b}{{a,b},a,b}' -A{b,{d,e},{f,g}}Z -PRE-{a,b}{{a,b},a,b}-POST -\\{a,b}{{a,b},a,b} -{{a,b} -{a,b}} -{,} -a{,} -{,}b -a{,}b -a{b}c -a{1..5}b -a{01..5}b -a{-01..5}b -a{-01..5..3}b -a{001..9}b -a{b,c{d,e},{f,g}h}x{y,z -a{b,c{d,e},{f,g}h}x{y,z\\} -a{b,c{d,e},{f,g}h}x{y,z} -a{b{c{d,e}f{x,y{{g}h -a{b{c{d,e}f{x,y{}g}h -a{b{c{d,e}f{x,y}}g}h -a{b{c{d,e}f}g}h -a{{x,y},z}b -f{x,y{g,z}}h -f{x,y{{g,z}}h -f{x,y{{g,z}}h} -f{x,y{{g}h -f{x,y{{g}}h -f{x,y{}g}h -z{a,b{,c}d -z{a,b},c}d -{-01..5} -{-05..100..5} -{-05..100} -{0..5..2} -{0001..05..2} -{0001..-5..2} -{0001..-5..-2} -{0001..5..-2} -{01..5} -{1..05} -{1..05..3} -{05..100} -{0a..0z} -{a,b\\}c,d} -{a,b{c,d} -{a,b}c,d} -{a..F} -{A..f} -{a..Z} -{A..z} -{z..A} -{Z..a} -{a..F..2} -{A..f..02} -{a..Z..5} -d{a..Z..5}b -{A..z..10} -{z..A..-2} -{Z..a..20} -{a{,b} -{a},b} -{x,y{,}g} -{x,y{}g} -{{a,b} -{{a,b},c} -{{a,b}c} -{{a,b},} -X{{a,b},}X -{{a,b},}c -{{a,b}.} -{{a,b}} -X{a..#}X -# this next one is an empty string - -{-10..00} -# Need to escape slashes in here for reasons i guess. -{a,\\\\{a,b}c} -{a,\\{a,b}c} -a,\\{b,c} -{-10.\\.00} -#### bash tests/braces.tests -# Note that some tests are edited out because some features of -# bash are intentionally not supported in this brace expander. -ff{c,b,a} -f{d,e,f}g -{l,n,m}xyz -{abc\\,def} -{abc} -{x\\,y,\\{abc\\},trie} -# not impementing back-ticks obviously -# XXXX\\{`echo a b c | tr ' ' ','`\\} -{} -# We only ever have to worry about parsing a single argument, -# not a command line, so spaces have a different meaning than bash. -# { } -} -{ -abcd{efgh -# spaces -# foo {1,2} bar -# not impementing back-ticks obviously -# `zecho foo {1,2} bar` -# $(zecho foo {1,2} bar) -# ${var} is not a variable here, like it is in bash. omit. -# foo{bar,${var}.} -# foo{bar,${var}} -# isaacs: skip quotes for now -# "${var}"{x,y} -# $var{x,y} -# ${var}{x,y} -# new sequence brace operators -{1..10} -# this doesn't work yet -{0..10,braces} -# but this does -{{0..10},braces} -x{{0..10},braces}y -{3..3} -x{3..3}y -{10..1} -{10..1}y -x{10..1}y -{a..f} -{f..a} -{a..A} -{A..a} -{f..f} -# mixes are incorrectly-formed brace expansions -{1..f} -{f..1} -# spaces -# 0{1..9} {10..20} -# do negative numbers work? -{-1..-10} -{-20..0} -# weirdly-formed brace expansions -- fixed in post-bash-3.1 -a-{b{d,e}}-c -a-{bdef-{g,i}-c -# isaacs: skip quotes for now -# {"klklkl"}{1,2,3} -# isaacs: this is a valid test, though -{klklkl}{1,2,3} -# {"x,x"} -{1..10..2} -{-1..-10..2} -{-1..-10..-2} -{10..1..-2} -{10..1..2} -{1..20..2} -{1..20..20} -{100..0..5} -{100..0..-5} -{a..z} -{a..z..2} -{z..a..-2} -# make sure brace expansion handles ints > 2**31 - 1 using intmax_t -{2147483645..2147483649} -# unwanted zero-padding -- fixed post-bash-4.0 -{10..0..2} -{10..0..-2} -{-50..-0..5} -# bad -{1..10.f} -{1..ff} -{1..10..ff} -{1.20..2} -{1..20..f2} -{1..20..2f} -{1..2f..2} -{1..ff..2} -{1..ff} -{1..f} -{1..0f} -{1..10f} -{1..10.f} -{1..10.f} diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js deleted file mode 100644 index 3fcc185a7d6dcce7c80199c2c2ce7d6cc57dff56..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +++ /dev/null @@ -1,9 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('ignores ${', function(t) { - t.deepEqual(expand('${1..3}'), ['${1..3}']); - t.deepEqual(expand('${a,b}${c,d}'), ['${a,b}${c,d}']); - t.deepEqual(expand('x${a,b}x${c,d}x'), ['x${a,b}x${c,d}x']); - t.end(); -}); diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js deleted file mode 100644 index e429121eab80590c10235d9479da0ffc8bc09c65..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +++ /dev/null @@ -1,10 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('empty option', function(t) { - t.deepEqual(expand('-v{,,,,}'), [ - '-v', '-v', '-v', '-v', '-v' - ]); - t.end(); -}); - diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh deleted file mode 100644 index e040e664d9f88126341d138388f433869a63159f..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Bash 4.3 because of arbitrary need to pick a single standard. - -if [ "${BASH_VERSINFO[0]}" != "4" ] || [ "${BASH_VERSINFO[1]}" != "3" ]; then - echo "this script requires bash 4.3" >&2 - exit 1 -fi - -CDPATH= cd "$(dirname "$0")" - -js='require("./")(process.argv[1]).join(" ")' - -cat cases.txt | \ - while read case; do - if [ "${case:0:1}" = "#" ]; then - continue; - fi; - b="$($BASH -c 'for c in '"$case"'; do echo ["$c"]; done')" - echo "$case" - echo -n "$b><><><><"; - done > bash-results.txt diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js deleted file mode 100644 index 8d434c23d4514dc015095bd3422840795a046296..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +++ /dev/null @@ -1,15 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('negative increment', function(t) { - t.deepEqual(expand('{3..1}'), ['3', '2', '1']); - t.deepEqual(expand('{10..8}'), ['10', '9', '8']); - t.deepEqual(expand('{10..08}'), ['10', '09', '08']); - t.deepEqual(expand('{c..a}'), ['c', 'b', 'a']); - - t.deepEqual(expand('{4..0..2}'), ['4', '2', '0']); - t.deepEqual(expand('{4..0..-2}'), ['4', '2', '0']); - t.deepEqual(expand('{e..a..2}'), ['e', 'c', 'a']); - - t.end(); -}); diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/nested.js b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/nested.js deleted file mode 100644 index 0862dc51f90aeecdf9fad761b738683bc027c5a4..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +++ /dev/null @@ -1,16 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('nested', function(t) { - t.deepEqual(expand('{a,b{1..3},c}'), [ - 'a', 'b1', 'b2', 'b3', 'c' - ]); - t.deepEqual(expand('{{A..Z},{a..z}}'), - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('') - ); - t.deepEqual(expand('ppp{,config,oe{,conf}}'), [ - 'ppp', 'pppconfig', 'pppoe', 'pppoeconf' - ]); - t.end(); -}); - diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/order.js b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/order.js deleted file mode 100644 index c00ad155fe6760130beb896ca80ba70b446e0f62..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/order.js +++ /dev/null @@ -1,10 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('order', function(t) { - t.deepEqual(expand('a{d,c,b}e'), [ - 'ade', 'ace', 'abe' - ]); - t.end(); -}); - diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/pad.js b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/pad.js deleted file mode 100644 index e4158775f1bd066391691aef42a48dab93d6f95c..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +++ /dev/null @@ -1,13 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('pad', function(t) { - t.deepEqual(expand('{9..11}'), [ - '9', '10', '11' - ]); - t.deepEqual(expand('{09..11}'), [ - '09', '10', '11' - ]); - t.end(); -}); - diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js deleted file mode 100644 index 3038fba7416b3a290c20f27b7aab91a2c500a2aa..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +++ /dev/null @@ -1,7 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('x and y of same type', function(t) { - t.deepEqual(expand('{a..9}'), ['{a..9}']); - t.end(); -}); diff --git a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js b/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js deleted file mode 100644 index f73a9579ab398bb2980624ee29e66134a9deabc0..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +++ /dev/null @@ -1,50 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('numeric sequences', function(t) { - t.deepEqual(expand('a{1..2}b{2..3}c'), [ - 'a1b2c', 'a1b3c', 'a2b2c', 'a2b3c' - ]); - t.deepEqual(expand('{1..2}{2..3}'), [ - '12', '13', '22', '23' - ]); - t.end(); -}); - -test('numeric sequences with step count', function(t) { - t.deepEqual(expand('{0..8..2}'), [ - '0', '2', '4', '6', '8' - ]); - t.deepEqual(expand('{1..8..2}'), [ - '1', '3', '5', '7' - ]); - t.end(); -}); - -test('numeric sequence with negative x / y', function(t) { - t.deepEqual(expand('{3..-2}'), [ - '3', '2', '1', '0', '-1', '-2' - ]); - t.end(); -}); - -test('alphabetic sequences', function(t) { - t.deepEqual(expand('1{a..b}2{b..c}3'), [ - '1a2b3', '1a2c3', '1b2b3', '1b2c3' - ]); - t.deepEqual(expand('{a..b}{b..c}'), [ - 'ab', 'ac', 'bb', 'bc' - ]); - t.end(); -}); - -test('alphabetic sequences with step count', function(t) { - t.deepEqual(expand('{a..k..2}'), [ - 'a', 'c', 'e', 'g', 'i', 'k' - ]); - t.deepEqual(expand('{b..k..2}'), [ - 'b', 'd', 'f', 'h', 'j' - ]); - t.end(); -}); - diff --git a/deps/npm/node_modules/minimatch/package.json b/deps/npm/node_modules/minimatch/package.json index c7c9a089ceb430b2772d16df59d017876e597c4c..9d97a256b68b14be7f6595e42371db3111e18122 100644 --- a/deps/npm/node_modules/minimatch/package.json +++ b/deps/npm/node_modules/minimatch/package.json @@ -1,62 +1,87 @@ { + "_args": [ + [ + "minimatch@^2.0.1", + "/Users/rebecca/code/npm/node_modules/glob" + ] + ], + "_from": "minimatch@>=2.0.1 <3.0.0", + "_id": "minimatch@2.0.10", + "_inCache": true, + "_location": "/minimatch", + "_nodeVersion": "2.2.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "3.1.0", + "_phantomChildren": {}, + "_requested": { + "name": "minimatch", + "raw": "minimatch@^2.0.1", + "rawSpec": "^2.0.1", + "scope": null, + "spec": ">=2.0.1 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/fstream-ignore", + "/glob" + ], + "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "_shasum": "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7", + "_shrinkwrap": null, + "_spec": "minimatch@^2.0.1", + "_where": "/Users/rebecca/code/npm/node_modules/glob", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me" }, - "name": "minimatch", - "description": "a glob matcher in javascript", - "version": "2.0.10", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" - }, - "main": "minimatch.js", - "scripts": { - "posttest": "standard minimatch.js test/*.js", - "test": "tap test/*.js", - "prepublish": "browserify -o browser.js -e minimatch.js -s minimatch --bare" - }, - "engines": { - "node": "*" + "bugs": { + "url": "https://github.com/isaacs/minimatch/issues" }, "dependencies": { "brace-expansion": "^1.0.0" }, + "description": "a glob matcher in javascript", "devDependencies": { "browserify": "^9.0.3", "standard": "^3.7.2", "tap": "^1.2.0" }, - "license": "ISC", - "files": [ - "minimatch.js", - "browser.js" - ], - "gitHead": "6afb85f0c324b321f76a38df81891e562693e257", - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" - }, - "homepage": "https://github.com/isaacs/minimatch#readme", - "_id": "minimatch@2.0.10", - "_shasum": "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7", - "_from": "minimatch@2.0.10", - "_npmVersion": "3.1.0", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, + "directories": {}, "dist": { "shasum": "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7", "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" }, + "engines": { + "node": "*" + }, + "files": [ + "browser.js", + "minimatch.js" + ], + "gitHead": "6afb85f0c324b321f76a38df81891e562693e257", + "homepage": "https://github.com/isaacs/minimatch#readme", + "license": "ISC", + "main": "minimatch.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" + "name": "minimatch", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/minimatch.git" + }, + "scripts": { + "posttest": "standard minimatch.js test/*.js", + "prepublish": "browserify -o browser.js -e minimatch.js -s minimatch --bare", + "test": "tap test/*.js" + }, + "version": "2.0.10" } diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml b/deps/npm/node_modules/minimist/.travis.yml similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml rename to deps/npm/node_modules/minimist/.travis.yml diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/LICENSE b/deps/npm/node_modules/minimist/LICENSE similarity index 100% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/LICENSE rename to deps/npm/node_modules/minimist/LICENSE diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js b/deps/npm/node_modules/minimist/example/parse.js similarity index 100% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js rename to deps/npm/node_modules/minimist/example/parse.js diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/index.js b/deps/npm/node_modules/minimist/index.js similarity index 97% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/index.js rename to deps/npm/node_modules/minimist/index.js index 584f551a6da7343249fbb9bd2fe9082298e7c119..a5793ceccec4889f35f534c7796ec18293e13d4d 100644 --- a/deps/npm/node_modules/mkdirp/node_modules/minimist/index.js +++ b/deps/npm/node_modules/minimist/index.js @@ -1,16 +1,16 @@ module.exports = function (args, opts) { if (!opts) opts = {}; - + var flags = { bools : {}, strings : {} }; - + [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { flags.bools[key] = true; }); - + [].concat(opts.string).filter(Boolean).forEach(function (key) { flags.strings[key] = true; }); - + var aliases = {}; Object.keys(opts.alias || {}).forEach(function (key) { aliases[key] = [].concat(opts.alias[key]); @@ -20,14 +20,14 @@ module.exports = function (args, opts) { })); }); }); - + var defaults = opts['default'] || {}; - + var argv = { _ : [] }; Object.keys(flags.bools).forEach(function (key) { setArg(key, defaults[key] === undefined ? false : defaults[key]); }); - + var notFlags = []; if (args.indexOf('--') !== -1) { @@ -40,15 +40,15 @@ module.exports = function (args, opts) { ? Number(val) : val ; setKey(argv, key.split('.'), value); - + (aliases[key] || []).forEach(function (x) { setKey(argv, x.split('.'), value); }); } - + for (var i = 0; i < args.length; i++) { var arg = args[i]; - + if (/^--.+=/.test(arg)) { // Using [\s\S] instead of . because js doesn't support the // 'dotall' regex modifier. See: @@ -79,23 +79,23 @@ module.exports = function (args, opts) { } else if (/^-[^-]+/.test(arg)) { var letters = arg.slice(1,-1).split(''); - + var broken = false; for (var j = 0; j < letters.length; j++) { var next = arg.slice(j+2); - + if (next === '-') { setArg(letters[j], next) continue; } - + if (/[A-Za-z]/.test(letters[j]) && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { setArg(letters[j], next); broken = true; break; } - + if (letters[j+1] && letters[j+1].match(/\W/)) { setArg(letters[j], arg.slice(j+2)); broken = true; @@ -105,7 +105,7 @@ module.exports = function (args, opts) { setArg(letters[j], flags.strings[letters[j]] ? '' : true); } } - + var key = arg.slice(-1)[0]; if (!broken && key !== '-') { if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1]) @@ -129,17 +129,17 @@ module.exports = function (args, opts) { ); } } - + Object.keys(defaults).forEach(function (key) { if (!hasKey(argv, key.split('.'))) { setKey(argv, key.split('.'), defaults[key]); - + (aliases[key] || []).forEach(function (x) { setKey(argv, x.split('.'), defaults[key]); }); } }); - + notFlags.forEach(function(key) { argv._.push(key); }); @@ -163,7 +163,7 @@ function setKey (obj, keys, value) { if (o[key] === undefined) o[key] = {}; o = o[key]; }); - + var key = keys[keys.length - 1]; if (o[key] === undefined || typeof o[key] === 'boolean') { o[key] = value; diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/package.json b/deps/npm/node_modules/minimist/package.json similarity index 61% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/package.json rename to deps/npm/node_modules/minimist/package.json index 7cd80f4f41ac5aa82ad6f19ad254cd622d82ced2..c59b424193c390cba97b919c328c43e5992b9853 100644 --- a/deps/npm/node_modules/mkdirp/node_modules/minimist/package.json +++ b/deps/npm/node_modules/minimist/package.json @@ -1,66 +1,91 @@ { - "name": "minimist", - "version": "0.0.8", - "description": "parse argument options", - "main": "index.js", - "devDependencies": { - "tape": "~1.0.4", - "tap": "~0.4.0" - }, - "scripts": { - "test": "tap test/*.js" - }, - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/6..latest", - "ff/5", - "firefox/latest", - "chrome/10", - "chrome/latest", - "safari/5.1", - "safari/latest", - "opera/12" + "_args": [ + [ + "minimist@0.0.8", + "/Users/rebecca/code/npm/node_modules/mkdirp" ] + ], + "_from": "minimist@0.0.8", + "_id": "minimist@0.0.8", + "_inCache": true, + "_location": "/minimist", + "_npmUser": { + "email": "mail@substack.net", + "name": "substack" }, - "repository": { - "type": "git", - "url": "git://github.com/substack/minimist.git" + "_npmVersion": "1.4.3", + "_phantomChildren": {}, + "_requested": { + "name": "minimist", + "raw": "minimist@0.0.8", + "rawSpec": "0.0.8", + "scope": null, + "spec": "0.0.8", + "type": "version" }, - "homepage": "https://github.com/substack/minimist", - "keywords": [ - "argv", - "getopt", - "parser", - "optimist" + "_requiredBy": [ + "/mkdirp" ], + "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", + "_shrinkwrap": null, + "_spec": "minimist@0.0.8", + "_where": "/Users/rebecca/code/npm/node_modules/mkdirp", "author": { - "name": "James Halliday", "email": "mail@substack.net", + "name": "James Halliday", "url": "http://substack.net" }, - "license": "MIT", "bugs": { "url": "https://github.com/substack/minimist/issues" }, - "_id": "minimist@0.0.8", + "dependencies": {}, + "description": "parse argument options", + "devDependencies": { + "tap": "~0.4.0", + "tape": "~1.0.4" + }, + "directories": {}, "dist": { "shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", "tarball": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" }, - "_from": "minimist@0.0.8", - "_npmVersion": "1.4.3", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, + "homepage": "https://github.com/substack/minimist", + "keywords": [ + "argv", + "getopt", + "optimist", + "parser" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "substack", "email": "mail@substack.net" } ], - "directories": {}, - "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", - "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "name": "minimist", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/substack/minimist.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "testling": { + "browsers": [ + "chrome/10", + "chrome/latest", + "ff/5", + "firefox/latest", + "ie/6..latest", + "opera/12", + "safari/5.1", + "safari/latest" + ], + "files": "test/*.js" + }, + "version": "0.0.8" } diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown b/deps/npm/node_modules/minimist/readme.markdown similarity index 100% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown rename to deps/npm/node_modules/minimist/readme.markdown diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js b/deps/npm/node_modules/minimist/test/dash.js similarity index 100% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js rename to deps/npm/node_modules/minimist/test/dash.js diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js b/deps/npm/node_modules/minimist/test/default_bool.js similarity index 100% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js rename to deps/npm/node_modules/minimist/test/default_bool.js diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js b/deps/npm/node_modules/minimist/test/dotted.js similarity index 100% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js rename to deps/npm/node_modules/minimist/test/dotted.js diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/long.js b/deps/npm/node_modules/minimist/test/long.js similarity index 100% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/test/long.js rename to deps/npm/node_modules/minimist/test/long.js diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js b/deps/npm/node_modules/minimist/test/parse.js similarity index 98% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js rename to deps/npm/node_modules/minimist/test/parse.js index 8a90646696628e01e1785afdd241c9a2732d0555..47e92237fb0bbc19f32265e1e4c0628e0c5eef63 100644 --- a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js +++ b/deps/npm/node_modules/minimist/test/parse.js @@ -14,7 +14,7 @@ test('parse args', function (t) { ); t.end(); }); - + test('comprehensive', function (t) { t.deepEqual( parse([ @@ -80,13 +80,13 @@ test('flag boolean value', function (t) { boolean: [ 't', 'verbose' ], default: { verbose: true } }); - + t.deepEqual(argv, { verbose: false, t: true, _: ['moo'] }); - + t.deepEqual(typeof argv.verbose, 'boolean'); t.deepEqual(typeof argv.t, 'boolean'); t.end(); @@ -97,13 +97,13 @@ test('flag boolean default false', function (t) { boolean: ['t', 'verbose'], default: { verbose: false, t: false } }); - + t.deepEqual(argv, { verbose: false, t: false, _: ['moo'] }); - + t.deepEqual(typeof argv.verbose, 'boolean'); t.deepEqual(typeof argv.t, 'boolean'); t.end(); @@ -114,14 +114,14 @@ test('boolean groups', function (t) { var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], { boolean: ['x','y','z'] }); - + t.deepEqual(argv, { x : true, y : false, z : true, _ : [ 'one', 'two', 'three' ] }); - + t.deepEqual(typeof argv.x, 'boolean'); t.deepEqual(typeof argv.y, 'boolean'); t.deepEqual(typeof argv.z, 'boolean'); @@ -131,7 +131,7 @@ test('boolean groups', function (t) { test('newlines in params' , function (t) { var args = parse([ '-s', "X\nX" ]) t.deepEqual(args, { _ : [], s : "X\nX" }); - + // reproduce in bash: // VALUE="new // line" @@ -145,7 +145,7 @@ test('strings' , function (t) { var s = parse([ '-s', '0001234' ], { string: 's' }).s; t.equal(s, '0001234'); t.equal(typeof s, 'string'); - + var x = parse([ '-x', '56' ], { string: 'x' }).x; t.equal(x, '56'); t.equal(typeof x, 'string'); @@ -222,7 +222,7 @@ test('nested dotted objects', function (t) { '--foo.quux.quibble', '5', '--foo.quux.o_O', '--beep.boop' ]); - + t.same(argv.foo, { bar : 3, baz : 4, @@ -254,9 +254,9 @@ test('boolean and alias with chainable api', function (t) { h: true, '_': [ 'derp' ] }; - + t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); + t.same(propertyArgv, expected); t.end(); }); @@ -295,7 +295,7 @@ test('boolean and alias using explicit true', function (t) { }; t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); + t.same(propertyArgv, expected); t.end(); }); @@ -311,7 +311,7 @@ test('boolean and --x=true', function(t) { parsed = parse(['--boool', '--other=false'], { boolean: 'boool' }); - + t.same(parsed.boool, true); t.same(parsed.other, 'false'); t.end(); diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js b/deps/npm/node_modules/minimist/test/parse_modified.js similarity index 97% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js rename to deps/npm/node_modules/minimist/test/parse_modified.js index 21851b036ee6d92453f3820bb2d5442d75aecc6d..7c4c2abe39779737d32584311bd0c43f39891ed2 100644 --- a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js +++ b/deps/npm/node_modules/minimist/test/parse_modified.js @@ -3,7 +3,7 @@ var test = require('tape'); test('parse with modifier functions' , function (t) { t.plan(1); - + var argv = parse([ '-b', '123' ], { boolean: 'b' }); t.deepEqual(argv, { b: true, _: ['123'] }); }); diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js b/deps/npm/node_modules/minimist/test/short.js similarity index 99% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js rename to deps/npm/node_modules/minimist/test/short.js index d513a1c2529095aba51bff9413cfe2942d3f2d09..ac18880f1eb50cf428e721ccbcb4ff9222c72f7b 100644 --- a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js +++ b/deps/npm/node_modules/minimist/test/short.js @@ -43,7 +43,7 @@ test('short', function (t) { ); t.end(); }); - + test('mixed short bool and capture', function (t) { t.same( parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), @@ -54,7 +54,7 @@ test('mixed short bool and capture', function (t) { ); t.end(); }); - + test('short and long', function (t) { t.deepEqual( parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js b/deps/npm/node_modules/minimist/test/whitespace.js similarity index 100% rename from deps/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js rename to deps/npm/node_modules/minimist/test/whitespace.js diff --git a/deps/npm/node_modules/mkdirp/package.json b/deps/npm/node_modules/mkdirp/package.json index 24411034800529d109518906cb01ca4b7b777550..3e5bbaf3d09a333770b06a7247476ebc29506d0f 100644 --- a/deps/npm/node_modules/mkdirp/package.json +++ b/deps/npm/node_modules/mkdirp/package.json @@ -1,59 +1,87 @@ { - "name": "mkdirp", - "description": "Recursively mkdir, like `mkdir -p`", - "version": "0.5.1", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "main": "index.js", - "keywords": [ - "mkdir", - "directory" + "_args": [ + [ + "mkdirp@~0.5.1", + "/Users/rebecca/code/npm" + ] ], - "repository": { - "type": "git", - "url": "git+https://github.com/substack/node-mkdirp.git" - }, - "scripts": { - "test": "tap test/*.js" + "_from": "mkdirp@>=0.5.1 <0.6.0", + "_id": "mkdirp@0.5.1", + "_inCache": true, + "_location": "/mkdirp", + "_nodeVersion": "2.0.0", + "_npmUser": { + "email": "substack@gmail.com", + "name": "substack" }, - "dependencies": { - "minimist": "0.0.8" + "_npmVersion": "2.9.0", + "_phantomChildren": {}, + "_requested": { + "name": "mkdirp", + "raw": "mkdirp@~0.5.1", + "rawSpec": "~0.5.1", + "scope": null, + "spec": ">=0.5.1 <0.6.0", + "type": "range" }, - "devDependencies": { - "tap": "1", - "mock-fs": "2 >=2.7.0" + "_requiredBy": [ + "/", + "/cmd-shim", + "/fstream", + "/node-gyp", + "/npm-registry-client" + ], + "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "_shasum": "30057438eac6cf7f8c4767f38648d6697d75c903", + "_shrinkwrap": null, + "_spec": "mkdirp@~0.5.1", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "mail@substack.net", + "name": "James Halliday", + "url": "http://substack.net" }, "bin": { "mkdirp": "bin/cmd.js" }, - "license": "MIT", - "gitHead": "d4eff0f06093aed4f387e88e9fc301cb76beedc7", "bugs": { "url": "https://github.com/substack/node-mkdirp/issues" }, - "homepage": "https://github.com/substack/node-mkdirp#readme", - "_id": "mkdirp@0.5.1", - "_shasum": "30057438eac6cf7f8c4767f38648d6697d75c903", - "_from": "mkdirp@>=0.5.1 <0.6.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.0", - "_npmUser": { - "name": "substack", - "email": "substack@gmail.com" + "dependencies": { + "minimist": "0.0.8" }, + "description": "Recursively mkdir, like `mkdir -p`", + "devDependencies": { + "mock-fs": "2 >=2.7.0", + "tap": "1" + }, + "directories": {}, "dist": { "shasum": "30057438eac6cf7f8c4767f38648d6697d75c903", "tarball": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" }, + "gitHead": "d4eff0f06093aed4f387e88e9fc301cb76beedc7", + "homepage": "https://github.com/substack/node-mkdirp#readme", + "keywords": [ + "directory", + "mkdir" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "substack", "email": "mail@substack.net" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + "name": "mkdirp", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/substack/node-mkdirp.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "0.5.1" } diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/.npmignore b/deps/npm/node_modules/ms/.npmignore similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/.npmignore rename to deps/npm/node_modules/ms/.npmignore diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/History.md b/deps/npm/node_modules/ms/History.md similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/History.md rename to deps/npm/node_modules/ms/History.md diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/LICENSE b/deps/npm/node_modules/ms/LICENSE similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/LICENSE rename to deps/npm/node_modules/ms/LICENSE diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/README.md b/deps/npm/node_modules/ms/README.md similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/README.md rename to deps/npm/node_modules/ms/README.md diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/index.js b/deps/npm/node_modules/ms/index.js similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/index.js rename to deps/npm/node_modules/ms/index.js diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/package.json b/deps/npm/node_modules/ms/package.json similarity index 63% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/package.json rename to deps/npm/node_modules/ms/package.json index 253335e623490704bd40ed0b2287b85087aad3f6..84a9b7a97a2e89e8382516fb9c4bbd88e95350e7 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms/package.json +++ b/deps/npm/node_modules/ms/package.json @@ -1,48 +1,72 @@ { - "name": "ms", - "version": "0.7.1", - "description": "Tiny ms conversion utility", - "repository": { - "type": "git", - "url": "git://github.com/guille/ms.js.git" + "_args": [ + [ + "ms@0.7.1", + "/Users/rebecca/code/npm/node_modules/debug" + ] + ], + "_from": "ms@0.7.1", + "_id": "ms@0.7.1", + "_inCache": true, + "_location": "/ms", + "_nodeVersion": "0.12.2", + "_npmUser": { + "email": "rauchg@gmail.com", + "name": "rauchg" }, - "main": "./index", - "devDependencies": { - "mocha": "*", - "expect.js": "*", - "serve": "*" + "_npmVersion": "2.7.5", + "_phantomChildren": {}, + "_requested": { + "name": "ms", + "raw": "ms@0.7.1", + "rawSpec": "0.7.1", + "scope": null, + "spec": "0.7.1", + "type": "version" + }, + "_requiredBy": [ + "/debug" + ], + "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098", + "_shrinkwrap": null, + "_spec": "ms@0.7.1", + "_where": "/Users/rebecca/code/npm/node_modules/debug", + "bugs": { + "url": "https://github.com/guille/ms.js/issues" }, "component": { "scripts": { "ms/index.js": "index.js" } }, - "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909", - "bugs": { - "url": "https://github.com/guille/ms.js/issues" + "dependencies": {}, + "description": "Tiny ms conversion utility", + "devDependencies": { + "expect.js": "*", + "mocha": "*", + "serve": "*" }, - "homepage": "https://github.com/guille/ms.js", - "_id": "ms@0.7.1", - "scripts": {}, - "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "_from": "ms@0.7.1", - "_npmVersion": "2.7.5", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "rauchg", - "email": "rauchg@gmail.com" + "directories": {}, + "dist": { + "shasum": "9cd13c03adbff25b65effde7ce864ee952017098", + "tarball": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz" }, + "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909", + "homepage": "https://github.com/guille/ms.js", + "main": "./index", "maintainers": [ { "name": "rauchg", "email": "rauchg@gmail.com" } ], - "dist": { - "shasum": "9cd13c03adbff25b65effde7ce864ee952017098", - "tarball": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + "name": "ms", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/guille/ms.js.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "readme": "ERROR: No README data found!" + "scripts": {}, + "version": "0.7.1" } diff --git a/deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/LICENSE b/deps/npm/node_modules/mute-stream/LICENSE similarity index 100% rename from deps/npm/node_modules/fstream-npm/node_modules/fstream-ignore/LICENSE rename to deps/npm/node_modules/mute-stream/LICENSE diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/README.md b/deps/npm/node_modules/mute-stream/README.md similarity index 100% rename from deps/npm/node_modules/read/node_modules/mute-stream/README.md rename to deps/npm/node_modules/mute-stream/README.md diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/mute.js b/deps/npm/node_modules/mute-stream/mute.js similarity index 100% rename from deps/npm/node_modules/read/node_modules/mute-stream/mute.js rename to deps/npm/node_modules/mute-stream/mute.js diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/package.json b/deps/npm/node_modules/mute-stream/package.json similarity index 64% rename from deps/npm/node_modules/read/node_modules/mute-stream/package.json rename to deps/npm/node_modules/mute-stream/package.json index 9cdb30284561ec9cb6fa5dcaebe088d6360d26bb..16c475606982a889aff4e9865f8e7cd641a4689d 100644 --- a/deps/npm/node_modules/read/node_modules/mute-stream/package.json +++ b/deps/npm/node_modules/mute-stream/package.json @@ -1,55 +1,80 @@ { - "name": "mute-stream", - "version": "0.0.5", - "main": "mute.js", - "directories": { - "test": "test" - }, - "devDependencies": { - "tap": "~0.2.5" - }, - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "mute-stream@~0.0.4", + "/Users/rebecca/code/npm/node_modules/read" + ] + ], + "_from": "mute-stream@>=0.0.4 <0.1.0", + "_id": "mute-stream@0.0.5", + "_inCache": true, + "_location": "/mute-stream", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/mute-stream.git" + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "mute-stream", + "raw": "mute-stream@~0.0.4", + "rawSpec": "~0.0.4", + "scope": null, + "spec": ">=0.0.4 <0.1.0", + "type": "range" }, - "keywords": [ - "mute", - "stream", - "pipe" + "_requiredBy": [ + "/read" ], + "_resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", + "_shasum": "8fbfabb0a98a253d3184331f9e8deb7372fac6c0", + "_shrinkwrap": null, + "_spec": "mute-stream@~0.0.4", + "_where": "/Users/rebecca/code/npm/node_modules/read", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "license": "ISC", - "description": "Bytes go in, but they don't come out (when muted).", - "gitHead": "17d9854a315f56088d039534f87b740e470a9af0", "bugs": { "url": "https://github.com/isaacs/mute-stream/issues" }, - "homepage": "https://github.com/isaacs/mute-stream#readme", - "_id": "mute-stream@0.0.5", - "_shasum": "8fbfabb0a98a253d3184331f9e8deb7372fac6c0", - "_from": "mute-stream@>=0.0.4 <0.1.0", - "_npmVersion": "2.10.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" + "dependencies": {}, + "description": "Bytes go in, but they don't come out (when muted).", + "devDependencies": { + "tap": "~0.2.5" + }, + "directories": { + "test": "test" }, "dist": { "shasum": "8fbfabb0a98a253d3184331f9e8deb7372fac6c0", "tarball": "http://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz" }, + "gitHead": "17d9854a315f56088d039534f87b740e470a9af0", + "homepage": "https://github.com/isaacs/mute-stream#readme", + "keywords": [ + "mute", + "pipe", + "stream" + ], + "license": "ISC", + "main": "mute.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "_resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz" + "name": "mute-stream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/mute-stream.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "0.0.5" } diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/test/basic.js b/deps/npm/node_modules/mute-stream/test/basic.js similarity index 100% rename from deps/npm/node_modules/read/node_modules/mute-stream/test/basic.js rename to deps/npm/node_modules/mute-stream/test/basic.js diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js deleted file mode 100644 index 60ecfc74d416180597369025124152feba2a8893..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +++ /dev/null @@ -1,8 +0,0 @@ -var expand = require('./'); - -console.log(expand('http://any.org/archive{1996..1999}/vol{1..4}/part{a,b,c}.html')); -console.log(expand('http://www.numericals.com/file{1..100..10}.txt')); -console.log(expand('http://www.letters.com/file{a..z..2}.txt')); -console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}')); -console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}')); - diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js deleted file mode 100644 index a23104e955017355df53d7f3cfdff521ce3cf938..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,191 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = /^(.*,)+(.+)?$/.test(m.body); - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md deleted file mode 100644 index 2aff0ebff4403e3b1e1be0fe7cd74f292d8034a3..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -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/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js deleted file mode 100644 index d165ae8174ca82d67a6bf10f31de89e3c75c827c..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +++ /dev/null @@ -1,38 +0,0 @@ -module.exports = balanced; -function balanced(a, b, str) { - var bal = 0; - var m = {}; - var ended = false; - - for (var i = 0; i < str.length; i++) { - if (a == str.substr(i, a.length)) { - if (!('start' in m)) m.start = i; - bal++; - } - else if (b == str.substr(i, b.length) && 'start' in m) { - ended = true; - bal--; - if (!bal) { - m.end = i; - m.pre = str.substr(0, m.start); - m.body = (m.end - m.start > 1) - ? str.substring(m.start + a.length, m.end) - : ''; - m.post = str.slice(m.end + b.length); - return m; - } - } - } - - // if we opened more than we closed, find the one we closed - if (bal && ended) { - var start = m.start + a.length; - m = balanced(a, b, str.substr(start)); - if (m) { - m.start += start; - m.end += start; - m.pre = str.slice(0, start) + m.pre; - } - return m; - } -} diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json deleted file mode 100644 index ede6efefa07883a6be1534d83a82ccd352026ea1..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "balanced-match", - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "version": "0.2.0", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "homepage": "https://github.com/juliangruber/balanced-match", - "main": "index.js", - "scripts": { - "test": "make test" - }, - "dependencies": {}, - "devDependencies": { - "tape": "~1.1.1" - }, - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..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" - ] - }, - "gitHead": "ba40ed78e7114a4a67c51da768a100184dead39c", - "bugs": { - "url": "https://github.com/juliangruber/balanced-match/issues" - }, - "_id": "balanced-match@0.2.0", - "_shasum": "38f6730c03aab6d5edbb52bd934885e756d71674", - "_from": "balanced-match@>=0.2.0 <0.3.0", - "_npmVersion": "2.1.8", - "_nodeVersion": "0.10.32", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "dist": { - "shasum": "38f6730c03aab6d5edbb52bd934885e756d71674", - "tarball": "http://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js deleted file mode 100644 index 36bfd39954850d14ba7ca3a3f86de2aa5473c94d..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +++ /dev/null @@ -1,56 +0,0 @@ -var test = require('tape'); -var balanced = require('..'); - -test('balanced', function(t) { - t.deepEqual(balanced('{', '}', 'pre{in{nest}}post'), { - start: 3, - end: 12, - pre: 'pre', - body: 'in{nest}', - post: 'post' - }); - t.deepEqual(balanced('{', '}', '{{{{{{{{{in}post'), { - start: 8, - end: 11, - pre: '{{{{{{{{', - body: 'in', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre{body{in}post'), { - start: 8, - end: 11, - pre: 'pre{body', - body: 'in', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre}{in{nest}}post'), { - start: 4, - end: 13, - pre: 'pre}', - body: 'in{nest}', - post: 'post' - }); - t.deepEqual(balanced('{', '}', 'pre{body}between{body2}post'), { - start: 3, - end: 8, - pre: 'pre', - body: 'body', - post: 'between{body2}post' - }); - t.notOk(balanced('{', '}', 'nope'), 'should be notOk'); - t.deepEqual(balanced('', '', 'preinnestpost'), { - start: 3, - end: 19, - pre: 'pre', - body: 'innest', - post: 'post' - }); - t.deepEqual(balanced('', '', 'preinnestpost'), { - start: 7, - end: 23, - pre: 'pre', - body: 'innest', - post: 'post' - }); - t.end(); -}); diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4b4412b0e4a05af5e3d8a005bc6681fdf3..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -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/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a1be473c86e729fe8cc1d5fb4e0e364ce9..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +++ /dev/null @@ -1,62 +0,0 @@ -concat-map -========== - -Concatenative mapdashery. - -[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) - -[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) - -example -======= - -``` js -var concatMap = require('concat-map'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); -``` - -*** - -``` -[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] -``` - -methods -======= - -``` js -var concatMap = require('concat-map') -``` - -concatMap(xs, fn) ------------------ - -Return an array of concatenated elements by calling `fn(x, i)` for each element -`x` and each index `i` in the array `xs`. - -When `fn(x, i)` returns an array, its result will be concatenated with the -result array. If `fn(x, i)` returns anything else, that value will be pushed -onto the end of the result array. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install concat-map -``` - -license -======= - -MIT - -notes -===== - -This module was written while sitting high above the ground in a tree. diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js deleted file mode 100644 index 33656217b61d8f06a55db4631ec95eea828495d2..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js deleted file mode 100644 index b29a7812e5055ae915e771447e1380e01bf3bfdd..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd7022f6da17600dad4d477734115bf28287e0..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json deleted file mode 100644 index 5f1866c8b5a29e9ef206ed77853ef24b2a9305b6..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "brace-expansion", - "description": "Brace expansion as known from sh/bash", - "version": "1.1.0", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "homepage": "https://github.com/juliangruber/brace-expansion", - "main": "index.js", - "scripts": { - "test": "tape test/*.js", - "gentest": "bash test/generate.sh" - }, - "dependencies": { - "balanced-match": "^0.2.0", - "concat-map": "0.0.1" - }, - "devDependencies": { - "tape": "^3.0.3" - }, - "keywords": [], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..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" - ] - }, - "gitHead": "b5fa3b1c74e5e2dba2d0efa19b28335641bc1164", - "bugs": { - "url": "https://github.com/juliangruber/brace-expansion/issues" - }, - "_id": "brace-expansion@1.1.0", - "_shasum": "c9b7d03c03f37bc704be100e522b40db8f6cfcd9", - "_from": "brace-expansion@>=1.0.0 <2.0.0", - "_npmVersion": "2.1.10", - "_nodeVersion": "0.10.32", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - } - ], - "dist": { - "shasum": "c9b7d03c03f37bc704be100e522b40db8f6cfcd9", - "tarball": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js deleted file mode 100644 index 5fe2b8ad48cc1c2a66c7cc2cc7aecb5fe09a86e0..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +++ /dev/null @@ -1,32 +0,0 @@ -var test = require('tape'); -var expand = require('..'); -var fs = require('fs'); -var resfile = __dirname + '/bash-results.txt'; -var cases = fs.readFileSync(resfile, 'utf8').split('><><><><'); - -// throw away the EOF marker -cases.pop() - -test('matches bash expansions', function(t) { - cases.forEach(function(testcase) { - var set = testcase.split('\n'); - var pattern = set.shift(); - var actual = expand(pattern); - - // If it expands to the empty string, then it's actually - // just nothing, but Bash is a singly typed language, so - // "nothing" is the same as "". - if (set.length === 1 && set[0] === '') { - set = [] - } else { - // otherwise, strip off the [] that were added so that - // "" expansions would be preserved properly. - set = set.map(function (s) { - return s.replace(/^\[|\]$/g, '') - }) - } - - t.same(actual, set, pattern); - }); - t.end(); -}) diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt deleted file mode 100644 index 958148d26aacb9bb4f3025149f5df3eb7db1d16f..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +++ /dev/null @@ -1,1075 +0,0 @@ -A{b,{d,e},{f,g}}Z -[AbZ] -[AdZ] -[AeZ] -[AfZ] -[AgZ]><><><><><><><\{a,b}{{a,b},a,b} -[{a,b}a] -[{a,b}b] -[{a,b}a] -[{a,b}b]><><><><{{a,b} -[{a] -[{b]><><><><{a,b}} -[a}] -[b}]><><><><{,} -><><><><><><><{,}b -[b] -[b]><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><{-01..5} -[-01] -[000] -[001] -[002] -[003] -[004] -[005]><><><><{-05..100..5} -[-05] -[000] -[005] -[010] -[015] -[020] -[025] -[030] -[035] -[040] -[045] -[050] -[055] -[060] -[065] -[070] -[075] -[080] -[085] -[090] -[095] -[100]><><><><{-05..100} -[-05] -[-04] -[-03] -[-02] -[-01] -[000] -[001] -[002] -[003] -[004] -[005] -[006] -[007] -[008] -[009] -[010] -[011] -[012] -[013] -[014] -[015] -[016] -[017] -[018] -[019] -[020] -[021] -[022] -[023] -[024] -[025] -[026] -[027] -[028] -[029] -[030] -[031] -[032] -[033] -[034] -[035] -[036] -[037] -[038] -[039] -[040] -[041] -[042] -[043] -[044] -[045] -[046] -[047] -[048] -[049] -[050] -[051] -[052] -[053] -[054] -[055] -[056] -[057] -[058] -[059] -[060] -[061] -[062] -[063] -[064] -[065] -[066] -[067] -[068] -[069] -[070] -[071] -[072] -[073] -[074] -[075] -[076] -[077] -[078] -[079] -[080] -[081] -[082] -[083] -[084] -[085] -[086] -[087] -[088] -[089] -[090] -[091] -[092] -[093] -[094] -[095] -[096] -[097] -[098] -[099] -[100]><><><><{0..5..2} -[0] -[2] -[4]><><><><{0001..05..2} -[0001] -[0003] -[0005]><><><><{0001..-5..2} -[0001] -[-001] -[-003] -[-005]><><><><{0001..-5..-2} -[0001] -[-001] -[-003] -[-005]><><><><{0001..5..-2} -[0001] -[0003] -[0005]><><><><{01..5} -[01] -[02] -[03] -[04] -[05]><><><><{1..05} -[01] -[02] -[03] -[04] -[05]><><><><{1..05..3} -[01] -[04]><><><><{05..100} -[005] -[006] -[007] -[008] -[009] -[010] -[011] -[012] -[013] -[014] -[015] -[016] -[017] -[018] -[019] -[020] -[021] -[022] -[023] -[024] -[025] -[026] -[027] -[028] -[029] -[030] -[031] -[032] -[033] -[034] -[035] -[036] -[037] -[038] -[039] -[040] -[041] -[042] -[043] -[044] -[045] -[046] -[047] -[048] -[049] -[050] -[051] -[052] -[053] -[054] -[055] -[056] -[057] -[058] -[059] -[060] -[061] -[062] -[063] -[064] -[065] -[066] -[067] -[068] -[069] -[070] -[071] -[072] -[073] -[074] -[075] -[076] -[077] -[078] -[079] -[080] -[081] -[082] -[083] -[084] -[085] -[086] -[087] -[088] -[089] -[090] -[091] -[092] -[093] -[094] -[095] -[096] -[097] -[098] -[099] -[100]><><><><{0a..0z} -[{0a..0z}]><><><><{a,b\}c,d} -[a] -[b}c] -[d]><><><><{a,b{c,d} -[{a,bc] -[{a,bd]><><><><{a,b}c,d} -[ac,d}] -[bc,d}]><><><><{a..F} -[a] -[`] -[_] -[^] -[]] -[] -[[] -[Z] -[Y] -[X] -[W] -[V] -[U] -[T] -[S] -[R] -[Q] -[P] -[O] -[N] -[M] -[L] -[K] -[J] -[I] -[H] -[G] -[F]><><><><{A..f} -[A] -[B] -[C] -[D] -[E] -[F] -[G] -[H] -[I] -[J] -[K] -[L] -[M] -[N] -[O] -[P] -[Q] -[R] -[S] -[T] -[U] -[V] -[W] -[X] -[Y] -[Z] -[[] -[] -[]] -[^] -[_] -[`] -[a] -[b] -[c] -[d] -[e] -[f]><><><><{a..Z} -[a] -[`] -[_] -[^] -[]] -[] -[[] -[Z]><><><><{A..z} -[A] -[B] -[C] -[D] -[E] -[F] -[G] -[H] -[I] -[J] -[K] -[L] -[M] -[N] -[O] -[P] -[Q] -[R] -[S] -[T] -[U] -[V] -[W] -[X] -[Y] -[Z] -[[] -[] -[]] -[^] -[_] -[`] -[a] -[b] -[c] -[d] -[e] -[f] -[g] -[h] -[i] -[j] -[k] -[l] -[m] -[n] -[o] -[p] -[q] -[r] -[s] -[t] -[u] -[v] -[w] -[x] -[y] -[z]><><><><{z..A} -[z] -[y] -[x] -[w] -[v] -[u] -[t] -[s] -[r] -[q] -[p] -[o] -[n] -[m] -[l] -[k] -[j] -[i] -[h] -[g] -[f] -[e] -[d] -[c] -[b] -[a] -[`] -[_] -[^] -[]] -[] -[[] -[Z] -[Y] -[X] -[W] -[V] -[U] -[T] -[S] -[R] -[Q] -[P] -[O] -[N] -[M] -[L] -[K] -[J] -[I] -[H] -[G] -[F] -[E] -[D] -[C] -[B] -[A]><><><><{Z..a} -[Z] -[[] -[] -[]] -[^] -[_] -[`] -[a]><><><><{a..F..2} -[a] -[_] -[]] -[[] -[Y] -[W] -[U] -[S] -[Q] -[O] -[M] -[K] -[I] -[G]><><><><{A..f..02} -[A] -[C] -[E] -[G] -[I] -[K] -[M] -[O] -[Q] -[S] -[U] -[W] -[Y] -[[] -[]] -[_] -[a] -[c] -[e]><><><><{a..Z..5} -[a] -[]><><><><><><><{A..z..10} -[A] -[K] -[U] -[_] -[i] -[s]><><><><{z..A..-2} -[z] -[x] -[v] -[t] -[r] -[p] -[n] -[l] -[j] -[h] -[f] -[d] -[b] -[`] -[^] -[] -[Z] -[X] -[V] -[T] -[R] -[P] -[N] -[L] -[J] -[H] -[F] -[D] -[B]><><><><{Z..a..20} -[Z]><><><><{a{,b} -[{a] -[{ab]><><><><{a},b} -[a}] -[b]><><><><{x,y{,}g} -[x] -[yg] -[yg]><><><><{x,y{}g} -[x] -[y{}g]><><><><{{a,b} -[{a] -[{b]><><><><{{a,b},c} -[a] -[b] -[c]><><><><{{a,b}c} -[{ac}] -[{bc}]><><><><{{a,b},} -[a] -[b]><><><><><><><{{a,b},}c -[ac] -[bc] -[c]><><><><{{a,b}.} -[{a.}] -[{b.}]><><><><{{a,b}} -[{a}] -[{b}]><><><><><><>< -><><><><{-10..00} -[-10] -[-09] -[-08] -[-07] -[-06] -[-05] -[-04] -[-03] -[-02] -[-01] -[000]><><><><{a,\\{a,b}c} -[a] -[\ac] -[\bc]><><><><{a,\{a,b}c} -[ac}] -[{ac}] -[bc}]><><><><><><><{-10.\.00} -[{-10..00}]><><><><><><><><><><{l,n,m}xyz -[lxyz] -[nxyz] -[mxyz]><><><><{abc\,def} -[{abc,def}]><><><><{abc} -[{abc}]><><><><{x\,y,\{abc\},trie} -[x,y] -[{abc}] -[trie]><><><><{} -[{}]><><><><} -[}]><><><><{ -[{]><><><><><><><{1..10} -[1] -[2] -[3] -[4] -[5] -[6] -[7] -[8] -[9] -[10]><><><><{0..10,braces} -[0..10] -[braces]><><><><{{0..10},braces} -[0] -[1] -[2] -[3] -[4] -[5] -[6] -[7] -[8] -[9] -[10] -[braces]><><><><><><><{3..3} -[3]><><><><><><><{10..1} -[10] -[9] -[8] -[7] -[6] -[5] -[4] -[3] -[2] -[1]><><><><{10..1}y -[10y] -[9y] -[8y] -[7y] -[6y] -[5y] -[4y] -[3y] -[2y] -[1y]><><><><><><><{a..f} -[a] -[b] -[c] -[d] -[e] -[f]><><><><{f..a} -[f] -[e] -[d] -[c] -[b] -[a]><><><><{a..A} -[a] -[`] -[_] -[^] -[]] -[] -[[] -[Z] -[Y] -[X] -[W] -[V] -[U] -[T] -[S] -[R] -[Q] -[P] -[O] -[N] -[M] -[L] -[K] -[J] -[I] -[H] -[G] -[F] -[E] -[D] -[C] -[B] -[A]><><><><{A..a} -[A] -[B] -[C] -[D] -[E] -[F] -[G] -[H] -[I] -[J] -[K] -[L] -[M] -[N] -[O] -[P] -[Q] -[R] -[S] -[T] -[U] -[V] -[W] -[X] -[Y] -[Z] -[[] -[] -[]] -[^] -[_] -[`] -[a]><><><><{f..f} -[f]><><><><{1..f} -[{1..f}]><><><><{f..1} -[{f..1}]><><><><{-1..-10} -[-1] -[-2] -[-3] -[-4] -[-5] -[-6] -[-7] -[-8] -[-9] -[-10]><><><><{-20..0} -[-20] -[-19] -[-18] -[-17] -[-16] -[-15] -[-14] -[-13] -[-12] -[-11] -[-10] -[-9] -[-8] -[-7] -[-6] -[-5] -[-4] -[-3] -[-2] -[-1] -[0]><><><><><><><><><><{klklkl}{1,2,3} -[{klklkl}1] -[{klklkl}2] -[{klklkl}3]><><><><{1..10..2} -[1] -[3] -[5] -[7] -[9]><><><><{-1..-10..2} -[-1] -[-3] -[-5] -[-7] -[-9]><><><><{-1..-10..-2} -[-1] -[-3] -[-5] -[-7] -[-9]><><><><{10..1..-2} -[10] -[8] -[6] -[4] -[2]><><><><{10..1..2} -[10] -[8] -[6] -[4] -[2]><><><><{1..20..2} -[1] -[3] -[5] -[7] -[9] -[11] -[13] -[15] -[17] -[19]><><><><{1..20..20} -[1]><><><><{100..0..5} -[100] -[95] -[90] -[85] -[80] -[75] -[70] -[65] -[60] -[55] -[50] -[45] -[40] -[35] -[30] -[25] -[20] -[15] -[10] -[5] -[0]><><><><{100..0..-5} -[100] -[95] -[90] -[85] -[80] -[75] -[70] -[65] -[60] -[55] -[50] -[45] -[40] -[35] -[30] -[25] -[20] -[15] -[10] -[5] -[0]><><><><{a..z} -[a] -[b] -[c] -[d] -[e] -[f] -[g] -[h] -[i] -[j] -[k] -[l] -[m] -[n] -[o] -[p] -[q] -[r] -[s] -[t] -[u] -[v] -[w] -[x] -[y] -[z]><><><><{a..z..2} -[a] -[c] -[e] -[g] -[i] -[k] -[m] -[o] -[q] -[s] -[u] -[w] -[y]><><><><{z..a..-2} -[z] -[x] -[v] -[t] -[r] -[p] -[n] -[l] -[j] -[h] -[f] -[d] -[b]><><><><{2147483645..2147483649} -[2147483645] -[2147483646] -[2147483647] -[2147483648] -[2147483649]><><><><{10..0..2} -[10] -[8] -[6] -[4] -[2] -[0]><><><><{10..0..-2} -[10] -[8] -[6] -[4] -[2] -[0]><><><><{-50..-0..5} -[-50] -[-45] -[-40] -[-35] -[-30] -[-25] -[-20] -[-15] -[-10] -[-5] -[0]><><><><{1..10.f} -[{1..10.f}]><><><><{1..ff} -[{1..ff}]><><><><{1..10..ff} -[{1..10..ff}]><><><><{1.20..2} -[{1.20..2}]><><><><{1..20..f2} -[{1..20..f2}]><><><><{1..20..2f} -[{1..20..2f}]><><><><{1..2f..2} -[{1..2f..2}]><><><><{1..ff..2} -[{1..ff..2}]><><><><{1..ff} -[{1..ff}]><><><><{1..f} -[{1..f}]><><><><{1..0f} -[{1..0f}]><><><><{1..10f} -[{1..10f}]><><><><{1..10.f} -[{1..10.f}]><><><><{1..10.f} -[{1..10.f}]><><><>< \ No newline at end of file diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt deleted file mode 100644 index e5161c3da869f3a81247dc8a06c3592a1302c73b..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +++ /dev/null @@ -1,182 +0,0 @@ -# skip quotes for now -# "{x,x}" -# {"x,x"} -# {x","x} -# '{a,b}{{a,b},a,b}' -A{b,{d,e},{f,g}}Z -PRE-{a,b}{{a,b},a,b}-POST -\\{a,b}{{a,b},a,b} -{{a,b} -{a,b}} -{,} -a{,} -{,}b -a{,}b -a{b}c -a{1..5}b -a{01..5}b -a{-01..5}b -a{-01..5..3}b -a{001..9}b -a{b,c{d,e},{f,g}h}x{y,z -a{b,c{d,e},{f,g}h}x{y,z\\} -a{b,c{d,e},{f,g}h}x{y,z} -a{b{c{d,e}f{x,y{{g}h -a{b{c{d,e}f{x,y{}g}h -a{b{c{d,e}f{x,y}}g}h -a{b{c{d,e}f}g}h -a{{x,y},z}b -f{x,y{g,z}}h -f{x,y{{g,z}}h -f{x,y{{g,z}}h} -f{x,y{{g}h -f{x,y{{g}}h -f{x,y{}g}h -z{a,b{,c}d -z{a,b},c}d -{-01..5} -{-05..100..5} -{-05..100} -{0..5..2} -{0001..05..2} -{0001..-5..2} -{0001..-5..-2} -{0001..5..-2} -{01..5} -{1..05} -{1..05..3} -{05..100} -{0a..0z} -{a,b\\}c,d} -{a,b{c,d} -{a,b}c,d} -{a..F} -{A..f} -{a..Z} -{A..z} -{z..A} -{Z..a} -{a..F..2} -{A..f..02} -{a..Z..5} -d{a..Z..5}b -{A..z..10} -{z..A..-2} -{Z..a..20} -{a{,b} -{a},b} -{x,y{,}g} -{x,y{}g} -{{a,b} -{{a,b},c} -{{a,b}c} -{{a,b},} -X{{a,b},}X -{{a,b},}c -{{a,b}.} -{{a,b}} -X{a..#}X -# this next one is an empty string - -{-10..00} -# Need to escape slashes in here for reasons i guess. -{a,\\\\{a,b}c} -{a,\\{a,b}c} -a,\\{b,c} -{-10.\\.00} -#### bash tests/braces.tests -# Note that some tests are edited out because some features of -# bash are intentionally not supported in this brace expander. -ff{c,b,a} -f{d,e,f}g -{l,n,m}xyz -{abc\\,def} -{abc} -{x\\,y,\\{abc\\},trie} -# not impementing back-ticks obviously -# XXXX\\{`echo a b c | tr ' ' ','`\\} -{} -# We only ever have to worry about parsing a single argument, -# not a command line, so spaces have a different meaning than bash. -# { } -} -{ -abcd{efgh -# spaces -# foo {1,2} bar -# not impementing back-ticks obviously -# `zecho foo {1,2} bar` -# $(zecho foo {1,2} bar) -# ${var} is not a variable here, like it is in bash. omit. -# foo{bar,${var}.} -# foo{bar,${var}} -# isaacs: skip quotes for now -# "${var}"{x,y} -# $var{x,y} -# ${var}{x,y} -# new sequence brace operators -{1..10} -# this doesn't work yet -{0..10,braces} -# but this does -{{0..10},braces} -x{{0..10},braces}y -{3..3} -x{3..3}y -{10..1} -{10..1}y -x{10..1}y -{a..f} -{f..a} -{a..A} -{A..a} -{f..f} -# mixes are incorrectly-formed brace expansions -{1..f} -{f..1} -# spaces -# 0{1..9} {10..20} -# do negative numbers work? -{-1..-10} -{-20..0} -# weirdly-formed brace expansions -- fixed in post-bash-3.1 -a-{b{d,e}}-c -a-{bdef-{g,i}-c -# isaacs: skip quotes for now -# {"klklkl"}{1,2,3} -# isaacs: this is a valid test, though -{klklkl}{1,2,3} -# {"x,x"} -{1..10..2} -{-1..-10..2} -{-1..-10..-2} -{10..1..-2} -{10..1..2} -{1..20..2} -{1..20..20} -{100..0..5} -{100..0..-5} -{a..z} -{a..z..2} -{z..a..-2} -# make sure brace expansion handles ints > 2**31 - 1 using intmax_t -{2147483645..2147483649} -# unwanted zero-padding -- fixed post-bash-4.0 -{10..0..2} -{10..0..-2} -{-50..-0..5} -# bad -{1..10.f} -{1..ff} -{1..10..ff} -{1.20..2} -{1..20..f2} -{1..20..2f} -{1..2f..2} -{1..ff..2} -{1..ff} -{1..f} -{1..0f} -{1..10f} -{1..10.f} -{1..10.f} diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js deleted file mode 100644 index 3fcc185a7d6dcce7c80199c2c2ce7d6cc57dff56..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +++ /dev/null @@ -1,9 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('ignores ${', function(t) { - t.deepEqual(expand('${1..3}'), ['${1..3}']); - t.deepEqual(expand('${a,b}${c,d}'), ['${a,b}${c,d}']); - t.deepEqual(expand('x${a,b}x${c,d}x'), ['x${a,b}x${c,d}x']); - t.end(); -}); diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js deleted file mode 100644 index e429121eab80590c10235d9479da0ffc8bc09c65..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +++ /dev/null @@ -1,10 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('empty option', function(t) { - t.deepEqual(expand('-v{,,,,}'), [ - '-v', '-v', '-v', '-v', '-v' - ]); - t.end(); -}); - diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh deleted file mode 100644 index e040e664d9f88126341d138388f433869a63159f..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Bash 4.3 because of arbitrary need to pick a single standard. - -if [ "${BASH_VERSINFO[0]}" != "4" ] || [ "${BASH_VERSINFO[1]}" != "3" ]; then - echo "this script requires bash 4.3" >&2 - exit 1 -fi - -CDPATH= cd "$(dirname "$0")" - -js='require("./")(process.argv[1]).join(" ")' - -cat cases.txt | \ - while read case; do - if [ "${case:0:1}" = "#" ]; then - continue; - fi; - b="$($BASH -c 'for c in '"$case"'; do echo ["$c"]; done')" - echo "$case" - echo -n "$b><><><><"; - done > bash-results.txt diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js deleted file mode 100644 index 8d434c23d4514dc015095bd3422840795a046296..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +++ /dev/null @@ -1,15 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('negative increment', function(t) { - t.deepEqual(expand('{3..1}'), ['3', '2', '1']); - t.deepEqual(expand('{10..8}'), ['10', '9', '8']); - t.deepEqual(expand('{10..08}'), ['10', '09', '08']); - t.deepEqual(expand('{c..a}'), ['c', 'b', 'a']); - - t.deepEqual(expand('{4..0..2}'), ['4', '2', '0']); - t.deepEqual(expand('{4..0..-2}'), ['4', '2', '0']); - t.deepEqual(expand('{e..a..2}'), ['e', 'c', 'a']); - - t.end(); -}); diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js deleted file mode 100644 index 0862dc51f90aeecdf9fad761b738683bc027c5a4..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +++ /dev/null @@ -1,16 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('nested', function(t) { - t.deepEqual(expand('{a,b{1..3},c}'), [ - 'a', 'b1', 'b2', 'b3', 'c' - ]); - t.deepEqual(expand('{{A..Z},{a..z}}'), - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('') - ); - t.deepEqual(expand('ppp{,config,oe{,conf}}'), [ - 'ppp', 'pppconfig', 'pppoe', 'pppoeconf' - ]); - t.end(); -}); - diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js deleted file mode 100644 index c00ad155fe6760130beb896ca80ba70b446e0f62..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +++ /dev/null @@ -1,10 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('order', function(t) { - t.deepEqual(expand('a{d,c,b}e'), [ - 'ade', 'ace', 'abe' - ]); - t.end(); -}); - diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js deleted file mode 100644 index e4158775f1bd066391691aef42a48dab93d6f95c..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +++ /dev/null @@ -1,13 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('pad', function(t) { - t.deepEqual(expand('{9..11}'), [ - '9', '10', '11' - ]); - t.deepEqual(expand('{09..11}'), [ - '09', '10', '11' - ]); - t.end(); -}); - diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js deleted file mode 100644 index 3038fba7416b3a290c20f27b7aab91a2c500a2aa..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +++ /dev/null @@ -1,7 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('x and y of same type', function(t) { - t.deepEqual(expand('{a..9}'), ['{a..9}']); - t.end(); -}); diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js deleted file mode 100644 index f73a9579ab398bb2980624ee29e66134a9deabc0..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +++ /dev/null @@ -1,50 +0,0 @@ -var test = require('tape'); -var expand = require('..'); - -test('numeric sequences', function(t) { - t.deepEqual(expand('a{1..2}b{2..3}c'), [ - 'a1b2c', 'a1b3c', 'a2b2c', 'a2b3c' - ]); - t.deepEqual(expand('{1..2}{2..3}'), [ - '12', '13', '22', '23' - ]); - t.end(); -}); - -test('numeric sequences with step count', function(t) { - t.deepEqual(expand('{0..8..2}'), [ - '0', '2', '4', '6', '8' - ]); - t.deepEqual(expand('{1..8..2}'), [ - '1', '3', '5', '7' - ]); - t.end(); -}); - -test('numeric sequence with negative x / y', function(t) { - t.deepEqual(expand('{3..-2}'), [ - '3', '2', '1', '0', '-1', '-2' - ]); - t.end(); -}); - -test('alphabetic sequences', function(t) { - t.deepEqual(expand('1{a..b}2{b..c}3'), [ - '1a2b3', '1a2c3', '1b2b3', '1b2c3' - ]); - t.deepEqual(expand('{a..b}{b..c}'), [ - 'ab', 'ac', 'bb', 'bc' - ]); - t.end(); -}); - -test('alphabetic sequences with step count', function(t) { - t.deepEqual(expand('{a..k..2}'), [ - 'a', 'c', 'e', 'g', 'i', 'k' - ]); - t.deepEqual(expand('{b..k..2}'), [ - 'b', 'd', 'f', 'h', 'j' - ]); - t.end(); -}); - diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/package.json b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/package.json index 3dc6beb49f684a23db8233663094735214f41bb7..17ccc275e3c004685f678eaeac7589110a0d2dd1 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/package.json +++ b/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/package.json @@ -1,63 +1,88 @@ { + "_args": [ + [ + "minimatch@^2.0.1", + "/Users/rebecca/code/npm/node_modules/glob" + ], + [ + "minimatch@^2.0.1", + "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/glob" + ] + ], + "_from": "minimatch@>=2.0.1 <3.0.0", + "_id": "minimatch@2.0.10", + "_inCache": true, + "_location": "/node-gyp/glob/minimatch", + "_nodeVersion": "2.2.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "3.1.0", + "_phantomChildren": {}, + "_requested": { + "name": "minimatch", + "raw": "minimatch@^2.0.1", + "rawSpec": "^2.0.1", + "scope": null, + "spec": ">=2.0.1 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/node-gyp/glob" + ], + "_shrinkwrap": null, + "_spec": "minimatch@^2.0.1", + "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/glob", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me" }, - "name": "minimatch", - "description": "a glob matcher in javascript", - "version": "2.0.10", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" - }, - "main": "minimatch.js", - "scripts": { - "posttest": "standard minimatch.js test/*.js", - "test": "tap test/*.js", - "prepublish": "browserify -o browser.js -e minimatch.js -s minimatch --bare" - }, - "engines": { - "node": "*" + "bugs": { + "url": "https://github.com/isaacs/minimatch/issues" }, "dependencies": { "brace-expansion": "^1.0.0" }, + "description": "a glob matcher in javascript", "devDependencies": { "browserify": "^9.0.3", "standard": "^3.7.2", "tap": "^1.2.0" }, - "license": "ISC", - "files": [ - "minimatch.js", - "browser.js" - ], - "gitHead": "6afb85f0c324b321f76a38df81891e562693e257", - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" - }, - "homepage": "https://github.com/isaacs/minimatch#readme", - "_id": "minimatch@2.0.10", - "_shasum": "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7", - "_from": "minimatch@>=2.0.1 <3.0.0", - "_npmVersion": "3.1.0", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, + "directories": {}, "dist": { "shasum": "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7", "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" }, + "engines": { + "node": "*" + }, + "files": [ + "browser.js", + "minimatch.js" + ], + "gitHead": "6afb85f0c324b321f76a38df81891e562693e257", + "homepage": "https://github.com/isaacs/minimatch#readme", + "license": "ISC", + "main": "minimatch.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "readme": "ERROR: No README data found!" + "name": "minimatch", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/minimatch.git" + }, + "scripts": { + "posttest": "standard minimatch.js test/*.js", + "prepublish": "browserify -o browser.js -e minimatch.js -s minimatch --bare", + "test": "tap test/*.js" + }, + "version": "2.0.10" } diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/package.json b/deps/npm/node_modules/node-gyp/node_modules/glob/package.json index 434e4696f8fb150b0bd34138480310edee88d2ee..5e32a7561d6e212599f5fd85cdb14cf477c0cc88 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/package.json +++ b/deps/npm/node_modules/node-gyp/node_modules/glob/package.json @@ -1,24 +1,46 @@ { - "author": { - "name": "Isaac Z. Schlueter", + "_args": [ + [ + "glob@3 || 4", + "/Users/rebecca/code/npm/node_modules/node-gyp" + ] + ], + "_from": "glob@>=3.0.0 <4.0.0||>=4.0.0 <5.0.0", + "_id": "glob@4.5.3", + "_inCache": true, + "_location": "/node-gyp/glob", + "_nodeVersion": "1.4.2", + "_npmUser": { "email": "i@izs.me", - "url": "http://blog.izs.me/" + "name": "isaacs" }, - "name": "glob", - "description": "a little globber", - "version": "4.5.3", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" + "_npmVersion": "2.7.1", + "_phantomChildren": { + "brace-expansion": "1.1.0" }, - "main": "glob.js", - "files": [ - "glob.js", - "sync.js", - "common.js" + "_requested": { + "name": "glob", + "raw": "glob@3 || 4", + "rawSpec": "3 || 4", + "scope": null, + "spec": ">=3.0.0 <4.0.0||>=4.0.0 <5.0.0", + "type": "range" + }, + "_requiredBy": [ + "/node-gyp" ], - "engines": { - "node": "*" + "_resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "_shasum": "c6cb73d3226c1efef04de3c56d012f03377ee15f", + "_shrinkwrap": null, + "_spec": "glob@3 || 4", + "_where": "/Users/rebecca/code/npm/node_modules/node-gyp", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/node-glob/issues" }, "dependencies": { "inflight": "^1.0.4", @@ -26,47 +48,50 @@ "minimatch": "^2.0.1", "once": "^1.3.0" }, + "description": "a little globber", "devDependencies": { "mkdirp": "0", "rimraf": "^2.2.8", "tap": "^0.5.0", "tick": "0.0.6" }, - "scripts": { - "prepublish": "npm run benchclean", - "profclean": "rm -f v8.log profile.txt", - "test": "npm run profclean && tap test/*.js", - "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js", - "bench": "bash benchmark.sh", - "prof": "bash prof.sh && cat profile.txt", - "benchclean": "bash benchclean.sh" + "directories": {}, + "dist": { + "shasum": "c6cb73d3226c1efef04de3c56d012f03377ee15f", + "tarball": "http://registry.npmjs.org/glob/-/glob-4.5.3.tgz" }, - "license": "ISC", - "gitHead": "a4e461ab59a837eee80a4d8dbdbf5ae1054a646f", - "bugs": { - "url": "https://github.com/isaacs/node-glob/issues" + "engines": { + "node": "*" }, + "files": [ + "common.js", + "glob.js", + "sync.js" + ], + "gitHead": "a4e461ab59a837eee80a4d8dbdbf5ae1054a646f", "homepage": "https://github.com/isaacs/node-glob", - "_id": "glob@4.5.3", - "_shasum": "c6cb73d3226c1efef04de3c56d012f03377ee15f", - "_from": "glob@>=3.0.0 <4.0.0||>=4.0.0 <5.0.0", - "_npmVersion": "2.7.1", - "_nodeVersion": "1.4.2", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, + "license": "ISC", + "main": "glob.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "dist": { - "shasum": "c6cb73d3226c1efef04de3c56d012f03377ee15f", - "tarball": "http://registry.npmjs.org/glob/-/glob-4.5.3.tgz" + "name": "glob", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-glob.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "bench": "bash benchmark.sh", + "benchclean": "bash benchclean.sh", + "prepublish": "npm run benchclean", + "prof": "bash prof.sh && cat profile.txt", + "profclean": "rm -f v8.log profile.txt", + "test": "npm run profclean && tap test/*.js", + "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" + }, + "version": "4.5.3" } diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json b/deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json index 8bf46ccae0c4f614949ba9ebd653976723075db8..7358ebfad52d1a5e090cb5877bddc1f48270c691 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json +++ b/deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json @@ -1,58 +1,81 @@ { - "author": { - "name": "Isaac Z. Schlueter", + "_args": [ + [ + "minimatch@1", + "/Users/rebecca/code/npm/node_modules/node-gyp" + ] + ], + "_from": "minimatch@>=1.0.0 <2.0.0", + "_id": "minimatch@1.0.0", + "_inCache": true, + "_location": "/node-gyp/minimatch", + "_npmUser": { "email": "i@izs.me", - "url": "http://blog.izs.me" + "name": "isaacs" }, - "name": "minimatch", - "description": "a glob matcher in javascript", - "version": "1.0.0", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" + "_npmVersion": "1.4.21", + "_phantomChildren": {}, + "_requested": { + "name": "minimatch", + "raw": "minimatch@1", + "rawSpec": "1", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" }, - "main": "minimatch.js", - "scripts": { - "test": "tap test/*.js" + "_requiredBy": [ + "/node-gyp" + ], + "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", + "_shasum": "e0dd2120b49e1b724ce8d714c520822a9438576d", + "_shrinkwrap": null, + "_spec": "minimatch@1", + "_where": "/Users/rebecca/code/npm/node_modules/node-gyp", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me" }, - "engines": { - "node": "*" + "bugs": { + "url": "https://github.com/isaacs/minimatch/issues" }, "dependencies": { "lru-cache": "2", "sigmund": "~1.0.0" }, + "description": "a glob matcher in javascript", "devDependencies": { "tap": "" }, - "license": { - "type": "MIT", - "url": "http://github.com/isaacs/minimatch/raw/master/LICENSE" + "directories": {}, + "dist": { + "shasum": "e0dd2120b49e1b724ce8d714c520822a9438576d", + "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz" }, - "gitHead": "b374a643976eb55cdc19c60b6dd51ebe9bcc607a", - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" + "engines": { + "node": "*" }, + "gitHead": "b374a643976eb55cdc19c60b6dd51ebe9bcc607a", "homepage": "https://github.com/isaacs/minimatch", - "_id": "minimatch@1.0.0", - "_shasum": "e0dd2120b49e1b724ce8d714c520822a9438576d", - "_from": "minimatch@>=1.0.0 <2.0.0", - "_npmVersion": "1.4.21", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" + "license": { + "type": "MIT", + "url": "http://github.com/isaacs/minimatch/raw/master/LICENSE" }, + "main": "minimatch.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "dist": { - "shasum": "e0dd2120b49e1b724ce8d714c520822a9438576d", - "tarball": "http://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz" + "name": "minimatch", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/minimatch.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.0" } diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/.npmignore b/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/.npmignore deleted file mode 100644 index 7e6163db02e5e7bf4a57ecde7242819f755ff173..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -support -test -examples -example -*.sock -dist diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/History.md b/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/History.md deleted file mode 100644 index 854c9711c6fd68a3b531b5970d19d36faad71487..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/History.md +++ /dev/null @@ -1,195 +0,0 @@ - -2.2.0 / 2015-05-09 -================== - - * package: update "ms" to v0.7.1 (#202, @dougwilson) - * README: add logging to file example (#193, @DanielOchoa) - * README: fixed a typo (#191, @amir-s) - * browser: expose `storage` (#190, @stephenmathieson) - * Makefile: add a `distclean` target (#189, @stephenmathieson) - -2.1.3 / 2015-03-13 -================== - - * Updated stdout/stderr example (#186) - * Updated example/stdout.js to match debug current behaviour - * Renamed example/stderr.js to stdout.js - * Update Readme.md (#184) - * replace high intensity foreground color for bold (#182, #183) - -2.1.2 / 2015-03-01 -================== - - * dist: recompile - * update "ms" to v0.7.0 - * package: update "browserify" to v9.0.3 - * component: fix "ms.js" repo location - * changed bower package name - * updated documentation about using debug in a browser - * fix: security error on safari (#167, #168, @yields) - -2.1.1 / 2014-12-29 -================== - - * browser: use `typeof` to check for `console` existence - * browser: check for `console.log` truthiness (fix IE 8/9) - * browser: add support for Chrome apps - * Readme: added Windows usage remarks - * Add `bower.json` to properly support bower install - -2.1.0 / 2014-10-15 -================== - - * node: implement `DEBUG_FD` env variable support - * package: update "browserify" to v6.1.0 - * package: add "license" field to package.json (#135, @panuhorsmalahti) - -2.0.0 / 2014-09-01 -================== - - * package: update "browserify" to v5.11.0 - * node: use stderr rather than stdout for logging (#29, @stephenmathieson) - -1.0.4 / 2014-07-15 -================== - - * dist: recompile - * example: remove `console.info()` log usage - * example: add "Content-Type" UTF-8 header to browser example - * browser: place %c marker after the space character - * browser: reset the "content" color via `color: inherit` - * browser: add colors support for Firefox >= v31 - * debug: prefer an instance `log()` function over the global one (#119) - * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) - -1.0.3 / 2014-07-09 -================== - - * Add support for multiple wildcards in namespaces (#122, @seegno) - * browser: fix lint - -1.0.2 / 2014-06-10 -================== - - * browser: update color palette (#113, @gscottolson) - * common: make console logging function configurable (#108, @timoxley) - * node: fix %o colors on old node <= 0.8.x - * Makefile: find node path using shell/which (#109, @timoxley) - -1.0.1 / 2014-06-06 -================== - - * browser: use `removeItem()` to clear localStorage - * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) - * package: add "contributors" section - * node: fix comment typo - * README: list authors - -1.0.0 / 2014-06-04 -================== - - * make ms diff be global, not be scope - * debug: ignore empty strings in enable() - * node: make DEBUG_COLORS able to disable coloring - * *: export the `colors` array - * npmignore: don't publish the `dist` dir - * Makefile: refactor to use browserify - * package: add "browserify" as a dev dependency - * Readme: add Web Inspector Colors section - * node: reset terminal color for the debug content - * node: map "%o" to `util.inspect()` - * browser: map "%j" to `JSON.stringify()` - * debug: add custom "formatters" - * debug: use "ms" module for humanizing the diff - * Readme: add "bash" syntax highlighting - * browser: add Firebug color support - * browser: add colors for WebKit browsers - * node: apply log to `console` - * rewrite: abstract common logic for Node & browsers - * add .jshintrc file - -0.8.1 / 2014-04-14 -================== - - * package: re-add the "component" section - -0.8.0 / 2014-03-30 -================== - - * add `enable()` method for nodejs. Closes #27 - * change from stderr to stdout - * remove unnecessary index.js file - -0.7.4 / 2013-11-13 -================== - - * remove "browserify" key from package.json (fixes something in browserify) - -0.7.3 / 2013-10-30 -================== - - * fix: catch localStorage security error when cookies are blocked (Chrome) - * add debug(err) support. Closes #46 - * add .browser prop to package.json. Closes #42 - -0.7.2 / 2013-02-06 -================== - - * fix package.json - * fix: Mobile Safari (private mode) is broken with debug - * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript - -0.7.1 / 2013-02-05 -================== - - * add repository URL to package.json - * add DEBUG_COLORED to force colored output - * add browserify support - * fix component. Closes #24 - -0.7.0 / 2012-05-04 -================== - - * Added .component to package.json - * Added debug.component.js build - -0.6.0 / 2012-03-16 -================== - - * Added support for "-" prefix in DEBUG [Vinay Pulim] - * Added `.enabled` flag to the node version [TooTallNate] - -0.5.0 / 2012-02-02 -================== - - * Added: humanize diffs. Closes #8 - * Added `debug.disable()` to the CS variant - * Removed padding. Closes #10 - * Fixed: persist client-side variant again. Closes #9 - -0.4.0 / 2012-02-01 -================== - - * Added browser variant support for older browsers [TooTallNate] - * Added `debug.enable('project:*')` to browser variant [TooTallNate] - * Added padding to diff (moved it to the right) - -0.3.0 / 2012-01-26 -================== - - * Added millisecond diff when isatty, otherwise UTC string - -0.2.0 / 2012-01-22 -================== - - * Added wildcard support - -0.1.0 / 2011-12-02 -================== - - * Added: remove colors unless stderr isatty [TooTallNate] - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Makefile b/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Makefile deleted file mode 100644 index 5cf4a5962b8ba3719bd0f2ff7703cba5de225d1a..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Makefile +++ /dev/null @@ -1,36 +0,0 @@ - -# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 -THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) -THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) - -# BIN directory -BIN := $(THIS_DIR)/node_modules/.bin - -# applications -NODE ?= $(shell which node) -NPM ?= $(NODE) $(shell which npm) -BROWSERIFY ?= $(NODE) $(BIN)/browserify - -all: dist/debug.js - -install: node_modules - -clean: - @rm -rf dist - -dist: - @mkdir -p $@ - -dist/debug.js: node_modules browser.js debug.js dist - @$(BROWSERIFY) \ - --standalone debug \ - . > $@ - -distclean: clean - @rm -rf node_modules - -node_modules: package.json - @NODE_ENV= $(NPM) install - @touch node_modules - -.PHONY: all install clean distclean diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Readme.md b/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Readme.md deleted file mode 100644 index b4f45e3cc6a33a97be55d6abfef6da81daa2f8e1..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/Readme.md +++ /dev/null @@ -1,188 +0,0 @@ -# debug - - tiny node.js debugging utility modelled after node core's debugging technique. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - - With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility. - -Example _app.js_: - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %s', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example _worker.js_: - -```js -var debug = require('debug')('worker'); - -setInterval(function(){ - debug('doing some work'); -}, 1000); -``` - - The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: - - ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) - - ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) - -#### Windows note - - On Windows the environment variable is set using the `set` command. - - ```cmd - set DEBUG=*,-not_this - ``` - -Then, run the program to be debugged as usual. - -## Millisecond diff - - When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) - - When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: - - ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) - -## Conventions - - If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". - -## Wildcards - - The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - - You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:". - -## Browser support - - Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include: - -```js -window.myDebug = require("debug"); -``` - - ("debug" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console: - -```js -myDebug.enable("worker:*") -``` - - Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - -#### Web Inspector Colors - - Colors are also enabled on "Web Inspectors" that understand the `%c` formatting - option. These are WebKit web inspectors, Firefox ([since version - 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) - and the Firebug plugin for Firefox (any version). - - Colored output looks something like: - - ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png) - -### stderr vs stdout - -You can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally: - -Example _stdout.js_: - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -### Save debug output to a file - -You can save all debug statements to a file by piping them. - -Example: - -```bash -$ DEBUG_FD=3 node your-app.js 3> whatever.log -``` - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - -## License - -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/bower.json b/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/bower.json deleted file mode 100644 index 6af573ff5c260dc640c976bcba675e5dab0f1afb..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "visionmedia-debug", - "main": "dist/debug.js", - "version": "2.2.0", - "homepage": "https://github.com/visionmedia/debug", - "authors": [ - "TJ Holowaychuk " - ], - "description": "visionmedia-debug", - "moduleType": [ - "amd", - "es6", - "globals", - "node" - ], - "keywords": [ - "visionmedia", - "debug" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/browser.js b/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/browser.js deleted file mode 100644 index 7c76452219939f82fe7247533dfce2dd795737c2..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/browser.js +++ /dev/null @@ -1,168 +0,0 @@ - -/** - * This is the web browser implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - -/** - * Colors. - */ - -exports.colors = [ - 'lightseagreen', - 'forestgreen', - 'goldenrod', - 'dodgerblue', - 'darkorchid', - 'crimson' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -function useColors() { - // is webkit? http://stackoverflow.com/a/16459606/376773 - return ('WebkitAppearance' in document.documentElement.style) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (window.console && (console.firebug || (console.exception && console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31); -} - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - return JSON.stringify(v); -}; - - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); - - if (!useColors) return args; - - var c = 'color: ' + this.color; - args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1)); - - // the final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - var index = 0; - var lastC = 0; - args[0].replace(/%[a-z%]/g, function(match) { - if ('%%' === match) return; - index++; - if ('%c' === match) { - // we only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); - return args; -} - -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ - -function log() { - // this hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - try { - if (null == namespaces) { - exports.storage.removeItem('debug'); - } else { - exports.storage.debug = namespaces; - } - } catch(e) {} -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - var r; - try { - r = exports.storage.debug; - } catch(e) {} - return r; -} - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage(){ - try { - return window.localStorage; - } catch (e) {} -} diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/component.json b/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/component.json deleted file mode 100644 index ca1063724a4498247faa551f694192f5a53bf7f5..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "debug", - "repo": "visionmedia/debug", - "description": "small debugging utility", - "version": "2.2.0", - "keywords": [ - "debug", - "log", - "debugger" - ], - "main": "browser.js", - "scripts": [ - "browser.js", - "debug.js" - ], - "dependencies": { - "rauchg/ms.js": "0.7.1" - } -} diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/debug.js b/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/debug.js deleted file mode 100644 index 7571a86058aec060b5e57a0b45b5406efc79bb2a..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/debug.js +++ /dev/null @@ -1,197 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = debug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = require('ms'); - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lowercased letter, i.e. "n". - */ - -exports.formatters = {}; - -/** - * Previously assigned color. - */ - -var prevColor = 0; - -/** - * Previous log timestamp. - */ - -var prevTime; - -/** - * Select a color. - * - * @return {Number} - * @api private - */ - -function selectColor() { - return exports.colors[prevColor++ % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function debug(namespace) { - - // define the `disabled` version - function disabled() { - } - disabled.enabled = false; - - // define the `enabled` version - function enabled() { - - var self = enabled; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // add the `color` if not set - if (null == self.useColors) self.useColors = exports.useColors(); - if (null == self.color && self.useColors) self.color = selectColor(); - - var args = Array.prototype.slice.call(arguments); - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %o - args = ['%o'].concat(args); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - if ('function' === typeof exports.formatArgs) { - args = exports.formatArgs.apply(self, args); - } - var logFn = enabled.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - enabled.enabled = true; - - var fn = exports.enabled(namespace) ? enabled : disabled; - - fn.namespace = namespace; - - return fn; -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - var split = (namespaces || '').split(/[\s,]+/); - var len = split.length; - - for (var i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node.js b/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node.js deleted file mode 100644 index 1d392a81d6c785f0fd3d5fefd111b2a828a25ae5..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node.js +++ /dev/null @@ -1,209 +0,0 @@ - -/** - * Module dependencies. - */ - -var tty = require('tty'); -var util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -/** - * The file descriptor to write the `debug()` calls to. - * Set the `DEBUG_FD` env variable to override with another value. i.e.: - * - * $ DEBUG_FD=3 node script.js 3>debug.log - */ - -var fd = parseInt(process.env.DEBUG_FD, 10) || 2; -var stream = 1 === fd ? process.stdout : - 2 === fd ? process.stderr : - createWritableStdioStream(fd); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - var debugColors = (process.env.DEBUG_COLORS || '').trim().toLowerCase(); - if (0 === debugColors.length) { - return tty.isatty(fd); - } else { - return '0' !== debugColors - && 'no' !== debugColors - && 'false' !== debugColors - && 'disabled' !== debugColors; - } -} - -/** - * Map %o to `util.inspect()`, since Node doesn't do that out of the box. - */ - -var inspect = (4 === util.inspect.length ? - // node <= 0.8.x - function (v, colors) { - return util.inspect(v, void 0, void 0, colors); - } : - // node > 0.8.x - function (v, colors) { - return util.inspect(v, { colors: colors }); - } -); - -exports.formatters.o = function(v) { - return inspect(v, this.useColors) - .replace(/\s*\n\s*/g, ' '); -}; - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs() { - var args = arguments; - var useColors = this.useColors; - var name = this.namespace; - - if (useColors) { - var c = this.color; - - args[0] = ' \u001b[3' + c + ';1m' + name + ' ' - + '\u001b[0m' - + args[0] + '\u001b[3' + c + 'm' - + ' +' + exports.humanize(this.diff) + '\u001b[0m'; - } else { - args[0] = new Date().toUTCString() - + ' ' + name + ' ' + args[0]; - } - return args; -} - -/** - * Invokes `console.error()` with the specified arguments. - */ - -function log() { - return stream.write(util.format.apply(this, arguments) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - if (null == namespaces) { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } else { - process.env.DEBUG = namespaces; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Copied from `node/src/node.js`. - * - * XXX: It's lame that node doesn't expose this API out-of-the-box. It also - * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. - */ - -function createWritableStdioStream (fd) { - var stream; - var tty_wrap = process.binding('tty_wrap'); - - // Note stream._type is used for test-module-load-list.js - - switch (tty_wrap.guessHandleType(fd)) { - case 'TTY': - stream = new tty.WriteStream(fd); - stream._type = 'tty'; - - // Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - case 'FILE': - var fs = require('fs'); - stream = new fs.SyncWriteStream(fd, { autoClose: false }); - stream._type = 'fs'; - break; - - case 'PIPE': - case 'TCP': - var net = require('net'); - stream = new net.Socket({ - fd: fd, - readable: false, - writable: true - }); - - // FIXME Should probably have an option in net.Socket to create a - // stream from an existing fd which is writable only. But for now - // we'll just add this hack and set the `readable` member to false. - // Test: ./node test/fixtures/echo.js < /etc/passwd - stream.readable = false; - stream.read = null; - stream._type = 'pipe'; - - // FIXME Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - default: - // Probably an error on in uv_guess_handle() - throw new Error('Implement me. Unknown stream file type!'); - } - - // For supporting legacy API we put the FD here. - stream.fd = fd; - - stream._isStdio = true; - - return stream; -} - -/** - * Enable namespaces listed in `process.env.DEBUG` initially. - */ - -exports.enable(load()); diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/package.json b/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/package.json deleted file mode 100644 index 7e6d9fc59a175598a98584cf0f98554fb6149de9..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "debug", - "version": "2.2.0", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" - ], - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "contributors": [ - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io" - } - ], - "license": "MIT", - "dependencies": { - "ms": "0.7.1" - }, - "devDependencies": { - "browserify": "9.0.3", - "mocha": "*" - }, - "main": "./node.js", - "browser": "./browser.js", - "component": { - "scripts": { - "debug/index.js": "browser.js", - "debug/debug.js": "debug.js" - } - }, - "gitHead": "b38458422b5aa8aa6d286b10dfe427e8a67e2b35", - "bugs": { - "url": "https://github.com/visionmedia/debug/issues" - }, - "homepage": "https://github.com/visionmedia/debug", - "_id": "debug@2.2.0", - "scripts": {}, - "_shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "_from": "debug@*", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "dist": { - "shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da", - "tarball": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/node-gyp/node_modules/tar/package.json b/deps/npm/node_modules/node-gyp/node_modules/tar/package.json index 7fab5394cd6ec2deea6e6e812b5c7722e71c1f22..c8bfe8fda9c690d124f29a1cfa6ff68f30bba54b 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/tar/package.json +++ b/deps/npm/node_modules/node-gyp/node_modules/tar/package.json @@ -1,46 +1,66 @@ { + "_args": [ + [ + "tar@^1.0.0", + "/Users/rebecca/code/npm/node_modules/node-gyp" + ] + ], + "_from": "tar@>=1.0.0 <2.0.0", + "_id": "tar@1.0.3", + "_inCache": true, + "_location": "/node-gyp/tar", + "_nodeVersion": "0.10.33", + "_npmUser": { + "email": "ogd@aoaioxxysz.net", + "name": "othiym23" + }, + "_npmVersion": "2.1.10", + "_phantomChildren": {}, + "_requested": { + "name": "tar", + "raw": "tar@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/node-gyp" + ], + "_resolved": "https://registry.npmjs.org/tar/-/tar-1.0.3.tgz", + "_shasum": "15bcdab244fa4add44e4244a0176edb8aa9a2b44", + "_shrinkwrap": null, + "_spec": "tar@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/node-gyp", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "tar", - "description": "tar for node", - "version": "1.0.3", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-tar.git" - }, - "main": "tar.js", - "scripts": { - "test": "tap test/*.js" + "bugs": { + "url": "https://github.com/isaacs/node-tar/issues" }, "dependencies": { "block-stream": "*", "fstream": "^1.0.2", "inherits": "2" }, + "description": "tar for node", "devDependencies": { "graceful-fs": "^3.0.2", + "mkdirp": "^0.5.0", "rimraf": "1.x", - "tap": "0.x", - "mkdirp": "^0.5.0" + "tap": "0.x" }, - "license": "BSD", - "gitHead": "f4151128c585da236c6b1e278b762ecaedc20c15", - "bugs": { - "url": "https://github.com/isaacs/node-tar/issues" + "directories": {}, + "dist": { + "shasum": "15bcdab244fa4add44e4244a0176edb8aa9a2b44", + "tarball": "http://registry.npmjs.org/tar/-/tar-1.0.3.tgz" }, + "gitHead": "f4151128c585da236c6b1e278b762ecaedc20c15", "homepage": "https://github.com/isaacs/node-tar", - "_id": "tar@1.0.3", - "_shasum": "15bcdab244fa4add44e4244a0176edb8aa9a2b44", - "_from": "tar@>=1.0.0 <2.0.0", - "_npmVersion": "2.1.10", - "_nodeVersion": "0.10.33", - "_npmUser": { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, + "license": "BSD", + "main": "tar.js", "maintainers": [ { "name": "isaacs", @@ -51,11 +71,14 @@ "email": "ogd@aoaioxxysz.net" } ], - "dist": { - "shasum": "15bcdab244fa4add44e4244a0176edb8aa9a2b44", - "tarball": "http://registry.npmjs.org/tar/-/tar-1.0.3.tgz" + "name": "tar", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-tar.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/tar/-/tar-1.0.3.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.3" } diff --git a/deps/npm/node_modules/node-gyp/package.json b/deps/npm/node_modules/node-gyp/package.json index 76fc168f2d955d1c67b5e178c09d8fc8cafe3611..6b0bef6e6222f6b52098345f4d5900f5ffffeea8 100644 --- a/deps/npm/node_modules/node-gyp/package.json +++ b/deps/npm/node_modules/node-gyp/package.json @@ -1,32 +1,57 @@ { - "name": "node-gyp", - "description": "Node.js native addon build tool", - "license": "MIT", - "keywords": [ - "native", - "addon", - "module", - "c", - "c++", - "bindings", - "gyp" + "_args": [ + [ + "node-gyp@~3.0.1", + "/Users/rebecca/code/npm" + ] ], - "version": "3.0.3", - "installVersion": 9, + "_from": "node-gyp@>=3.0.1 <3.1.0", + "_id": "node-gyp@3.0.3", + "_inCache": true, + "_location": "/node-gyp", + "_nodeVersion": "4.0.0", + "_npmUser": { + "email": "rod@vagg.org", + "name": "rvagg" + }, + "_npmVersion": "2.14.2", + "_phantomChildren": { + "block-stream": "0.0.8", + "brace-expansion": "1.1.0", + "fstream": "1.0.8", + "inflight": "1.0.4", + "inherits": "2.0.1", + "lru-cache": "2.6.5", + "once": "1.3.2", + "sigmund": "1.0.1" + }, + "_requested": { + "name": "node-gyp", + "raw": "node-gyp@~3.0.1", + "rawSpec": "~3.0.1", + "scope": null, + "spec": ">=3.0.1 <3.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.0.3.tgz", + "_shasum": "9b004219f4fa9efbfd78c5fc674aa12e58fb8694", + "_shrinkwrap": null, + "_spec": "node-gyp@~3.0.1", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Nathan Rajlich", "email": "nathan@tootallnate.net", + "name": "Nathan Rajlich", "url": "http://tootallnate.net" }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/node-gyp.git" - }, - "preferGlobal": true, "bin": { "node-gyp": "./bin/node-gyp.js" }, - "main": "./lib/node-gyp.js", + "bugs": { + "url": "https://github.com/nodejs/node-gyp/issues" + }, "dependencies": { "fstream": "^1.0.0", "glob": "3 || 4", @@ -43,29 +68,33 @@ "tar": "^1.0.0", "which": "1" }, - "engines": { - "node": ">= 0.8.0" - }, + "description": "Node.js native addon build tool", "devDependencies": { "tape": "~4.2.0" }, - "scripts": { - "test": "tape test/test-*" + "directories": {}, + "dist": { + "shasum": "9b004219f4fa9efbfd78c5fc674aa12e58fb8694", + "tarball": "http://registry.npmjs.org/node-gyp/-/node-gyp-3.0.3.tgz" }, - "gitHead": "d6b03851d366c7fa78e7d2f57c61bb074ea45ea3", - "bugs": { - "url": "https://github.com/nodejs/node-gyp/issues" + "engines": { + "node": ">= 0.8.0" }, + "gitHead": "d6b03851d366c7fa78e7d2f57c61bb074ea45ea3", "homepage": "https://github.com/nodejs/node-gyp", - "_id": "node-gyp@3.0.3", - "_shasum": "9b004219f4fa9efbfd78c5fc674aa12e58fb8694", - "_from": "node-gyp@3.0.3", - "_npmVersion": "2.14.2", - "_nodeVersion": "4.0.0", - "_npmUser": { - "name": "rvagg", - "email": "rod@vagg.org" - }, + "installVersion": 9, + "installable": true, + "keywords": [ + "addon", + "bindings", + "c", + "c++", + "gyp", + "module", + "native" + ], + "license": "MIT", + "main": "./lib/node-gyp.js", "maintainers": [ { "name": "TooTallNate", @@ -88,11 +117,15 @@ "email": "nathan@tootallnate.net" } ], - "dist": { - "shasum": "9b004219f4fa9efbfd78c5fc674aa12e58fb8694", - "tarball": "http://registry.npmjs.org/node-gyp/-/node-gyp-3.0.3.tgz" + "name": "node-gyp", + "optionalDependencies": {}, + "preferGlobal": true, + "repository": { + "type": "git", + "url": "git://github.com/nodejs/node-gyp.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.0.3.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tape test/test-*" + }, + "version": "3.0.3" } diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/deps/npm/node_modules/node-uuid/.npmignore similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore rename to deps/npm/node_modules/node-uuid/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/LICENSE.md b/deps/npm/node_modules/node-uuid/LICENSE.md similarity index 96% rename from deps/npm/node_modules/request/node_modules/node-uuid/LICENSE.md rename to deps/npm/node_modules/node-uuid/LICENSE.md index 652609b37e009ceef1ee234dd648f384594346cb..a43093bf321f2bfeb71a3b094a965d788a8ff4b9 100644 --- a/deps/npm/node_modules/request/node_modules/node-uuid/LICENSE.md +++ b/deps/npm/node_modules/node-uuid/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2010-2012 Robert Kieffer +Copyright (c) 2010-2012 Robert Kieffer 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/deps/npm/node_modules/request/node_modules/node-uuid/README.md b/deps/npm/node_modules/node-uuid/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/node-uuid/README.md rename to deps/npm/node_modules/node-uuid/README.md diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/benchmark/README.md b/deps/npm/node_modules/node-uuid/benchmark/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/node-uuid/benchmark/README.md rename to deps/npm/node_modules/node-uuid/benchmark/README.md diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu b/deps/npm/node_modules/node-uuid/benchmark/bench.gnu similarity index 94% rename from deps/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu rename to deps/npm/node_modules/node-uuid/benchmark/bench.gnu index a342fbbe04e9ac93a59a2de4080000e18c8cdb16..fd597ab681ae108bc0bacc74468797a9aacb426a 100644 --- a/deps/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu +++ b/deps/npm/node_modules/node-uuid/benchmark/bench.gnu @@ -1,14 +1,14 @@ #!/opt/local/bin/gnuplot -persist # -# +# # G N U P L O T # Version 4.4 patchlevel 3 # last modified March 2011 # System: Darwin 10.8.0 -# +# # Copyright (C) 1986-1993, 1998, 2004, 2007-2010 # Thomas Williams, Colin Kelley and many others -# +# # gnuplot home: http://www.gnuplot.info # faq, bugs, etc: type "help seeking-assistance" # immediate help: type "help" @@ -17,7 +17,7 @@ set terminal postscript eps noenhanced defaultplex \ leveldefault color colortext \ solid linewidth 1.2 butt noclip \ palfuncparam 2000,0.003 \ - "Helvetica" 14 + "Helvetica" 14 set output 'bench.eps' unset clip points set clip one @@ -38,7 +38,7 @@ set timefmt cb "%d/%m/%y,%H:%M" set boxwidth set style fill empty border set style rectangle back fc lt -3 fillstyle solid 1.00 border lt -1 -set style circle radius graph 0.02, first 0, 0 +set style circle radius graph 0.02, first 0, 0 set dummy x,y set format x "% g" set format y "% g" @@ -50,7 +50,7 @@ set angles radians unset grid set key title "" set key outside left top horizontal Right noreverse enhanced autotitles columnhead nobox -set key noinvert samplen 4 spacing 1 width 0 height 0 +set key noinvert samplen 4 spacing 1 width 0 height 0 set key maxcolumns 2 maxrows 0 unset label unset arrow @@ -107,10 +107,10 @@ set nox2tics set noy2tics set cbtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0 set cbtics autofreq norangelimit -set title "" +set title "" set title offset character 0, 0, 0 font "" norotate -set timestamp bottom -set timestamp "" +set timestamp bottom +set timestamp "" set timestamp offset character 0, 0, 0 font "" norotate set rrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] ) set autoscale rfixmin @@ -124,9 +124,9 @@ set autoscale ufixmax set vrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) set autoscale vfixmin set autoscale vfixmax -set xlabel "" +set xlabel "" set xlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate -set x2label "" +set x2label "" set x2label offset character 0, 0, 0 font "" textcolor lt -1 norotate set xrange [ * : * ] noreverse nowriteback # (currently [-0.150000:3.15000] ) set autoscale xfixmin @@ -134,9 +134,9 @@ set autoscale xfixmax set x2range [ * : * ] noreverse nowriteback # (currently [0.00000:3.00000] ) set autoscale x2fixmin set autoscale x2fixmax -set ylabel "" +set ylabel "" set ylabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 -set y2label "" +set y2label "" set y2label offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 set yrange [ 0.00000 : 1.90000e+06 ] noreverse nowriteback # (currently [:] ) set autoscale yfixmin @@ -144,12 +144,12 @@ set autoscale yfixmax set y2range [ * : * ] noreverse nowriteback # (currently [0.00000:1.90000e+06] ) set autoscale y2fixmin set autoscale y2fixmax -set zlabel "" +set zlabel "" set zlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate set zrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] ) set autoscale zfixmin set autoscale zfixmax -set cblabel "" +set cblabel "" set cblabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270 set cbrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] ) set autoscale cbfixmin @@ -162,12 +162,12 @@ set tmargin -1 set pm3d explicit at s set pm3d scansautomatic set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean -set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB +set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB set palette rgbformulae 7, 5, 15 set colorbox default set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault -set loadpath -set fontpath +set loadpath +set fontpath set fit noerrorvariables GNUTERM = "aqua" plot 'bench_results.txt' using 2:xticlabel(1) w lp lw 2, '' using 3:xticlabel(1) w lp lw 2, '' using 4:xticlabel(1) w lp lw 2, '' using 5:xticlabel(1) w lp lw 2, '' using 6:xticlabel(1) w lp lw 2, '' using 7:xticlabel(1) w lp lw 2, '' using 8:xticlabel(1) w lp lw 2, '' using 9:xticlabel(1) w lp lw 2 diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.sh b/deps/npm/node_modules/node-uuid/benchmark/bench.sh similarity index 100% rename from deps/npm/node_modules/request/node_modules/node-uuid/benchmark/bench.sh rename to deps/npm/node_modules/node-uuid/benchmark/bench.sh diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c b/deps/npm/node_modules/node-uuid/benchmark/benchmark-native.c similarity index 100% rename from deps/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark-native.c rename to deps/npm/node_modules/node-uuid/benchmark/benchmark-native.c diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js b/deps/npm/node_modules/node-uuid/benchmark/benchmark.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/node-uuid/benchmark/benchmark.js rename to deps/npm/node_modules/node-uuid/benchmark/benchmark.js diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/bin/uuid b/deps/npm/node_modules/node-uuid/bin/uuid similarity index 100% rename from deps/npm/node_modules/request/node_modules/node-uuid/bin/uuid rename to deps/npm/node_modules/node-uuid/bin/uuid diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/bower.json b/deps/npm/node_modules/node-uuid/bower.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/node-uuid/bower.json rename to deps/npm/node_modules/node-uuid/bower.json diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/component.json b/deps/npm/node_modules/node-uuid/component.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/node-uuid/component.json rename to deps/npm/node_modules/node-uuid/component.json diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/package.json b/deps/npm/node_modules/node-uuid/package.json similarity index 61% rename from deps/npm/node_modules/request/node_modules/node-uuid/package.json rename to deps/npm/node_modules/node-uuid/package.json index 4aa75044ada39237b2521ade21d5c1369f998cc6..a95715dd6ed409e18165713c8c3d0b2212c29653 100644 --- a/deps/npm/node_modules/request/node_modules/node-uuid/package.json +++ b/deps/npm/node_modules/node-uuid/package.json @@ -1,15 +1,45 @@ { - "name": "node-uuid", - "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", - "url": "http://github.com/broofa/node-uuid", - "keywords": [ - "uuid", - "guid", - "rfc4122" + "_args": [ + [ + "node-uuid@~1.4.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "node-uuid@>=1.4.0 <1.5.0", + "_id": "node-uuid@1.4.3", + "_inCache": true, + "_location": "/node-uuid", + "_npmUser": { + "email": "robert@broofa.com", + "name": "broofa" + }, + "_npmVersion": "1.4.28", + "_phantomChildren": {}, + "_requested": { + "name": "node-uuid", + "raw": "node-uuid@~1.4.0", + "rawSpec": "~1.4.0", + "scope": null, + "spec": ">=1.4.0 <1.5.0", + "type": "range" + }, + "_requiredBy": [ + "/request" ], + "_resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz", + "_shasum": "319bb7a56e7cb63f00b5c0cd7851cd4b4ddf1df9", + "_shrinkwrap": null, + "_spec": "node-uuid@~1.4.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", "author": { - "name": "Robert Kieffer", - "email": "robert@broofa.com" + "email": "robert@broofa.com", + "name": "Robert Kieffer" + }, + "bin": { + "uuid": "./bin/uuid" + }, + "bugs": { + "url": "https://github.com/broofa/node-uuid/issues" }, "contributors": [ { @@ -17,49 +47,44 @@ "email": "dev@tavan.de" } ], - "bin": { - "uuid": "./bin/uuid" - }, - "scripts": { - "test": "node test/test.js" + "dependencies": {}, + "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "319bb7a56e7cb63f00b5c0cd7851cd4b4ddf1df9", + "tarball": "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" }, + "gitHead": "886463c660a095dfebfa69603921a8d156fdb12c", + "homepage": "https://github.com/broofa/node-uuid", + "keywords": [ + "guid", + "rfc4122", + "uuid" + ], "lib": ".", - "main": "./uuid.js", - "repository": { - "type": "git", - "url": "git+https://github.com/broofa/node-uuid.git" - }, - "version": "1.4.3", "licenses": [ { "type": "MIT", "url": "https://raw.github.com/broofa/node-uuid/master/LICENSE.md" } ], - "gitHead": "886463c660a095dfebfa69603921a8d156fdb12c", - "bugs": { - "url": "https://github.com/broofa/node-uuid/issues" - }, - "homepage": "https://github.com/broofa/node-uuid", - "_id": "node-uuid@1.4.3", - "_shasum": "319bb7a56e7cb63f00b5c0cd7851cd4b4ddf1df9", - "_from": "node-uuid@>=1.4.0 <1.5.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "broofa", - "email": "robert@broofa.com" - }, + "main": "./uuid.js", "maintainers": [ { "name": "broofa", "email": "robert@broofa.com" } ], - "dist": { - "shasum": "319bb7a56e7cb63f00b5c0cd7851cd4b4ddf1df9", - "tarball": "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" + "name": "node-uuid", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/broofa/node-uuid.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "node test/test.js" + }, + "url": "http://github.com/broofa/node-uuid", + "version": "1.4.3" } diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/test/compare_v1.js b/deps/npm/node_modules/node-uuid/test/compare_v1.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/node-uuid/test/compare_v1.js rename to deps/npm/node_modules/node-uuid/test/compare_v1.js diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/test/test.html b/deps/npm/node_modules/node-uuid/test/test.html similarity index 100% rename from deps/npm/node_modules/request/node_modules/node-uuid/test/test.html rename to deps/npm/node_modules/node-uuid/test/test.html diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/test/test.js b/deps/npm/node_modules/node-uuid/test/test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/node-uuid/test/test.js rename to deps/npm/node_modules/node-uuid/test/test.js diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/uuid.js b/deps/npm/node_modules/node-uuid/uuid.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/node-uuid/uuid.js rename to deps/npm/node_modules/node-uuid/uuid.js index 0a617697969af77ea1200284874ab882f0a9eae4..80ed720db3ed56067797e7166a91372f9d3c7c84 100644 --- a/deps/npm/node_modules/request/node_modules/node-uuid/uuid.js +++ b/deps/npm/node_modules/node-uuid/uuid.js @@ -230,7 +230,7 @@ } else if (typeof define === 'function' && define.amd) { // Publish as AMD module define(function() {return uuid;}); - + } else { // Publish as global (in browsers) diff --git a/deps/npm/node_modules/nopt/package.json b/deps/npm/node_modules/nopt/package.json index 618f93467e283fd3c1dcda2ca37f8060602791c2..e7272b701807480bfa470ad9e0ebc390ab28ed36 100644 --- a/deps/npm/node_modules/nopt/package.json +++ b/deps/npm/node_modules/nopt/package.json @@ -1,38 +1,84 @@ { - "name": "nopt", - "version": "3.0.4", - "description": "Option parsing for Node, supporting types, shorthands, etc. Used by npm.", + "_args": [ + [ + "nopt@~3.0.3", + "/Users/rebecca/code/npm" + ] + ], + "_from": "nopt@>=3.0.3 <3.1.0", + "_id": "nopt@3.0.4", + "_inCache": true, + "_location": "/nopt", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" + }, + "_npmVersion": "2.14.3", + "_phantomChildren": {}, + "_requested": { + "name": "nopt", + "raw": "nopt@~3.0.3", + "rawSpec": "~3.0.3", + "scope": null, + "spec": ">=3.0.3 <3.1.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/node-gyp" + ], + "_resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.4.tgz", + "_shasum": "dd63bc9c72a6e4e85b85cdc0ca314598facede5e", + "_shrinkwrap": null, + "_spec": "nopt@~3.0.3", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "main": "lib/nopt.js", - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/isaacs/nopt.git" - }, "bin": { "nopt": "./bin/nopt.js" }, - "license": "ISC", + "bugs": { + "url": "https://github.com/isaacs/nopt/issues" + }, "dependencies": { "abbrev": "1" }, + "description": "Option parsing for Node, supporting types, shorthands, etc. Used by npm.", "devDependencies": { "tap": "^1.2.0" }, - "readme": "If you want to write an option parser, and have it be good, there are\ntwo ways to do it. The Right Way, and the Wrong Way.\n\nThe Wrong Way is to sit down and write an option parser. We've all done\nthat.\n\nThe Right Way is to write some complex configurable program with so many\noptions that you hit the limit of your frustration just trying to\nmanage them all, and defer it with duct-tape solutions until you see\nexactly to the core of the problem, and finally snap and write an\nawesome option parser.\n\nIf you want to write an option parser, don't write an option parser.\nWrite a package manager, or a source control system, or a service\nrestarter, or an operating system. You probably won't end up with a\ngood one of those, but if you don't give up, and you are relentless and\ndiligent enough in your procrastination, you may just end up with a very\nnice option parser.\n\n## USAGE\n\n // my-program.js\n var nopt = require(\"nopt\")\n , Stream = require(\"stream\").Stream\n , path = require(\"path\")\n , knownOpts = { \"foo\" : [String, null]\n , \"bar\" : [Stream, Number]\n , \"baz\" : path\n , \"bloo\" : [ \"big\", \"medium\", \"small\" ]\n , \"flag\" : Boolean\n , \"pick\" : Boolean\n , \"many1\" : [String, Array]\n , \"many2\" : [path]\n }\n , shortHands = { \"foofoo\" : [\"--foo\", \"Mr. Foo\"]\n , \"b7\" : [\"--bar\", \"7\"]\n , \"m\" : [\"--bloo\", \"medium\"]\n , \"p\" : [\"--pick\"]\n , \"f\" : [\"--flag\"]\n }\n // everything is optional.\n // knownOpts and shorthands default to {}\n // arg list defaults to process.argv\n // slice defaults to 2\n , parsed = nopt(knownOpts, shortHands, process.argv, 2)\n console.log(parsed)\n\nThis would give you support for any of the following:\n\n```bash\n$ node my-program.js --foo \"blerp\" --no-flag\n{ \"foo\" : \"blerp\", \"flag\" : false }\n\n$ node my-program.js ---bar 7 --foo \"Mr. Hand\" --flag\n{ bar: 7, foo: \"Mr. Hand\", flag: true }\n\n$ node my-program.js --foo \"blerp\" -f -----p\n{ foo: \"blerp\", flag: true, pick: true }\n\n$ node my-program.js -fp --foofoo\n{ foo: \"Mr. Foo\", flag: true, pick: true }\n\n$ node my-program.js --foofoo -- -fp # -- stops the flag parsing.\n{ foo: \"Mr. Foo\", argv: { remain: [\"-fp\"] } }\n\n$ node my-program.js --blatzk -fp # unknown opts are ok.\n{ blatzk: true, flag: true, pick: true }\n\n$ node my-program.js --blatzk=1000 -fp # but you need to use = if they have a value\n{ blatzk: 1000, flag: true, pick: true }\n\n$ node my-program.js --no-blatzk -fp # unless they start with \"no-\"\n{ blatzk: false, flag: true, pick: true }\n\n$ node my-program.js --baz b/a/z # known paths are resolved.\n{ baz: \"/Users/isaacs/b/a/z\" }\n\n# if Array is one of the types, then it can take many\n# values, and will always be an array. The other types provided\n# specify what types are allowed in the list.\n\n$ node my-program.js --many1 5 --many1 null --many1 foo\n{ many1: [\"5\", \"null\", \"foo\"] }\n\n$ node my-program.js --many2 foo --many2 bar\n{ many2: [\"/path/to/foo\", \"path/to/bar\"] }\n```\n\nRead the tests at the bottom of `lib/nopt.js` for more examples of\nwhat this puppy can do.\n\n## Types\n\nThe following types are supported, and defined on `nopt.typeDefs`\n\n* String: A normal string. No parsing is done.\n* path: A file system path. Gets resolved against cwd if not absolute.\n* url: A url. If it doesn't parse, it isn't accepted.\n* Number: Must be numeric.\n* Date: Must parse as a date. If it does, and `Date` is one of the options,\n then it will return a Date object, not a string.\n* Boolean: Must be either `true` or `false`. If an option is a boolean,\n then it does not need a value, and its presence will imply `true` as\n the value. To negate boolean flags, do `--no-whatever` or `--whatever\n false`\n* NaN: Means that the option is strictly not allowed. Any value will\n fail.\n* Stream: An object matching the \"Stream\" class in node. Valuable\n for use when validating programmatically. (npm uses this to let you\n supply any WriteStream on the `outfd` and `logfd` config options.)\n* Array: If `Array` is specified as one of the types, then the value\n will be parsed as a list of options. This means that multiple values\n can be specified, and that the value will always be an array.\n\nIf a type is an array of values not on this list, then those are\nconsidered valid values. For instance, in the example above, the\n`--bloo` option can only be one of `\"big\"`, `\"medium\"`, or `\"small\"`,\nand any other value will be rejected.\n\nWhen parsing unknown fields, `\"true\"`, `\"false\"`, and `\"null\"` will be\ninterpreted as their JavaScript equivalents.\n\nYou can also mix types and values, or multiple types, in a list. For\ninstance `{ blah: [Number, null] }` would allow a value to be set to\neither a Number or null. When types are ordered, this implies a\npreference, and the first type that can be used to properly interpret\nthe value will be used.\n\nTo define a new type, add it to `nopt.typeDefs`. Each item in that\nhash is an object with a `type` member and a `validate` method. The\n`type` member is an object that matches what goes in the type list. The\n`validate` method is a function that gets called with `validate(data,\nkey, val)`. Validate methods should assign `data[key]` to the valid\nvalue of `val` if it can be handled properly, or return boolean\n`false` if it cannot.\n\nYou can also call `nopt.clean(data, types, typeDefs)` to clean up a\nconfig object and remove its invalid properties.\n\n## Error Handling\n\nBy default, nopt outputs a warning to standard error when invalid values for\nknown options are found. You can change this behavior by assigning a method\nto `nopt.invalidHandler`. This method will be called with\nthe offending `nopt.invalidHandler(key, val, types)`.\n\nIf no `nopt.invalidHandler` is assigned, then it will console.error\nits whining. If it is assigned to boolean `false` then the warning is\nsuppressed.\n\n## Abbreviations\n\nYes, they are supported. If you define options like this:\n\n```javascript\n{ \"foolhardyelephants\" : Boolean\n, \"pileofmonkeys\" : Boolean }\n```\n\nThen this will work:\n\n```bash\nnode program.js --foolhar --pil\nnode program.js --no-f --pileofmon\n# etc.\n```\n\n## Shorthands\n\nShorthands are a hash of shorter option names to a snippet of args that\nthey expand to.\n\nIf multiple one-character shorthands are all combined, and the\ncombination does not unambiguously match any other option or shorthand,\nthen they will be broken up into their constituent parts. For example:\n\n```json\n{ \"s\" : [\"--loglevel\", \"silent\"]\n, \"g\" : \"--global\"\n, \"f\" : \"--force\"\n, \"p\" : \"--parseable\"\n, \"l\" : \"--long\"\n}\n```\n\n```bash\nnpm ls -sgflp\n# just like doing this:\nnpm ls --loglevel silent --global --force --long --parseable\n```\n\n## The Rest of the args\n\nThe config object returned by nopt is given a special member called\n`argv`, which is an object with the following fields:\n\n* `remain`: The remaining args after all the parsing has occurred.\n* `original`: The args as they originally appeared.\n* `cooked`: The args after flags and shorthands are expanded.\n\n## Slicing\n\nNode programs are called with more or less the exact argv as it appears\nin C land, after the v8 and node-specific options have been plucked off.\nAs such, `argv[0]` is always `node` and `argv[1]` is always the\nJavaScript program being run.\n\nThat's usually not very useful to you. So they're sliced off by\ndefault. If you want them, then you can pass in `0` as the last\nargument, or any other number that you'd like to slice off the start of\nthe list.\n", - "readmeFilename": "README.md", - "gitHead": "f52626631ea1afef5a6dd9acf23ddd1466831a08", - "bugs": { - "url": "https://github.com/isaacs/nopt/issues" + "directories": {}, + "dist": { + "shasum": "dd63bc9c72a6e4e85b85cdc0ca314598facede5e", + "tarball": "http://registry.npmjs.org/nopt/-/nopt-3.0.4.tgz" }, + "gitHead": "f52626631ea1afef5a6dd9acf23ddd1466831a08", "homepage": "https://github.com/isaacs/nopt#readme", - "_id": "nopt@3.0.4", - "_shasum": "dd63bc9c72a6e4e85b85cdc0ca314598facede5e", - "_from": "nopt@3.0.4" + "installable": true, + "license": "ISC", + "main": "lib/nopt.js", + "maintainers": [ + { + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" + } + ], + "name": "nopt", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/isaacs/nopt.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "3.0.4" } diff --git a/deps/npm/node_modules/normalize-git-url/package.json b/deps/npm/node_modules/normalize-git-url/package.json index b2dc3d910a907ad77d72f21cf58f4550615263af..9028655064b34bb828451919425684414886b135 100644 --- a/deps/npm/node_modules/normalize-git-url/package.json +++ b/deps/npm/node_modules/normalize-git-url/package.json @@ -1,42 +1,89 @@ { - "name": "normalize-git-url", - "version": "3.0.1", - "description": "Normalizes Git URLs. For npm, but you can use it too.", - "main": "normalize-git-url.js", - "directories": { - "test": "test" + "_args": [ + [ + "normalize-git-url@~3.0.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "normalize-git-url@>=3.0.1 <3.1.0", + "_id": "normalize-git-url@3.0.1", + "_inCache": true, + "_location": "/normalize-git-url", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" + }, + "_npmVersion": "3.1.2", + "_phantomChildren": {}, + "_requested": { + "name": "normalize-git-url", + "raw": "normalize-git-url@~3.0.1", + "rawSpec": "~3.0.1", + "scope": null, + "spec": ">=3.0.1 <3.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/normalize-git-url/-/normalize-git-url-3.0.1.tgz", + "_shasum": "d40d419d05a15870271e50534dbb7b8ccd9b0a5c", + "_shrinkwrap": null, + "_spec": "normalize-git-url@~3.0.1", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "ogd@aoaioxxysz.net", + "name": "Forrest L Norvell" + }, + "bugs": { + "url": "https://github.com/npm/normalize-git-url/issues" }, "dependencies": {}, + "description": "Normalizes Git URLs. For npm, but you can use it too.", "devDependencies": { "tap": "^1.1.0" }, - "scripts": { - "test": "tap test/*.js" + "directories": { + "test": "test" }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/normalize-git-url.git" + "dist": { + "shasum": "d40d419d05a15870271e50534dbb7b8ccd9b0a5c", + "tarball": "http://registry.npmjs.org/normalize-git-url/-/normalize-git-url-3.0.1.tgz" }, + "gitHead": "8393cd4345e404eb6ad2ff6853dcc8287807ca22", + "homepage": "https://github.com/npm/normalize-git-url", "keywords": [ "git", "github", - "url", "normalize", - "npm" + "npm", + "url" ], - "author": { - "name": "Forrest L Norvell", - "email": "ogd@aoaioxxysz.net" - }, "license": "ISC", - "bugs": { - "url": "https://github.com/npm/normalize-git-url/issues" + "main": "normalize-git-url.js", + "maintainers": [ + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "iarna", + "email": "me@re-becca.org" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" + } + ], + "name": "normalize-git-url", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/npm/normalize-git-url.git" }, - "homepage": "https://github.com/npm/normalize-git-url", - "readme": "# normalize-git-url\n\nYou have a bunch of Git URLs. You want to convert them to a canonical\nrepresentation, probably for use inside npm so that it doesn't end up creating\na bunch of superfluous cached origins. You use this package.\n\n## Usage\n\n```javascript\nvar ngu = require('normalize-git-url');\nvar normalized = ngu(\"git+ssh://git@github.com:organization/repo.git#hashbrowns\")\n// get back:\n// {\n// url : \"ssh://git@github.com/organization/repo.git\",\n// branch : \"hashbrowns\" // did u know hashbrowns are delicious?\n// }\n```\n\n## API\n\nThere's just the one function, and all it takes is a single parameter, a non-normalized Git URL.\n\n### normalizeGitUrl(url)\n\n* `url` {String} The Git URL (very loosely speaking) to be normalized.\n\nReturns an object with the following format:\n\n* `url` {String} The normalized URL.\n* `branch` {String} The treeish to be checked out once the repo at `url` is\n cloned. It doesn't have to be a branch, but it's a lot easier to intuit what\n the output is for with that name.\n\n## Limitations\n\nRight now this doesn't try to special-case GitHub too much -- it doesn't ensure\nthat `.git` is added to the end of URLs, it doesn't prefer `https:` over\n`http:` or `ssh:`, it doesn't deal with redirects, and it doesn't try to\nresolve symbolic names to treeish hashcodes. For now, it just tries to account\nfor minor differences in representation.\n", - "readmeFilename": "README.md", - "gitHead": "8393cd4345e404eb6ad2ff6853dcc8287807ca22", - "_id": "normalize-git-url@3.0.1", - "_shasum": "d40d419d05a15870271e50534dbb7b8ccd9b0a5c", - "_from": "normalize-git-url@latest" + "scripts": { + "test": "tap test/*.js" + }, + "version": "3.0.1" } diff --git a/deps/npm/node_modules/normalize-package-data/package.json b/deps/npm/node_modules/normalize-package-data/package.json index 464b00927693171c25088d8f9b3c1157230054c6..762dd8e2edd0cf39de58b0cb6ef2b0b58c359145 100644 --- a/deps/npm/node_modules/normalize-package-data/package.json +++ b/deps/npm/node_modules/normalize-package-data/package.json @@ -1,53 +1,112 @@ { - "name": "normalize-package-data", - "version": "2.3.4", - "author": { - "name": "Meryn Stol", - "email": "merynstol@gmail.com" + "_args": [ + [ + "normalize-package-data@~2.3.3", + "/Users/rebecca/code/npm" + ] + ], + "_from": "normalize-package-data@>=2.3.3 <2.4.0", + "_id": "normalize-package-data@2.3.4", + "_inCache": true, + "_location": "/normalize-package-data", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" }, - "description": "Normalizes data that can be found in package.json files.", - "license": "BSD-2-Clause", - "repository": { - "type": "git", - "url": "git://github.com/npm/normalize-package-data.git" + "_npmVersion": "2.14.3", + "_phantomChildren": {}, + "_requested": { + "name": "normalize-package-data", + "raw": "normalize-package-data@~2.3.3", + "rawSpec": "~2.3.3", + "scope": null, + "spec": ">=2.3.3 <2.4.0", + "type": "range" }, - "main": "lib/normalize.js", - "scripts": { - "test": "tap test/*.js" + "_requiredBy": [ + "/", + "/npm-registry-client", + "/read-package-json" + ], + "_resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.4.tgz", + "_shasum": "b92233ce6ef04fbd6bc0c05dead155af33a623e0", + "_shrinkwrap": null, + "_spec": "normalize-package-data@~2.3.3", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "merynstol@gmail.com", + "name": "Meryn Stol" }, + "bugs": { + "url": "https://github.com/npm/normalize-package-data/issues" + }, + "contributors": [ + { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me" + }, + { + "name": "Meryn Stol", + "email": "merynstol@gmail.com" + }, + { + "name": "Robert Kowalski", + "email": "rok@kowalski.gd" + } + ], "dependencies": { "hosted-git-info": "^2.0.2", "is-builtin-module": "^1.0.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" }, + "description": "Normalizes data that can be found in package.json files.", "devDependencies": { "async": "~0.9.0", "tap": "^1.1.0", "underscore": "~1.4.4" }, - "contributors": [ + "directories": {}, + "dist": { + "shasum": "b92233ce6ef04fbd6bc0c05dead155af33a623e0", + "tarball": "http://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.4.tgz" + }, + "gitHead": "0aa15b23116f2dfd086f1ed6bf213cbb7e7490dd", + "homepage": "https://github.com/npm/normalize-package-data#readme", + "installable": true, + "license": "BSD-2-Clause", + "main": "lib/normalize.js", + "maintainers": [ { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me" + "name": "iarna", + "email": "me@re-becca.org" }, { - "name": "Meryn Stol", + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "meryn", "email": "merynstol@gmail.com" }, { - "name": "Robert Kowalski", - "email": "rok@kowalski.gd" + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" } ], - "readme": "# normalize-package-data [![Build Status](https://travis-ci.org/npm/normalize-package-data.png?branch=master)](https://travis-ci.org/npm/normalize-package-data)\n\nnormalize-package data exports a function that normalizes package metadata. This data is typically found in a package.json file, but in principle could come from any source - for example the npm registry.\n\nnormalize-package-data is used by [read-package-json](https://npmjs.org/package/read-package-json) to normalize the data it reads from a package.json file. In turn, read-package-json is used by [npm](https://npmjs.org/package/npm) and various npm-related tools.\n\n## Installation\n\n```\nnpm install normalize-package-data\n```\n\n## Usage\n\nBasic usage is really simple. You call the function that normalize-package-data exports. Let's call it `normalizeData`.\n\n```javascript\nnormalizeData = require('normalize-package-data')\npackageData = fs.readFileSync(\"package.json\")\nnormalizeData(packageData)\n// packageData is now normalized\n```\n\n#### Strict mode\n\nYou may activate strict validation by passing true as the second argument.\n\n```javascript\nnormalizeData = require('normalize-package-data')\npackageData = fs.readFileSync(\"package.json\")\nwarnFn = function(msg) { console.error(msg) }\nnormalizeData(packageData, true)\n// packageData is now normalized\n```\n\nIf strict mode is activated, only Semver 2.0 version strings are accepted. Otherwise, Semver 1.0 strings are accepted as well. Packages must have a name, and the name field must not have contain leading or trailing whitespace.\n\n#### Warnings\n\nOptionally, you may pass a \"warning\" function. It gets called whenever the `normalizeData` function encounters something that doesn't look right. It indicates less than perfect input data.\n\n```javascript\nnormalizeData = require('normalize-package-data')\npackageData = fs.readFileSync(\"package.json\")\nwarnFn = function(msg) { console.error(msg) }\nnormalizeData(packageData, warnFn)\n// packageData is now normalized. Any number of warnings may have been logged.\n```\n\nYou may combine strict validation with warnings by passing `true` as the second argument, and `warnFn` as third.\n\nWhen `private` field is set to `true`, warnings will be suppressed.\n\n### Potential exceptions\n\nIf the supplied data has an invalid name or version vield, `normalizeData` will throw an error. Depending on where you call `normalizeData`, you may want to catch these errors so can pass them to a callback.\n\n## What normalization (currently) entails\n\n* The value of `name` field gets trimmed (unless in strict mode).\n* The value of the `version` field gets cleaned by `semver.clean`. See [documentation for the semver module](https://github.com/isaacs/node-semver).\n* If `name` and/or `version` fields are missing, they are set to empty strings.\n* If `files` field is not an array, it will be removed.\n* If `bin` field is a string, then `bin` field will become an object with `name` set to the value of the `name` field, and `bin` set to the original string value.\n* If `man` field is a string, it will become an array with the original string as its sole member.\n* If `keywords` field is string, it is considered to be a list of keywords separated by one or more white-space characters. It gets converted to an array by splitting on `\\s+`.\n* All people fields (`author`, `maintainers`, `contributors`) get converted into objects with name, email and url properties.\n* If `bundledDependencies` field (a typo) exists and `bundleDependencies` field does not, `bundledDependencies` will get renamed to `bundleDependencies`.\n* If the value of any of the dependencies fields (`dependencies`, `devDependencies`, `optionalDependencies`) is a string, it gets converted into an object with familiar `name=>value` pairs.\n* The values in `optionalDependencies` get added to `dependencies`. The `optionalDependencies` array is left untouched.\n* As of v2: Dependencies that point at known hosted git providers (currently: github, bitbucket, gitlab) will have their URLs canonicalized, but protocols will be preserved.\n* As of v2: Dependencies that use shortcuts for hosted git providers (`org/proj`, `github:org/proj`, `bitbucket:org/proj`, `gitlab:org/proj`, `gist:docid`) will have the shortcut left in place. (In the case of github, the `org/proj` form will be expanded to `github:org/proj`.) THIS MARKS A BREAKING CHANGE FROM V1, where the shorcut was previously expanded to a URL.\n* If `description` field does not exist, but `readme` field does, then (more or less) the first paragraph of text that's found in the readme is taken as value for `description`.\n* If `repository` field is a string, it will become an object with `url` set to the original string value, and `type` set to `\"git\"`.\n* If `repository.url` is not a valid url, but in the style of \"[owner-name]/[repo-name]\", `repository.url` will be set to git+https://github.com/[owner-name]/[repo-name].git\n* If `bugs` field is a string, the value of `bugs` field is changed into an object with `url` set to the original string value.\n* If `bugs` field does not exist, but `repository` field points to a repository hosted on GitHub, the value of the `bugs` field gets set to an url in the form of https://github.com/[owner-name]/[repo-name]/issues . If the repository field points to a GitHub Gist repo url, the associated http url is chosen.\n* If `bugs` field is an object, the resulting value only has email and url properties. If email and url properties are not strings, they are ignored. If no valid values for either email or url is found, bugs field will be removed.\n* If `homepage` field is not a string, it will be removed.\n* If the url in the `homepage` field does not specify a protocol, then http is assumed. For example, `myproject.org` will be changed to `http://myproject.org`.\n* If `homepage` field does not exist, but `repository` field points to a repository hosted on GitHub, the value of the `homepage` field gets set to an url in the form of https://github.com/[owner-name]/[repo-name]/ . If the repository field points to a GitHub Gist repo url, the associated http url is chosen.\n\n### Rules for name field\n\nIf `name` field is given, the value of the name field must be a string. The string may not:\n\n* start with a period.\n* contain the following characters: `/@\\s+%`\n* contain and characters that would need to be encoded for use in urls.\n* resemble the word `node_modules` or `favicon.ico` (case doesn't matter).\n\n### Rules for version field\n\nIf `version` field is given, the value of the version field must be a valid *semver* string, as determined by the `semver.valid` method. See [documentation for the semver module](https://github.com/isaacs/node-semver).\n\n### Rules for license field\n\nThe `license` field should be a valid *SDPDX license expression* or one of the special values allowed by [validate-npm-package-license](https://npmjs.com/packages/validate-npm-package-license). See [documentation for the license field in package.json](https://docs.npmjs.com/files/package.json#license).\n\n## Credits\n\nThis package contains code based on read-package-json written by Isaac Z. Schlueter. Used with permisson.\n\n## License\n\nnormalize-package-data is released under the [BSD 2-Clause License](http://opensource.org/licenses/MIT). \nCopyright (c) 2013 Meryn Stol \n", - "readmeFilename": "README.md", - "gitHead": "0aa15b23116f2dfd086f1ed6bf213cbb7e7490dd", - "bugs": { - "url": "https://github.com/npm/normalize-package-data/issues" + "name": "normalize-package-data", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/npm/normalize-package-data.git" }, - "homepage": "https://github.com/npm/normalize-package-data#readme", - "_id": "normalize-package-data@2.3.4", - "_shasum": "b92233ce6ef04fbd6bc0c05dead155af33a623e0", - "_from": "normalize-package-data@2.3.4" + "scripts": { + "test": "tap test/*.js" + }, + "version": "2.3.4" } diff --git a/deps/npm/node_modules/npm-cache-filename/package.json b/deps/npm/node_modules/npm-cache-filename/package.json index b2431b96c2f6888d0eeeee0e3582f1d5535002e2..882017f225381f6e7ca1788b03edb48715076039 100644 --- a/deps/npm/node_modules/npm-cache-filename/package.json +++ b/deps/npm/node_modules/npm-cache-filename/package.json @@ -1,43 +1,59 @@ { - "name": "npm-cache-filename", - "version": "1.0.2", - "description": "Given a cache folder and url, return the appropriate cache folder.", - "main": "index.js", - "dependencies": {}, - "devDependencies": { - "tap": "^1.2.0" - }, - "scripts": { - "test": "tap test.js" + "_args": [ + [ + "npm-cache-filename@~1.0.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "npm-cache-filename@>=1.0.1 <1.1.0", + "_id": "npm-cache-filename@1.0.2", + "_inCache": true, + "_location": "/npm-cache-filename", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" }, - "repository": { - "type": "git", - "url": "git://github.com/npm/npm-cache-filename.git" + "_npmVersion": "2.12.1", + "_phantomChildren": {}, + "_requested": { + "name": "npm-cache-filename", + "raw": "npm-cache-filename@~1.0.1", + "rawSpec": "~1.0.1", + "scope": null, + "spec": ">=1.0.1 <1.1.0", + "type": "range" }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz", + "_shasum": "ded306c5b0bfc870a9e9faf823bc5f283e05ae11", + "_shrinkwrap": null, + "_spec": "npm-cache-filename@~1.0.1", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "license": "ISC", "bugs": { "url": "https://github.com/npm/npm-cache-filename/issues" }, - "homepage": "https://github.com/npm/npm-cache-filename", - "gitHead": "b7eef12919fdf544a3b83bba73093f7268c40c1e", - "_id": "npm-cache-filename@1.0.2", - "_shasum": "ded306c5b0bfc870a9e9faf823bc5f283e05ae11", - "_from": "npm-cache-filename@1.0.2", - "_npmVersion": "2.12.1", - "_nodeVersion": "2.2.2", - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" + "dependencies": {}, + "description": "Given a cache folder and url, return the appropriate cache folder.", + "devDependencies": { + "tap": "^1.2.0" }, + "directories": {}, "dist": { "shasum": "ded306c5b0bfc870a9e9faf823bc5f283e05ae11", "tarball": "http://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz" }, + "gitHead": "b7eef12919fdf544a3b83bba73093f7268c40c1e", + "homepage": "https://github.com/npm/npm-cache-filename", + "license": "ISC", + "main": "index.js", "maintainers": [ { "name": "isaacs", @@ -52,6 +68,14 @@ "email": "kat@sykosomatic.org" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz" + "name": "npm-cache-filename", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/npm/npm-cache-filename.git" + }, + "scripts": { + "test": "tap test.js" + }, + "version": "1.0.2" } diff --git a/deps/npm/node_modules/npm-install-checks/index.js b/deps/npm/node_modules/npm-install-checks/index.js index 10f214fa931e9755610d90b3a40dc3615c009e63..d7c3360e4c6a295f4bb24878161df5304f8964ee 100644 --- a/deps/npm/node_modules/npm-install-checks/index.js +++ b/deps/npm/node_modules/npm-install-checks/index.js @@ -6,7 +6,6 @@ var semver = require("semver") exports.checkEngine = checkEngine function checkEngine (target, npmVer, nodeVer, force, strict, cb) { var nodev = force ? null : nodeVer - , strict = strict || target.engineStrict , eng = target.engines if (!eng) return cb() if (nodev && eng.node && !semver.satisfies(nodev, eng.node) diff --git a/deps/npm/node_modules/npm-install-checks/package.json b/deps/npm/node_modules/npm-install-checks/package.json index 3e7203c6fa549d52e97b383d18f2b8d4e443fd4a..a207b2b94e91c74a7ac696e5e488b5cab7ce0844 100644 --- a/deps/npm/node_modules/npm-install-checks/package.json +++ b/deps/npm/node_modules/npm-install-checks/package.json @@ -1,41 +1,93 @@ { - "name": "npm-install-checks", - "version": "1.0.6", - "description": "checks that npm runs during the installation of a module", - "main": "index.js", + "_args": [ + [ + "npm-install-checks@~2.0.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "npm-install-checks@>=2.0.0 <2.1.0", + "_id": "npm-install-checks@2.0.1", + "_inCache": true, + "_location": "/npm-install-checks", + "_nodeVersion": "4.0.0", + "_npmUser": { + "email": "me@re-becca.org", + "name": "iarna" + }, + "_npmVersion": "3.3.4", + "_phantomChildren": {}, + "_requested": { + "name": "npm-install-checks", + "raw": "npm-install-checks@~2.0.0", + "rawSpec": "~2.0.0", + "scope": null, + "spec": ">=2.0.0 <2.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_shasum": "a93540b53f04fa9d916d2733d6541f6db7d88e46", + "_shrinkwrap": null, + "_spec": "npm-install-checks@~2.0.0", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "rok@kowalski.gd", + "name": "Robert Kowalski" + }, + "bugs": { + "url": "https://github.com/npm/npm-install-checks/issues" + }, "dependencies": { "npmlog": "0.1 || 1", "semver": "^2.3.0 || 3.x || 4 || 5" }, + "description": "checks that npm runs during the installation of a module", "devDependencies": { "mkdirp": "~0.3.5", "rimraf": "~2.2.5", "tap": "^1.2.0" }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/npm/npm-install-checks.git" + "directories": {}, + "dist": { + "shasum": "a93540b53f04fa9d916d2733d6541f6db7d88e46", + "tarball": "http://registry.npmjs.org/npm-install-checks/-/npm-install-checks-2.0.1.tgz" }, + "gitHead": "1e9474f30490cd7621e976e91fa611d35e644f64", "homepage": "https://github.com/npm/npm-install-checks", + "installable": true, "keywords": [ - "npm,", - "install" + "install", + "npm," ], - "author": { - "name": "Robert Kowalski", - "email": "rok@kowalski.gd" - }, "license": "BSD-2-Clause", - "bugs": { - "url": "https://github.com/npm/npm-install-checks/issues" + "main": "index.js", + "maintainers": [ + { + "name": "robertkowalski", + "email": "rok@kowalski.gd" + }, + { + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "iarna", + "email": "me@re-becca.org" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + } + ], + "name": "npm-install-checks", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/npm/npm-install-checks.git" + }, + "scripts": { + "test": "tap test/*.js" }, - "readme": "# npm-install-checks\n\nA package that contains checks that npm runs during the installation.\n\n## API\n\n### .checkEngine(target, npmVer, nodeVer, force, strict, cb)\nCheck if node/npm version is supported by the package.\n\nError type: `ENOTSUP`\n\n### .checkPlatform(target, force, cb)\nCheck if OS/Arch is supported by the package.\n\nError type: `EBADPLATFORM`\n\n### .checkCycle(target, ancestors, cb)\nCheck for cyclic dependencies.\n\nError type: `ECYCLE`\n\n### .checkGit(folder, cb)\nCheck if a folder is a .git folder.\n\nError type: `EISGIT`\n", - "readmeFilename": "README.md", - "gitHead": "f28aebca7f5df0ddb13161b0f04d069004f6c367", - "_id": "npm-install-checks@1.0.6", - "_shasum": "8d4c1e852806e4e2d66601ab787be5841550d0cb", - "_from": "npm-install-checks@>=1.0.6 <1.1.0" + "version": "2.0.1" } diff --git a/deps/npm/node_modules/npm-install-checks/test/check-engine.js b/deps/npm/node_modules/npm-install-checks/test/check-engine.js index a16b13d7dbd8fe42253a0a2a407ac5affcc1ddca..c89ec5398d7acc82dd9af4e2d4439e37f4bef286 100644 --- a/deps/npm/node_modules/npm-install-checks/test/check-engine.js +++ b/deps/npm/node_modules/npm-install-checks/test/check-engine.js @@ -18,16 +18,16 @@ test("node version too old", function (t) { }) test("npm version too old", function (t) { - var target = { engines: { npm: "1.3.6" }} - c(target, "1.4.2", "0.2.1", false, true, function (err) { + var target = { engines: { npm: "^1.4.6" }} + c(target, "1.3.2", "0.2.1", false, true, function (err) { t.ok(err, "returns an error") - t.equals(err.required.npm, "1.3.6") + t.equals(err.required.npm, "^1.4.6") t.end() }) }) -test("strict=false does not return an error", function (t) { - var target = { engines: { npm: "1.3.6" }} +test("strict=false w/engineStrict json does not return an error", function (t) { + var target = { engines: { npm: "1.3.6" }, engineStrict: true } c(target, "1.4.2", "0.2.1", false, false, function (err) { t.notOk(err, "returns no error") t.end() diff --git a/deps/npm/node_modules/npm-package-arg/package.json b/deps/npm/node_modules/npm-package-arg/package.json index 9caed85e739668a3f87df42f2ca75d5029162afa..211498c8b0c84f7497a715a316ef46a2fa481ecb 100644 --- a/deps/npm/node_modules/npm-package-arg/package.json +++ b/deps/npm/node_modules/npm-package-arg/package.json @@ -1,39 +1,89 @@ { - "name": "npm-package-arg", - "version": "4.0.2", - "description": "Parse the things that can be arguments to `npm install`", - "main": "npa.js", - "directories": { - "test": "test" + "_args": [ + [ + "npm-package-arg@~4.0.2", + "/Users/rebecca/code/npm" + ] + ], + "_from": "npm-package-arg@>=4.0.2 <4.1.0", + "_id": "npm-package-arg@4.0.2", + "_inCache": true, + "_location": "/npm-package-arg", + "_nodeVersion": "2.3.1", + "_npmUser": { + "email": "ogd@aoaioxxysz.net", + "name": "othiym23" + }, + "_npmVersion": "2.13.1", + "_phantomChildren": {}, + "_requested": { + "name": "npm-package-arg", + "raw": "npm-package-arg@~4.0.2", + "rawSpec": "~4.0.2", + "scope": null, + "spec": ">=4.0.2 <4.1.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/init-package-json", + "/npm-registry-client", + "/realize-package-specifier" + ], + "_resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.0.2.tgz", + "_shasum": "3f28235f9f6428e54bfeca73629e27d6c81a7e82", + "_shrinkwrap": null, + "_spec": "npm-package-arg@~4.0.2", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/npm/npm-package-arg/issues" }, "dependencies": { "hosted-git-info": "^2.1.4", "semver": "4 || 5" }, + "description": "Parse the things that can be arguments to `npm install`", "devDependencies": { "tap": "^1.2.0" }, - "scripts": { - "test": "tap test/*.js" + "directories": { + "test": "test" }, + "dist": { + "shasum": "3f28235f9f6428e54bfeca73629e27d6c81a7e82", + "tarball": "http://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.0.2.tgz" + }, + "gitHead": "8d3c51c33807fabde4db86a3811831b756eaf2eb", + "homepage": "https://github.com/npm/npm-package-arg", + "license": "ISC", + "main": "npa.js", + "maintainers": [ + { + "name": "isaacs", + "email": "i@izs.me" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "iarna", + "email": "me@re-becca.org" + } + ], + "name": "npm-package-arg", + "optionalDependencies": {}, "repository": { "type": "git", "url": "git+https://github.com/npm/npm-package-arg.git" }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/npm-package-arg/issues" + "scripts": { + "test": "tap test/*.js" }, - "homepage": "https://github.com/npm/npm-package-arg", - "readme": "# npm-package-arg\n\nParse package name and specifier passed to commands like `npm install` or\n`npm cache add`. This just parses the text given-- it's worth noting that\n`npm` has further logic it applies by looking at your disk to figure out\nwhat ambiguous specifiers are. If you want that logic, please see\n[realize-package-specifier].\n\n[realize-package-specifier]: https://www.npmjs.org/package/realize-package-specifier\n\nArguments look like: `foo@1.2`, `@bar/foo@1.2`, `foo@user/foo`, `http://x.com/foo.tgz`,\n`git+https://github.com/user/foo`, `bitbucket:user/foo`, `foo.tar.gz` or `bar`\n\n## EXAMPLES\n\n```javascript\nvar assert = require(\"assert\")\nvar npa = require(\"npm-package-arg\")\n\n// Pass in the descriptor, and it'll return an object\nvar parsed = npa(\"@bar/foo@1.2\")\n\n// Returns an object like:\n{\n raw: '@bar/foo@1.2', // what was passed in\n name: \"@bar/foo\", // the name of the package\n scope: \"@bar\", // the private scope of the package, or null\n type: \"range\", // the type of specifier this is\n spec: \">=1.2.0 <1.3.0\" // the expanded specifier\n rawSpec: \"1.2\" // the specifier as passed in\n }\n\n// Parsing urls pointing at hosted git services produces a variation:\nvar parsed = npa(\"git+https://github.com/user/foo\")\n\n// Returns an object like:\n{\n raw: 'git+https://github.com/user/foo',\n scope: null,\n name: null,\n rawSpec: 'git+https://github.com/user/foo',\n spec: 'user/foo',\n type: 'hosted',\n hosted: {\n type: 'github',\n ssh: 'git@github.com:user/foo.git',\n sshurl: 'git+ssh://git@github.com/user/foo.git',\n https: 'https://github.com/user/foo.git',\n directUrl: 'https://raw.githubusercontent.com/user/foo/master/package.json'\n }\n}\n\n// Completely unreasonable invalid garbage throws an error\n// Make sure you wrap this in a try/catch if you have not\n// already sanitized the inputs!\nassert.throws(function() {\n npa(\"this is not \\0 a valid package name or url\")\n})\n```\n\n## USING\n\n`var npa = require('npm-package-arg')`\n\n* var result = npa(*arg*)\n\nParses *arg* and returns a result object detailing what *arg* is.\n\n*arg* -- a package descriptor, like: `foo@1.2`, or `foo@user/foo`, or\n`http://x.com/foo.tgz`, or `git+https://github.com/user/foo`\n\n## RESULT OBJECT\n\nThe objects that are returned by npm-package-arg contain the following\nkeys:\n\n* `name` - If known, the `name` field expected in the resulting pkg.\n* `type` - One of the following strings:\n * `git` - A git repo\n * `hosted` - A hosted project, from github, bitbucket or gitlab. Originally\n either a full url pointing at one of these services or a shorthand like\n `user/project` or `github:user/project` for github or `bitbucket:user/project`\n for bitbucket.\n * `tag` - A tagged version, like `\"foo@latest\"`\n * `version` - A specific version number, like `\"foo@1.2.3\"`\n * `range` - A version range, like `\"foo@2.x\"`\n * `local` - A local file or folder path\n * `remote` - An http url (presumably to a tgz)\n* `spec` - The \"thing\". URL, the range, git repo, etc.\n* `hosted` - If type=hosted this will be an object with the following keys:\n * `type` - github, bitbucket or gitlab\n * `ssh` - The ssh path for this git repo\n * `sshUrl` - The ssh URL for this git repo\n * `httpsUrl` - The HTTPS URL for this git repo\n * `directUrl` - The URL for the package.json in this git repo\n* `raw` - The original un-modified string that was provided.\n* `rawSpec` - The part after the `name@...`, as it was originally\n provided.\n* `scope` - If a name is something like `@org/module` then the `scope`\n field will be set to `org`. If it doesn't have a scoped name, then\n scope is `null`.\n", - "readmeFilename": "README.md", - "gitHead": "8d3c51c33807fabde4db86a3811831b756eaf2eb", - "_id": "npm-package-arg@4.0.2", - "_shasum": "3f28235f9f6428e54bfeca73629e27d6c81a7e82", - "_from": "npm-package-arg@>=4.0.2 <4.1.0" + "version": "4.0.2" } diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE deleted file mode 100644 index 99c130e1de342703106a2032f2d8f8329fea1af4..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -The MIT License - -Copyright (c) 2013 Max Ogden - -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. \ 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 deleted file mode 100644 index 466dfdfe0139b3e73ec7b334f353866ba6a499af..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "core-util-is", - "version": "1.0.1", - "description": "The `util.is*` functions introduced in Node v0.12.", - "main": "lib/util.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/core-util-is.git" - }, - "keywords": [ - "util", - "isBuffer", - "isArray", - "isNumber", - "isString", - "isRegExp", - "isThis", - "isThat", - "polyfill" - ], - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/isaacs/core-util-is/issues" - }, - "readme": "# core-util-is\n\nThe `util.is*` functions introduced in Node v0.12.\n", - "readmeFilename": "README.md", - "homepage": "https://github.com/isaacs/core-util-is", - "_id": "core-util-is@1.0.1", - "dist": { - "shasum": "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538", - "tarball": "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "_from": "core-util-is@>=1.0.0 <1.1.0", - "_npmVersion": "1.3.23", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_shasum": "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538", - "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" -} 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 deleted file mode 100644 index 087586e8f8cedd837be71186a35b2d699222f02e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "process-nextick-args", - "version": "1.0.3", - "description": "process.nextTick but always with args", - "main": "index.js", - "scripts": { - "test": "node test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" - }, - "author": "", - "license": "MIT", - "bugs": { - "url": "https://github.com/calvinmetcalf/process-nextick-args/issues" - }, - "homepage": "https://github.com/calvinmetcalf/process-nextick-args", - "devDependencies": { - "tap": "~0.2.6" - }, - "gitHead": "e855846a69662b9489f1ad3dde1ebf2ccc4370b8", - "_id": "process-nextick-args@1.0.3", - "_shasum": "e272eed825d5e9f4ea74d8d73b1fe311c3beb630", - "_from": "process-nextick-args@>=1.0.0 <1.1.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.5.0", - "_npmUser": { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - }, - "dist": { - "shasum": "e272eed825d5e9f4ea74d8d73b1fe311c3beb630", - "tarball": "http://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" - }, - "maintainers": [ - { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.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 deleted file mode 100644 index 0364d54ba46af640f28c1cb181ba3f6c6b223c67..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "string_decoder", - "version": "0.10.31", - "description": "The string_decoder module from Node core", - "main": "index.js", - "dependencies": {}, - "devDependencies": { - "tap": "~0.4.8" - }, - "scripts": { - "test": "tap test/simple/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/rvagg/string_decoder.git" - }, - "homepage": "https://github.com/rvagg/string_decoder", - "keywords": [ - "string", - "decoder", - "browser", - "browserify" - ], - "license": "MIT", - "gitHead": "d46d4fd87cf1d06e031c23f1ba170ca7d4ade9a0", - "bugs": { - "url": "https://github.com/rvagg/string_decoder/issues" - }, - "_id": "string_decoder@0.10.31", - "_shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "_from": "string_decoder@>=0.10.0 <0.11.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "rvagg", - "email": "rod@vagg.org" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - }, - { - "name": "rvagg", - "email": "rod@vagg.org" - } - ], - "dist": { - "shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "tarball": "http://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", - "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/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 deleted file mode 100644 index ea487da0e43000542b9f85a1426b62ff87a25f62..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "util-deprecate", - "version": "1.0.1", - "description": "The Node.js `util.deprecate()` function with browser support", - "main": "node.js", - "browser": "browser.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/util-deprecate.git" - }, - "keywords": [ - "util", - "deprecate", - "browserify", - "browser", - "node" - ], - "author": { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io/" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/TooTallNate/util-deprecate/issues" - }, - "homepage": "https://github.com/TooTallNate/util-deprecate", - "gitHead": "6e923f7d98a0afbe5b9c7db9d0f0029c1936746c", - "_id": "util-deprecate@1.0.1", - "_shasum": "3556a3d13c4c6aa7983d7e2425478197199b7881", - "_from": "util-deprecate@>=1.0.1 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "dist": { - "shasum": "3556a3d13c4c6aa7983d7e2425478197199b7881", - "tarball": "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.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 ab9f763737eda5f1d67aede18182ebbcc9fcb57c..3ab27508a18eecc160a9908872d960aa4bfd3145 100644 --- a/deps/npm/node_modules/npm-registry-client/package.json +++ b/deps/npm/node_modules/npm-registry-client/package.json @@ -1,18 +1,44 @@ { + "_args": [ + [ + "npm-registry-client@~7.0.7", + "/Users/rebecca/code/npm" + ] + ], + "_from": "npm-registry-client@>=7.0.7 <7.1.0", + "_id": "npm-registry-client@7.0.7", + "_inCache": true, + "_location": "/npm-registry-client", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" + }, + "_npmVersion": "2.14.4", + "_phantomChildren": {}, + "_requested": { + "name": "npm-registry-client", + "raw": "npm-registry-client@~7.0.7", + "rawSpec": "~7.0.7", + "scope": null, + "spec": ">=7.0.7 <7.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.0.7.tgz", + "_shasum": "899d7c8fefe87b72a70d8c9e075fb874539e0d3e", + "_shrinkwrap": null, + "_spec": "npm-registry-client@~7.0.7", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "npm-registry-client", - "description": "Client for the npm registry", - "version": "7.0.7", - "repository": { - "url": "git://github.com/isaacs/npm-registry-client.git" - }, - "main": "index.js", - "scripts": { - "test": "standard && tap test/*.js" + "bugs": { + "url": "https://github.com/isaacs/npm-registry-client/issues" }, "dependencies": { "chownr": "^1.0.1", @@ -21,14 +47,15 @@ "mkdirp": "^0.5.0", "normalize-package-data": "~1.0.1 || ^2.0.0", "npm-package-arg": "^3.0.0 || ^4.0.0", + "npmlog": "", "once": "^1.3.0", "request": "^2.47.0", "retry": "^0.8.0", "rimraf": "2", "semver": "2 >=2.2.1 || 3.x || 4 || 5", - "slide": "^1.1.3", - "npmlog": "" + "slide": "^1.1.3" }, + "description": "Client for the npm registry", "devDependencies": { "negotiator": "^0.4.9", "nock": "^0.56.0", @@ -36,18 +63,43 @@ "standard": "^4.0.0", "tap": "^1.2.0" }, + "directories": {}, + "dist": { + "shasum": "899d7c8fefe87b72a70d8c9e075fb874539e0d3e", + "tarball": "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.0.7.tgz" + }, + "gitHead": "06f188917bf575fe7dc7c2f6d1d4adbaa50bc423", + "homepage": "https://github.com/isaacs/npm-registry-client#readme", + "installable": true, + "license": "ISC", + "main": "index.js", + "maintainers": [ + { + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "iarna", + "email": "me@re-becca.org" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" + } + ], + "name": "npm-registry-client", "optionalDependencies": { "npmlog": "" }, - "license": "ISC", - "readme": "# npm-registry-client\n\nThe code that npm uses to talk to the registry.\n\nIt handles all the caching and HTTP calls.\n\n## Usage\n\n```javascript\nvar RegClient = require('npm-registry-client')\nvar client = new RegClient(config)\nvar uri = \"https://registry.npmjs.org/npm\"\nvar params = {timeout: 1000}\n\nclient.get(uri, params, function (error, data, raw, res) {\n // error is an error if there was a problem.\n // data is the parsed data object\n // raw is the json string\n // res is the response from couch\n})\n```\n\n# Registry URLs\n\nThe registry calls take either a full URL pointing to a resource in the\nregistry, or a base URL for the registry as a whole (including the registry\npath – but be sure to terminate the path with `/`). `http` and `https` URLs are\nthe only ones supported.\n\n## Using the client\n\nEvery call to the client follows the same pattern:\n\n* `uri` {String} The *fully-qualified* URI of the registry API method being\n invoked.\n* `params` {Object} Per-request parameters.\n* `callback` {Function} Callback to be invoked when the call is complete.\n\n### Credentials\n\nMany requests to the registry can by authenticated, and require credentials\nfor authorization. These credentials always look the same:\n\n* `username` {String}\n* `password` {String}\n* `email` {String}\n* `alwaysAuth` {Boolean} Whether calls to the target registry are always\n authed.\n\n**or**\n\n* `token` {String}\n* `alwaysAuth` {Boolean} Whether calls to the target registry are always\n authed.\n\n## API\n\n### client.access(uri, params, cb)\n\n* `uri` {String} Registry URL for the package's access API endpoint.\n Looks like `/-/package//access`.\n* `params` {Object} Object containing per-request properties.\n * `access` {String} New access level for the package. Can be either\n `public` or `restricted`. Registry will raise an error if trying\n to change the access level of an unscoped package.\n * `auth` {Credentials}\n\nSet the access level for scoped packages. For now, there are only two\naccess levels: \"public\" and \"restricted\".\n\n### client.adduser(uri, params, cb)\n\n* `uri` {String} Base registry URL.\n* `params` {Object} Object containing per-request properties.\n * `auth` {Credentials}\n* `cb` {Function}\n * `error` {Error | null}\n * `data` {Object} the parsed data object\n * `raw` {String} the json\n * `res` {Response Object} response from couch\n\nAdd a user account to the registry, or verify the credentials.\n\n### client.deprecate(uri, params, cb)\n\n* `uri` {String} Full registry URI for the deprecated package.\n* `params` {Object} Object containing per-request properties.\n * `version` {String} Semver version range.\n * `message` {String} The message to use as a deprecation warning.\n * `auth` {Credentials}\n* `cb` {Function}\n\nDeprecate a version of a package in the registry.\n\n### client.distTags.fetch(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `package` {String} Name of the package.\n * `auth` {Credentials}\n* `cb` {Function}\n\nFetch all of the `dist-tags` for the named package.\n\n### client.distTags.add(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `package` {String} Name of the package.\n * `distTag` {String} Name of the new `dist-tag`.\n * `version` {String} Exact version to be mapped to the `dist-tag`.\n * `auth` {Credentials}\n* `cb` {Function}\n\nAdd (or replace) a single dist-tag onto the named package.\n\n### client.distTags.set(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `package` {String} Name of the package.\n * `distTags` {Object} Object containing a map from tag names to package\n versions.\n * `auth` {Credentials}\n* `cb` {Function}\n\nSet all of the `dist-tags` for the named package at once, creating any\n`dist-tags` that do not already exit. Any `dist-tags` not included in the\n`distTags` map will be removed.\n\n### client.distTags.update(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `package` {String} Name of the package.\n * `distTags` {Object} Object containing a map from tag names to package\n versions.\n * `auth` {Credentials}\n* `cb` {Function}\n\nUpdate the values of multiple `dist-tags`, creating any `dist-tags` that do\nnot already exist. Any pre-existing `dist-tags` not included in the `distTags`\nmap will be left alone.\n\n### client.distTags.rm(uri, params, cb)\n\n* `uri` {String} Base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `package` {String} Name of the package.\n * `distTag` {String} Name of the new `dist-tag`.\n * `auth` {Credentials}\n* `cb` {Function}\n\nRemove a single `dist-tag` from the named package.\n\n### client.get(uri, params, cb)\n\n* `uri` {String} The complete registry URI to fetch\n* `params` {Object} Object containing per-request properties.\n * `timeout` {Number} Duration before the request times out. Optional\n (default: never).\n * `follow` {Boolean} Follow 302/301 responses. Optional (default: true).\n * `staleOk` {Boolean} If there's cached data available, then return that to\n the callback quickly, and update the cache the background. Optional\n (default: false).\n * `auth` {Credentials} Optional.\n* `cb` {Function}\n\nFetches data from the registry via a GET request, saving it in the cache folder\nwith the ETag or the \"Last Modified\" timestamp.\n\n### client.publish(uri, params, cb)\n\n* `uri` {String} The registry URI for the package to publish.\n* `params` {Object} Object containing per-request properties.\n * `metadata` {Object} Package metadata.\n * `access` {String} Access for the package. Can be `public` or `restricted` (no default).\n * `body` {Stream} Stream of the package body / tarball.\n * `auth` {Credentials}\n* `cb` {Function}\n\nPublish a package to the registry.\n\nNote that this does not create the tarball from a folder.\n\n### client.star(uri, params, cb)\n\n* `uri` {String} The complete registry URI for the package to star.\n* `params` {Object} Object containing per-request properties.\n * `starred` {Boolean} True to star the package, false to unstar it. Optional\n (default: false).\n * `auth` {Credentials}\n* `cb` {Function}\n\nStar or unstar a package.\n\nNote that the user does not have to be the package owner to star or unstar a\npackage, though other writes do require that the user be the package owner.\n\n### client.stars(uri, params, cb)\n\n* `uri` {String} The base URL for the registry.\n* `params` {Object} Object containing per-request properties.\n * `username` {String} Name of user to fetch starred packages for. Optional\n (default: user in `auth`).\n * `auth` {Credentials} Optional (required if `username` is omitted).\n* `cb` {Function}\n\nView your own or another user's starred packages.\n\n### client.tag(uri, params, cb)\n\n* `uri` {String} The complete registry URI to tag\n* `params` {Object} Object containing per-request properties.\n * `version` {String} Version to tag.\n * `tag` {String} Tag name to apply.\n * `auth` {Credentials}\n* `cb` {Function}\n\nMark a version in the `dist-tags` hash, so that `pkg@tag` will fetch the\nspecified version.\n\n### client.unpublish(uri, params, cb)\n\n* `uri` {String} The complete registry URI of the package to unpublish.\n* `params` {Object} Object containing per-request properties.\n * `version` {String} version to unpublish. Optional – omit to unpublish all\n versions.\n * `auth` {Credentials}\n* `cb` {Function}\n\nRemove a version of a package (or all versions) from the registry. When the\nlast version us unpublished, the entire document is removed from the database.\n\n### client.whoami(uri, params, cb)\n\n* `uri` {String} The base registry for the URI.\n* `params` {Object} Object containing per-request properties.\n * `auth` {Credentials}\n* `cb` {Function}\n\nSimple call to see who the registry thinks you are. Especially useful with\ntoken-based auth.\n\n\n## PLUMBING\n\nThe below are primarily intended for use by the rest of the API, or by the npm\ncaching logic directly.\n\n### client.request(uri, params, cb)\n\n* `uri` {String} URI pointing to the resource to request.\n* `params` {Object} Object containing per-request properties.\n * `method` {String} HTTP method. Optional (default: \"GET\").\n * `body` {Stream | Buffer | String | Object} The request body. Objects\n that are not Buffers or Streams are encoded as JSON. Optional – body\n only used for write operations.\n * `etag` {String} The cached ETag. Optional.\n * `lastModified` {String} The cached Last-Modified timestamp. Optional.\n * `follow` {Boolean} Follow 302/301 responses. Optional (default: true).\n * `auth` {Credentials} Optional.\n* `cb` {Function}\n * `error` {Error | null}\n * `data` {Object} the parsed data object\n * `raw` {String} the json\n * `res` {Response Object} response from couch\n\nMake a generic request to the registry. All the other methods are wrappers\naround `client.request`.\n\n### client.fetch(uri, params, cb)\n\n* `uri` {String} The complete registry URI to upload to\n* `params` {Object} Object containing per-request properties.\n * `headers` {Stream} HTTP headers to be included with the request. Optional.\n * `auth` {Credentials} Optional.\n* `cb` {Function}\n\nFetch a package from a URL, with auth set appropriately if included. Used to\ncache remote tarballs as well as request package tarballs from the registry.\n\n# Configuration\n\nThe client uses its own configuration, which is just passed in as a simple\nnested object. The following are the supported values (with their defaults, if\nany):\n\n* `proxy.http` {URL} The URL to proxy HTTP requests through.\n* `proxy.https` {URL} The URL to proxy HTTPS requests through. Defaults to be\n the same as `proxy.http` if unset.\n* `proxy.localAddress` {IP} The local address to use on multi-homed systems.\n* `ssl.ca` {String} Certificate signing authority certificates to trust.\n* `ssl.certificate` {String} Client certificate (PEM encoded). Enable access\n to servers that require client certificates.\n* `ssl.key` {String} Private key (PEM encoded) for client certificate.\n* `ssl.strict` {Boolean} Whether or not to be strict with SSL certificates.\n Default = `true`\n* `retry.count` {Number} Number of times to retry on GET failures. Default = 2.\n* `retry.factor` {Number} `factor` setting for `node-retry`. Default = 10.\n* `retry.minTimeout` {Number} `minTimeout` setting for `node-retry`.\n Default = 10000 (10 seconds)\n* `retry.maxTimeout` {Number} `maxTimeout` setting for `node-retry`.\n Default = 60000 (60 seconds)\n* `userAgent` {String} User agent header to send. Default =\n `\"node/{process.version}\"`\n* `log` {Object} The logger to use. Defaults to `require(\"npmlog\")` if\n that works, otherwise logs are disabled.\n* `defaultTag` {String} The default tag to use when publishing new packages.\n Default = `\"latest\"`\n* `couchToken` {Object} A token for use with\n [couch-login](https://npmjs.org/package/couch-login).\n* `sessionToken` {string} A random identifier for this set of client requests.\n Default = 8 random hexadecimal bytes.\n", - "readmeFilename": "README.md", - "gitHead": "06f188917bf575fe7dc7c2f6d1d4adbaa50bc423", - "bugs": { - "url": "https://github.com/isaacs/npm-registry-client/issues" + "repository": { + "url": "git://github.com/isaacs/npm-registry-client.git" }, - "homepage": "https://github.com/isaacs/npm-registry-client#readme", - "_id": "npm-registry-client@7.0.7", - "_shasum": "899d7c8fefe87b72a70d8c9e075fb874539e0d3e", - "_from": "npm-registry-client@7.0.7" + "scripts": { + "test": "standard && tap test/*.js" + }, + "version": "7.0.7" } diff --git a/deps/npm/node_modules/npm-user-validate/package.json b/deps/npm/node_modules/npm-user-validate/package.json index 8a27d7cfe1ad494910fa198655a16a0d3bb55cb1..69c37fe875acd113f91a10f32d4bfc6dacbfa747 100644 --- a/deps/npm/node_modules/npm-user-validate/package.json +++ b/deps/npm/node_modules/npm-user-validate/package.json @@ -1,46 +1,63 @@ { - "name": "npm-user-validate", - "version": "0.1.2", - "description": "User validations for npm", - "main": "npm-user-validate.js", - "devDependencies": { - "tap": "0.4.3" - }, - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "npm-user-validate@~0.1.2", + "/Users/rebecca/code/npm" + ] + ], + "_from": "npm-user-validate@>=0.1.2 <0.2.0", + "_id": "npm-user-validate@0.1.2", + "_inCache": true, + "_location": "/npm-user-validate", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" }, - "repository": { - "type": "git", - "url": "git://github.com/npm/npm-user-validate.git" + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "npm-user-validate", + "raw": "npm-user-validate@~0.1.2", + "rawSpec": "~0.1.2", + "scope": null, + "spec": ">=0.1.2 <0.2.0", + "type": "range" }, - "keywords": [ - "npm", - "validation", - "registry" + "_requiredBy": [ + "/" ], + "_resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.2.tgz", + "_shasum": "d585da0b47c9f41a9e6ca684b6fd84ba41ebe87d", + "_shrinkwrap": null, + "_spec": "npm-user-validate@~0.1.2", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Robert Kowalski", - "email": "rok@kowalski.gd" + "email": "rok@kowalski.gd", + "name": "Robert Kowalski" }, - "license": "BSD-2-Clause", - "gitHead": "e5b280babff5b73fe74b496461bcf424a51881e1", "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", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" + "dependencies": {}, + "description": "User validations for npm", + "devDependencies": { + "tap": "0.4.3" }, + "directories": {}, "dist": { "shasum": "d585da0b47c9f41a9e6ca684b6fd84ba41ebe87d", "tarball": "http://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.2.tgz" }, + "gitHead": "e5b280babff5b73fe74b496461bcf424a51881e1", + "homepage": "https://github.com/npm/npm-user-validate#readme", + "keywords": [ + "npm", + "registry", + "validation" + ], + "license": "BSD-2-Clause", + "main": "npm-user-validate.js", "maintainers": [ { "name": "robertkowalski", @@ -51,6 +68,14 @@ "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.2.tgz" + "name": "npm-user-validate", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/npm/npm-user-validate.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "0.1.2" } diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/package.json deleted file mode 100644 index 227173e6401edddb852fb25e88a03dc764c98afb..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/npmlog/node_modules/gauge/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "gauge", - "version": "1.2.0", - "description": "A terminal based horizontal guage", - "main": "progress-bar.js", - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/iarna/gauge.git" - }, - "keywords": [ - "progressbar", - "progress", - "gauge" - ], - "author": { - "name": "Rebecca Turner", - "email": "me@re-becca.org" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/iarna/gauge/issues" - }, - "homepage": "https://github.com/iarna/gauge", - "dependencies": { - "ansi": "^0.3.0", - "has-unicode": "^1.0.0", - "lodash.pad": "^3.0.0", - "lodash.padleft": "^3.0.0", - "lodash.padright": "^3.0.0" - }, - "devDependencies": { - "tap": "^0.4.13" - }, - "gitHead": "db15c35374816b3fc3b9e1e54866f31ed7f4a733", - "_id": "gauge@1.2.0", - "_shasum": "3094ab1285633f799814388fc8f2de67b4c012c5", - "_from": "gauge@>=1.2.0 <1.3.0", - "_npmVersion": "2.6.0", - "_nodeVersion": "1.1.0", - "_npmUser": { - "name": "iarna", - "email": "me@re-becca.org" - }, - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - } - ], - "dist": { - "shasum": "3094ab1285633f799814388fc8f2de67b4c012c5", - "tarball": "http://registry.npmjs.org/gauge/-/gauge-1.2.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.0.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 1613546d9f195c5c6b2c67e56e216d9534fe2213..755274a19354aaad73b401125c414ba8096765d8 100644 --- a/deps/npm/node_modules/npmlog/package.json +++ b/deps/npm/node_modules/npmlog/package.json @@ -1,47 +1,66 @@ { + "_args": [ + [ + "npmlog@~1.2.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "npmlog@>=1.2.1 <1.3.0", + "_id": "npmlog@1.2.1", + "_inCache": true, + "_location": "/npmlog", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "npmlog", + "raw": "npmlog@~1.2.1", + "rawSpec": "~1.2.1", + "scope": null, + "spec": ">=1.2.1 <1.3.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/node-gyp", + "/npm-install-checks", + "/npm-registry-client" + ], + "_resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz", + "_shasum": "28e7be619609b53f7ad1dd300a10d64d716268b6", + "_shrinkwrap": null, + "_spec": "npmlog@~1.2.1", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "npmlog", - "description": "logger for npm", - "version": "1.2.1", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/npmlog.git" - }, - "main": "log.js", - "scripts": { - "test": "tap test/*.js" + "bugs": { + "url": "https://github.com/isaacs/npmlog/issues" }, "dependencies": { "ansi": "~0.3.0", "are-we-there-yet": "~1.0.0", "gauge": "~1.2.0" }, + "description": "logger for npm", "devDependencies": { "tap": "" }, - "license": "ISC", - "gitHead": "4e1a73a567036064ded425a7d48c863d53550b4f", - "bugs": { - "url": "https://github.com/isaacs/npmlog/issues" - }, - "homepage": "https://github.com/isaacs/npmlog#readme", - "_id": "npmlog@1.2.1", - "_shasum": "28e7be619609b53f7ad1dd300a10d64d716268b6", - "_from": "npmlog@>=1.2.1 <1.3.0", - "_npmVersion": "2.10.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, + "directories": {}, "dist": { "shasum": "28e7be619609b53f7ad1dd300a10d64d716268b6", "tarball": "http://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz" }, + "gitHead": "4e1a73a567036064ded425a7d48c863d53550b4f", + "homepage": "https://github.com/isaacs/npmlog#readme", + "license": "ISC", + "main": "log.js", "maintainers": [ { "name": "isaacs", @@ -52,7 +71,14 @@ "email": "me@re-becca.org" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz", - "readme": "ERROR: No README data found!" + "name": "npmlog", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/npmlog.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.2.1" } diff --git a/deps/npm/node_modules/request/node_modules/oauth-sign/LICENSE b/deps/npm/node_modules/oauth-sign/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/oauth-sign/LICENSE rename to deps/npm/node_modules/oauth-sign/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/oauth-sign/README.md b/deps/npm/node_modules/oauth-sign/README.md similarity index 81% rename from deps/npm/node_modules/request/node_modules/oauth-sign/README.md rename to deps/npm/node_modules/oauth-sign/README.md index 34c4a85d2dde059f22e22a9d4b770d367448e5c3..af496148e4815aadc6d78c44e55a28ab15aaa583 100644 --- a/deps/npm/node_modules/request/node_modules/oauth-sign/README.md +++ b/deps/npm/node_modules/oauth-sign/README.md @@ -1,4 +1,4 @@ oauth-sign ========== -OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. +OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. diff --git a/deps/npm/node_modules/request/node_modules/oauth-sign/index.js b/deps/npm/node_modules/oauth-sign/index.js similarity index 98% rename from deps/npm/node_modules/request/node_modules/oauth-sign/index.js rename to deps/npm/node_modules/oauth-sign/index.js index a587541dc577e6b7eb9e32bcf8b21a0331a218be..5a70f3f8cdc43b6bfc9fe00f943339223fbcb08a 100644 --- a/deps/npm/node_modules/request/node_modules/oauth-sign/index.js +++ b/deps/npm/node_modules/oauth-sign/index.js @@ -45,7 +45,7 @@ function compare (a, b) { } function generateBase (httpMethod, base_uri, params) { - // adapted from https://dev.twitter.com/docs/auth/oauth and + // adapted from https://dev.twitter.com/docs/auth/oauth and // https://dev.twitter.com/docs/auth/creating-signature // Parameter normalization diff --git a/deps/npm/node_modules/request/node_modules/oauth-sign/package.json b/deps/npm/node_modules/oauth-sign/package.json similarity index 70% rename from deps/npm/node_modules/request/node_modules/oauth-sign/package.json rename to deps/npm/node_modules/oauth-sign/package.json index eeaaa68d3596ce6defea1a4c40dab608c0474fef..6fd0150221fab143a5427ceb767d887f26f07115 100644 --- a/deps/npm/node_modules/request/node_modules/oauth-sign/package.json +++ b/deps/npm/node_modules/oauth-sign/package.json @@ -1,40 +1,60 @@ { + "_args": [ + [ + "oauth-sign@~0.8.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "oauth-sign@>=0.8.0 <0.9.0", + "_id": "oauth-sign@0.8.0", + "_inCache": true, + "_location": "/oauth-sign", + "_nodeVersion": "0.12.4", + "_npmUser": { + "email": "simeonvelichkov@gmail.com", + "name": "simov" + }, + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "oauth-sign", + "raw": "oauth-sign@~0.8.0", + "rawSpec": "~0.8.0", + "scope": null, + "spec": ">=0.8.0 <0.9.0", + "type": "range" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz", + "_shasum": "938fdc875765ba527137d8aec9d178e24debc553", + "_shrinkwrap": null, + "_spec": "oauth-sign@~0.8.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", "author": { - "name": "Mikeal Rogers", "email": "mikeal.rogers@gmail.com", + "name": "Mikeal Rogers", "url": "http://www.futurealoof.com" }, - "name": "oauth-sign", - "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.", - "version": "0.8.0", - "license": "Apache-2.0", - "repository": { - "url": "git+https://github.com/mikeal/oauth-sign.git" + "bugs": { + "url": "https://github.com/mikeal/oauth-sign/issues" }, - "main": "index.js", "dependencies": {}, + "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.", "devDependencies": {}, - "optionalDependencies": {}, + "directories": {}, + "dist": { + "shasum": "938fdc875765ba527137d8aec9d178e24debc553", + "tarball": "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" + }, "engines": { "node": "*" }, - "scripts": { - "test": "node test.js" - }, "gitHead": "e1f2b42ff039901ce977f8e81918767d97d496b5", - "bugs": { - "url": "https://github.com/mikeal/oauth-sign/issues" - }, "homepage": "https://github.com/mikeal/oauth-sign#readme", - "_id": "oauth-sign@0.8.0", - "_shasum": "938fdc875765ba527137d8aec9d178e24debc553", - "_from": "oauth-sign@>=0.8.0 <0.9.0", - "_npmVersion": "2.10.1", - "_nodeVersion": "0.12.4", - "_npmUser": { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - }, + "license": "Apache-2.0", + "main": "index.js", "maintainers": [ { "name": "mikeal", @@ -49,11 +69,13 @@ "email": "simeonvelichkov@gmail.com" } ], - "dist": { - "shasum": "938fdc875765ba527137d8aec9d178e24debc553", - "tarball": "http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" + "name": "oauth-sign", + "optionalDependencies": {}, + "repository": { + "url": "git+https://github.com/mikeal/oauth-sign.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "node test.js" + }, + "version": "0.8.0" } diff --git a/deps/npm/node_modules/request/node_modules/oauth-sign/test.js b/deps/npm/node_modules/oauth-sign/test.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/oauth-sign/test.js rename to deps/npm/node_modules/oauth-sign/test.js index a8847270df5e3bb844d74b0567befc9058b09d2f..4cd02b8aa2196795c3f14948ffd4e36d4bdb9c7f 100644 --- a/deps/npm/node_modules/request/node_modules/oauth-sign/test.js +++ b/deps/npm/node_modules/oauth-sign/test.js @@ -6,7 +6,7 @@ var oauth = require('./index') // Tests from Twitter documentation https://dev.twitter.com/docs/auth/oauth -var reqsign = hmacsign('POST', 'https://api.twitter.com/oauth/request_token', +var reqsign = hmacsign('POST', 'https://api.twitter.com/oauth/request_token', { oauth_callback: 'http://localhost:3005/the_dance/process_callback?service_provider_id=11' , oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g' , oauth_nonce: 'QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk' @@ -28,12 +28,12 @@ var accsign = hmacsign('POST', 'https://api.twitter.com/oauth/access_token', , oauth_verifier: 'pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY' , oauth_version: '1.0' }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA") - + console.log(accsign) console.log('PUw/dHA4fnlJYM6RhXk5IU/0fCc=') assert.equal(accsign, 'PUw/dHA4fnlJYM6RhXk5IU/0fCc=') -var upsign = hmacsign('POST', 'http://api.twitter.com/1/statuses/update.json', +var upsign = hmacsign('POST', 'http://api.twitter.com/1/statuses/update.json', { oauth_consumer_key: "GDdmIQH6jhtmLUypg82g" , oauth_nonce: "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" , oauth_signature_method: "HMAC-SHA1" diff --git a/deps/npm/node_modules/once/package.json b/deps/npm/node_modules/once/package.json index c85f12ebe1d4fa55a604bb58a3628f250a7b7d6d..06f4e27a6c990bb4639aeb6a9e05759551567312 100644 --- a/deps/npm/node_modules/once/package.json +++ b/deps/npm/node_modules/once/package.json @@ -1,60 +1,90 @@ { - "name": "once", - "version": "1.3.2", - "description": "Run a function exactly one time", - "main": "once.js", - "directories": { - "test": "test" - }, - "dependencies": { - "wrappy": "1" - }, - "devDependencies": { - "tap": "~0.3.0" - }, - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "once@~1.3.2", + "/Users/rebecca/code/npm" + ] + ], + "_from": "once@>=1.3.2 <1.4.0", + "_id": "once@1.3.2", + "_inCache": true, + "_location": "/once", + "_nodeVersion": "2.0.0", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/once.git" + "_npmVersion": "2.9.1", + "_phantomChildren": {}, + "_requested": { + "name": "once", + "raw": "once@~1.3.2", + "rawSpec": "~1.3.2", + "scope": null, + "spec": ">=1.3.2 <1.4.0", + "type": "range" }, - "keywords": [ - "once", - "function", - "one", - "single" + "_requiredBy": [ + "/", + "/glob", + "/inflight", + "/node-gyp/glob", + "/npm-registry-client", + "/read-package-tree", + "/readdir-scoped-modules", + "/rimraf/glob" ], + "_resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", + "_shasum": "d8feeca93b039ec1dcdee7741c92bdac5e28081b", + "_shrinkwrap": null, + "_spec": "once@~1.3.2", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "license": "ISC", - "gitHead": "e35eed5a7867574e2bf2260a1ba23970958b22f2", "bugs": { "url": "https://github.com/isaacs/once/issues" }, - "homepage": "https://github.com/isaacs/once#readme", - "_id": "once@1.3.2", - "_shasum": "d8feeca93b039ec1dcdee7741c92bdac5e28081b", - "_from": "once@>=1.3.2 <1.4.0", - "_npmVersion": "2.9.1", - "_nodeVersion": "2.0.0", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" + "dependencies": { + "wrappy": "1" + }, + "description": "Run a function exactly one time", + "devDependencies": { + "tap": "~0.3.0" + }, + "directories": { + "test": "test" }, "dist": { "shasum": "d8feeca93b039ec1dcdee7741c92bdac5e28081b", "tarball": "http://registry.npmjs.org/once/-/once-1.3.2.tgz" }, + "gitHead": "e35eed5a7867574e2bf2260a1ba23970958b22f2", + "homepage": "https://github.com/isaacs/once#readme", + "keywords": [ + "function", + "once", + "one", + "single" + ], + "license": "ISC", + "main": "once.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "_resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", - "readme": "ERROR: No README data found!" + "name": "once", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/once.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.3.2" } diff --git a/deps/npm/node_modules/opener/package.json b/deps/npm/node_modules/opener/package.json index aab02afc15bcb6bd7241522b47711279dd5e10a8..44e43737e07f49103bb7bbc3eb0e23f4fc5dad2f 100644 --- a/deps/npm/node_modules/opener/package.json +++ b/deps/npm/node_modules/opener/package.json @@ -1,54 +1,79 @@ { - "name": "opener", - "description": "Opens stuff, like webpages and files and executables, cross-platform", - "version": "1.4.1", + "_args": [ + [ + "opener@~1.4.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "opener@>=1.4.1 <1.5.0", + "_id": "opener@1.4.1", + "_inCache": true, + "_location": "/opener", + "_nodeVersion": "1.5.1", + "_npmUser": { + "email": "d@domenic.me", + "name": "domenic" + }, + "_npmVersion": "2.7.0", + "_phantomChildren": {}, + "_requested": { + "name": "opener", + "raw": "opener@~1.4.1", + "rawSpec": "~1.4.1", + "scope": null, + "spec": ">=1.4.1 <1.5.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/opener/-/opener-1.4.1.tgz", + "_shasum": "897590acd1aed3311b703b58bccb4d43f56f2895", + "_shrinkwrap": null, + "_spec": "opener@~1.4.1", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Domenic Denicola", "email": "d@domenic.me", + "name": "Domenic Denicola", "url": "https://domenic.me/" }, - "license": "WTFPL", - "repository": { - "type": "git", - "url": "https://github.com/domenic/opener" - }, - "main": "opener.js", "bin": { "opener": "opener.js" }, - "files": [ - "opener.js" - ], - "scripts": { - "lint": "jshint opener.js" + "bugs": { + "url": "https://github.com/domenic/opener/issues" }, + "dependencies": {}, + "description": "Opens stuff, like webpages and files and executables, cross-platform", "devDependencies": { "jshint": "^2.6.3" }, - "gitHead": "d0ee95b19951703462fa593baa16e81fdff7827c", - "bugs": { - "url": "https://github.com/domenic/opener/issues" + "directories": {}, + "dist": { + "shasum": "897590acd1aed3311b703b58bccb4d43f56f2895", + "tarball": "http://registry.npmjs.org/opener/-/opener-1.4.1.tgz" }, + "files": [ + "opener.js" + ], + "gitHead": "d0ee95b19951703462fa593baa16e81fdff7827c", "homepage": "https://github.com/domenic/opener", - "_id": "opener@1.4.1", - "_shasum": "897590acd1aed3311b703b58bccb4d43f56f2895", - "_from": "opener@>=1.4.1 <1.5.0", - "_npmVersion": "2.7.0", - "_nodeVersion": "1.5.1", - "_npmUser": { - "name": "domenic", - "email": "d@domenic.me" - }, + "license": "WTFPL", + "main": "opener.js", "maintainers": [ { "name": "domenic", "email": "domenic@domenicdenicola.com" } ], - "dist": { - "shasum": "897590acd1aed3311b703b58bccb4d43f56f2895", - "tarball": "http://registry.npmjs.org/opener/-/opener-1.4.1.tgz" + "name": "opener", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/domenic/opener" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/opener/-/opener-1.4.1.tgz" + "scripts": { + "lint": "jshint opener.js" + }, + "version": "1.4.1" } diff --git a/deps/npm/node_modules/osenv/node_modules/os-homedir/index.js b/deps/npm/node_modules/os-homedir/index.js similarity index 85% rename from deps/npm/node_modules/osenv/node_modules/os-homedir/index.js rename to deps/npm/node_modules/os-homedir/index.js index 758ff653df10a9828346ed586584f8f35a1fb749..33066166fe66929f71e2f4221a131c1e20df46c8 100644 --- a/deps/npm/node_modules/osenv/node_modules/os-homedir/index.js +++ b/deps/npm/node_modules/os-homedir/index.js @@ -15,7 +15,7 @@ function homedir() { } if (process.platform === 'linux') { - return home || (user ? (process.getuid() === 0 ? '/root' : '/home/' + user) : null); + return home || (process.getuid() === 0 ? '/root' : (user ? '/home/' + user : null)); } return home || null; diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/license b/deps/npm/node_modules/os-homedir/license similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/license rename to deps/npm/node_modules/os-homedir/license diff --git a/deps/npm/node_modules/osenv/node_modules/os-homedir/package.json b/deps/npm/node_modules/os-homedir/package.json similarity index 52% rename from deps/npm/node_modules/osenv/node_modules/os-homedir/package.json rename to deps/npm/node_modules/os-homedir/package.json index c9a3b650c0516dc277329031e18632bd85f1a9fc..893ce6c2f60daae1a2ac7ceeaa4cee3682a97e88 100644 --- a/deps/npm/node_modules/osenv/node_modules/os-homedir/package.json +++ b/deps/npm/node_modules/os-homedir/package.json @@ -1,70 +1,94 @@ { - "name": "os-homedir", - "version": "1.0.0", - "description": "io.js 2.3.0 os.homedir() ponyfill", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/os-homedir.git" + "_args": [ + [ + "os-homedir@^1.0.0", + "/Users/rebecca/code/npm/node_modules/osenv" + ] + ], + "_from": "os-homedir@>=1.0.0 <2.0.0", + "_id": "os-homedir@1.0.1", + "_inCache": true, + "_location": "/os-homedir", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.11.2", + "_phantomChildren": {}, + "_requested": { + "name": "os-homedir", + "raw": "os-homedir@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" }, + "_requiredBy": [ + "/osenv" + ], + "_resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", + "_shasum": "0d62bdf44b916fd3bbdcf2cab191948fb094f007", + "_shrinkwrap": null, + "_spec": "os-homedir@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/osenv", "author": { - "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/os-homedir/issues" + }, + "dependencies": {}, + "description": "io.js 2.3.0 os.homedir() ponyfill", + "devDependencies": { + "ava": "0.0.4", + "path-exists": "^1.0.0" + }, + "directories": {}, + "dist": { + "shasum": "0d62bdf44b916fd3bbdcf2cab191948fb094f007", + "tarball": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "gitHead": "13ff83fbd13ebe286a6092286b2c634ab4534c5f", + "homepage": "https://github.com/sindresorhus/os-homedir", "keywords": [ "built-in", "core", - "ponyfill", - "polyfill", - "shim", - "os", - "homedir", - "home", "dir", "directory", "folder", - "user", - "path" + "home", + "homedir", + "os", + "path", + "polyfill", + "ponyfill", + "shim", + "user" ], - "devDependencies": { - "ava": "0.0.4", - "path-exists": "^1.0.0" - }, - "gitHead": "7e39e2e049de404f06233fa617ecf46fed997a78", - "bugs": { - "url": "https://github.com/sindresorhus/os-homedir/issues" - }, - "homepage": "https://github.com/sindresorhus/os-homedir", - "_id": "os-homedir@1.0.0", - "_shasum": "e37078bc61b5869063053897257e39ec1261b702", - "_from": "os-homedir@>=1.0.0 <2.0.0", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "e37078bc61b5869063053897257e39ec1261b702", - "tarball": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.0.tgz" - }, + "license": "MIT", "maintainers": [ { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.0.tgz", - "readme": "ERROR: No README data found!" + "name": "os-homedir", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/os-homedir" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/osenv/node_modules/os-homedir/readme.md b/deps/npm/node_modules/os-homedir/readme.md similarity index 100% rename from deps/npm/node_modules/osenv/node_modules/os-homedir/readme.md rename to deps/npm/node_modules/os-homedir/readme.md diff --git a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/index.js b/deps/npm/node_modules/os-tmpdir/index.js similarity index 100% rename from deps/npm/node_modules/osenv/node_modules/os-tmpdir/index.js rename to deps/npm/node_modules/os-tmpdir/index.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/ansi-styles/license b/deps/npm/node_modules/os-tmpdir/license similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/ansi-styles/license rename to deps/npm/node_modules/os-tmpdir/license diff --git a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/package.json b/deps/npm/node_modules/os-tmpdir/package.json similarity index 66% rename from deps/npm/node_modules/osenv/node_modules/os-tmpdir/package.json rename to deps/npm/node_modules/os-tmpdir/package.json index f8b2682bf83cfe681cb78e40dab5375454df16df..76f16c4895e30fcd61e55e0632985f596b4b71dd 100644 --- a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/package.json +++ b/deps/npm/node_modules/os-tmpdir/package.json @@ -1,69 +1,94 @@ { - "name": "os-tmpdir", - "version": "1.0.1", - "description": "Node.js os.tmpdir() ponyfill", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/sindresorhus/os-tmpdir" + "_args": [ + [ + "os-tmpdir@^1.0.0", + "/Users/rebecca/code/npm/node_modules/osenv" + ] + ], + "_from": "os-tmpdir@>=1.0.0 <2.0.0", + "_id": "os-tmpdir@1.0.1", + "_inCache": true, + "_location": "/os-tmpdir", + "_nodeVersion": "0.12.3", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" }, + "_npmVersion": "2.9.1", + "_phantomChildren": {}, + "_requested": { + "name": "os-tmpdir", + "raw": "os-tmpdir@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/osenv" + ], + "_resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz", + "_shasum": "e9b423a1edaf479882562e92ed71d7743a071b6e", + "_shrinkwrap": null, + "_spec": "os-tmpdir@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/osenv", "author": { - "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/os-tmpdir/issues" + }, + "dependencies": {}, + "description": "Node.js os.tmpdir() ponyfill", + "devDependencies": { + "ava": "0.0.4" + }, + "directories": {}, + "dist": { + "shasum": "e9b423a1edaf479882562e92ed71d7743a071b6e", + "tarball": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "gitHead": "5c5d355f81378980db629d60128ad03e02b1c1e5", + "homepage": "https://github.com/sindresorhus/os-tmpdir", "keywords": [ "built-in", "core", - "ponyfill", + "dir", + "directory", + "env", + "environment", + "os", "polyfill", + "ponyfill", "shim", - "os", - "tmpdir", + "temp", "tempdir", "tmp", - "temp", - "dir", - "directory", - "env", - "environment" + "tmpdir" ], - "devDependencies": { - "ava": "0.0.4" - }, - "gitHead": "5c5d355f81378980db629d60128ad03e02b1c1e5", - "bugs": { - "url": "https://github.com/sindresorhus/os-tmpdir/issues" - }, - "homepage": "https://github.com/sindresorhus/os-tmpdir", - "_id": "os-tmpdir@1.0.1", - "_shasum": "e9b423a1edaf479882562e92ed71d7743a071b6e", - "_from": "os-tmpdir@>=1.0.0 <2.0.0", - "_npmVersion": "2.9.1", - "_nodeVersion": "0.12.3", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "e9b423a1edaf479882562e92ed71d7743a071b6e", - "tarball": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" - }, + "license": "MIT", "maintainers": [ { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" + "name": "os-tmpdir", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/os-tmpdir" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/readme.md b/deps/npm/node_modules/os-tmpdir/readme.md similarity index 100% rename from deps/npm/node_modules/osenv/node_modules/os-tmpdir/readme.md rename to deps/npm/node_modules/os-tmpdir/readme.md diff --git a/deps/npm/node_modules/osenv/package.json b/deps/npm/node_modules/osenv/package.json index d5718bdb1111ab8e41060c8a4d4abed7e8d985bb..98144d44157b356613cb0b172671e0d7b51065c3 100644 --- a/deps/npm/node_modules/osenv/package.json +++ b/deps/npm/node_modules/osenv/package.json @@ -1,58 +1,74 @@ { - "name": "osenv", - "version": "0.1.3", - "main": "osenv.js", - "directories": { - "test": "test" + "_args": [ + [ + "osenv@~0.1.2", + "/Users/rebecca/code/npm" + ] + ], + "_from": "osenv@>=0.1.2 <0.2.0", + "_id": "osenv@0.1.3", + "_inCache": true, + "_location": "/osenv", + "_nodeVersion": "2.2.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "3.0.0", + "_phantomChildren": {}, + "_requested": { + "name": "osenv", + "raw": "osenv@~0.1.2", + "rawSpec": "~0.1.2", + "scope": null, + "spec": ">=0.1.2 <0.2.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/node-gyp" + ], + "_resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz", + "_shasum": "83cf05c6d6458fc4d5ac6362ea325d92f2754217", + "_shrinkwrap": null, + "_spec": "osenv@~0.1.2", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/npm/osenv/issues" }, "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" }, + "description": "Look up environment settings specific to different operating systems", "devDependencies": { "tap": "^1.2.0" }, - "scripts": { - "test": "tap test/*.js" + "directories": { + "test": "test" }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/osenv.git" + "dist": { + "shasum": "83cf05c6d6458fc4d5ac6362ea325d92f2754217", + "tarball": "http://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz" }, + "gitHead": "f746b3405d8f9e28054d11b97e1436f6a15016c4", + "homepage": "https://github.com/npm/osenv#readme", "keywords": [ "environment", - "variable", "home", - "tmpdir", "path", "prompt", - "ps1" + "ps1", + "tmpdir", + "variable" ], - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, "license": "ISC", - "description": "Look up environment settings specific to different operating systems", - "gitHead": "f746b3405d8f9e28054d11b97e1436f6a15016c4", - "bugs": { - "url": "https://github.com/npm/osenv/issues" - }, - "homepage": "https://github.com/npm/osenv#readme", - "_id": "osenv@0.1.3", - "_shasum": "83cf05c6d6458fc4d5ac6362ea325d92f2754217", - "_from": "osenv@0.1.3", - "_npmVersion": "3.0.0", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - "dist": { - "shasum": "83cf05c6d6458fc4d5ac6362ea325d92f2754217", - "tarball": "http://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz" - }, + "main": "osenv.js", "maintainers": [ { "name": "isaacs", @@ -71,5 +87,14 @@ "email": "me@re-becca.org" } ], - "_resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz" + "name": "osenv", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/npm/osenv.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "0.1.3" } diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/.npmignore b/deps/npm/node_modules/path-array/.npmignore similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/.npmignore rename to deps/npm/node_modules/path-array/.npmignore diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/.travis.yml b/deps/npm/node_modules/path-array/.travis.yml similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/.travis.yml rename to deps/npm/node_modules/path-array/.travis.yml diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/History.md b/deps/npm/node_modules/path-array/History.md similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/History.md rename to deps/npm/node_modules/path-array/History.md diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/README.md b/deps/npm/node_modules/path-array/README.md similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/README.md rename to deps/npm/node_modules/path-array/README.md diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/index.js b/deps/npm/node_modules/path-array/index.js similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/index.js rename to deps/npm/node_modules/path-array/index.js diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/package.json b/deps/npm/node_modules/path-array/package.json similarity index 66% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/package.json rename to deps/npm/node_modules/path-array/package.json index 41d25482b8677286c33363def398d7f19efb6a5d..1bb9fe1b1040e6c19a190253916b4419a52394fa 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/path-array/package.json +++ b/deps/npm/node_modules/path-array/package.json @@ -1,56 +1,79 @@ { - "name": "path-array", - "version": "1.0.0", - "description": "Treat your $PATH like a JavaScript Array", - "main": "index.js", - "scripts": { - "test": "mocha --reporter spec" + "_args": [ + [ + "path-array@^1.0.0", + "/Users/rebecca/code/npm/node_modules/node-gyp" + ] + ], + "_from": "path-array@>=1.0.0 <2.0.0", + "_id": "path-array@1.0.0", + "_inCache": true, + "_location": "/path-array", + "_npmUser": { + "email": "nathan@tootallnate.net", + "name": "tootallnate" }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/node-path-array.git" + "_npmVersion": "1.4.28", + "_phantomChildren": {}, + "_requested": { + "name": "path-array", + "raw": "path-array@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" }, - "keywords": [ - "PATH", - "env", - "array" + "_requiredBy": [ + "/node-gyp" ], + "_resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.0.tgz", + "_shasum": "6c14130c33084f0150553c657b38397ab67aaa4e", + "_shrinkwrap": null, + "_spec": "path-array@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/node-gyp", "author": { - "name": "Nathan Rajlich", "email": "nathan@tootallnate.net", + "name": "Nathan Rajlich", "url": "http://n8.io/" }, - "license": "MIT", "bugs": { "url": "https://github.com/TooTallNate/node-path-array/issues" }, - "homepage": "https://github.com/TooTallNate/node-path-array", "dependencies": { "array-index": "~0.1.0" }, + "description": "Treat your $PATH like a JavaScript Array", "devDependencies": { "mocha": "~1.16.1" }, - "gitHead": "5d1fedd54e4413459f67e4a4babb024144cd00d0", - "_id": "path-array@1.0.0", - "_shasum": "6c14130c33084f0150553c657b38397ab67aaa4e", - "_from": "path-array@>=1.0.0 <2.0.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" + "directories": {}, + "dist": { + "shasum": "6c14130c33084f0150553c657b38397ab67aaa4e", + "tarball": "http://registry.npmjs.org/path-array/-/path-array-1.0.0.tgz" }, + "gitHead": "5d1fedd54e4413459f67e4a4babb024144cd00d0", + "homepage": "https://github.com/TooTallNate/node-path-array", + "keywords": [ + "PATH", + "array", + "env" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "tootallnate", "email": "nathan@tootallnate.net" } ], - "dist": { - "shasum": "6c14130c33084f0150553c657b38397ab67aaa4e", - "tarball": "http://registry.npmjs.org/path-array/-/path-array-1.0.0.tgz" + "name": "path-array", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/TooTallNate/node-path-array.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "mocha --reporter spec" + }, + "version": "1.0.0" } diff --git a/deps/npm/node_modules/node-gyp/node_modules/path-array/test/test.js b/deps/npm/node_modules/path-array/test/test.js similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/path-array/test/test.js rename to deps/npm/node_modules/path-array/test/test.js diff --git a/deps/npm/node_modules/glob/node_modules/path-is-absolute/index.js b/deps/npm/node_modules/path-is-absolute/index.js similarity index 100% rename from deps/npm/node_modules/glob/node_modules/path-is-absolute/index.js rename to deps/npm/node_modules/path-is-absolute/index.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/escape-string-regexp/license b/deps/npm/node_modules/path-is-absolute/license similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/escape-string-regexp/license rename to deps/npm/node_modules/path-is-absolute/license diff --git a/deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json b/deps/npm/node_modules/path-is-absolute/package.json similarity index 64% rename from deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json rename to deps/npm/node_modules/path-is-absolute/package.json index 39372636f3fb4f52b3cc0961f712437b8a26c753..8a704f11b7b8c070934efacbd198bf9001ac017c 100644 --- a/deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json +++ b/deps/npm/node_modules/path-is-absolute/package.json @@ -1,70 +1,95 @@ { - "name": "path-is-absolute", - "version": "1.0.0", - "description": "Node.js 0.12 path.isAbsolute() ponyfill", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/path-is-absolute.git" + "_args": [ + [ + "path-is-absolute@^1.0.0", + "/Users/rebecca/code/npm/node_modules/glob" + ] + ], + "_from": "path-is-absolute@>=1.0.0 <2.0.0", + "_id": "path-is-absolute@1.0.0", + "_inCache": true, + "_location": "/path-is-absolute", + "_nodeVersion": "0.12.0", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.5.1", + "_phantomChildren": {}, + "_requested": { + "name": "path-is-absolute", + "raw": "path-is-absolute@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" }, + "_requiredBy": [ + "/glob" + ], + "_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", + "_shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912", + "_shrinkwrap": null, + "_spec": "path-is-absolute@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/glob", "author": { - "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/path-is-absolute/issues" + }, + "dependencies": {}, + "description": "Node.js 0.12 path.isAbsolute() ponyfill", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912", + "tarball": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "gitHead": "7a76a0c9f2263192beedbe0a820e4d0baee5b7a1", + "homepage": "https://github.com/sindresorhus/path-is-absolute", "keywords": [ - "path", - "paths", - "file", - "dir", "absolute", - "isabsolute", - "is-absolute", "built-in", - "util", - "utils", + "check", "core", - "ponyfill", + "detect", + "dir", + "file", + "is", + "is-absolute", + "isabsolute", + "path", + "paths", "polyfill", + "ponyfill", "shim", - "is", - "detect", - "check" + "util", + "utils" ], - "gitHead": "7a76a0c9f2263192beedbe0a820e4d0baee5b7a1", - "bugs": { - "url": "https://github.com/sindresorhus/path-is-absolute/issues" - }, - "homepage": "https://github.com/sindresorhus/path-is-absolute", - "_id": "path-is-absolute@1.0.0", - "_shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912", - "_from": "path-is-absolute@>=1.0.0 <2.0.0", - "_npmVersion": "2.5.1", - "_nodeVersion": "0.12.0", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, + "license": "MIT", "maintainers": [ { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } ], - "dist": { - "shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912", - "tarball": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + "name": "path-is-absolute", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/path-is-absolute" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "node test.js" + }, + "version": "1.0.0" } diff --git a/deps/npm/node_modules/glob/node_modules/path-is-absolute/readme.md b/deps/npm/node_modules/path-is-absolute/readme.md similarity index 100% rename from deps/npm/node_modules/glob/node_modules/path-is-absolute/readme.md rename to deps/npm/node_modules/path-is-absolute/readme.md diff --git a/deps/npm/node_modules/path-is-inside/package.json b/deps/npm/node_modules/path-is-inside/package.json index b96d6fea0e8b92013fbb03571e6d5351456f9c8c..fbcf469a361e60a8e3001af7ef97f34646f0e0c8 100644 --- a/deps/npm/node_modules/path-is-inside/package.json +++ b/deps/npm/node_modules/path-is-inside/package.json @@ -1,43 +1,81 @@ { - "name": "path-is-inside", - "description": "Tests whether one path is inside another path", - "keywords": [ - "path", - "directory", - "folder", - "inside", - "relative" + "_args": [ + [ + "path-is-inside@~1.0.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "path-is-inside@>=1.0.0 <1.1.0", + "_id": "path-is-inside@1.0.1", + "_inCache": true, + "_location": "/path-is-inside", + "_npmUser": { + "email": "domenic@domenicdenicola.com", + "name": "domenic" + }, + "_npmVersion": "1.3.25", + "_phantomChildren": {}, + "_requested": { + "name": "path-is-inside", + "raw": "path-is-inside@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" ], - "version": "1.0.1", + "_resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz", + "_shasum": "98d8f1d030bf04bd7aeee4a1ba5485d40318fd89", + "_shrinkwrap": null, + "_spec": "path-is-inside@~1.0.0", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Domenic Denicola", "email": "domenic@domenicdenicola.com", + "name": "Domenic Denicola", "url": "http://domenic.me" }, - "license": "WTFPL", - "repository": { - "type": "git", - "url": "git://github.com/domenic/path-is-inside.git" - }, "bugs": { "url": "http://github.com/domenic/path-is-inside/issues" }, - "main": "lib/path-is-inside.js", - "scripts": { - "test": "mocha", - "lint": "jshint lib" - }, + "dependencies": {}, + "description": "Tests whether one path is inside another path", "devDependencies": { "jshint": "~2.3.0", "mocha": "~1.15.1" }, - "readme": "# Is This Path Inside This Other Path?\n\nIt turns out this question isn't trivial to answer using Node's built-in path APIs. A naive `indexOf`-based solution will fail sometimes on Windows, which is case-insensitive (see e.g. [isaacs/npm#4214][]). You might then think to be clever with `path.resolve`, but you have to be careful to account for situations whether the paths have different drive letters, or else you'll cause bugs like [isaacs/npm#4313][]. And let's not even get started on trailing slashes.\n\nThe **path-is-inside** package will give you a robust, cross-platform way of detecting whether a given path is inside another path.\n\n## Usage\n\nPretty simple. First the path being tested; then the potential parent. Like so:\n\n```js\nvar pathIsInside = require(\"path-is-inside\");\n\npathIsInside(\"/x/y/z\", \"/x/y\") // true\npathIsInside(\"/x/y\", \"/x/y/z\") // false\n```\n\n## OS-Specific Behavior\n\nLike Node's built-in path module, path-is-inside treats all file paths on Windows as case-insensitive, whereas it treats all file paths on *-nix operating systems as case-sensitive. Keep this in mind especially when working on a Mac, where, despite Node's defaults, the OS usually treats paths case-insensitively.\n\nIn practice, this means:\n\n```js\n// On Windows\n\npathIsInside(\"C:\\\\X\\\\Y\\\\Z\", \"C:\\\\x\\\\y\") // true\n\n// On *-nix, including Mac OS X\n\npathIsInside(\"/X/Y/Z\", \"/x/y\") // false\n```\n\n[isaacs/npm#4214]: https://github.com/isaacs/npm/pull/4214\n[isaacs/npm#4313]: https://github.com/isaacs/npm/issues/4313\n", - "readmeFilename": "README.md", - "homepage": "https://github.com/domenic/path-is-inside", - "_id": "path-is-inside@1.0.1", + "directories": {}, "dist": { - "shasum": "c5e6c4764c4cd41f2ac839c53be5621d085726b3" + "shasum": "98d8f1d030bf04bd7aeee4a1ba5485d40318fd89", + "tarball": "http://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz" + }, + "homepage": "https://github.com/domenic/path-is-inside", + "installable": true, + "keywords": [ + "directory", + "folder", + "inside", + "path", + "relative" + ], + "license": "WTFPL", + "main": "lib/path-is-inside.js", + "maintainers": [ + { + "name": "domenic", + "email": "domenic@domenicdenicola.com" + } + ], + "name": "path-is-inside", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/domenic/path-is-inside.git" + }, + "scripts": { + "lint": "jshint lib", + "test": "mocha" }, - "_from": "path-is-inside@1.0.1", - "_resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz" + "version": "1.0.1" } diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml b/deps/npm/node_modules/process-nextick-args/.travis.yml similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml rename to deps/npm/node_modules/process-nextick-args/.travis.yml 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/process-nextick-args/index.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/index.js rename to deps/npm/node_modules/process-nextick-args/index.js diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/license.md b/deps/npm/node_modules/process-nextick-args/license.md similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/license.md rename to deps/npm/node_modules/process-nextick-args/license.md diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/package.json b/deps/npm/node_modules/process-nextick-args/package.json similarity index 57% rename from deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/package.json rename to deps/npm/node_modules/process-nextick-args/package.json index 087586e8f8cedd837be71186a35b2d699222f02e..f6f94b306a9aa8e32204b4bdac854e49d2605ff5 100644 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/package.json +++ b/deps/npm/node_modules/process-nextick-args/package.json @@ -1,45 +1,73 @@ { - "name": "process-nextick-args", - "version": "1.0.3", - "description": "process.nextTick but always with args", - "main": "index.js", - "scripts": { - "test": "node test.js" + "_args": [ + [ + "process-nextick-args@~1.0.0", + "/Users/rebecca/code/npm/node_modules/bl/node_modules/readable-stream" + ] + ], + "_from": "process-nextick-args@>=1.0.0 <1.1.0", + "_id": "process-nextick-args@1.0.3", + "_inCache": true, + "_location": "/process-nextick-args", + "_nodeVersion": "2.5.0", + "_npmUser": { + "email": "calvin.metcalf@gmail.com", + "name": "cwmma" }, - "repository": { - "type": "git", - "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" + "_npmVersion": "2.9.0", + "_phantomChildren": {}, + "_requested": { + "name": "process-nextick-args", + "raw": "process-nextick-args@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" }, + "_requiredBy": [ + "/bl/readable-stream", + "/concat-stream/readable-stream", + "/tap-parser/readable-stream", + "/tap/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz", + "_shasum": "e272eed825d5e9f4ea74d8d73b1fe311c3beb630", + "_shrinkwrap": null, + "_spec": "process-nextick-args@~1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/bl/node_modules/readable-stream", "author": "", - "license": "MIT", "bugs": { "url": "https://github.com/calvinmetcalf/process-nextick-args/issues" }, - "homepage": "https://github.com/calvinmetcalf/process-nextick-args", + "dependencies": {}, + "description": "process.nextTick but always with args", "devDependencies": { "tap": "~0.2.6" }, - "gitHead": "e855846a69662b9489f1ad3dde1ebf2ccc4370b8", - "_id": "process-nextick-args@1.0.3", - "_shasum": "e272eed825d5e9f4ea74d8d73b1fe311c3beb630", - "_from": "process-nextick-args@>=1.0.0 <1.1.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.5.0", - "_npmUser": { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - }, + "directories": {}, "dist": { "shasum": "e272eed825d5e9f4ea74d8d73b1fe311c3beb630", "tarball": "http://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" }, + "gitHead": "e855846a69662b9489f1ad3dde1ebf2ccc4370b8", + "homepage": "https://github.com/calvinmetcalf/process-nextick-args", + "installable": true, + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "cwmma", "email": "calvin.metcalf@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz", - "readme": "ERROR: No README data found!" + "name": "process-nextick-args", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.3" } diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/readme.md b/deps/npm/node_modules/process-nextick-args/readme.md similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/readme.md rename to deps/npm/node_modules/process-nextick-args/readme.md diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/test.js b/deps/npm/node_modules/process-nextick-args/test.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/test.js rename to deps/npm/node_modules/process-nextick-args/test.js diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/.npmignore b/deps/npm/node_modules/promzard/.npmignore similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/.npmignore rename to deps/npm/node_modules/promzard/.npmignore diff --git a/deps/npm/node_modules/char-spinner/LICENSE b/deps/npm/node_modules/promzard/LICENSE similarity index 100% rename from deps/npm/node_modules/char-spinner/LICENSE rename to deps/npm/node_modules/promzard/LICENSE diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/README.md b/deps/npm/node_modules/promzard/README.md similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/README.md rename to deps/npm/node_modules/promzard/README.md diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js b/deps/npm/node_modules/promzard/example/buffer.js similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js rename to deps/npm/node_modules/promzard/example/buffer.js diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/index.js b/deps/npm/node_modules/promzard/example/index.js similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/example/index.js rename to deps/npm/node_modules/promzard/example/index.js diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md b/deps/npm/node_modules/promzard/example/npm-init/README.md similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md rename to deps/npm/node_modules/promzard/example/npm-init/README.md diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js b/deps/npm/node_modules/promzard/example/npm-init/init-input.js similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js rename to deps/npm/node_modules/promzard/example/npm-init/init-input.js diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js b/deps/npm/node_modules/promzard/example/npm-init/init.js similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js rename to deps/npm/node_modules/promzard/example/npm-init/init.js diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json b/deps/npm/node_modules/promzard/example/npm-init/package.json similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json rename to deps/npm/node_modules/promzard/example/npm-init/package.json diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js b/deps/npm/node_modules/promzard/example/substack-input.js similarity index 99% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js rename to deps/npm/node_modules/promzard/example/substack-input.js index bf7aedb82d41fdeb0d0e1006c07e9ed3f90002f6..c049c20f9a2736186cce57e064af0cdf42fb7ca3 100644 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js +++ b/deps/npm/node_modules/promzard/example/substack-input.js @@ -17,7 +17,7 @@ module.exports = { ; } catch (e) {} - + return prompt('description', value); })(), "main" : prompt('entry point', 'index.js'), diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/package.json b/deps/npm/node_modules/promzard/package.json similarity index 61% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/package.json rename to deps/npm/node_modules/promzard/package.json index 1407e97be584d757631d0294ab572946f3aed212..e91ad77dd899accd78fe9b2b57234b8737034132 100644 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/package.json +++ b/deps/npm/node_modules/promzard/package.json @@ -1,51 +1,74 @@ { + "_args": [ + [ + "promzard@^0.3.0", + "/Users/rebecca/code/npm/node_modules/init-package-json" + ] + ], + "_from": "promzard@>=0.3.0 <0.4.0", + "_id": "promzard@0.3.0", + "_inCache": true, + "_location": "/promzard", + "_nodeVersion": "1.4.2", + "_npmUser": { + "email": "i@izs.me", + "name": "isaacs" + }, + "_npmVersion": "2.7.1", + "_phantomChildren": {}, + "_requested": { + "name": "promzard", + "raw": "promzard@^0.3.0", + "rawSpec": "^0.3.0", + "scope": null, + "spec": ">=0.3.0 <0.4.0", + "type": "range" + }, + "_requiredBy": [ + "/init-package-json" + ], + "_resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", + "_shasum": "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee", + "_shrinkwrap": null, + "_spec": "promzard@^0.3.0", + "_where": "/Users/rebecca/code/npm/node_modules/init-package-json", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "promzard", - "description": "prompting wizardly", - "version": "0.3.0", - "repository": { - "url": "git://github.com/isaacs/promzard.git" + "bugs": { + "url": "https://github.com/isaacs/promzard/issues" }, "dependencies": { "read": "1" }, + "description": "prompting wizardly", "devDependencies": { "tap": "~0.2.5" }, - "main": "promzard.js", - "scripts": { - "test": "tap test/*.js" + "directories": {}, + "dist": { + "shasum": "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee", + "tarball": "http://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz" }, - "license": "ISC", "gitHead": "780ead051299aa28be2584199ab6fa503a32d354", - "bugs": { - "url": "https://github.com/isaacs/promzard/issues" - }, "homepage": "https://github.com/isaacs/promzard", - "_id": "promzard@0.3.0", - "_shasum": "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee", - "_from": "promzard@>=0.3.0 <0.4.0", - "_npmVersion": "2.7.1", - "_nodeVersion": "1.4.2", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, + "license": "ISC", + "main": "promzard.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "dist": { - "shasum": "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee", - "tarball": "http://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz" + "name": "promzard", + "optionalDependencies": {}, + "repository": { + "url": "git://github.com/isaacs/promzard" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tap test/*.js" + }, + "version": "0.3.0" } diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/promzard.js b/deps/npm/node_modules/promzard/promzard.js similarity index 99% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/promzard.js rename to deps/npm/node_modules/promzard/promzard.js index da1abca9535e4fbcdaca7f22bd0d33a891c1aa7d..424152a802eb02188ccbcef100bfa9252c1b41bf 100644 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/promzard.js +++ b/deps/npm/node_modules/promzard/promzard.js @@ -235,4 +235,3 @@ PromZard.prototype.prompt = function (pdt, cb) { read({ prompt: prompt + ':' , default: def }, cb) } - diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/basic.js b/deps/npm/node_modules/promzard/test/basic.js similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/test/basic.js rename to deps/npm/node_modules/promzard/test/basic.js diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js b/deps/npm/node_modules/promzard/test/buffer.js similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js rename to deps/npm/node_modules/promzard/test/buffer.js diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input b/deps/npm/node_modules/promzard/test/exports.input similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input rename to deps/npm/node_modules/promzard/test/exports.input diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js b/deps/npm/node_modules/promzard/test/exports.js similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js rename to deps/npm/node_modules/promzard/test/exports.js diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input b/deps/npm/node_modules/promzard/test/fn.input similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input rename to deps/npm/node_modules/promzard/test/fn.input diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js b/deps/npm/node_modules/promzard/test/fn.js similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js rename to deps/npm/node_modules/promzard/test/fn.js diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input b/deps/npm/node_modules/promzard/test/simple.input similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input rename to deps/npm/node_modules/promzard/test/simple.input diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js b/deps/npm/node_modules/promzard/test/simple.js similarity index 97% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js rename to deps/npm/node_modules/promzard/test/simple.js index 034a86475afbd5c0c1c3a1a86c96702a2443be9f..bcf8791113ead73cbd9bb41dc6ed59108f31e5e2 100644 --- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js +++ b/deps/npm/node_modules/promzard/test/simple.js @@ -3,7 +3,7 @@ var promzard = require('../'); test('simple', function (t) { t.plan(1); - + var ctx = { tmpdir : '/tmp' } var file = __dirname + '/simple.input'; promzard(file, ctx, function (err, output) { @@ -19,11 +19,11 @@ test('simple', function (t) { output ); }); - + setTimeout(function () { process.stdin.emit('data', '\n'); }, 100); - + setTimeout(function () { process.stdin.emit('data', '55\n'); }, 200); diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.input b/deps/npm/node_modules/promzard/test/validate.input similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.input rename to deps/npm/node_modules/promzard/test/validate.input diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js b/deps/npm/node_modules/promzard/test/validate.js similarity index 100% rename from deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js rename to deps/npm/node_modules/promzard/test/validate.js diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/LICENSE b/deps/npm/node_modules/proto-list/LICENSE similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/LICENSE rename to deps/npm/node_modules/proto-list/LICENSE diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/README.md b/deps/npm/node_modules/proto-list/README.md similarity index 100% rename from deps/npm/node_modules/config-chain/node_modules/proto-list/README.md rename to deps/npm/node_modules/proto-list/README.md diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/package.json b/deps/npm/node_modules/proto-list/package.json similarity index 63% rename from deps/npm/node_modules/config-chain/node_modules/proto-list/package.json rename to deps/npm/node_modules/proto-list/package.json index 458621ad892adff81351dd8e4f7574452e6c1efe..ff0b6b60598cf89a7c33a872b9101835a26da932 100644 --- a/deps/npm/node_modules/config-chain/node_modules/proto-list/package.json +++ b/deps/npm/node_modules/proto-list/package.json @@ -1,48 +1,73 @@ { - "name": "proto-list", - "version": "1.2.4", - "description": "A utility for managing a prototype chain", - "main": "./proto-list.js", + "_args": [ + [ + "proto-list@~1.2.1", + "/Users/rebecca/code/npm/node_modules/config-chain" + ] + ], + "_from": "proto-list@>=1.2.1 <1.3.0", + "_id": "proto-list@1.2.4", + "_inCache": true, + "_location": "/proto-list", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "proto-list", + "raw": "proto-list@~1.2.1", + "rawSpec": "~1.2.1", + "scope": null, + "spec": ">=1.2.1 <1.3.0", + "type": "range" + }, + "_requiredBy": [ + "/config-chain" + ], + "_resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "_shasum": "212d5bfe1318306a420f6402b8e26ff39647a849", + "_shrinkwrap": null, + "_spec": "proto-list@~1.2.1", + "_where": "/Users/rebecca/code/npm/node_modules/config-chain", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/proto-list.git" - }, - "license": "ISC", - "devDependencies": { - "tap": "0" - }, - "gitHead": "9e4af12d4dddee2fd531f0fe0c21c9cfacb78ac0", "bugs": { "url": "https://github.com/isaacs/proto-list/issues" }, - "homepage": "https://github.com/isaacs/proto-list#readme", - "_id": "proto-list@1.2.4", - "_shasum": "212d5bfe1318306a420f6402b8e26ff39647a849", - "_from": "proto-list@>=1.2.1 <1.3.0", - "_npmVersion": "2.10.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" + "dependencies": {}, + "description": "A utility for managing a prototype chain", + "devDependencies": { + "tap": "0" }, + "directories": {}, "dist": { "shasum": "212d5bfe1318306a420f6402b8e26ff39647a849", "tarball": "http://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" }, + "gitHead": "9e4af12d4dddee2fd531f0fe0c21c9cfacb78ac0", + "homepage": "https://github.com/isaacs/proto-list#readme", + "license": "ISC", + "main": "./proto-list.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + "name": "proto-list", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/proto-list.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.2.4" } diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js b/deps/npm/node_modules/proto-list/proto-list.js similarity index 100% rename from deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js rename to deps/npm/node_modules/proto-list/proto-list.js diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js b/deps/npm/node_modules/proto-list/test/basic.js similarity index 100% rename from deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js rename to deps/npm/node_modules/proto-list/test/basic.js diff --git a/deps/npm/node_modules/request/node_modules/qs/.eslintignore b/deps/npm/node_modules/qs/.eslintignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/.eslintignore rename to deps/npm/node_modules/qs/.eslintignore diff --git a/deps/npm/node_modules/request/node_modules/qs/.npmignore b/deps/npm/node_modules/qs/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/.npmignore rename to deps/npm/node_modules/qs/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/.travis.yml b/deps/npm/node_modules/qs/.travis.yml old mode 100755 new mode 100644 similarity index 98% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/.travis.yml rename to deps/npm/node_modules/qs/.travis.yml index dd1b24f13ac1f8ad02a29423927d1b5442a36bcb..7a64dd2210cb10d8cbe178cebf5f9adf59380d2f --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/.travis.yml +++ b/deps/npm/node_modules/qs/.travis.yml @@ -5,4 +5,3 @@ node_js: - 4.0 sudo: false - diff --git a/deps/npm/node_modules/request/node_modules/qs/CHANGELOG.md b/deps/npm/node_modules/qs/CHANGELOG.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/CHANGELOG.md rename to deps/npm/node_modules/qs/CHANGELOG.md diff --git a/deps/npm/node_modules/request/node_modules/qs/CONTRIBUTING.md b/deps/npm/node_modules/qs/CONTRIBUTING.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/CONTRIBUTING.md rename to deps/npm/node_modules/qs/CONTRIBUTING.md diff --git a/deps/npm/node_modules/request/node_modules/qs/LICENSE b/deps/npm/node_modules/qs/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/LICENSE rename to deps/npm/node_modules/qs/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/qs/Readme.md b/deps/npm/node_modules/qs/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/Readme.md rename to deps/npm/node_modules/qs/README.md diff --git a/deps/npm/node_modules/request/node_modules/qs/bower.json b/deps/npm/node_modules/qs/bower.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/bower.json rename to deps/npm/node_modules/qs/bower.json diff --git a/deps/npm/node_modules/request/node_modules/qs/component.json b/deps/npm/node_modules/qs/component.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/component.json rename to deps/npm/node_modules/qs/component.json diff --git a/deps/npm/node_modules/request/node_modules/qs/dist/qs.js b/deps/npm/node_modules/qs/dist/qs.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/dist/qs.js rename to deps/npm/node_modules/qs/dist/qs.js diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/index.js b/deps/npm/node_modules/qs/lib/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/lib/index.js rename to deps/npm/node_modules/qs/lib/index.js diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/parse.js b/deps/npm/node_modules/qs/lib/parse.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/lib/parse.js rename to deps/npm/node_modules/qs/lib/parse.js diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js b/deps/npm/node_modules/qs/lib/stringify.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/lib/stringify.js rename to deps/npm/node_modules/qs/lib/stringify.js diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/utils.js b/deps/npm/node_modules/qs/lib/utils.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/lib/utils.js rename to deps/npm/node_modules/qs/lib/utils.js diff --git a/deps/npm/node_modules/request/node_modules/qs/package.json b/deps/npm/node_modules/qs/package.json similarity index 66% rename from deps/npm/node_modules/request/node_modules/qs/package.json rename to deps/npm/node_modules/qs/package.json index 981aff4b78e153980ea5e2138ed539171d67647b..c2aba945ddc3b88c3398206d6b1f5ca909bed39e 100644 --- a/deps/npm/node_modules/request/node_modules/qs/package.json +++ b/deps/npm/node_modules/qs/package.json @@ -1,48 +1,62 @@ { - "name": "qs", - "description": "A querystring parser that supports nesting and arrays, with a depth limit", - "homepage": "https://github.com/hapijs/qs", - "version": "5.1.0", - "repository": { - "type": "git", - "url": "git+https://github.com/hapijs/qs.git" + "_args": [ + [ + "qs@~5.1.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "qs@>=5.1.0 <5.2.0", + "_id": "qs@5.1.0", + "_inCache": true, + "_location": "/qs", + "_nodeVersion": "0.12.7", + "_npmUser": { + "email": "quitlahok@gmail.com", + "name": "nlf" }, - "main": "lib/index.js", - "keywords": [ - "querystring", - "qs" + "_npmVersion": "2.14.1", + "_phantomChildren": {}, + "_requested": { + "name": "qs", + "raw": "qs@~5.1.0", + "rawSpec": "~5.1.0", + "scope": null, + "spec": ">=5.1.0 <5.2.0", + "type": "range" + }, + "_requiredBy": [ + "/request" ], - "engines": ">=0.10.40", + "_resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", + "_shasum": "4d932e5c7ea411cca76a312d39a606200fd50cd9", + "_shrinkwrap": null, + "_spec": "qs@~5.1.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", + "bugs": { + "url": "https://github.com/hapijs/qs/issues" + }, "dependencies": {}, + "description": "A querystring parser that supports nesting and arrays, with a depth limit", "devDependencies": { "browserify": "^10.2.1", "code": "1.x.x", "lab": "5.x.x" }, - "scripts": { - "test": "lab -a code -t 100 -L", - "test-tap": "lab -a code -r tap -o tests.tap", - "test-cov-html": "lab -a code -r html -o coverage.html", - "dist": "browserify --standalone Qs lib/index.js > dist/qs.js" - }, - "license": "BSD-3-Clause", - "gitHead": "9e9759ec5be2dd99ce90961bbff47075cd5a8160", - "bugs": { - "url": "https://github.com/hapijs/qs/issues" - }, - "_id": "qs@5.1.0", - "_shasum": "4d932e5c7ea411cca76a312d39a606200fd50cd9", - "_from": "qs@>=5.1.0 <5.2.0", - "_npmVersion": "2.14.1", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "nlf", - "email": "quitlahok@gmail.com" - }, + "directories": {}, "dist": { "shasum": "4d932e5c7ea411cca76a312d39a606200fd50cd9", "tarball": "http://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, + "engines": ">=0.10.40", + "gitHead": "9e9759ec5be2dd99ce90961bbff47075cd5a8160", + "homepage": "https://github.com/hapijs/qs", + "installable": true, + "keywords": [ + "qs", + "querystring" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", "maintainers": [ { "name": "nlf", @@ -53,7 +67,17 @@ "email": "eran@hueniverse.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", - "readme": "ERROR: No README data found!" + "name": "qs", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/hapijs/qs.git" + }, + "scripts": { + "dist": "browserify --standalone Qs lib/index.js > dist/qs.js", + "test": "lab -a code -t 100 -L", + "test-cov-html": "lab -a code -r html -o coverage.html", + "test-tap": "lab -a code -r tap -o tests.tap" + }, + "version": "5.1.0" } diff --git a/deps/npm/node_modules/request/node_modules/qs/test/parse.js b/deps/npm/node_modules/qs/test/parse.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/test/parse.js rename to deps/npm/node_modules/qs/test/parse.js diff --git a/deps/npm/node_modules/request/node_modules/qs/test/stringify.js b/deps/npm/node_modules/qs/test/stringify.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/test/stringify.js rename to deps/npm/node_modules/qs/test/stringify.js diff --git a/deps/npm/node_modules/request/node_modules/qs/test/utils.js b/deps/npm/node_modules/qs/test/utils.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/qs/test/utils.js rename to deps/npm/node_modules/qs/test/utils.js diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore b/deps/npm/node_modules/read-cmd-shim/.npmignore similarity index 65% rename from deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore rename to deps/npm/node_modules/read-cmd-shim/.npmignore index 249bc20eb5573ca9c7954c8ea930e0311880dfef..ac50549639a9762b38433f44c9109c944a2372b4 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +++ b/deps/npm/node_modules/read-cmd-shim/.npmignore @@ -1,2 +1,3 @@ +.#* +*~ node_modules -*.sw* diff --git a/deps/npm/node_modules/read-cmd-shim/README.md b/deps/npm/node_modules/read-cmd-shim/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2f0b5f6cc671e040d44372a87b357f656ef03452 --- /dev/null +++ b/deps/npm/node_modules/read-cmd-shim/README.md @@ -0,0 +1,36 @@ +# read-cmd-shim + +Figure out what a [`cmd-shim`](https://github.com/ForbesLindesay/cmd-shim) +is pointing at. This acts as the equivalent of +[`fs.readlink`](https://nodejs.org/api/fs.html#fs_fs_readlink_path_callback). + +### Usage + +``` +var readCmdShim = require('read-cmd-shim') + +readCmdShim('/path/to/shim.cmd', function (er, destination) { + … +}) + +var destination = readCmdShim.sync('/path/to/shim.cmd') + +### readCmdShim(path, callback) + +Reads the `cmd-shim` located at `path` and calls back with the _relative_ +path that the shim points at. Consider this as roughly the equivalent of +`fs.readlink`. + +This can read both `.cmd` style that are run by the Windows Command Prompt +and Powershell, and the kind without any extension that are used by Cygwin. + +This can return errors that `fs.readFile` returns, except that they'll +include a stack trace from where `readCmdShim` was called. Plus it can +return a special `ENOTASHIM` exception, when it can't find a cmd-shim in the +file referenced by `path`. This should only happen if you pass in a +non-command shim. + + +### readCmdShim.sync(path) + +Same as above but synchronous. Errors are thrown. diff --git a/deps/npm/node_modules/read-cmd-shim/index.js b/deps/npm/node_modules/read-cmd-shim/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6a2265449af268917c89d839de733dc9a1d17544 --- /dev/null +++ b/deps/npm/node_modules/read-cmd-shim/index.js @@ -0,0 +1,54 @@ +'use strict' +var fs = require('graceful-fs') + +function extractPath (path, cmdshimContents) { + if (/[.]cmd$/.test(path)) { + return extractPathFromCmd(cmdshimContents) + } else { + return extractPathFromCygwin(cmdshimContents) + } +} + +function extractPathFromCmd (cmdshimContents) { + var matches = cmdshimContents.match(/"%~dp0\\([^"]+?)"\s+%[*]/) + return matches && matches[1] +} + +function extractPathFromCygwin (cmdshimContents) { + var matches = cmdshimContents.match(/"[$]basedir[/]([^"]+?)"\s+"[$]@"/) + return matches && matches[1] +} + +function wrapError (thrown, newError) { + newError.message = thrown.message + newError.code = thrown.code + return newError +} + +function notaShim (path, er) { + if (!er) { + er = new Error() + Error.captureStackTrace(er, notaShim) + } + er.code = 'ENOTASHIM' + er.message = "Can't read shim path from '" + path + "', it doesn't appear to be a cmd-shim" + return er +} + +var readCmdShim = module.exports = function (path, cb) { + var er = new Error() + Error.captureStackTrace(er, readCmdShim) + fs.readFile(path, function (readFileEr, contents) { + if (readFileEr) return cb(wrapError(readFileEr, er)) + var destination = extractPath(path, contents.toString()) + if (destination) return cb(null, destination) + return cb(notaShim(path, er)) + }) +} + +module.exports.sync = function (path) { + var contents = fs.readFileSync(path) + var destination = extractPath(path, contents.toString()) + if (!destination) throw notaShim(path) + return destination +} diff --git a/deps/npm/node_modules/read-cmd-shim/package.json b/deps/npm/node_modules/read-cmd-shim/package.json new file mode 100644 index 0000000000000000000000000000000000000000..48111968048a2f38a1217c0f9ccb5dfe5001b767 --- /dev/null +++ b/deps/npm/node_modules/read-cmd-shim/package.json @@ -0,0 +1,78 @@ +{ + "_args": [ + [ + "read-cmd-shim", + "/Users/rebecca/code/npm" + ] + ], + "_from": "read-cmd-shim@*", + "_id": "read-cmd-shim@1.0.1", + "_inCache": true, + "_location": "/read-cmd-shim", + "_nodeVersion": "3.1.0", + "_npmUser": { + "email": "me@re-becca.org", + "name": "iarna" + }, + "_npmVersion": "3.3.0", + "_phantomChildren": {}, + "_requested": { + "name": "read-cmd-shim", + "raw": "read-cmd-shim", + "rawSpec": "", + "scope": null, + "spec": "*", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_shasum": "2d5d157786a37c055d22077c32c53f8329e91c7b", + "_shrinkwrap": null, + "_spec": "read-cmd-shim", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "me@re-becca.org", + "name": "Rebecca Turner", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/npm/read-cmd-shim/issues" + }, + "dependencies": { + "graceful-fs": "^4.1.2" + }, + "description": "Figure out what a cmd-shim is pointing at. This acts as the equivalent of fs.readlink.", + "devDependencies": { + "cmd-shim": "^2.0.1", + "rimraf": "^2.4.3", + "standard": "^5.2.2", + "tap": "^1.4.1" + }, + "directories": {}, + "dist": { + "shasum": "2d5d157786a37c055d22077c32c53f8329e91c7b", + "tarball": "http://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz" + }, + "gitHead": "7c50879bf49743a1c69f9d7f0ba1638fc46bb40c", + "homepage": "https://github.com/npm/read-cmd-shim#readme", + "installable": true, + "license": "ISC", + "main": "index.js", + "maintainers": [ + { + "name": "iarna", + "email": "me@re-becca.org" + } + ], + "name": "read-cmd-shim", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/npm/read-cmd-shim.git" + }, + "scripts": { + "test": "standard && tap test/*.js" + }, + "version": "1.0.1" +} diff --git a/deps/npm/node_modules/read-cmd-shim/test/integration.js b/deps/npm/node_modules/read-cmd-shim/test/integration.js new file mode 100644 index 0000000000000000000000000000000000000000..269f964727cd6ba8cde1473cf951b30e6244e659 --- /dev/null +++ b/deps/npm/node_modules/read-cmd-shim/test/integration.js @@ -0,0 +1,139 @@ +'use strict' +var path = require('path') +var fs = require('graceful-fs') +var test = require('tap').test +var rimraf = require('rimraf') +var cmdShim = require('cmd-shim') +var readCmdShim = require('../index.js') +var workDir = path.join(__dirname, path.basename(__filename, '.js')) +var testShbang = path.join(workDir, 'test-shbang') +var testShbangCmd = testShbang + '.cmd' +var testShim = path.join(workDir, 'test') +var testShimCmd = testShim + '.cmd' + +test('setup', function (t) { + rimraf.sync(workDir) + fs.mkdirSync(workDir) + fs.writeFileSync(testShbang + '.js', '#!/usr/bin/env node\ntrue') + cmdShim(__filename, testShim, function (er) { + t.error(er) + cmdShim(testShbang + '.js', testShbang, function (er) { + t.error(er) + t.done() + }) + }) +}) + +test('async-read-no-shbang', function (t) { + t.plan(2) + readCmdShim(testShimCmd, function (er, dest) { + t.error(er) + t.is(dest, '..\\basic.js') + t.done() + }) +}) + +test('sync-read-no-shbang', function (t) { + t.plan(1) + var dest = readCmdShim.sync(testShimCmd) + t.is(dest, '..\\basic.js') + t.done() +}) + +test('async-read-shbang', function (t) { + t.plan(2) + readCmdShim(testShbangCmd, function (er, dest) { + t.error(er) + t.is(dest, 'test-shbang.js') + t.done() + }) +}) + +test('sync-read-shbang', function (t) { + t.plan(1) + var dest = readCmdShim.sync(testShbangCmd) + t.is(dest, 'test-shbang.js') + t.done() +}) + +test('async-read-no-shbang-cygwin', function (t) { + t.plan(2) + readCmdShim(testShim, function (er, dest) { + t.error(er) + t.is(dest, '../basic.js') + t.done() + }) +}) + +test('sync-read-no-shbang-cygwin', function (t) { + t.plan(1) + var dest = readCmdShim.sync(testShim) + t.is(dest, '../basic.js') + t.done() +}) + +test('async-read-shbang-cygwin', function (t) { + t.plan(2) + readCmdShim(testShbang, function (er, dest) { + t.error(er) + t.is(dest, 'test-shbang.js') + t.done() + }) +}) + +test('sync-read-shbang-cygwin', function (t) { + t.plan(1) + var dest = readCmdShim.sync(testShbang) + t.is(dest, 'test-shbang.js') + t.done() +}) + +test('async-read-dir', function (t) { + t.plan(2) + readCmdShim(workDir, function (er) { + t.ok(er) + t.is(er.code, 'EISDIR', "cmd-shims can't be directories") + t.done() + }) +}) + +test('sync-read-dir', function (t) { + t.plan(1) + t.throws(function () { readCmdShim.sync(workDir) }, "cmd-shims can't be directories") + t.done() +}) + +test('async-read-not-there', function (t) { + t.plan(2) + readCmdShim('/path/to/nowhere', function (er, dest) { + t.ok(er, 'missing files throw errors') + t.is(er.code, 'ENOENT', "cmd-shim file doesn't exist") + t.done() + }) +}) + +test('sync-read-not-there', function (t) { + t.plan(1) + t.throws(function () { readCmdShim.sync('/path/to/nowhere') }, "cmd-shim file doesn't exist") + t.done() +}) + +test('async-read-not-shim', function (t) { + t.plan(2) + readCmdShim(__filename, function (er, dest) { + t.ok(er) + t.is(er.code, 'ENOTASHIM', 'shim file specified is not a shim') + t.done() + }) +}) + +test('sync-read-not-shim', function (t) { + t.plan(1) + t.throws(function () { readCmdShim.sync(__filename) }, 'shim file specified is not a shim') + t.done() +}) + +test('cleanup', function (t) { + rimraf.sync(workDir) + t.done() +}) diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/package.json b/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/package.json deleted file mode 100644 index d9c7b715554e8006c298fa5885580186ed71bcb6..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "readdir-scoped-modules", - "version": "1.0.2", - "description": "Like `fs.readdir` but handling `@org/module` dirs as if they were a single entry.", - "main": "readdir.js", - "directories": { - "test": "test" - }, - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - }, - "devDependencies": { - "tap": "^1.2.0" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/readdir-scoped-modules.git" - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/readdir-scoped-modules/issues" - }, - "homepage": "https://github.com/npm/readdir-scoped-modules", - "readme": "# readdir-scoped-modules\n\nLike `fs.readdir` but handling `@org/module` dirs as if they were\na single entry.\n\nUsed by npm.\n\n## USAGE\n\n```javascript\nvar readdir = require('readdir-scoped-modules')\n\nreaddir('node_modules', function (er, entries) {\n // entries will be something like\n // ['a', '@org/foo', '@org/bar']\n})\n```\n", - "readmeFilename": "README.md", - "gitHead": "d41d5de877cb4e9e3f14b92913132680af73d1b4", - "_id": "readdir-scoped-modules@1.0.2", - "_shasum": "9fafa37d286be5d92cbaebdee030dc9b5f406747", - "_from": "readdir-scoped-modules@>=1.0.0 <2.0.0" -} diff --git a/deps/npm/node_modules/read-installed/package.json b/deps/npm/node_modules/read-installed/package.json index b1b3c5fa5a9fbcb4beff49749ee79d7ee2f72ae8..546f7f339c5cb1fa33d3c4211a4b9e5eccea0084 100644 --- a/deps/npm/node_modules/read-installed/package.json +++ b/deps/npm/node_modules/read-installed/package.json @@ -1,46 +1,98 @@ { - "name": "read-installed", - "description": "Read all the installed packages in a folder, and return a tree structure with all the data.", - "version": "4.0.3", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/read-installed.git" + "_args": [ + [ + "read-installed@~4.0.2", + "/Users/rebecca/code/npm" + ] + ], + "_from": "read-installed@>=4.0.2 <4.1.0", + "_id": "read-installed@4.0.3", + "_inCache": true, + "_location": "/read-installed", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" }, - "main": "read-installed.js", - "scripts": { - "test": "tap ./test/*.js" + "_npmVersion": "2.14.3", + "_phantomChildren": {}, + "_requested": { + "name": "read-installed", + "raw": "read-installed@~4.0.2", + "rawSpec": "~4.0.2", + "scope": null, + "spec": ">=4.0.2 <4.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", + "_shasum": "ff9b8b67f187d1e4c29b9feb31f6b223acd19067", + "_shrinkwrap": null, + "_spec": "read-installed@~4.0.2", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/read-installed/issues" }, "dependencies": { "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", "read-package-json": "^2.0.0", "readdir-scoped-modules": "^1.0.0", "semver": "2 || 3 || 4 || 5", "slide": "~1.1.3", - "util-extend": "^1.0.1", - "graceful-fs": "^4.1.2" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.2" - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" + "util-extend": "^1.0.1" }, - "license": "ISC", + "description": "Read all the installed packages in a folder, and return a tree structure with all the data.", "devDependencies": { "mkdirp": "^0.5.0", "rimraf": "^2.2.8", "tap": "^1.2.0" }, - "readme": "# read-installed\n\nRead all the installed packages in a folder, and return a tree\nstructure with all the data.\n\nnpm uses this.\n\n## 2.0.0\n\nBreaking changes in `2.0.0`:\n\nThe second argument is now an `Object` that contains the following keys:\n\n * `depth` optional, defaults to Infinity\n * `log` optional log Function\n * `dev` optional, default false, set to true to include devDependencies\n\n## Usage\n\n```javascript\nvar readInstalled = require(\"read-installed\")\n// optional options\nvar options = { dev: false, log: fn, depth: 2 }\nreadInstalled(folder, options, function (er, data) {\n ...\n})\n```\n", - "readmeFilename": "README.md", - "gitHead": "da02df6acdb5f5ee31d8c637ef31fb50efb455c1", - "bugs": { - "url": "https://github.com/isaacs/read-installed/issues" + "directories": {}, + "dist": { + "shasum": "ff9b8b67f187d1e4c29b9feb31f6b223acd19067", + "tarball": "http://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz" }, + "gitHead": "da02df6acdb5f5ee31d8c637ef31fb50efb455c1", "homepage": "https://github.com/isaacs/read-installed#readme", - "_id": "read-installed@4.0.3", - "_shasum": "ff9b8b67f187d1e4c29b9feb31f6b223acd19067", - "_from": "read-installed@4.0.3" + "installable": true, + "license": "ISC", + "main": "read-installed.js", + "maintainers": [ + { + "name": "iarna", + "email": "me@re-becca.org" + }, + { + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" + } + ], + "name": "read-installed", + "optionalDependencies": { + "graceful-fs": "^4.1.2" + }, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/read-installed.git" + }, + "scripts": { + "test": "tap ./test/*.js" + }, + "version": "4.0.3" } diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/.editorconfig b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/.editorconfig deleted file mode 100644 index 8de2a35e3a2b74bd00df54f32cd657d5253b9578..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/.editorconfig +++ /dev/null @@ -1,19 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -trim_trailing_whitespace = true -insert_final_newline = true - -[{.,}*.{js,json,json5,yml,yaml}] -indent_style = space -indent_size = 2 - -[*.md] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -[Makefile] -indent_style = tab diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/benchmark/benchmark.js b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/benchmark/benchmark.js deleted file mode 100755 index 28a6aad75ad937822a1f97ccd99be3dc50c9ea9e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/benchmark/benchmark.js +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env node - -var Benchmark = require('benchmark') -var YAML = require('js-yaml') -var JJU = require('../') -var JSON5 = require('json5') -var suite = new Benchmark.Suite - -var sample -sample = require('fs').readFileSync(__dirname + '/../package.yaml') -sample = YAML.safeLoad(sample) -sample = JSON.stringify(sample) - -var functions = { - 'JSON': function(x) { JSON.parse(x) }, - 'JSON5': function(x) { JSON5.parse(x) }, - 'JJU': function(x) { JJU.parse(x) }, - 'JS-YAML': function(x) { YAML.safeLoad(x) }, -} - -for (var name in functions) { - with ({ fn: functions[name] }) { - suite.add(name, { - onCycle: function onCycle(event) { - process.stdout.write('\r\033[2K - ' + event.target) - }, - fn: function () { - fn(sample) - }, - }) - } -} - -console.log() -suite.on('cycle', function(event) { - console.log('\r\033[2K + ' + String(event.target)) -}) -.run() - -process.on('exit', function() { console.log() }) diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/benchmark/package.json b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/benchmark/package.json deleted file mode 100644 index 7f0dcf08b7209dd75ab9aa59d0a3dbfbee8db6ae..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/benchmark/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "benchmarks", - "private": true, - "dependencies": { - "json5": "*", - "js-yaml": "*", - "benchmark": "*" - } -} diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/docs/Grammar.md b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/docs/Grammar.md deleted file mode 100644 index eb7c8bc667fd548a5169e8c6d4b66fe9f34dbff7..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/docs/Grammar.md +++ /dev/null @@ -1,219 +0,0 @@ - -JSON5 grammar expressed in EBNF form. - -PS: I don't know what is appropriate syntax highlighter for this, so I'm using "modula2" because why not. I also inserted after backslash to preserve syntax highlighting, this character has nothing to do with actual JSON5 syntax and should be ignored. - -```modula2 -json5_text = expression_with_whitespace - -expression_with_whitespace = [white_space] , expression , [white_space] - -expression = literal - | array_literal - | object_literal - -literal = null_literal - | boolean_literal - | signed_numeric_literal - | string_literal - -null_literal = 'null' - -boolean_literal = 'true' - | 'false' - -(* Source Characters *) - -source_character = . - (* any Unicode code unit *) - -line_terminator = - | - | - | - -line_terminator_sequence = - | - | - | - | , - -white_space = white_space_element - | white_space , white_space_element - -white_space_element = white_space_character - | comment - -white_space_character = - | - | - | - | - | - | - -comment = multi_line_comment - | single_line_comment - -multi_line_comment = '/*' , [multi_line_comment_chars] , '*/' - -multi_line_comment_chars = (source_character - '*') , [multi_line_comment_chars] - | '*' , [post_asterisk_comment_chars] - -post_asterisk_comment_chars = (source_character - ('*' | '/')) , [multi_line_comment_chars] - | '*' , [post_asterisk_comment_chars] - -single_line_comment = '//' , [single_line_comment_chars] - -single_line_comment_chars = single_line_comment_char , single_line_comment_chars - -single_line_comment_char = source_character - line_terminator - -(* Character classes *) - -decimal_digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' - -non_zero_digit = decimal_digit - '0' - -hex_digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'a' - | 'b' | 'c' | 'd' | 'e' | 'f' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' - -ascii_letter = ascii_letter_lowercase - | ascii_letter_uppercase - -ascii_letter_lowercase = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' - | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' - | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' - -ascii_letter_uppercase = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' - | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' - | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' - -(* Numeric Literals *) - -signed_numeric_literal = '-' , numeric_literal - | '+' , numeric_literal - | numeric_literal - -numeric_literal = decimal_literal - | hex_integer_literal - | non_finite_literal - -non_finite_literal = 'Infinity' - | 'NaN' - -decimal_literal = decimal_integer_literal , '.' , [decimal_digits] , [exponent_part] - | '.' , decimal_digits , [exponent_part] - | decimal_integer_literal , [exponent_part] - -decimal_integer_literal = '0' - | non_zero_digit , [decimal_digits] - -decimal_digits = decimal_digit - | decimal_digits , decimal_digit - -exponent_part = exponent_indicator , signed_integer - -exponent_indicator = 'e' | 'E' - -signed_integer = decimal_digits - | '+' , decimal_digits - | '-' , decimal_digits - -hex_integer_literal = '0x' , hex_digit - | '0X' , hex_digit - | hex_integer_literal , hex_digit - -(* String Literals *) - -string_literal = '"' , [double_string_characters] , '"' - | "'" , [single_string_characters] , "'" - -double_string_characters = double_string_character , [double_string_characters] - -single_string_characters = single_string_character , [single_string_characters] - -double_string_character = source_character - ('"' | '\​' | line_terminator) - | '\​' , escape_sequence - | line_continuation - -single_string_character = source_character - ("'" | '\​' | line_terminator) - | '\​' , escape_sequence - | line_continuation - -line_continuation = '\​' , line_terminator_sequence - -escape_sequence = character_escape_sequence - | '0' - | hex_escape_sequence - | unicode_escape_sequence - -character_escape_sequence = single_escape_character - | non_escape_character - -single_escape_character = '"' | "'" | '\​' | 'b' | 'f' | 'n' | 'r' | 't' | 'v' - -non_escape_character = source_character - (escape_character | line_terminator) - -escape_character = single_escape_character - | decimal_digit - | 'x' - | 'u' - -hex_escape_sequence = 'x' , hex_digit , hex_digit - -unicode_escape_sequence = 'u' , hex_digit , hex_digit , hex_digit , hex_digit - -(* Array Literals *) - -array_literal = '[' , [white_space] , ']' - | '[' , [white_space] , element_list , ']' - | '[' , [white_space] , element_list , ',' , [white_space] , ']' - -element_list = expression , [white_space] - | element_list , ',' , [white_space] , expression , [white_space] - -(* Object Literals *) - -object_literal = '{' , [white_space] , '}' - | '{' , [white_space] , property_name_and_value_list , '}' - | '{' , [white_space] , property_name_and_value_list , ',' , '}' - -property_name_and_value_list = property_assignment , [white_space] - | property_name_and_value_list , [white_space] , ',' , [white_space] , property_assignment , [white_space] - -property_assignment = property_name , [white_space] , ':' , [white_space] , expression - -property_name = identifier_name - | string_literal - | numeric_literal - -identifier_name = identifier_start - | identifier_name , identifier_part - -identifier_start = unicode_letter - | '$' - | '_' - | '\​' , unicode_escape_sequence - -identifier_part = identifier_start - | unicode_combining_mark - | unicode_digit - | unicode_connector_punctuation - | - | - -unicode_letter = ascii_letter - (* + any character in the Unicode categories "Uppercase letter (Lu)", "Lowercase letter (Ll)", "Titlecase letter (Lt)", "Modifier letter (Lm)", "Other letter (Lo)", or "Letter number (Nl)" *) - -unicode_combining_mark = - (* + any character in the Unicode categories "Non-spacing mark (Mn)" or "Combining spacing mark (Mc)" *) - -unicode_digit = decimal_digit - (* + any character in the Unicode category "Decimal number (Nd)" *) - -unicode_connector_punctuation = - (* + any character in the Unicode category "Connector punctuation (Pc)" *) - - -``` diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/docs/JSON5.md b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/docs/JSON5.md deleted file mode 100644 index bbe18a3d8ce2132d29f84cd47a685b04e0e560c9..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/docs/JSON5.md +++ /dev/null @@ -1,50 +0,0 @@ -## JSON5 syntax - -We support slighly modified version of JSON5, see https://groups.google.com/forum/#!topic/json5/3DjClVYI6Wg - -I started from ES5 specification and added a set of additional restrictions on top of ES5 spec. So I'd expect my implementation to be much closer to javascript. It's no longer an extension of json, but a reduction of ecmascript, which was my original intent. - -This JSON5 version is a subset of ES5 language, specification is here: - -http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - -This is a language that defines data structures only, so following notes/restrictions are applied: - -- Literals (NullLiteral, BooleanLiteral, NumericLiteral, StringLiteral) are allowed. -- Compatibility syntax is not supported, which means octal literals are forbidden. -- ArrayLiterals and allowed, but instead of AssignmentExpressions you can only use other allowed Literals, ArrayLiterals and ObjectLiterals. Elisions are currently not supported. -- ObjectLiterals and allowed, but instead of AssignmentExpressions you can only use other allowed Literals, ArrayLiterals and ObjectLiterals. Setters and getters are forbidden. -- All other primary expressions ("this", Identifier, Expression) are forbidden. -- Two unary expressions ('-' and '+') allowed before NumericLiterals. -- Any data that has a number type can be represented, including +0, -0, +Infinity, -Infinity and NaN. -- "undefined" is forbidden, use null instead if applicable. -- Comments and whitespace are defined according to spec. - -Main authority here is ES5 spec, so strict backward JSON compatibility is not guaranteed. - - -If you're unsure whether a behaviour of this library is a bug or not, you can run this test: - -```javascript -JSON5.parse(String(something)) -``` - -Should always be equal to: - -```javascript -eval('(function(){return ('+String(something)+'\n)\n})()') -``` - -If `something` meets all rules above. Parens and newlines in the example above are carefully placed so comments and another newlines will work properly, so don't look so impressed about that. - - -## Weirdness of JSON5 - -These are the parts that I don't particulary like, but see no good way to fix: - - - no elisions, `[,,,] -> [null,null,null]` - - `[Object], [Circular]` aren't parsed - - no way of nicely representing multiline strings - - unicode property names are way to hard to implement - - Date and other custom objects - - incompatible with YAML (at least comments) diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.json b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.json deleted file mode 100644 index ed34885e26881ba307951fce5ddc7624e09c493f..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "jju", - "version": "1.2.0", - "description": "a set of utilities to work with JSON / JSON5 documents", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/rlidwka/jju.git" - }, - "bugs": { - "url": "https://github.com/rlidwka/jju/issues" - }, - "homepage": "http://rlidwka.github.io/jju/", - "devDependencies": { - "mocha": ">=1.21.0", - "js-yaml": ">=3.1.0", - "eslint": "~0.4.2" - }, - "scripts": { - "test": "mocha test/*.js", - "lint": "eslint -c ./.eslint.yaml ./lib" - }, - "keywords": [ - "json", - "json5", - "parser", - "serializer", - "data" - ], - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": { - "type": "WTFPL", - "url": "http://www.wtfpl.net/txt/copying/" - }, - "gitHead": "6f1b2a8321cb0dfcffc50378b3632853cf529671", - "_id": "jju@1.2.0", - "_shasum": "add5b586fec853b44929d78bf94864ab577c02e9", - "_from": "jju@>=1.1.0 <2.0.0", - "_npmVersion": "2.0.1", - "_nodeVersion": "1.1.1", - "_npmUser": { - "name": "rlidwka", - "email": "alex@kocharin.ru" - }, - "maintainers": [ - { - "name": "rlidwka", - "email": "alex@kocharin.ru" - } - ], - "dist": { - "shasum": "add5b586fec853b44929d78bf94864ab577c02e9", - "tarball": "http://registry.npmjs.org/jju/-/jju-1.2.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/jju/-/jju-1.2.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/portable-json5-tests.yaml b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/portable-json5-tests.yaml deleted file mode 100644 index 5bf6ac38fe13bf739ea5e256c27fb94cc103f894..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/portable-json5-tests.yaml +++ /dev/null @@ -1,916 +0,0 @@ -# vi:set ts=2 sts=2 sw=2 et: -# -# Copyright (c) JD 2456730 Alex Kocharin -# -# 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 original file is available here: -# https://github.com/rlidwka/jju/tree/master/test/portable-json5-tests.yaml -# -# ---------------------------------------------------------------------------- -# -# Portable JSON5 test suite. -# -# This file contains an actual YAML data and it may include fancy syntax. -# If your platform does not support YAML, you might wish to pre-process it -# using a generic YAML parser. -# - -%YAML 1.2 ---- -# -# "input" is an arbitrary JSON5 you have to parse -# "output" is a normalized JSON you have to compare your result with, -# or !error (null) if your input should result in parser error -# -# Types of tests: -# -# - basic - Tests that every JSON5 parser should pass. -# -# - advanced - Tests that bring close compatibility with javascript. Not -# strictly required, but nice to have for completeness. -# -# - extra - Extra test cases you can follow at your discretion. -# -# Questionable features like elisions go to extra. All valid javascript, but -# invalid json5 also goes to extra. Feel free to ignore this section if you -# want to. Thus, eval(input) is a complete json5 parser, that should pass all -# basic and advanced tests. -# - -# Basic types in minimal form -# --------------------------- - -type-no-data: - type: extra - output: !error - input: '' - -type-null: - type: basic - output: null - input: > - null - -# undefined is not supported, -# null should be used instead -type-no-undefined: - type: extra - output: !error - input: > - undefined - -type-no-raw: - type: extra - output: !error - input: > - foobar - -type-bool-true: - type: basic - output: true - input: > - true - -type-bool-false: - type: basic - output: false - input: > - false - -type-number: - type: basic - output: 0 - input: > - 0 - -type-string: - type: basic - output: "" - input: > - "" - -type-object: - type: basic - output: {} - input: > - {} - -type-array: - type: basic - output: [] - input: > - [] - -# Numbers: special -# ---------------- - -# note: it's hard to test this -# just add `1/x < 0` check in your code somewhere -num-negative-zero: - type: extra - output: -0.0 - input: > - -0 - -num-nan: - type: basic - output: .nan - input: > - NaN - -num-signed-nan: - type: basic - output: .nan - input: > - +NaN - -num-positive-inf: - type: basic - output: +.inf - input: > - Infinity - -num-negative-inf: - type: basic - output: -.inf - input: > - -Infinity - -num-inf-exact-case: - type: extra - output: !error - input: > - INFINITY - -# Numbers: hexadecimal -# -------------------- - -num-hex-zero: - type: basic - output: 0 - input: > - 0x0 - -num-cut-hex: - type: basic - output: !error - input: > - 0x - -num-all-hex: - type: basic - output: 12841684683518 - input: > - 0xBADF00DCAFE - -num-mixed-case: - type: basic - output: 3735928559 - input: > - 0xDeAdBEef - -num-signed-hex: - type: advanced - output: 31 - input: > - +0x1F - -num-negative-hex: - type: advanced - output: -31 - input: > - -0x1f - -num-bad-hex: - type: advanced - output: !error - input: > - 0xBADxF00D - -num-no-hex-float: - type: advanced - output: !error - input: > - 0x12.345 - -# this is not actually an exponent :) -num-hex-exponent: - type: advanced - output: 4836 - input: > - 0x0012e4 - -# Numbers: octal -# -------------- - -# Octals are primarily used in config files -# to set up a file mask (like 0777) -# -# Note: they will have 0o12345 syntax instead -# of 012345 in the ES6, so we'll need to switch -# as well in the future - -num-octal: - type: extra - output: 342391 - input: > - 01234567 - -num-octal-zeroes: - type: extra - output: -24000 - input: > - -000000056700 - -num-bad-octal: - type: extra - output: !error - input: > - 012345678 - -num-no-octal-float: - type: extra - output: !error - input: > - 012.345 - -num-no-octal-exp: - type: extra - output: !error - input: > - 0123e4 - -# Numbers: floating point -# ----------------------- - -num-float: - type: basic - output: 123.456 - input: > - 123.456 - -num-signed-foat: - type: basic - output: -0.00098765 - input: > - -0.00098765 - -num-omit-trailing-mantissa: - type: basic - output: 1234000 - input: > - 1234.e3 - -num-omit-leading-mantissa: - type: advanced - output: -123.4 - input: > - -.1234e3 - -num-bad-float: - type: advanced - output: !error - input: > - 0.12.345 - -num-bad-sum: - type: extra - output: !error - input: > - 0.12+345 - -num-uc-exp: - type: advanced - output: -1230000 - input: > - -123E+4 - -num-float-exp: - type: basic - output: 123000 - input: > - 0.0123e7 - -num-bad-exp: - type: extra - output: !error - input: > - 123e7.3 - -num-bad-char: - type: extra - output: !error - input: > - 123a456 - -num-no-exp: - type: advanced - output: !error - input: > - 123e - -num-zero-exp: - type: advanced - output: -0.0 - input: > - -.00e-0 - -num-dec-base-signed-exp: - type: advanced - output: 0.00000123 - input: > - 1230000E-012 - -# String: quotes -# -------------- - -string-double-quotes: - type: basic - output: foobar - input: > - "foobar" - -string-single-quotes: - type: basic - output: foobar - input: > - 'foobar' - -string-open: - type: basic - output: !error - input: > - "\\\\\\\\\\\\\" - -string-not-open: - type: basic - output: "\\\\\\\\\\\\\\" - input: > - "\\\\\\\\\\\\\\" - -string-continuation: - type: advanced - output: " foo bar " - input: > - " foo \ - bar \ - " - -string-win-continuation: - type: advanced - output: "foobar" - input: "'foo\\\r\nbar'" - -string-win-reverse-continuation: - type: advanced - output: !error - input: "'foo\\\n\rbar'" - -string-unicode-continuation: - type: advanced - output: "foobarbaz" - input: "'foo\\\u2028bar\\\u2029baz'" - -string-multi-bad-continuation: - type: advanced - output: !error - input: > - foo\ - - bar - -string-bad-ending: - type: basic - output: !error - input: "'foo\rbar'" - -string-bad-ending-2028: - type: advanced - output: !error - input: "'foo\u2028bar'" - -string-bad-ending-2029: - type: advanced - output: !error - input: "'foo\u2029bar'" - -string-literal-unicode: - type: advanced - output: "foo\uFEFF\u2030bar\u1234" - input: "'foo\uFEFF\u2030bar\u1234'" - -string-control-char: - type: advanced - output: "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0b\x0c\x0e\x0f" - input: "'\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0b\x0c\x0e\x0f'" - -# String: escape sequences -# ------------------------ - -string-octal-escape: - type: extra - output: "\x1b[1;32mhi\x1b[m??" - input: > - '\033[1;32mhi\033[m\077\077' - -string-octal-two-digits: - type: extra - output: "\n\x1c\x2e\x07890\x01" - input: > - '\12\34\56\78\90\1' - -string-octal-three-digits: - type: extra - output: "\n34.78\xff 0" - input: > - '\01234\5678\377\400' - -string-hex-escape: - type: extra - output: "\x01\x23\xab\xcd\xef" - input: > - "\x01\x23\xab\xCd\xEF" - -# \0 is *not* an octal escape sequence, -# and is allowed even in strict mode -string-zero-point: - type: basic - output: "\0" - input: > - '\0' - -string-escape-double-quotes: - type: basic - output: "\"''" - input: > - "\"'\'" - -string-escape-single-quotes: - type: basic - output: " '\"\" " - input: > - ' \'"\" ' - -string-escape-json-chars: - type: basic - output: "\\\/\b\f\n\r\t" - input: > - "\\\/\b\f\n\r\t" - -# this character was left out of -# json spec for whatever reason -string-escape-slash-v: - type: basic - output: "\v" - input: > - "\v" - -string-unicode-escape: - type: basic - output: "\u0000\uffffx\ufeff\u1234\u9f6a\u2028\uabcd" - input: > - "\u0000\uFFFFx\uFeFf\u1234\u9F6a\u2028\uabcd" - -string-arbitrary-escape: - type: advanced - output: "X12Uqwe\r\tyiopasd\fghjklzc\u000b\b\nm9 " - input: > - '\X12\U\q\w\e\r\t\y\i\o\p\a\s\d\f\g\h\j\k\l\z\c\v\b\n\m\9\ ' - -string-bad-unicode: - type: advanced - output: !error - input: > - '\uEFGH' - -string-incomplete-unicode: - type: advanced - output: !error - input: > - '\u$' - -string-bad-hex: - type: advanced - output: !error - input: > - '\xFG' - -string-incomplete-hex: - type: advanced - output: !error - input: > - '\x$' - -# Object literals -# --------------- - -object-nested: - type: basic - output: {q:{'w':{"e":[1]}}} - input: | - {q:{'w':{"e":[1]}}} - -object-trailing-comma: - type: basic - output: {foo: 'bar'} - input: | - {foo: 'bar',} - -object-leading-comma-style: - type: basic - output: {q: 1,w: 2,e: 3} - input: | - { q: 1 - , w: 2 - , e: 3 - } - -object-incomplete: - type: basic - output: !error - input: | - {q:1,w:2,{} - -object-isnt-array: - type: basic - output: !error - input: | - {1,2} - -object-no-single-comma: - type: basic - output: !error - input: | - {,} - -object-no-elisions: - type: basic - output: !error - input: | - {q:1,,w:2} - -# Objects: keys -# ------------- - -object-singlequoted: - type: basic - output: {q: 1,w: 2,e: 3} - input: | - {'q':1,'w':2,'e':3} - -object-doublequoted: - type: basic - output: {q: 1,w: 2,e: 3} - input: | - {"q":1,"w":2,"e":3} - -object-unquoted: - type: basic - output: {$FOO_bar123: 'baz'} - input: > - {$FOO_bar123: 'baz'} - -object-no-first-digit: - type: advanced - output: !error - input: > - {123foo: bar} - -object-unquoted-unicode: - type: advanced - output: {"\u1f04\u03bb\u03c6\u03b1": baz} - input: "{\u1f04\u03bb\u03c6\u03b1:'baz'}" - -object-unicode-escape-key: - type: advanced - output: {foo: 'bar', "\u1f04\u03bb\u03c6\u03b1": baz, "qwe\u1f04rty": quux} - input: | - {foo:'bar', \u1f04\u03bb\u03c6\u03b1:'baz', qwe\u1f04rty: "quux"} - -object-no-raw-literal: - type: extra - output: !error - input: | - {foo: bar} - -object-bad-literal: - type: advanced - output: !error - input: | - {foo-bar: 123} - -object-no-space-in-key: - type: advanced - output: !error - input: | - {foo bar: 123} - -object-no-comment-in-key: - type: advanced - output: !error - input: | - {foo/*bar*/baz: 123} - -object-float-keys: - type: advanced - output: {'1': 'one', '3.1415': 'pi'} - input: | - {1:'one', 3.1415:'pi'} - -object-no-negative: - type: advanced - output: !error - input: | - {-5: 123} - -object-exponent-keys: - type: advanced - output: {'1': 'exp', '1000': 'pos', '0.001': 'neg'} - input: | - {1e0: 'exp', 1e+3: 'pos', 1e-3: 'neg'} - -object-octal-keys: - type: extra - output: {'668': 1} - input: | - {01234: 1} - -object-hex-keys: - type: advanced - output: {'51966': 1} - input: | - {0xCAFE: 1} - -object-null-keys: - type: basic - output: {'null': null} - input: | - {null: null} - -object-no-array-keys: - type: extra - output: !error - input: | - {[]: 123} - -object-no-empty-keys: - type: basic - output: !error - input: | - {: 123} - -object-empty-string-key: - type: basic - output: {s: {'': 1}, m: {'': 2}} - input: | - {s: {'': 1}, m: {"": 2}} - -object-bad-unicode-space: - type: advanced - output: !error - input: | - { \u0020foobar: 123 } - -object-bad-unicode-dash: - type: advanced - output: !error - input: | - { foo\u002dbar: 123} - -object-incomplete-unicode-sequence: - type: advanced - output: !error - input: | - { foo\u12f: 123 } - -object-double-escape: - type: advanced - output: !error - input: | - { foo\\u1234bar: 123 } - -object-we-arent-es3: - type: basic - output: {new: 1, delete: 2, throw: 3} - input: | - {new: 1, delete: 2, throw: 3} - -object-last-digits: - type: basic - output: {$123e2: 1, abc123: 2} - input: | - {$123e2: 1, abc123: 2} - -object-unicode-in-string: - type: advanced - output: {"\uff13qwe": 123} - input: | - {"\uff13qwe": 123} - -object-unicode-esc-in-string: - type: advanced - output: {"\\uff13qwe": 123} - input: | - {"\\uff13qwe": 123} - -object-unicode-digits-first-esc: - type: advanced - output: !error - input: | - {\uff13qwe: 123} - -object-unicode-digits-first-lit: - type: advanced - output: !error - input: "{\uff13qwe: 123}" - -object-unicode-weirdness-esc: - type: advanced - output: {"digit\uff13": 1, "comb\u094F": 2, "punct\u2040": 3, "zwnj\u200C": 4} - input: | - {digit\uff13: 1, comb\u094F: 2, punct\u2040: 3, zwnj\u200C: 4} - -object-unicode-weirdness-lit: - type: advanced - output: {"digit\uff13": 1, "comb\u094F": 2, "punct\u2040": 3, "zwnj\u200C": 4} - input: "{digit\uff13: 1, comb\u094F: 2, punct\u2040: 3, zwnj\u200C: 4}" - -# Array literals -# -------------- - -array-all-types: - type: basic - output: [1.2,"3,4",{},[],null,+.inf] - input: | - [1.2,"3,4",{},[],null,Infinity] - -array-trailing-comma: - type: basic - output: [1,2,3,4] - input: | - [1,2,3,4,] - -array-leading-comma-style: - type: basic - output: [quux,foo,bar,baz] - input: | - [ 'quux' - , 'foo' - , 'bar' - , 'baz' - ] - -array-incomplete: - type: basic - output: !error - input: | - [1,2,3,[] - -array-nested: - type: basic - output: [[[[[[]]]]],[[],[]]] - input: | - [[[[[[/*[]*/]]]]],[[],[]]] - -array-isnt-object: - type: extra - output: !error - input: | - [1:2] - -array-no-single-comma: - type: extra - output: !error - input: | - [,] - -array-no-elisions: - type: extra - output: !error - input: | - [1,,2,3] - -# Comments -# -------- - -comment-single: - type: basic - output: foobar - input: | - // blahblah - "foobar" - // another one - -comment-multi: - type: basic - output: foobar - input: | - /* - * 123 - */ - "foobar" - /**/ - -comment-single-newlines: - type: advanced - output: [ 123, 456, 789 ] - input: "[// foo\r123,// bar\u2028456,// baz\u2029789]" - -comment-inside: - type: advanced - output: [123, '// foo', '/* bar'] - input: > - [ - /* - " // */ 123, // ", - "// foo", - '/* bar', - ] - -comment-in-token: - type: advanced - output: !error - input: - 123/*comment*/456 - -comment-java-style: - type: basic - output: 123 - input: - /*****************/ - 123 - /****************/ - -comment-object: - type: basic - output: {q: 123} - input: /**/{/**/q/**/:/**/123/**/,/**/}// - -# Whitespace -# ---------- - -ws-no-whitespace: - type: basic - output: {"foo":bar,bar:["qwe",null,[],{}],"baz":123} - input: '{foo:"bar","bar":["qwe",null,[],{}],"baz":123}' - -ws-allow-prefix: - type: basic - output: 123 - input: " \t123" - -ws-unicode-spaces: - type: advanced - output: { foo : 123 } - input: " - \u0020\u00A0\uFEFF - { - \x09\x0A\x0B\x0C\x0D\u1680\u180E - foo - \u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A - : - \u2028\u2029\u202F\u205F\u3000 - 123 - \uFEFF - }" - -ws-unicode-newlines: - type: advanced - output: [ 123, 456 ] - input: " - [ - \u000D - 123, - \u2028 - 456, - \u2029 - ] - " - -# Multiple tokens -# --------------- - -multi-string-nospace: - type: basic - output: !error - input: '"foo""bar"' - -multi-string: - type: basic - output: !error - input: '"foo" "bar"' - -# note: valid javascript -multi-array: - type: extra - output: !error - input: '[0] [0]' - -multi-object: - type: basic - output: !error - input: '{} {}' -... diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_analyze.js b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_analyze.js deleted file mode 100644 index 2a24e01eac2c2dbf1fb4d96ac4afe90120054935..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_analyze.js +++ /dev/null @@ -1,53 +0,0 @@ -var _assert = require('assert') -var analyze = require('../').analyze - -function addTest(a, b) { - if (typeof(describe) === 'function') { - it('test_analyze: ' + a + ' == ' + b, function() { - _assert.equal(a, b) - }) - } else { - _assert.equal(a, b) - } -} - -var t = analyze(JSON.stringify(require('os').networkInterfaces())) -addTest(t.has_whitespace, false) -addTest(t.has_comments, false) -addTest(t.has_newlines, false) -addTest(t.newline, '\n') -addTest(t.quote, '"') -addTest(t.quote_keys, true) -addTest(t.indent, '') - -var t = analyze(JSON.stringify(require('os').networkInterfaces(), null, 2)) -addTest(t.has_whitespace, true) -addTest(t.has_comments, false) -addTest(t.has_newlines, true) -addTest(t.newline, '\n') -addTest(t.quote, '"') -addTest(t.quote_keys, true) -addTest(t.indent, ' ') - -var t = analyze(JSON.stringify(require('os').networkInterfaces(), null, 3)) -addTest(t.indent, ' ') - -var t = analyze(JSON.stringify(require('os').networkInterfaces(), null, '\t')) -addTest(t.indent, '\t') - -var t = analyze(JSON.stringify(require('os').networkInterfaces(), null, 3).replace(/\n/g, '\r\n')) -addTest(t.indent, ' ') -addTest(t.newline, '\r\n') - -var t = analyze(JSON.stringify(require('os').networkInterfaces()).replace(/"/g, "'")) -addTest(t.quote, "'") -addTest(t.quote_keys, true) - -var t = analyze("{foo:'bar', 'bar':\"baz\", 'baz':\"quux\"}") -addTest(t.quote, "'") -addTest(t.quote_keys, false) - -var t = analyze("{foo:'bar', \"bar\":'baz', \"baz\":\"quux\"}") -addTest(t.quote, '"') -addTest(t.quote_keys, false) - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_document.js b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_document.js deleted file mode 100644 index 5f1ef2aaf6a764c7e7adeba12ff3aa0d13249664..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_document.js +++ /dev/null @@ -1,214 +0,0 @@ -var assert = require('assert') -var create = require('../lib/document').Document -var jju = require('..') - -var str = '{ x\r\n:\n1, y: {"..z.": 123, t: null, s:"123", a:[ 1,2,{x:3},] }}\n' -var d = create(str) -assert.equal(d + '', str) -assert.deepEqual(d.get(''), {x:1,y:{'..z.':123,t:null,s:'123',a:[1,2,{x:3}]}}) -assert.deepEqual(d.get('x'), 1) -assert.deepEqual(d.get('x.x'), undefined) -assert.deepEqual(d.get('x.x.x.x'), undefined) -assert.strictEqual(d.get('y.x'), undefined) -assert.deepEqual(d.get('y.s'), '123') -assert.strictEqual(d.get('y.t'), null) -assert.strictEqual(d.get('y.t.x'), undefined) -assert.equal(d.has(''), true) -assert.equal(d.has('x'), true) -assert.equal(d.has('x.x'), false) -assert.equal(d.has('x.x.x.x'), false) -assert.equal(d.has('y.x'), false) -assert.equal(d.has('y'), true) -assert.equal(d.has('y.s'), true) -assert.equal(d.has('y.t'), true) -assert.equal(d.has('a'), false) - -// arrays -assert.deepEqual(d.get('y.a'), [1,2,{x:3}]) -assert.deepEqual(d.get('y.a.0'), 1) -assert.deepEqual(d.get('y.a.2.x'), 3) -assert.deepEqual(d.get('y.a.10'), undefined) -assert.deepEqual(d.has('y.a.0'), true) -assert.deepEqual(d.has('y.a.10'), false) -assert.deepEqual(d.get('y.a.2'), {x:3}) -assert.deepEqual(d.get('y.a.-1'), undefined) - -// controversial -assert.strictEqual(d.get('y.s.0'), undefined) -assert.equal(d.has('y.s.0'), false) - -// paths -assert.deepEqual(d.get([]), {x:1,y:{'..z.':123,t:null,s:'123',a:[1,2,{x:3}]}}) -assert.strictEqual(d.has([]), true) -assert.strictEqual(d.get(['y','..z.']), 123) -assert.strictEqual(d.has(['y','..z.']), true) -assert.deepEqual(d.get(['y','a',2,'x']), 3) -assert.deepEqual(create('[1]').set(0, 4).get(''), [4]) -assert.deepEqual(create('[1]').set(1, 4).get(''), [1,4]) -assert.deepEqual(create('[1]').has(0), true) -assert.deepEqual(create('[1]').has(1), false) -assert.deepEqual(create('[1]').get(0), 1) - -// invalid paths -assert.throws(function() { create('[1]').set(null, 4) }, /invalid path type/i) -assert.throws(function() { create('[1]').set({}, 4) }, /invalid path type/i) -assert.throws(function() { create('[1]').set(/./, 4) }, /invalid path type/i) -assert.throws(function() { create('[1]').set(function(){}, 4) }, /invalid path type/i) -assert.throws(function() { create('[1]').set(false, 4) }, /invalid path type/i) -assert.throws(function() { create('[1]').set(undefined, 4) }, /invalid path type/i) - -// set root -assert.strictEqual(create(str).set('', 4).get(''), 4) -assert.strictEqual(create(str).set('', null).get(''), null) -assert.strictEqual(create(str).set('', {x:4}).get('x'), 4) -assert.deepEqual(create(str).set('', [1,2,3]).get(''), [1,2,3]) -assert.strictEqual(create('1').set('', 4).get(''), 4) -assert.strictEqual(create('null').set('', 4).get(''), 4) -assert.strictEqual(create('[]').set('', 4).get(''), 4) -assert.strictEqual(create('{}').set('', 4).get(''), 4) - -// set 1st level -assert.deepEqual(create('{}').set('x', 4).get('x'), 4) -assert.deepEqual(create('{a:{b:[]}}').set('a.b.0', 4).get('a'), {b:[4]}) -//assert.deepEqual(create('1').set('x', 4).get('x'), 4) -//assert.deepEqual(create('null').set('x', 4).get('x'), 4) - -// array: boundaries -assert.strictEqual(create('[]').set('0', 4).get('0'), 4) -assert.strictEqual(create('[1,2,3]').set('2', 4).get('2'), 4) -assert.strictEqual(create('[1,2,3]').set('3', 4).get('3'), 4) - -// various error cases -assert.throws(function() { create('1').set('x', 4) }, /set key .* of an non-object/) -assert.throws(function() { create('null').set('x', 4) }, /set key .* of an non-object/) -assert.throws(function() { create('[]').set('x', 4) }, /set key .* of an array/) -assert.throws(function() { create('""').set('x', 4) }, /set key .* of an non-object/) -assert.throws(function() { create('{}').set('x.x.x', 4) }, /set key .* of an non-object/) -assert.throws(function() { create('1').set('1', 4) }, /set key .* of an non-object/) -assert.throws(function() { create('null').set('1', 4) }, /set key .* of an non-object/) -assert.throws(function() { create('""').set('1', 4) }, /set key .* of an non-object/) -assert.throws(function() { create('[]').set('-1', 4) }, /set key .* of an array/) -assert.throws(function() { create('[]').set('1', 4) }, /set key .* out of bounds/) -assert.throws(function() { create('[1,2,3]').set('4', 4) }, /set key .* out of bounds/) -assert.throws(function() { create('{a:{b:[]}}').set('a.b.x', 4) }, /set key .* of an array/) - -// unsetting stuff -assert.throws(function() { create('[]').unset('') }, /can't remove root document/) - -// arrays: handling spaces correctly -assert.equal(create("[]").set(0,{})+"", '[{}]') -assert.equal(create("[0]").set(1,{})+"", '[0,{}]') -assert.equal(create("[0,]").set(1,{})+"", '[0,{},]') -assert.equal(create("[ ]").set(0,{})+"", '[{} ]') -assert.equal(create("[ 0 , ]").set(1,{})+"", '[ 0 , {}, ]') -assert.equal(create("[ 0 ]").set(1,{})+"", '[ 0, {} ]') -assert.equal(create("{}").set('y',{})+"", '{"y":{}}') -assert.equal(create("{x:1}").set('y',{})+"", '{x:1,y:{}}') -assert.equal(create("{x:1,}").set('y',{})+"", '{x:1,y:{},}') -assert.equal(create("{ }").set('y',{})+"", '{"y":{} }') -assert.equal(create("{ x:1 , }").set('y',{})+"", '{ x:1 , y:{}, }') -assert.equal(create("{ x:1 }").set('y',{})+"", '{ x:1, y:{} }') - -// deleting elements -assert.throws(function() { create('[]').unset('0') }, /unset key .* out of bounds/) -assert.throws(function() { create('[1,2]').unset('2') }, /unset key .* out of bounds/) -assert.throws(function() { create('[1,2,3]').unset('0') }, /in the middle of an array/) - -// CommonJS assert spec is "awesome" -assert.deepEqual(create('[1,2]').unset('1').get(''), [1]) -assert.deepEqual(create('[1,2]').unset('1').get('').length, 1) -assert.deepEqual(create('[1,2,3]').unset('2').unset('1').get(''), [1]) -assert.deepEqual(create('[1,2,3]').unset('2').unset('1').get('').length, 1) -assert.deepEqual(create('[1]').unset('0').get(''), []) -assert.deepEqual(create('[1]').unset('0').get('').length, 0) - -assert.deepEqual(create('{x:{y:"z"}, z:4}').unset('x').get(''), {z:4}) -assert.throws(function() { create('[1,2]').unset('') }, /root/) - -// getting crazy -//assert.deepEqual(create(str).set('a.b.c.d.e', 1).get('a'), {b:{c:{d:{e:1}}}}) - -// update: arrays -assert.deepEqual(create("[1]").update([2,3])+"", '[2,3]') -assert.deepEqual(create("[1]").update([2,3,4])+"", '[2,3,4]') -assert.deepEqual(create("[]").update([2])+"", '[2]') -assert.deepEqual(create("[2]").update([])+"", '[]') -assert.deepEqual(create("[2,3,4]").update([2,3])+"", '[2,3]') -assert.deepEqual(create("[2,3,4]").update([])+"", '[]') -assert.deepEqual(create("[]").update([2,3,4])+"", '[2,3,4]') -assert.deepEqual(create(" /*zz*/ [ 2 , 3 , 4 ] /*xx*/ ").update([])+"", ' /*zz*/ [ ] /*xx*/ ') -assert.deepEqual(create(" /*zz*/ [ ] /*xx*/ ").update([2,3,4])+"", ' /*zz*/ [2,3,4 ] /*xx*/ ') - -// update: objects -assert.deepEqual(create("{x:1}").update({x:1,y:2,z:3})+"", '{x:1,y:2,z:3}') -assert.deepEqual(create("{x:1}").update({x:2,z:3,t:4})+"", '{x:2,z:3,t:4}') -assert.deepEqual(create("{}").update({x:1,y:2})+"", '{"x":1,"y":2}') -assert.deepEqual(create("{x:1}").update({})+"", '{}') -assert.deepEqual(create("{x:1,y:2}").update({x:1})+"", '{x:1}') -assert.deepEqual(create(" /*zz*/ { x /*a*/ : /*b*/ 2 , y:3 , z //\n: 4 } /*xx*/ ").update({})+"", ' /*zz*/ { } /*xx*/ ') -assert.deepEqual(create(" /*zz*/ { } /*xx*/ ").update({x: 2, y: 3, z: 4})+"", ' /*zz*/ {"x":2,"y":3,"z":4 } /*xx*/ ') - -// remove trailing comma -assert.deepEqual(create("{x:1,}").update({})+"", '{}') -assert.deepEqual(create("[0,]").update([])+"", '[]') -assert.deepEqual(create("[0 /*z*/ , /*z*/]").update([])+"", '[ /*z*/]') - -// mode -assert.equal(create('{"test":123}', {mode:'json'}).update({q:1,w:2})+'', '{"q":1,"w":2}') - -assert.equal(create('{1:2}').update({ a: 1, b: [1,2], c: 3})+'', '{a:1,b:[1,2],c:3}') - -// undef -//assert.throws(function(){ jju.update(undefined, undefined) }, /root doc/) -assert.equal(jju.update(undefined, undefined), '') -assert.equal(jju.update(undefined, 42), '42') -assert.equal(jju.update(undefined, {x: 5}), '{"x":5}') - -/* - * real test - */ -var upd = { name: 'yapm', - version: '0.6.0', - description: 'npm wrapper allowing to use package.yaml instead of package.json', - author: { name: 'Alex Kocharin', email: 'alex@kocharin.ru' }, - keywords: - [ 'package manager', - 'modules', - 'install', - 'package.yaml', - 'package.json5', - 'yaml', - 'json5', - 'npm' ], - preferGlobal: true, - homepage: 'https://npmjs.org/doc/', - repository: { type: 'git', url: 'https://github.com/rlidwka/yapm' }, - bugs: { url: 'http://github.com/rlidwka/yapm/issues' }, - main: './yapm.js', - bin: { yapm: './yapm.js' }, - dependencies: { npm: '*', 'js-yaml': '*', through: '*', 'json5-utils': '*' }, - devDependencies: { async: '*' }, - optionalDependencies: { 'yaml-update': '*' }, - test_nonascii: 'тест' } - -assert.deepEqual(create(create('{"garbage":"garbage"}').update(upd)).get(''), upd) -assert.deepEqual(JSON.parse(create('{"garbage":"garbage"}', {mode:'json',legacy:true}).update(upd)), upd) - -//console.log(create('{"garbage":"garbage"}').update(upd)+'') - -//assert.deepEqual(create(" [ ] //").set(0,{})+"" [ ,{}] // - - -//node -e 'console.log(require("./document").Document("{}").set("",[1,2,3])+"")'[1, 2, 3] - -//alex@elu:~/json5-utils/lib$ node -e 'console.log(require("./document").Document("[]").set("0",[1,2,3]).get(""))' -//[ [ 1, 2, 3 ] ] - - -/*assert.equal(create('"test"').get(''), 'test') -assert.equal(create('"test"').get([]), 'test') -assert.equal(create('"test"').get(false), 'test') -assert.equal(create(undefined).get(''), undefined) - -//assert.equal(create('"test"').set('', 'foo').toString(), '"foo"') -*/ diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_errors.js b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_errors.js deleted file mode 100644 index 8b2cdb7dcbdf67c1bf0a4650bbc00ac62ff04d65..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_errors.js +++ /dev/null @@ -1,56 +0,0 @@ -var assert = require('assert') -var parse = require('../').parse - -function addTest(arg, row, col, errRegExp) { - var fn = function() { - try { - parse(arg) - } catch(err) { - if (row !== undefined) assert.equal(err.row, row, 'wrong row: ' + err.row) - if (col !== undefined) assert.equal(err.column, col, 'wrong column: ' + err.column) - if (errRegExp) assert(errRegExp.exec(err.message)) - return - } - throw Error("no error") - } - - if (typeof(describe) === 'function') { - it('test_errors: ' + JSON.stringify(arg), fn) - } else { - fn() - } -} - -// semicolon will be unexpected, so it indicates an error position -addTest(';', 1, 1) -addTest('\n\n\n;', 4, 1) -addTest('\r\n;', 2, 1) -addTest('\n\r;', 3, 1) -addTest('\n\u2028;', 3, 1) -addTest('\n\u2029;', 3, 1) -addTest('[\n1\n,\n;', 4, 1) -addTest('{\n;', 2, 1) -addTest('{\n1\n:\n;', 4, 1) -addTest('.e3', 1, 3, /"\.e3"/) - -// line continuations -addTest('["\\\n",\n;', 3, 1) -addTest('["\\\r\n",\n;', 3, 1) -addTest('["\\\u2028",\n;', 3, 1) -addTest('["\\\u2029",\n;', 3, 1) - -// bareword rewind -addTest('nulz', 1, 1) - -// no data -addTest(' ', 1, 3, /No data.*whitespace/) -addTest('blah', 1, 1, /Unexpected token 'b'/) -addTest('', 1, 1, /No data.*empty input/) - -try { - parse('{{{{{{{{{') -} catch(err) { - var x = err.stack.match(/parseObject/g) - assert(!x || x.length < 2, "shouldn't blow up the stack with internal calls") -} - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_parse.js b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_parse.js deleted file mode 100644 index d33e61ee7e37bef07048addac93faef09ac960a8..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_parse.js +++ /dev/null @@ -1,171 +0,0 @@ -var assert = require('assert') -var parse = require('../').parse - -function addTest(arg, bulk) { - function fn_json5() { - //console.log('testing: ', arg) - try { - var x = parse(arg) - } catch(err) { - x = 'fail' - } - try { - var z = eval('(function(){"use strict"\nreturn ('+String(arg)+'\n)\n})()') - } catch(err) { - z = 'fail' - } - assert.deepEqual(x, z) - } - - function fn_strict() { - //console.log('testing: ', arg) - try { - var x = parse(arg, {mode: 'json'}) - } catch(err) { - x = 'fail' - } - try { - var z = JSON.parse(arg) - } catch(err) { - z = 'fail' - } - assert.deepEqual(x, z) - } - - if (typeof(describe) === 'function' && !bulk) { - it('test_parse_json5: ' + JSON.stringify(arg), fn_json5) - it('test_parse_strict: ' + JSON.stringify(arg), fn_strict) - } else { - fn_json5() - fn_strict() - } -} - -addTest('"\\uaaaa\\u0000\\uFFFF\\uFaAb"') -addTest(' "\\xaa\\x00\xFF\xFa\0\0" ') -addTest('"\\\'\\"\\b\\f\\t\\n\\r\\v"') -addTest('"\\q\\w\\e\\r\\t\\y\\\\i\\o\\p\\[\\/\\\\"') -addTest('"\\\n\\\r\n\\\n"') -addTest('\'\\\n\\\r\n\\\n\'') -addTest(' null') -addTest('true ') -addTest('false') -addTest(' Infinity ') -addTest('+Infinity') -addTest('[]') -addTest('[ 0xA2, 0X024324AaBf]') -addTest('-0x12') -addTest(' [1,2,3,4,5]') -addTest('[1,2,3,4,5,] ') -addTest('[1e-13]') -addTest('[null, true, false]') -addTest(' [1,2,"3,4,",5,]') -addTest('[ 1,\n2,"3,4," \r\n,\n5,]') -addTest('[ 1 , 2 , 3 , 4 , 5 , ]') -addTest('{} ') -addTest('{"2":1,"3":null,}') -addTest('{ "2 " : 1 , "3":null , }') -addTest('{ \"2\" : 25e245 , \"3\": 23 }') -addTest('{"2":1,"3":nul,}') -addTest('{:1,"3":nul,}') -addTest('[1,2] // ssssssssss 3,4,5,] ') -addTest('[1,2 , // ssssssssss \n//xxx\n3,4,5,] ') -addTest('[1,2 /* ssssssssss 3,4,*/ /* */ , 5 ] ') -addTest('[1,2 /* ssssssssss 3,4,*/ /* * , 5 ] ') -addTest('{"3":1,"3":,}') -addTest('{ чйуач:1, щцкшчлм : 4,}') -addTest('{ qef-:1 }') -addTest('{ $$$:1 , ___: 3}') -addTest('{3:1,2:1}') -addTest('{3.4e3:1}') -addTest('{-3e3:1}') -addTest('{+3e3:1}') -addTest('{.3e3:1}') - -for (var i=0; i<200; i++) { - addTest('"' + String.fromCharCode(i) + '"', true) -} - -// strict JSON test cases -addTest('"\\xaa"') -addTest('"\\0"') -addTest('"\0"') -addTest('"\\v"') -addTest('{null: 123}') -addTest("{'null': 123}") - -assert.throws(function() { - parse('0o') -}) - -assert.strictEqual(parse('01234567'), 342391) -assert.strictEqual(parse('0o1234567'), 342391) - -// undef -assert.strictEqual(parse(undefined), undefined) - -// whitespaces -addTest('[1,\r\n2,\r3,\n]') -'\u0020\u00A0\uFEFF\x09\x0A\x0B\x0C\x0D\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000'.split('').forEach(function(x) { - addTest(x+'[1,'+x+'2]'+x) - addTest('"'+x+'"'+x) -}) -'\u000A\u000D\u2028\u2029'.split('').forEach(function(x) { - addTest(x+'[1,'+x+'2]'+x) - addTest('"\\'+x+'"'+x) -}) - -/* weird ES6 stuff, not working - -if (process.version > 'v0.11.7') { - assert(Array.isArray(parse('{__proto__:[]}').__proto__)) - assert.equal(parse('{__proto__:{xxx:5}}').xxx, undefined) - assert.equal(parse('{__proto__:{xxx:5}}').__proto__.xxx, 5) - - var o1 = parse('{"__proto__":[]}') - assert.deepEqual([], o1.__proto__) - assert.deepEqual(["__proto__"], Object.keys(o1)) - assert.deepEqual([], Object.getOwnPropertyDescriptor(o1, "__proto__").value) - assert.deepEqual(["__proto__"], Object.getOwnPropertyNames(o1)) - assert(o1.hasOwnProperty("__proto__")) - assert(Object.prototype.isPrototypeOf(o1)) - - // Parse a non-object value as __proto__. - var o2 = JSON.parse('{"__proto__":5}') - assert.deepEqual(5, o2.__proto__) - assert.deepEqual(["__proto__"], Object.keys(o2)) - assert.deepEqual(5, Object.getOwnPropertyDescriptor(o2, "__proto__").value) - assert.deepEqual(["__proto__"], Object.getOwnPropertyNames(o2)) - assert(o2.hasOwnProperty("__proto__")) - assert(Object.prototype.isPrototypeOf(o2)) -}*/ - -assert.throws(parse.bind(null, "{-1:42}")) - -for (var i=0; i<100; i++) { - var str = '-01.e'.split('') - - var rnd = [1,2,3,4,5].map(function(x) { - x = ~~(Math.random()*str.length) - return str[x] - }).join('') - - try { - var x = parse(rnd) - } catch(err) { - x = 'fail' - } - try { - var y = JSON.parse(rnd) - } catch(err) { - y = 'fail' - } - try { - var z = eval(rnd) - } catch(err) { - z = 'fail' - } - //console.log(rnd, x, y, z) - if (x !== y && x !== z) throw 'ERROR' -} - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_portable.js b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_portable.js deleted file mode 100644 index 0143e7d8e5bff680e6e422007fbbf80d81cd86b8..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_portable.js +++ /dev/null @@ -1,60 +0,0 @@ -var assert = require('assert') -var FS = require('fs') -var YAML = require('js-yaml') -var jju = require('../') - -function addTest(name, fn) { - if (typeof(describe) === 'function') { - it(name, fn) - } else { - fn() - } -} - -var schema = YAML.Schema.create([ - new YAML.Type('!error', { - kind: 'scalar', - resolve: function (state) { - //state.result = null - return true - }, - }) -]) - -var tests = YAML.safeLoad(FS.readFileSync(__dirname + '/portable-json5-tests.yaml', 'utf8'), { - schema: schema -}) - -if (!Object.is) { - Object.defineProperty(Object, 'is', { - value: function(x, y) { - if (x === y) { - return x !== 0 || 1 / x === 1 / y; - } - return x !== x && y !== y; - }, - configurable: true, - enumerable: false, - writable: true, - }) -} - -for (var k in tests) { - ;(function(k) { - addTest(k, function() { - try { - var result = jju.parse(tests[k].input) - } catch(err) { - result = null - } - - // need deepStrictEqual - if (typeof(result) === 'object') { - assert.deepEqual(result, tests[k].output) - } else { - assert(Object.is(result, tests[k].output), String(result) + ' == ' + tests[k].output) - } - }) - })(k) -} - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_stringify.js b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_stringify.js deleted file mode 100644 index c97e38e93c1f619af018f50193df7dea58760496..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_stringify.js +++ /dev/null @@ -1,89 +0,0 @@ -var assert = require('assert') -var parse = require('../').parse -var stringify = require('../').stringify - -function deepEqual(x, y) { - if (Number.isNaN(x)) { - return assert(Number.isNaN(y)) - } - assert.deepEqual(x, y) -} - -function addTest(arg, arg2, arg3) { - function fn() { - deepEqual(parse(stringify(arg)), arg2 === undefined ? arg : arg2) - if (arg !== undefined) deepEqual(JSON.parse(stringify(arg, {mode: 'json', indent: false})), (arg3 === undefined ? (arg2 === undefined ? arg : arg2) : arg3)) - } - - if (typeof(describe) === 'function') { - it('test_stringify: ' + JSON.stringify(arg), fn) - } else { - fn() - } -} - -addTest(0) -addTest(-0) -addTest(NaN, undefined, null) -addTest(Infinity, undefined, null) -addTest(-Infinity, undefined, null) -addTest(123) -addTest(19508130958019385.135135) -addTest(-2e123) -addTest(null) -addTest(undefined) -addTest([]) -addTest([,,,,,,,], [null,null,null,null,null,null,null]) -addTest([undefined,null,1,2,3,], [null,null,1,2,3]) -addTest([[[[]]],[[]]]) -addTest({}) -addTest({1:2,3:4}) -addTest({1:{1:{1:{1:4}}}, 3:4}) -addTest({1:undefined, 3:undefined}, {}) -addTest(new Number(4), 4) -addTest(new Boolean(true), true) -addTest(new String('xqefxef'), 'xqefxef') -addTest(new Boolean(), false) - -var r='';for (var i=0; i<5000; i++) {r+=String.fromCharCode(i)} -addTest(r) - -assert.equal("[1, 2, 3]", stringify([1, 2, 3], {indent: 1})) -assert.equal("[1, 2, 3]", stringify([1, 2, 3], {indent: 2})) - -var oddball = Object(42) -oddball.__proto__ = { __proto__: null } -assert.equal('{}', stringify(oddball)) - -/* this WILL throw -var falseNum = Object("37") -falseNum.__proto__ = Number.prototype -assert.equal("{0: '3', 1: '7'}", stringify(falseNum))*/ - -assert.equal(stringify(Infinity), 'Infinity') -assert.equal(stringify(Infinity, {mode: 'json'}), 'null') -assert.equal(stringify(NaN), 'NaN') -assert.equal(stringify(NaN, {mode: 'json'}), 'null') -assert.equal(stringify(-0), '-0') - -assert.equal(stringify('test', null), "'test'") - -var array = [""] -var expected = "''" -for (var i = 0; i < 1000; i++) { - array.push("") - expected = "''," + expected -} -expected = '[' + expected + ']' -assert.equal(expected, stringify(array, {indent: false})) - -assert.strictEqual(stringify([1,2,3], function(){}), undefined) - -// don't stringify prototype -assert.equal('{a: 1}', stringify({a:1,__proto__:{b:2}})) - -// sort keys tests -assert.equal('{a: 1, b: 2, z: 3}', stringify({b:2,a:1,z:3}, {sort_keys: 1})) -assert.equal('{a: 1, b: {a: 2, b: 5, c: 1}, z: 3}', stringify({b:{c:1,a:2,b:5},a:1,z:3}, {sort_keys: 1})) -assert.equal('{a: [3, 5, 1], b: 2, z: 3}', stringify({b:2,a:[3,5,1],z:3}, {sort_keys: 1})) -assert.equal('{b: 2, a: 1, z: 3}', stringify({b:2,a:1,z:3}, {sort_keys: 0})) diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_tokenize.js b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_tokenize.js deleted file mode 100644 index 64fb7ec93d9fefb8012f9d7e067c6ef3a0646676..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_tokenize.js +++ /dev/null @@ -1,99 +0,0 @@ -var assert = require('assert') -var parse = require('../').parse - -function tokenize(arg) { - var result = [] - parse(arg, {_tokenize: function(smth) { - result.push(smth) - }}) - assert.deepEqual(result.map(function(x){return x.raw}).join(''), arg) - return result -} - -function addTest(x, exp) { - function fn(){assert.deepEqual(tokenize(x), exp)} - - if (typeof(describe) === 'function') { - it('test_tokenize: ' + JSON.stringify(x), fn) - } else { - fn() - } -} - -addTest('123', [ { raw: '123', value: 123, type: 'literal', stack: [] }]) - -addTest(' /* zz */\r\n true /* zz */\n', -[ { raw: ' ', type: 'whitespace', stack: [] }, - { raw: '/* zz */', type: 'comment', stack: [] }, - { raw: '\r\n', type: 'newline', stack: [] }, - { raw: ' ', type: 'whitespace', stack: [] }, - { raw: 'true', type: 'literal', value: true, stack: [] }, - { raw: ' ', type: 'whitespace', stack: [] }, - { raw: '/* zz */', type: 'comment', stack: [] }, - { raw: '\n', type: 'newline', stack: [] } ]) - -addTest('{q:123, w : /*zz*/\n\r 345 } ', -[ { raw: '{', type: 'separator', stack: [] }, - { raw: 'q', type: 'key', value: 'q', stack: [] }, - { raw: ':', type: 'separator', stack: [] }, - { raw: '123', type: 'literal', value: 123, stack: ['q'] }, - { raw: ',', type: 'separator', stack: [] }, - { raw: ' ', type: 'whitespace', stack: [] }, - { raw: 'w', type: 'key', value: 'w', stack: [] }, - { raw: ' ', type: 'whitespace', stack: [] }, - { raw: ':', type: 'separator', stack: [] }, - { raw: ' ', type: 'whitespace', stack: [] }, - { raw: '/*zz*/', type: 'comment', stack: [] }, - { raw: '\n', type: 'newline', stack: [] }, - { raw: '\r', type: 'newline', stack: [] }, - { raw: ' ', type: 'whitespace', stack: [] }, - { raw: '345', type: 'literal', value: 345, stack: ['w'] }, - { raw: ' ', type: 'whitespace', stack: [] }, - { raw: '}', type: 'separator', stack: [] }, - { raw: ' ', type: 'whitespace', stack: [] } ]) - -addTest('null /* */// xxx\n//xxx', -[ { raw: 'null', type: 'literal', value: null, stack: [] }, - { raw: ' ', type: 'whitespace', stack: [] }, - { raw: '/* */', type: 'comment', stack: [] }, - { raw: '// xxx', type: 'comment', stack: [] }, - { raw: '\n', type: 'newline', stack: [] }, - { raw: '//xxx', type: 'comment', stack: [] } ]) - -addTest('[1,2,[[],[1]],{},{1:2},{q:{q:{}}},]', -[ { raw: '[', type: 'separator', stack: [] }, - { raw: '1', type: 'literal', value: 1, stack: [0] }, - { raw: ',', type: 'separator', stack: [] }, - { raw: '2', type: 'literal', value: 2, stack: [1] }, - { raw: ',', type: 'separator', stack: [] }, - { raw: '[', type: 'separator', stack: [2] }, - { raw: '[', type: 'separator', stack: [2,0] }, - { raw: ']', type: 'separator', stack: [2,0] }, - { raw: ',', type: 'separator', stack: [2] }, - { raw: '[', type: 'separator', stack: [2,1] }, - { raw: '1', type: 'literal', value: 1, stack: [2,1,0] }, - { raw: ']', type: 'separator', stack: [2,1] }, - { raw: ']', type: 'separator', stack: [2] }, - { raw: ',', type: 'separator', stack: [] }, - { raw: '{', type: 'separator', stack: [3] }, - { raw: '}', type: 'separator', stack: [3] }, - { raw: ',', type: 'separator', stack: [] }, - { raw: '{', type: 'separator', stack: [4] }, - { raw: '1', type: 'key', value: 1, stack: [4] }, - { raw: ':', type: 'separator', stack: [4] }, - { raw: '2', type: 'literal', value: 2, stack: [4,'1'] }, - { raw: '}', type: 'separator', stack: [4] }, - { raw: ',', type: 'separator', stack: [] }, - { raw: '{', type: 'separator', stack: [5] }, - { raw: 'q', type: 'key', value: 'q', stack: [5] }, - { raw: ':', type: 'separator', stack: [5] }, - { raw: '{', type: 'separator', stack: [5,'q'] }, - { raw: 'q', type: 'key', value: 'q', stack: [5,'q'] }, - { raw: ':', type: 'separator', stack: [5,'q'] }, - { raw: '{', type: 'separator', stack: [5,'q','q'] }, - { raw: '}', type: 'separator', stack: [5,'q','q'] }, - { raw: '}', type: 'separator', stack: [5,'q'] }, - { raw: '}', type: 'separator', stack: [5] }, - { raw: ',', type: 'separator', stack: [] }, - { raw: ']', type: 'separator', stack: [] } ]) - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_updates.js b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_updates.js deleted file mode 100644 index b7482519a919a7fc7a6e3eeae36e3fae67d1b96f..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/test_updates.js +++ /dev/null @@ -1,22 +0,0 @@ -var assert = require('assert') -var FS = require('fs') -var YAML = require('js-yaml') -var jju = require('../') - -function addTest(name, fn) { - if (typeof(describe) === 'function') { - it(name, fn) - } else { - fn() - } -} - -FS.readdirSync(__dirname + '/update').filter(function(file) { - return file.match(/^[^\.].*\.yaml$/) -}).forEach(function(file) { - addTest('update: ' + file, function() { - var test = YAML.load(FS.readFileSync(__dirname + '/update/' + file, 'utf8')) - assert.strictEqual(test.test(jju, test.input), test.output) - }) -}) - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/author.yaml b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/author.yaml deleted file mode 100644 index 4b08bb61b4905625ddf50c56e759878c98f9613a..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/author.yaml +++ /dev/null @@ -1,31 +0,0 @@ -input: | - { "name": "just-a-demo", - "version": "0.1.2", - "description": "blahblahblah", - "main": "test.js", - "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "author": "John Doe ", - "license": "BSD-2-Clause" } - -output: | - { "name": "just-a-demo", - "version": "0.1.2", - "description": "blahblahblah", - "main": "test.js", - "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "author": { - "name": "John Doe", - "email": "whoever@google.com" - }, - "license": "BSD-2-Clause" } - -test: !!js/function | - function(jju, input) { - obj = jju.parse(input) - obj.author = { - name: 'John Doe', - email: 'whoever@google.com', - } - return jju.update(input, obj) - } - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/deep-object.yaml b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/deep-object.yaml deleted file mode 100644 index e0795a37874e9e534e5143484608ef15a42e2f8b..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/deep-object.yaml +++ /dev/null @@ -1,36 +0,0 @@ -input: | - { - "foo": { - "bar": { - "baz": { - "quux": "4" - } - } - } - } - -output: | - { - "foo": { - "bar": { - "baz": { - "quux": "4" - }, - "qwe": { - "rty": { - "aaa": { - "bbb": 1 - } - } - } - } - } - } - -test: !!js/function | - function(jju, input) { - obj = jju.parse(input) - obj.foo.bar.qwe = {rty: {aaa: {bbb: 1}}} - return jju.update(input, obj, {mode:'json'}) - } - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/delete.yaml b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/delete.yaml deleted file mode 100644 index b964715d37b0b478380f8a73eaae491ec12e528d..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/delete.yaml +++ /dev/null @@ -1,36 +0,0 @@ -input: | - { - "name": "test", - "version": "0.0.0", - "dependencies": { - "foo": "1.2.x", - "bar": ">= 1" - }, - "bundleDependencies": [ - "foo", - "bar" - ], - "license": "BSD-2-Clause" - } - -output: | - { - "name": "test", - "version": "0.0.0", - "dependencies": { - "foo": "1.2.x" - }, - "bundleDependencies": [ - "foo" - ], - "license": "BSD-2-Clause" - } - -test: !!js/function | - function(jju, input) { - obj = jju.parse(input) - obj.bundleDependencies.pop() - delete obj.dependencies.bar - return jju.update(input, obj, {mode:'json'}) - } - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/norm-array.yaml b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/norm-array.yaml deleted file mode 100644 index c5b9dd952d125573991b6c951074339575709a02..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/norm-array.yaml +++ /dev/null @@ -1,32 +0,0 @@ -input: | - { - "name": "test", - "version": "0.0.0", - "bundleDependencies": [ - "foo", - "bar" - ], - "license": "BSD-2-Clause" - } - -output: | - { - "name": "test", - "version": "0.0.0", - "bundleDependencies": [ - "foo", - "bar", - "baz", - "quux" - ], - "license": "BSD-2-Clause" - } - -test: !!js/function | - function(jju, input) { - obj = jju.parse(input) - obj.bundleDependencies.push('baz') - obj.bundleDependencies.push('quux') - return jju.update(input, obj, {mode:'json'}) - } - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/norm-object.yaml b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/norm-object.yaml deleted file mode 100644 index 93878675b7abc72949ec55aa11d9081c7aeb8972..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/norm-object.yaml +++ /dev/null @@ -1,32 +0,0 @@ -input: | - { - "name": "test", - "version": "0.0.0", - "dependencies": { - "foobar": "*", - "bazquux": ">= 1.1.1" - }, - "license": "BSD-2-Clause" - } - -output: | - { - "name": "test", - "version": "0.0.0", - "dependencies": { - "foobar": "*", - "bazquux": ">= 1.1.1", - "whatever": "1.2.x", - "qwerty": "1" - }, - "license": "BSD-2-Clause" - } - -test: !!js/function | - function(jju, input) { - obj = jju.parse(input) - obj.dependencies.whatever = '1.2.x' - obj.dependencies.qwerty = '1' - return jju.update(input, obj, {mode:'json'}) - } - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/npm-array-bin.yaml b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/npm-array-bin.yaml deleted file mode 100644 index 35e1639bfda28b090a9b51859e6120180c252e9f..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/npm-array-bin.yaml +++ /dev/null @@ -1,29 +0,0 @@ -input: | - { "name":"npm-test-array-bin" - , "version":"1.2.5" - , "bin": [ "bin/array-bin" ] - , "scripts": { "test": "node test.js" } } - -# less than ideal, I know... -output: | - { "name":"npm-test-array-bin" - , "version":"1.2.5" - , "bin": {"array-bin":"bin/array-bin"} - , "scripts": { "test": "node test.js" }, "readme": "just an npm test\n", "readmeFilename": "README", "description": "just an npm test", "_id": "npm-test-array-bin@1.2.5", "dist": {"shasum":"9c426a1bd55e98718ab4ddcc01fa57ea83c649f1"}, "_from": "npm-test-array-bin/" } - -test: !!js/function | - function(jju, input) { - obj = - { name: 'npm-test-array-bin', - version: '1.2.5', - bin: { 'array-bin': 'bin/array-bin' }, - scripts: { test: 'node test.js' }, - readme: 'just an npm test\n', - readmeFilename: 'README', - description: 'just an npm test', - _id: 'npm-test-array-bin@1.2.5', - dist: { shasum: '9c426a1bd55e98718ab4ddcc01fa57ea83c649f1' }, - _from: 'npm-test-array-bin/' } - return jju.update(input, obj) - } - diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/pkg-json5.yaml b/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/pkg-json5.yaml deleted file mode 100644 index 21a5c6eb141ed41bfb35900985421336e832bc44..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/test/update/pkg-json5.yaml +++ /dev/null @@ -1,36 +0,0 @@ -input: | - // vim:syntax=javascript - { - name: 'yapm', - version: '1.1.0-1325', // upstream npm@1.3.25 - description: 'A package manager for node (npm fork)', - } - -output: | - // vim:syntax=javascript - { - name: 'yapm', - version: '1.1.0-1325', // upstream npm@1.3.25 - description: 'A package manager for node (npm fork)', - _id: 'yapm@1.1.0-1325', - dist: { - shasum: 'd5aa31c1ad00c1e7e57e07cea1b22c1806a47111', - }, - _from: './zzz', - } - -test: !!js/function | - function(jju, input) { - var upd = { - "name": "yapm", - "version": "1.1.0-1325", - "description": "A package manager for node (npm fork)", - "_id": "yapm@1.1.0-1325", - "dist": { - "shasum": "d5aa31c1ad00c1e7e57e07cea1b22c1806a47111" - }, - "_from": "./zzz" - } - return jju.update(input, upd) - } - diff --git a/deps/npm/node_modules/read-package-json/package.json b/deps/npm/node_modules/read-package-json/package.json index 17113419c0ab74f47f845d16f4f1337ee825e06e..b6eadd5d00a9accb2bb3853e8e6b255ba41b48ed 100644 --- a/deps/npm/node_modules/read-package-json/package.json +++ b/deps/npm/node_modules/read-package-json/package.json @@ -1,42 +1,97 @@ { - "name": "read-package-json", - "version": "2.0.1", + "_args": [ + [ + "read-package-json@~2.0.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "read-package-json@>=2.0.0 <2.1.0", + "_id": "read-package-json@2.0.1", + "_inCache": true, + "_location": "/read-package-json", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" + }, + "_npmVersion": "2.14.3", + "_phantomChildren": {}, + "_requested": { + "name": "read-package-json", + "raw": "read-package-json@~2.0.0", + "rawSpec": "~2.0.0", + "scope": null, + "spec": ">=2.0.0 <2.1.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/init-package-json", + "/read-installed", + "/read-package-tree" + ], + "_resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.1.tgz", + "_shasum": "b822abfc2c4f0abfe7f52de6448be4560b6e7053", + "_shrinkwrap": null, + "_spec": "read-package-json@~2.0.0", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "description": "The thing npm uses to read package.json files with semantics and defaults and validation", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/read-package-json.git" - }, - "main": "read-json.js", - "scripts": { - "test": "standard && tap test/*.js" + "bugs": { + "url": "https://github.com/isaacs/read-package-json/issues" }, "dependencies": { "glob": "^5.0.3", + "graceful-fs": "^4.1.2", "json-parse-helpfulerror": "^1.0.2", - "normalize-package-data": "^2.0.0", - "graceful-fs": "^4.1.2" + "normalize-package-data": "^2.0.0" }, + "description": "The thing npm uses to read package.json files with semantics and defaults and validation", "devDependencies": { "standard": "^3.3.1", "tap": "^1.2.0" }, + "directories": {}, + "dist": { + "shasum": "b822abfc2c4f0abfe7f52de6448be4560b6e7053", + "tarball": "http://registry.npmjs.org/read-package-json/-/read-package-json-2.0.1.tgz" + }, + "gitHead": "d4f9f52c823750e7f2a7b9069bc56b9fd3a0ee96", + "homepage": "https://github.com/isaacs/read-package-json#readme", + "installable": true, + "license": "ISC", + "main": "read-json.js", + "maintainers": [ + { + "name": "iarna", + "email": "me@re-becca.org" + }, + { + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" + } + ], + "name": "read-package-json", "optionalDependencies": { "graceful-fs": "^4.1.2" }, - "license": "ISC", - "readme": "# read-package-json\n\nThis is the thing that npm uses to read package.json files. It\nvalidates some stuff, and loads some default things.\n\nIt keeps a cache of the files you've read, so that you don't end\nup reading the same package.json file multiple times.\n\nNote that if you just want to see what's literally in the package.json\nfile, you can usually do `var data = require('some-module/package.json')`.\n\nThis module is basically only needed by npm, but it's handy to see what\nnpm will see when it looks at your package.\n\n## Usage\n\n```javascript\nvar readJson = require('read-package-json')\n\n// readJson(filename, [logFunction=noop], [strict=false], cb)\nreadJson('/path/to/package.json', console.error, false, function (er, data) {\n if (er) {\n console.error(\"There was an error reading the file\")\n return\n }\n\n console.error('the package data is', data)\n});\n```\n\n## readJson(file, [logFn = noop], [strict = false], cb)\n\n* `file` {String} The path to the package.json file\n* `logFn` {Function} Function to handle logging. Defaults to a noop.\n* `strict` {Boolean} True to enforce SemVer 2.0 version strings, and\n other strict requirements.\n* `cb` {Function} Gets called with `(er, data)`, as is The Node Way.\n\nReads the JSON file and does the things.\n\n## `package.json` Fields\n\nSee `man 5 package.json` or `npm help json`.\n\n## readJson.log\n\nBy default this is a reference to the `npmlog` module. But if that\nmodule can't be found, then it'll be set to just a dummy thing that does\nnothing.\n\nReplace with your own `{log,warn,error}` object for fun loggy time.\n\n## readJson.extras(file, data, cb)\n\nRun all the extra stuff relative to the file, with the parsed data.\n\nModifies the data as it does stuff. Calls the cb when it's done.\n\n## readJson.extraSet = [fn, fn, ...]\n\nArray of functions that are called by `extras`. Each one receives the\narguments `fn(file, data, cb)` and is expected to call `cb(er, data)`\nwhen done or when an error occurs.\n\nOrder is indeterminate, so each function should be completely\nindependent.\n\nMix and match!\n\n## readJson.cache\n\nThe `lru-cache` object that readJson uses to not read the same file over\nand over again. See\n[lru-cache](https://github.com/isaacs/node-lru-cache) for details.\n\n## Other Relevant Files Besides `package.json`\n\nSome other files have an effect on the resulting data object, in the\nfollowing ways:\n\n### `README?(.*)`\n\nIf there is a `README` or `README.*` file present, then npm will attach\na `readme` field to the data with the contents of this file.\n\nOwing to the fact that roughly 100% of existing node modules have\nMarkdown README files, it will generally be assumed to be Markdown,\nregardless of the extension. Please plan accordingly.\n\n### `server.js`\n\nIf there is a `server.js` file, and there is not already a\n`scripts.start` field, then `scripts.start` will be set to `node\nserver.js`.\n\n### `AUTHORS`\n\nIf there is not already a `contributors` field, then the `contributors`\nfield will be set to the contents of the `AUTHORS` file, split by lines,\nand parsed.\n\n### `bindings.gyp`\n\nIf a bindings.gyp file exists, and there is not already a\n`scripts.install` field, then the `scripts.install` field will be set to\n`node-gyp rebuild`.\n\n### `wscript`\n\nIf a wscript file exists, and there is not already a `scripts.install`\nfield, then the `scripts.install` field will be set to `node-waf clean ;\nnode-waf configure build`.\n\nNote that the `bindings.gyp` file supercedes this, since node-waf has\nbeen deprecated in favor of node-gyp.\n\n### `index.js`\n\nIf the json file does not exist, but there is a `index.js` file\npresent instead, and that file has a package comment, then it will try\nto parse the package comment, and use that as the data instead.\n\nA package comment looks like this:\n\n```javascript\n/**package\n * { \"name\": \"my-bare-module\"\n * , \"version\": \"1.2.3\"\n * , \"description\": \"etc....\" }\n **/\n\n// or...\n\n/**package\n{ \"name\": \"my-bare-module\"\n, \"version\": \"1.2.3\"\n, \"description\": \"etc....\" }\n**/\n```\n\nThe important thing is that it starts with `/**package`, and ends with\n`**/`. If the package.json file exists, then the index.js is not\nparsed.\n\n### `{directories.man}/*.[0-9]`\n\nIf there is not already a `man` field defined as an array of files or a\nsingle file, and\nthere is a `directories.man` field defined, then that directory will\nbe searched for manpages.\n\nAny valid manpages found in that directory will be assigned to the `man`\narray, and installed in the appropriate man directory at package install\ntime, when installed globally on a Unix system.\n\n### `{directories.bin}/*`\n\nIf there is not already a `bin` field defined as a string filename or a\nhash of ` : ` pairs, then the `directories.bin`\ndirectory will be searched and all the files within it will be linked as\nexecutables at install time.\n\nWhen installing locally, npm links bins into `node_modules/.bin`, which\nis in the `PATH` environ when npm runs scripts. When\ninstalling globally, they are linked into `{prefix}/bin`, which is\npresumably in the `PATH` environment variable.\n", - "readmeFilename": "README.md", - "gitHead": "d4f9f52c823750e7f2a7b9069bc56b9fd3a0ee96", - "bugs": { - "url": "https://github.com/isaacs/read-package-json/issues" + "repository": { + "type": "git", + "url": "git://github.com/isaacs/read-package-json.git" }, - "homepage": "https://github.com/isaacs/read-package-json#readme", - "_id": "read-package-json@2.0.1", - "_shasum": "b822abfc2c4f0abfe7f52de6448be4560b6e7053", - "_from": "read-package-json@2.0.1" + "scripts": { + "test": "standard && tap test/*.js" + }, + "version": "2.0.1" } diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/.travis.yml b/deps/npm/node_modules/read-package-tree/.travis.yml similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/.travis.yml rename to deps/npm/node_modules/read-package-tree/.travis.yml diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/LICENSE b/deps/npm/node_modules/read-package-tree/LICENSE similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/LICENSE rename to deps/npm/node_modules/read-package-tree/LICENSE diff --git a/deps/npm/node_modules/read-package-tree/README.md b/deps/npm/node_modules/read-package-tree/README.md new file mode 100644 index 0000000000000000000000000000000000000000..b3cda81f7fdcf42296db3519040ab4c6943e0c21 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/README.md @@ -0,0 +1,68 @@ +# read-package-tree + +Read the contents of node_modules. + +## USAGE + +```javascript +var rpt = require ('read-package-tree') +rpt('/path/to/pkg/root', function (node, kidName) { + // optional filter function– if included, each package folder found is passed to + // it to see if it should be included in the final tree + // node is what we're adding children to + // kidName is the directory name of the module we're considering adding + // return true -> include, false -> skip +}, function (er, data) { + // er means that something didn't work. + // data is a structure like: + // { + // package: + // package.name: defaults to `basename(path)` + // children: [ ] + // parent: + // path: + // realpath: + // isLink: + // target: + // error: + // } +}) +``` + +That's it. It doesn't figure out if dependencies are met, it doesn't +mutate package.json data objects (beyond what +[read-package-json](http://npm.im/read-package-json) already does), it +doesn't limit its search to include/exclude `devDependencies`, or +anything else. + +Just follows the links in the `node_modules` heirarchy and reads the +package.json files it finds therein. + +## Symbolic Links + +When there are symlinks to packages in the `node_modules` hierarchy, a +`Link` object will be created, with a `target` that is a `Node` +object. + +For the most part, you can treat `Link` objects just the same as +`Node` objects. But if your tree-walking program needs to treat +symlinks differently from normal folders, then make sure to check the +object. + +In a given `read-package-tree` run, a specific `path` will always +correspond to a single object, and a specific `realpath` will always +correspond to a single `Node` object. This means that you may not be +able to pass the resulting data object to `JSON.stringify`, because it +may contain cycles. + +## Errors + +Errors parsing or finding a package.json in node_modules will result in a +node with the error property set. We will still find deeper node_modules +if any exist. *Prior to `5.0.0` these aborted tree reading with an error +callback.* + +Only a few classes of errors are fatal (result in an error callback): + +* If the top level location is entirely missing, that will error. +* if `fs.realpath` returns an error for any path its trying to resolve. diff --git a/deps/npm/node_modules/read-package-tree/package.json b/deps/npm/node_modules/read-package-tree/package.json new file mode 100644 index 0000000000000000000000000000000000000000..4f70ab170e7e0e346a5eff9e46d83210537d8aec --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/package.json @@ -0,0 +1,86 @@ +{ + "_args": [ + [ + "read-package-tree@~5.1.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "read-package-tree@>=5.1.1 <5.2.0", + "_id": "read-package-tree@5.1.2", + "_inCache": true, + "_location": "/read-package-tree", + "_nodeVersion": "0.12.7", + "_npmUser": { + "email": "me@re-becca.org", + "name": "iarna" + }, + "_npmVersion": "2.13.3", + "_phantomChildren": {}, + "_requested": { + "name": "read-package-tree", + "raw": "read-package-tree@~5.1.1", + "rawSpec": "~5.1.1", + "scope": null, + "spec": ">=5.1.1 <5.2.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_shasum": "e3a488792f40cf470819f01a610e719d64f09094", + "_shrinkwrap": null, + "_spec": "read-package-tree@~5.1.1", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/npm/read-package-tree/issues" + }, + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" + }, + "description": "Read the contents of node_modules.", + "devDependencies": { + "archy": "0", + "tap": "^1.2.0" + }, + "directories": { + "test": "test" + }, + "dist": { + "shasum": "e3a488792f40cf470819f01a610e719d64f09094", + "tarball": "http://registry.npmjs.org/read-package-tree/-/read-package-tree-5.1.2.tgz" + }, + "gitHead": "2ed40c4654804f2a5ddb7b0b2c509080731eea6b", + "homepage": "https://github.com/npm/read-package-tree", + "installable": true, + "license": "ISC", + "main": "rpt.js", + "maintainers": [ + { + "name": "isaacs", + "email": "i@izs.me" + }, + { + "name": "iarna", + "email": "me@re-becca.org" + } + ], + "name": "read-package-tree", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/npm/read-package-tree.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "5.1.2" +} diff --git a/deps/npm/node_modules/read-package-tree/rpt.js b/deps/npm/node_modules/read-package-tree/rpt.js new file mode 100644 index 0000000000000000000000000000000000000000..acd91bd8c014349ffcb67e1a4ab1247afd4457b0 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/rpt.js @@ -0,0 +1,190 @@ +var fs = require('fs') +var rpj = require('read-package-json') +var path = require('path') +var dz = require('dezalgo') +var once = require('once') +var readdir = require('readdir-scoped-modules') +var debug = require('debuglog')('rpt') + +function dpath (p) { + if (!p) return '' + if (p.indexOf(process.cwd()) === 0) { + p = p.substr(process.cwd().length + 1) + } + return p +} + +module.exports = rpt + +rpt.Node = Node +rpt.Link = Link + +var ID = 0 +function Node (pkg, logical, physical, er, cache) { + if (cache[physical]) return cache[physical] + + if (!(this instanceof Node)) { + return new Node(pkg, logical, physical, er, cache) + } + + cache[physical] = this + + debug(this.constructor.name, dpath(physical), pkg && pkg._id) + + this.id = ID++ + this.package = pkg || {} + this.path = logical + this.realpath = physical + this.parent = null + this.isLink = false + this.children = [] + this.error = er +} + +Node.prototype.package = null +Node.prototype.path = '' +Node.prototype.realpath = '' +Node.prototype.children = null +Node.prototype.error = null + +function Link (pkg, logical, physical, realpath, er, cache) { + if (cache[physical]) return cache[physical] + + if (!(this instanceof Link)) { + return new Link(pkg, logical, physical, realpath, er, cache) + } + + cache[physical] = this + + debug(this.constructor.name, dpath(physical), pkg && pkg._id) + + this.id = ID++ + this.path = logical + this.realpath = realpath + this.package = pkg || {} + this.parent = null + this.target = new Node(this.package, logical, realpath, er, cache) + this.isLink = true + this.children = this.target.children + this.error = er +} + +Link.prototype = Object.create(Node.prototype, { + constructor: { value: Link } +}) +Link.prototype.target = null +Link.prototype.realpath = '' + +function loadNode (logical, physical, cache, cb) { + debug('loadNode', dpath(logical)) + fs.realpath(physical, function (er, real) { + if (er) return cb(er) + debug('realpath l=%j p=%j real=%j', dpath(logical), dpath(physical), dpath(real)) + var pj = path.resolve(real, 'package.json') + rpj(pj, function (er, pkg) { + pkg = pkg || null + var node + if (physical === real) { + node = new Node(pkg, logical, physical, er, cache) + } else { + node = new Link(pkg, logical, physical, real, er, cache) + } + + cb(null, node) + }) + }) +} + +function loadChildren (node, cache, filterWith, cb) { + debug('loadChildren', dpath(node.path)) + // don't let it be called more than once + cb = once(cb) + var nm = path.resolve(node.path, 'node_modules') + readdir(nm, function (er, kids) { + // If there are no children, that's fine, just return + if (er) return cb(null, node) + + kids = kids.filter(function (kid) { + return kid[0] !== '.' && (!filterWith || filterWith(node, kid)) + }) + + var l = kids . length + if (l === 0) return cb(null, node) + + kids.forEach(function (kid) { + var kidPath = path.resolve(nm, kid) + var kidRealPath = path.resolve(node.realpath,'node_modules',kid) + loadNode(kidPath, kidRealPath, cache, then) + }) + + function then (er, kid) { + if (er) return cb(er) + + node.children.push(kid) + kid.parent = node + if (--l === 0) { + sortChildren(node) + return cb(null, node) + } + } + }) +} + +function sortChildren (node) { + node.children = node.children.sort(function (a, b) { + a = a.package.name ? a.package.name.toLowerCase() : a.path + b = b.package.name ? b.package.name.toLowerCase() : b.path + return a > b ? 1 : -1 + }) +} + +function loadTree (node, did, cache, filterWith, cb) { + debug('loadTree', dpath(node.path), !!cache[node.path]) + + if (did[node.realpath]) { + return dz(cb)(null, node) + } + + did[node.realpath] = true + + cb = once(cb) + loadChildren(node, cache, filterWith, function (er, node) { + if (er) return cb(er) + + var kids = node.children.filter(function (kid) { + return !did[kid.realpath] + }) + + var l = kids.length + if (l === 0) return cb(null, node) + + kids.forEach(function (kid, index) { + loadTree(kid, did, cache, filterWith, then) + }) + + function then (er, kid) { + if (er) return cb(er) + + if (--l === 0) cb(null, node) + } + }) +} + +function rpt (root, filterWith, cb) { + if (!cb) { + cb = filterWith + filterWith = null + } + fs.realpath(root, function (er, realRoot) { + if (er) return cb(er) + debug('rpt', dpath(realRoot)) + var cache = Object.create(null) + loadNode(root, realRoot, cache, function (er, node) { + // if there's an error, it's fine, as long as we got a node + if (!node) return cb(er) + loadTree(node, {}, cache, filterWith, function (lter, tree) { + cb(er && er.code !== 'ENOENT' ? er : lter, tree) + }) + }) + }) +} diff --git a/deps/npm/node_modules/read-package-tree/test/basic.js b/deps/npm/node_modules/read-package-tree/test/basic.js new file mode 100644 index 0000000000000000000000000000000000000000..0dcb538911f3f244f744d5b760406a0e14fe2911 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/test/basic.js @@ -0,0 +1,155 @@ +var test = require('tap').test +var rpt = require('../rpt.js') +var path = require('path') +var fs = require('fs') +var archy = require('archy') +var fixtures = path.resolve(__dirname, 'fixtures') +var roots = [ 'root', 'other', 'selflink', 'noname' ] +var cwd = path.resolve(__dirname, '..') + +var symlinks = { + 'selflink/node_modules/@scope/z/node_modules/glob': + '../../../foo/node_modules/glob', + 'other/node_modules/glob': + '../../root/node_modules/@scope/x/node_modules/glob', + 'linkedroot': + 'root', + 'deep/root': + '../root', + 'deeproot': + 'deep' +} + +function cleanup () { + Object.keys(symlinks).forEach(function (s) { + var p = path.resolve(cwd, 'test/fixtures', s) + try { + fs.unlinkSync(p) + } catch (er) {} + }) +} + +test('setup symlinks', function (t) { + cleanup() + + Object.keys(symlinks).forEach(function (s) { + var p = path.resolve(cwd, 'test/fixtures', s) + fs.symlinkSync(symlinks [ s ], p, 'dir') + }) + + t.end() +}) + +roots.forEach(function (root) { + var dir = path.resolve(fixtures, root) + var expectedtxt = path.resolve(dir, 'archy.txt') + var expectedre = path.resolve(dir, 'archy.re') + + test(root, function (t) { + rpt(dir, function (er, d) { + if (er && er.code !== 'ENOENT') throw er + + var actual = archy(archyize(d)).trim() + // console . log ('----', dir) + console.log(actual) + // console . log (require ('util') . inspect (d, { + // depth: Infinity + // })) + try { + var expect = fs.readFileSync(expectedtxt, 'utf8').trim() + t.equal(actual, expect, root + ' tree') + } catch (e) { + var expect = new RegExp(fs.readFileSync(expectedre, 'utf8').trim()) + t.like(actual, expect, root + ' tree') + } + t.end() + }) + }) +}) + +test('linkedroot', function (t) { + var dir = path.resolve(fixtures, 'linkedroot') + var out = dir + '-archy.txt' + rpt(dir, function (er, d) { + if (er && er.code !== 'ENOENT') throw er + + var actual = archy(archyize(d)).trim() + console.log(actual) + var expect = fs.readFileSync(out, 'utf8').trim() + t.equal(actual, expect, 'linkedroot tree') + t.end() + }) +}) + +test('deeproot', function (t) { + var dir = path.resolve(fixtures, 'deeproot/root') + var out = path.resolve(fixtures, 'deep') + '-archy.txt' + rpt(dir, function (er, d) { + if (er && er.code !== 'ENOENT') throw er + + var actual = archy(archyize(d)).trim() + console.log(actual) + var expect = fs.readFileSync(out, 'utf8').trim() + t.equal(actual, expect, 'deeproot tree') + t.end() + }) +}) + +test('broken json', function (t) { + rpt(path.resolve(fixtures, 'bad'), function (er, d) { + t.ok(d.error, 'Got an error object') + t.equal(d.error && d.error.code, 'EJSONPARSE') + t.ok(d, 'Got a tree') + t.end() + }) +}) + +test('missing json does not obscure deeper errors', function (t) { + rpt(path.resolve(fixtures, 'empty'), function (er, d) { + var error = d.error + t.ok(error, 'Error reading json of top level') + t.equal(error && error.code, 'ENOENT') + var childError = d.children.length===1 && d.children[0].error + t.ok(childError, 'Error parsing JSON of child node') + t.equal(childError && childError.code, 'EJSONPARSE') + t.end() + }) +}) +test('missing folder', function (t) { + rpt(path.resolve(fixtures, 'does-not-exist'), function (er, d) { + t.ok(er, 'Got an error object') + t.equal(er && er.code, 'ENOENT') + t.ok(!d, 'No tree on top level error') + t.end() + }) +}) + + +function archyize (d, seen) { + seen = seen || {} + var path = d.path + if (d.target) { + path = d.target.path + } + + var label = d.package._id ? d.package._id + ' ' : + d.package.name ? d.package.name + (d.package.version ? '@' + d.package.version : '') + ' ' : + '' + label += path.substr(cwd.length + 1) + + if (d . target) { + return { label: label + ' (symlink)', nodes: [] } + } + + return { + label: label, + nodes: d.children.map(function (kid) { + return archyize(kid, seen) + }) + } +} + +test('cleanup', function (t) { + cleanup() + t.end() +}) diff --git a/deps/npm/node_modules/read-package-tree/test/fixtures/bad/package.json b/deps/npm/node_modules/read-package-tree/test/fixtures/bad/package.json new file mode 100644 index 0000000000000000000000000000000000000000..21d815ec3b0c338a148b78a0345ec31b5de2b251 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/test/fixtures/bad/package.json @@ -0,0 +1,2 @@ +{ + "NOPE" diff --git a/deps/npm/node_modules/read-package-tree/test/fixtures/deep-archy.txt b/deps/npm/node_modules/read-package-tree/test/fixtures/deep-archy.txt new file mode 100644 index 0000000000000000000000000000000000000000..630eab1a49370034c619697b8426ae463b953e30 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/test/fixtures/deep-archy.txt @@ -0,0 +1,11 @@ +root@1.2.3 test/fixtures/deeproot/root +├─┬ @scope/x@1.2.3 test/fixtures/deeproot/root/node_modules/@scope/x +│ └─┬ glob@4.0.5 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob +│ ├── graceful-fs@3.0.2 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/graceful-fs +│ ├── inherits@2.0.1 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/inherits +│ ├─┬ minimatch@1.0.0 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch +│ │ ├── lru-cache@2.5.0 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/lru-cache +│ │ └── sigmund@1.0.0 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/sigmund +│ └── once@1.3.0 test/fixtures/deeproot/root/node_modules/@scope/x/node_modules/glob/node_modules/once +├── @scope/y@1.2.3 test/fixtures/deeproot/root/node_modules/@scope/y +└── foo@1.2.3 test/fixtures/deeproot/root/node_modules/foo \ No newline at end of file diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/@org/x/.keep b/deps/npm/node_modules/read-package-tree/test/fixtures/deep/.keep similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/@org/x/.keep rename to deps/npm/node_modules/read-package-tree/test/fixtures/deep/.keep diff --git a/deps/npm/node_modules/read-package-tree/test/fixtures/empty/node_modules/foo/package.json b/deps/npm/node_modules/read-package-tree/test/fixtures/empty/node_modules/foo/package.json new file mode 100644 index 0000000000000000000000000000000000000000..98232c64fce9360c79f119cf6de8f670f69f1c44 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/test/fixtures/empty/node_modules/foo/package.json @@ -0,0 +1 @@ +{ diff --git a/deps/npm/node_modules/read-package-tree/test/fixtures/linkedroot-archy.txt b/deps/npm/node_modules/read-package-tree/test/fixtures/linkedroot-archy.txt new file mode 100644 index 0000000000000000000000000000000000000000..e34a46031304d4c7b89af4f0cd6dd5acead7a161 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/test/fixtures/linkedroot-archy.txt @@ -0,0 +1,11 @@ +root@1.2.3 test/fixtures/linkedroot +├─┬ @scope/x@1.2.3 test/fixtures/linkedroot/node_modules/@scope/x +│ └─┬ glob@4.0.5 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob +│ ├── graceful-fs@3.0.2 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/graceful-fs +│ ├── inherits@2.0.1 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/inherits +│ ├─┬ minimatch@1.0.0 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/minimatch +│ │ ├── lru-cache@2.5.0 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/lru-cache +│ │ └── sigmund@1.0.0 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/sigmund +│ └── once@1.3.0 test/fixtures/linkedroot/node_modules/@scope/x/node_modules/glob/node_modules/once +├── @scope/y@1.2.3 test/fixtures/linkedroot/node_modules/@scope/y +└── foo@1.2.3 test/fixtures/linkedroot/node_modules/foo \ No newline at end of file diff --git a/deps/npm/node_modules/read-package-tree/test/fixtures/noname/archy.txt b/deps/npm/node_modules/read-package-tree/test/fixtures/noname/archy.txt new file mode 100644 index 0000000000000000000000000000000000000000..03d78dfc69b8b35db1bde5885d1b6bbe265a3a63 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/test/fixtures/noname/archy.txt @@ -0,0 +1,2 @@ +test/fixtures/noname +└── test/fixtures/noname/node_modules/foo diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/@org/y/.keep b/deps/npm/node_modules/read-package-tree/test/fixtures/noname/node_modules/foo/keep-alive similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/@org/y/.keep rename to deps/npm/node_modules/read-package-tree/test/fixtures/noname/node_modules/foo/keep-alive diff --git a/deps/npm/node_modules/read-package-tree/test/fixtures/other/archy.txt b/deps/npm/node_modules/read-package-tree/test/fixtures/other/archy.txt new file mode 100644 index 0000000000000000000000000000000000000000..23666226c918202df334dfcc4733abed2edf3b87 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/test/fixtures/other/archy.txt @@ -0,0 +1,2 @@ +test/fixtures/other +└── glob@4.0.5 test/fixtures/other/node_modules/glob (symlink) \ No newline at end of file diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/@scope/x/.keep b/deps/npm/node_modules/read-package-tree/test/fixtures/other/node_modules/.bin similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/@scope/x/.keep rename to deps/npm/node_modules/read-package-tree/test/fixtures/other/node_modules/.bin diff --git a/deps/npm/node_modules/read-package-tree/test/fixtures/root/archy.txt b/deps/npm/node_modules/read-package-tree/test/fixtures/root/archy.txt new file mode 100644 index 0000000000000000000000000000000000000000..1aacd3f0b7bc6594db11835a89b6c85d668c5440 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/test/fixtures/root/archy.txt @@ -0,0 +1,11 @@ +root@1.2.3 test/fixtures/root +├─┬ @scope/x@1.2.3 test/fixtures/root/node_modules/@scope/x +│ └─┬ glob@4.0.5 test/fixtures/root/node_modules/@scope/x/node_modules/glob +│ ├── graceful-fs@3.0.2 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/graceful-fs +│ ├── inherits@2.0.1 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/inherits +│ ├─┬ minimatch@1.0.0 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch +│ │ ├── lru-cache@2.5.0 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/lru-cache +│ │ └── sigmund@1.0.0 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/minimatch/node_modules/sigmund +│ └── once@1.3.0 test/fixtures/root/node_modules/@scope/x/node_modules/glob/node_modules/once +├── @scope/y@1.2.3 test/fixtures/root/node_modules/@scope/y +└── foo@1.2.3 test/fixtures/root/node_modules/foo \ No newline at end of file diff --git a/deps/npm/node_modules/read-package-tree/test/fixtures/root/package.json b/deps/npm/node_modules/read-package-tree/test/fixtures/root/package.json new file mode 100644 index 0000000000000000000000000000000000000000..010347cee63bc565789b34a580ebdb64ea03227b --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/test/fixtures/root/package.json @@ -0,0 +1,2 @@ +{"name":"root", + "version":"1.2.3"} \ No newline at end of file diff --git a/deps/npm/node_modules/read-package-tree/test/fixtures/selflink/archy.re b/deps/npm/node_modules/read-package-tree/test/fixtures/selflink/archy.re new file mode 100644 index 0000000000000000000000000000000000000000..22e18109b1b37a3b3d698be3f2fdc3ed6c056da8 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/test/fixtures/selflink/archy.re @@ -0,0 +1,13 @@ +selflink@1[.]2[.]3 test/fixtures/selflink +├── @scope/y@1[.]2[.]3 test/fixtures/selflink/node_modules/@scope/y +├─┬ @scope/z@1[.]2[.]3 test/fixtures/selflink/node_modules/@scope/z +│ └── glob@4[.]0[.]5 test/fixtures/selflink/node_modules/foo/node_modules/glob [(]symlink[)] +└─┬ foo@1[.]2[.]3 test/fixtures/selflink/node_modules/foo + ├─┬ glob@4[.]0[.]5 test/fixtures/selflink/node_modules/foo/node_modules/glob + │ ├── graceful-fs@3[.]0[.]2 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/graceful-fs + │ ├── inherits@2[.]0[.]1 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/inherits + │ ├─┬ minimatch@1[.]0[.]0 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/minimatch + │ │ ├── lru-cache@2[.]5[.]0 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/minimatch/node_modules/lru-cache + │ │ └── sigmund@1[.]0[.]0 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/minimatch/node_modules/sigmund + │ └── once@1[.]3[.]0 test/fixtures/selflink/node_modules/(foo|@scope/z)/node_modules/glob/node_modules/once + └── selflink@1[.]2[.]3 test/fixtures/selflink [(]symlink[)] diff --git a/deps/npm/node_modules/read-package-tree/test/fixtures/selflink/package.json b/deps/npm/node_modules/read-package-tree/test/fixtures/selflink/package.json new file mode 100644 index 0000000000000000000000000000000000000000..5bbf35e55b8407d9faff9714a2e7081a32fb63e2 --- /dev/null +++ b/deps/npm/node_modules/read-package-tree/test/fixtures/selflink/package.json @@ -0,0 +1,2 @@ +{"name":"selflink", + "version":"1.2.3"} diff --git a/deps/npm/node_modules/read/package.json b/deps/npm/node_modules/read/package.json index b8357c6315dde040055881213a73acc3d58d2e00..04f8459555d6a85e5c4a6eeca8eea514fa9eefc6 100644 --- a/deps/npm/node_modules/read/package.json +++ b/deps/npm/node_modules/read/package.json @@ -1,57 +1,84 @@ { - "name": "read", - "version": "1.0.7", - "main": "lib/read.js", - "dependencies": { - "mute-stream": "~0.0.4" - }, - "devDependencies": { - "tap": "^1.2.0" + "_args": [ + [ + "read@1.0.7", + "/Users/rebecca/code/npm" + ] + ], + "_from": "read@1.0.7", + "_id": "read@1.0.7", + "_inCache": true, + "_location": "/read", + "_nodeVersion": "2.2.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" }, - "engines": { - "node": ">=0.8" + "_npmVersion": "3.2.2", + "_phantomChildren": {}, + "_requested": { + "name": "read", + "raw": "read@1.0.7", + "rawSpec": "1.0.7", + "scope": null, + "spec": "1.0.7", + "type": "version" }, + "_requiredBy": [ + "/", + "/init-package-json", + "/promzard" + ], + "_resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "_shasum": "b3da19bd052431a97671d44a42634adf710b40c4", + "_shrinkwrap": null, + "_spec": "read@1.0.7", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "description": "read(1) for node programs", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/read.git" - }, - "license": "ISC", - "scripts": { - "test": "tap test/*.js" - }, - "files": [ - "lib/read.js" - ], - "gitHead": "b14516b9236c40140fd0666567f5d0c588a09a62", "bugs": { "url": "https://github.com/isaacs/read/issues" }, - "homepage": "https://github.com/isaacs/read#readme", - "_id": "read@1.0.7", - "_shasum": "b3da19bd052431a97671d44a42634adf710b40c4", - "_from": "read@1.0.7", - "_npmVersion": "3.2.2", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" + "dependencies": { + "mute-stream": "~0.0.4" }, + "description": "read(1) for node programs", + "devDependencies": { + "tap": "^1.2.0" + }, + "directories": {}, "dist": { "shasum": "b3da19bd052431a97671d44a42634adf710b40c4", "tarball": "http://registry.npmjs.org/read/-/read-1.0.7.tgz" }, + "engines": { + "node": ">=0.8" + }, + "files": [ + "lib/read.js" + ], + "gitHead": "b14516b9236c40140fd0666567f5d0c588a09a62", + "homepage": "https://github.com/isaacs/read#readme", + "installable": true, + "license": "ISC", + "main": "lib/read.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz" + "name": "read", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/read.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.7" } diff --git a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/README.md b/deps/npm/node_modules/readable-stream/node_modules/core-util-is/README.md deleted file mode 100644 index 5a76b4149c5eb5077c09578e349820bccbbd266e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# core-util-is - -The `util.is*` functions introduced in Node v0.12. diff --git a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/float.patch b/deps/npm/node_modules/readable-stream/node_modules/core-util-is/float.patch deleted file mode 100644 index a06d5c05f75fd5617f8849b43a88e0e3d8d824e9..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/float.patch +++ /dev/null @@ -1,604 +0,0 @@ -diff --git a/lib/util.js b/lib/util.js -index a03e874..9074e8e 100644 ---- a/lib/util.js -+++ b/lib/util.js -@@ -19,430 +19,6 @@ - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - --var formatRegExp = /%[sdj%]/g; --exports.format = function(f) { -- if (!isString(f)) { -- var objects = []; -- for (var i = 0; i < arguments.length; i++) { -- objects.push(inspect(arguments[i])); -- } -- return objects.join(' '); -- } -- -- var i = 1; -- var args = arguments; -- var len = args.length; -- var str = String(f).replace(formatRegExp, function(x) { -- if (x === '%%') return '%'; -- if (i >= len) return x; -- switch (x) { -- case '%s': return String(args[i++]); -- case '%d': return Number(args[i++]); -- case '%j': -- try { -- return JSON.stringify(args[i++]); -- } catch (_) { -- return '[Circular]'; -- } -- default: -- return x; -- } -- }); -- for (var x = args[i]; i < len; x = args[++i]) { -- if (isNull(x) || !isObject(x)) { -- str += ' ' + x; -- } else { -- str += ' ' + inspect(x); -- } -- } -- return str; --}; -- -- --// Mark that a method should not be used. --// Returns a modified function which warns once by default. --// If --no-deprecation is set, then it is a no-op. --exports.deprecate = function(fn, msg) { -- // Allow for deprecating things in the process of starting up. -- if (isUndefined(global.process)) { -- return function() { -- return exports.deprecate(fn, msg).apply(this, arguments); -- }; -- } -- -- if (process.noDeprecation === true) { -- return fn; -- } -- -- var warned = false; -- function deprecated() { -- if (!warned) { -- if (process.throwDeprecation) { -- throw new Error(msg); -- } else if (process.traceDeprecation) { -- console.trace(msg); -- } else { -- console.error(msg); -- } -- warned = true; -- } -- return fn.apply(this, arguments); -- } -- -- return deprecated; --}; -- -- --var debugs = {}; --var debugEnviron; --exports.debuglog = function(set) { -- if (isUndefined(debugEnviron)) -- debugEnviron = process.env.NODE_DEBUG || ''; -- set = set.toUpperCase(); -- if (!debugs[set]) { -- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { -- var pid = process.pid; -- debugs[set] = function() { -- var msg = exports.format.apply(exports, arguments); -- console.error('%s %d: %s', set, pid, msg); -- }; -- } else { -- debugs[set] = function() {}; -- } -- } -- return debugs[set]; --}; -- -- --/** -- * Echos the value of a value. Trys to print the value out -- * in the best way possible given the different types. -- * -- * @param {Object} obj The object to print out. -- * @param {Object} opts Optional options object that alters the output. -- */ --/* legacy: obj, showHidden, depth, colors*/ --function inspect(obj, opts) { -- // default options -- var ctx = { -- seen: [], -- stylize: stylizeNoColor -- }; -- // legacy... -- if (arguments.length >= 3) ctx.depth = arguments[2]; -- if (arguments.length >= 4) ctx.colors = arguments[3]; -- if (isBoolean(opts)) { -- // legacy... -- ctx.showHidden = opts; -- } else if (opts) { -- // got an "options" object -- exports._extend(ctx, opts); -- } -- // set default options -- if (isUndefined(ctx.showHidden)) ctx.showHidden = false; -- if (isUndefined(ctx.depth)) ctx.depth = 2; -- if (isUndefined(ctx.colors)) ctx.colors = false; -- if (isUndefined(ctx.customInspect)) ctx.customInspect = true; -- if (ctx.colors) ctx.stylize = stylizeWithColor; -- return formatValue(ctx, obj, ctx.depth); --} --exports.inspect = inspect; -- -- --// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics --inspect.colors = { -- 'bold' : [1, 22], -- 'italic' : [3, 23], -- 'underline' : [4, 24], -- 'inverse' : [7, 27], -- 'white' : [37, 39], -- 'grey' : [90, 39], -- 'black' : [30, 39], -- 'blue' : [34, 39], -- 'cyan' : [36, 39], -- 'green' : [32, 39], -- 'magenta' : [35, 39], -- 'red' : [31, 39], -- 'yellow' : [33, 39] --}; -- --// Don't use 'blue' not visible on cmd.exe --inspect.styles = { -- 'special': 'cyan', -- 'number': 'yellow', -- 'boolean': 'yellow', -- 'undefined': 'grey', -- 'null': 'bold', -- 'string': 'green', -- 'date': 'magenta', -- // "name": intentionally not styling -- 'regexp': 'red' --}; -- -- --function stylizeWithColor(str, styleType) { -- var style = inspect.styles[styleType]; -- -- if (style) { -- return '\u001b[' + inspect.colors[style][0] + 'm' + str + -- '\u001b[' + inspect.colors[style][1] + 'm'; -- } else { -- return str; -- } --} -- -- --function stylizeNoColor(str, styleType) { -- return str; --} -- -- --function arrayToHash(array) { -- var hash = {}; -- -- array.forEach(function(val, idx) { -- hash[val] = true; -- }); -- -- return hash; --} -- -- --function formatValue(ctx, value, recurseTimes) { -- // Provide a hook for user-specified inspect functions. -- // Check that value is an object with an inspect function on it -- if (ctx.customInspect && -- value && -- isFunction(value.inspect) && -- // Filter out the util module, it's inspect function is special -- value.inspect !== exports.inspect && -- // Also filter out any prototype objects using the circular check. -- !(value.constructor && value.constructor.prototype === value)) { -- var ret = value.inspect(recurseTimes, ctx); -- if (!isString(ret)) { -- ret = formatValue(ctx, ret, recurseTimes); -- } -- return ret; -- } -- -- // Primitive types cannot have properties -- var primitive = formatPrimitive(ctx, value); -- if (primitive) { -- return primitive; -- } -- -- // Look up the keys of the object. -- var keys = Object.keys(value); -- var visibleKeys = arrayToHash(keys); -- -- if (ctx.showHidden) { -- keys = Object.getOwnPropertyNames(value); -- } -- -- // Some type of object without properties can be shortcutted. -- if (keys.length === 0) { -- if (isFunction(value)) { -- var name = value.name ? ': ' + value.name : ''; -- return ctx.stylize('[Function' + name + ']', 'special'); -- } -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } -- if (isDate(value)) { -- return ctx.stylize(Date.prototype.toString.call(value), 'date'); -- } -- if (isError(value)) { -- return formatError(value); -- } -- } -- -- var base = '', array = false, braces = ['{', '}']; -- -- // Make Array say that they are Array -- if (isArray(value)) { -- array = true; -- braces = ['[', ']']; -- } -- -- // Make functions say that they are functions -- if (isFunction(value)) { -- var n = value.name ? ': ' + value.name : ''; -- base = ' [Function' + n + ']'; -- } -- -- // Make RegExps say that they are RegExps -- if (isRegExp(value)) { -- base = ' ' + RegExp.prototype.toString.call(value); -- } -- -- // Make dates with properties first say the date -- if (isDate(value)) { -- base = ' ' + Date.prototype.toUTCString.call(value); -- } -- -- // Make error with message first say the error -- if (isError(value)) { -- base = ' ' + formatError(value); -- } -- -- if (keys.length === 0 && (!array || value.length == 0)) { -- return braces[0] + base + braces[1]; -- } -- -- if (recurseTimes < 0) { -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } else { -- return ctx.stylize('[Object]', 'special'); -- } -- } -- -- ctx.seen.push(value); -- -- var output; -- if (array) { -- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); -- } else { -- output = keys.map(function(key) { -- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); -- }); -- } -- -- ctx.seen.pop(); -- -- return reduceToSingleString(output, base, braces); --} -- -- --function formatPrimitive(ctx, value) { -- if (isUndefined(value)) -- return ctx.stylize('undefined', 'undefined'); -- if (isString(value)) { -- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') -- .replace(/'/g, "\\'") -- .replace(/\\"/g, '"') + '\''; -- return ctx.stylize(simple, 'string'); -- } -- if (isNumber(value)) { -- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0, -- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 . -- if (value === 0 && 1 / value < 0) -- return ctx.stylize('-0', 'number'); -- return ctx.stylize('' + value, 'number'); -- } -- if (isBoolean(value)) -- return ctx.stylize('' + value, 'boolean'); -- // For some reason typeof null is "object", so special case here. -- if (isNull(value)) -- return ctx.stylize('null', 'null'); --} -- -- --function formatError(value) { -- return '[' + Error.prototype.toString.call(value) + ']'; --} -- -- --function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { -- var output = []; -- for (var i = 0, l = value.length; i < l; ++i) { -- if (hasOwnProperty(value, String(i))) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- String(i), true)); -- } else { -- output.push(''); -- } -- } -- keys.forEach(function(key) { -- if (!key.match(/^\d+$/)) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- key, true)); -- } -- }); -- return output; --} -- -- --function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { -- var name, str, desc; -- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; -- if (desc.get) { -- if (desc.set) { -- str = ctx.stylize('[Getter/Setter]', 'special'); -- } else { -- str = ctx.stylize('[Getter]', 'special'); -- } -- } else { -- if (desc.set) { -- str = ctx.stylize('[Setter]', 'special'); -- } -- } -- if (!hasOwnProperty(visibleKeys, key)) { -- name = '[' + key + ']'; -- } -- if (!str) { -- if (ctx.seen.indexOf(desc.value) < 0) { -- if (isNull(recurseTimes)) { -- str = formatValue(ctx, desc.value, null); -- } else { -- str = formatValue(ctx, desc.value, recurseTimes - 1); -- } -- if (str.indexOf('\n') > -1) { -- if (array) { -- str = str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n').substr(2); -- } else { -- str = '\n' + str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n'); -- } -- } -- } else { -- str = ctx.stylize('[Circular]', 'special'); -- } -- } -- if (isUndefined(name)) { -- if (array && key.match(/^\d+$/)) { -- return str; -- } -- name = JSON.stringify('' + key); -- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { -- name = name.substr(1, name.length - 2); -- name = ctx.stylize(name, 'name'); -- } else { -- name = name.replace(/'/g, "\\'") -- .replace(/\\"/g, '"') -- .replace(/(^"|"$)/g, "'"); -- name = ctx.stylize(name, 'string'); -- } -- } -- -- return name + ': ' + str; --} -- -- --function reduceToSingleString(output, base, braces) { -- var numLinesEst = 0; -- var length = output.reduce(function(prev, cur) { -- numLinesEst++; -- if (cur.indexOf('\n') >= 0) numLinesEst++; -- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; -- }, 0); -- -- if (length > 60) { -- return braces[0] + -- (base === '' ? '' : base + '\n ') + -- ' ' + -- output.join(',\n ') + -- ' ' + -- braces[1]; -- } -- -- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; --} -- -- - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - function isArray(ar) { -@@ -522,166 +98,10 @@ function isPrimitive(arg) { - exports.isPrimitive = isPrimitive; - - function isBuffer(arg) { -- return arg instanceof Buffer; -+ return Buffer.isBuffer(arg); - } - exports.isBuffer = isBuffer; - - function objectToString(o) { - return Object.prototype.toString.call(o); --} -- -- --function pad(n) { -- return n < 10 ? '0' + n.toString(10) : n.toString(10); --} -- -- --var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', -- 'Oct', 'Nov', 'Dec']; -- --// 26 Feb 16:19:34 --function timestamp() { -- var d = new Date(); -- var time = [pad(d.getHours()), -- pad(d.getMinutes()), -- pad(d.getSeconds())].join(':'); -- return [d.getDate(), months[d.getMonth()], time].join(' '); --} -- -- --// log is just a thin wrapper to console.log that prepends a timestamp --exports.log = function() { -- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); --}; -- -- --/** -- * Inherit the prototype methods from one constructor into another. -- * -- * The Function.prototype.inherits from lang.js rewritten as a standalone -- * function (not on Function.prototype). NOTE: If this file is to be loaded -- * during bootstrapping this function needs to be rewritten using some native -- * functions as prototype setup using normal JavaScript does not work as -- * expected during bootstrapping (see mirror.js in r114903). -- * -- * @param {function} ctor Constructor function which needs to inherit the -- * prototype. -- * @param {function} superCtor Constructor function to inherit prototype from. -- */ --exports.inherits = function(ctor, superCtor) { -- ctor.super_ = superCtor; -- ctor.prototype = Object.create(superCtor.prototype, { -- constructor: { -- value: ctor, -- enumerable: false, -- writable: true, -- configurable: true -- } -- }); --}; -- --exports._extend = function(origin, add) { -- // Don't do anything if add isn't an object -- if (!add || !isObject(add)) return origin; -- -- var keys = Object.keys(add); -- var i = keys.length; -- while (i--) { -- origin[keys[i]] = add[keys[i]]; -- } -- return origin; --}; -- --function hasOwnProperty(obj, prop) { -- return Object.prototype.hasOwnProperty.call(obj, prop); --} -- -- --// Deprecated old stuff. -- --exports.p = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- console.error(exports.inspect(arguments[i])); -- } --}, 'util.p: Use console.error() instead'); -- -- --exports.exec = exports.deprecate(function() { -- return require('child_process').exec.apply(this, arguments); --}, 'util.exec is now called `child_process.exec`.'); -- -- --exports.print = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(String(arguments[i])); -- } --}, 'util.print: Use console.log instead'); -- -- --exports.puts = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(arguments[i] + '\n'); -- } --}, 'util.puts: Use console.log instead'); -- -- --exports.debug = exports.deprecate(function(x) { -- process.stderr.write('DEBUG: ' + x + '\n'); --}, 'util.debug: Use console.error instead'); -- -- --exports.error = exports.deprecate(function(x) { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stderr.write(arguments[i] + '\n'); -- } --}, 'util.error: Use console.error instead'); -- -- --exports.pump = exports.deprecate(function(readStream, writeStream, callback) { -- var callbackCalled = false; -- -- function call(a, b, c) { -- if (callback && !callbackCalled) { -- callback(a, b, c); -- callbackCalled = true; -- } -- } -- -- readStream.addListener('data', function(chunk) { -- if (writeStream.write(chunk) === false) readStream.pause(); -- }); -- -- writeStream.addListener('drain', function() { -- readStream.resume(); -- }); -- -- readStream.addListener('end', function() { -- writeStream.end(); -- }); -- -- readStream.addListener('close', function() { -- call(); -- }); -- -- readStream.addListener('error', function(err) { -- writeStream.end(); -- call(err); -- }); -- -- writeStream.addListener('error', function(err) { -- readStream.destroy(); -- call(err); -- }); --}, 'util.pump(): Use readableStream.pipe() instead'); -- -- --var uv; --exports._errnoException = function(err, syscall) { -- if (isUndefined(uv)) uv = process.binding('uv'); -- var errname = uv.errname(err); -- var e = new Error(syscall + ' ' + errname); -- e.code = errname; -- e.errno = errname; -- e.syscall = syscall; -- return e; --}; -+} \ No newline at end of file diff --git a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js b/deps/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js deleted file mode 100644 index 9074e8ebcb61e9f505b48a2f729ae86d25d992d8..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +++ /dev/null @@ -1,107 +0,0 @@ -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -function isBuffer(arg) { - return Buffer.isBuffer(arg); -} -exports.isBuffer = isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} \ No newline at end of file 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 deleted file mode 100644 index b67333380c265e3eeeef5aecd377c9259bd86b39..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "core-util-is", - "version": "1.0.1", - "description": "The `util.is*` functions introduced in Node v0.12.", - "main": "lib/util.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/core-util-is.git" - }, - "keywords": [ - "util", - "isBuffer", - "isArray", - "isNumber", - "isString", - "isRegExp", - "isThis", - "isThat", - "polyfill" - ], - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/isaacs/core-util-is/issues" - }, - "readme": "# core-util-is\n\nThe `util.is*` functions introduced in Node v0.12.\n", - "readmeFilename": "README.md", - "homepage": "https://github.com/isaacs/core-util-is#readme", - "_id": "core-util-is@1.0.1", - "_shasum": "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538", - "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", - "_from": "core-util-is@>=1.0.0 <1.1.0" -} diff --git a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/util.js b/deps/npm/node_modules/readable-stream/node_modules/core-util-is/util.js deleted file mode 100644 index 007fa10575636d9ae2cd42d8f9046eb70cc3c20c..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/util.js +++ /dev/null @@ -1,106 +0,0 @@ -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && objectToString(e) === '[object Error]'; -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -function isBuffer(arg) { - return arg instanceof Buffer; -} -exports.isBuffer = isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/README.md b/deps/npm/node_modules/readable-stream/node_modules/isarray/README.md deleted file mode 100644 index 052a62b8d7b7ae2c6016d173319db607453659f8..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/isarray/README.md +++ /dev/null @@ -1,54 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -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/readable-stream/node_modules/isarray/build/build.js b/deps/npm/node_modules/readable-stream/node_modules/isarray/build/build.js deleted file mode 100644 index ec58596aeebe4eadcd7b5eeb5bd992233391d422..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/isarray/build/build.js +++ /dev/null @@ -1,209 +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/readable-stream/node_modules/isarray/component.json b/deps/npm/node_modules/readable-stream/node_modules/isarray/component.json deleted file mode 100644 index 9e31b6838890159e397063bdd2ea7de80b4e4a42..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/index.js b/deps/npm/node_modules/readable-stream/node_modules/isarray/index.js deleted file mode 100644 index 5f5ad45d46dda97cc2ae37932e0dacf25d06352d..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/isarray/index.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; 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 deleted file mode 100644 index fb1eb3786d8168ea5ff27e5654c542918126d59b..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "isarray", - "description": "Array#isArray for older browsers", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "homepage": "https://github.com/juliangruber/isarray", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": {}, - "devDependencies": { - "tap": "*" - }, - "keywords": [ - "browser", - "isarray", - "array" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "readme": "\n# isarray\n\n`Array#isArray` for older browsers.\n\n## Usage\n\n```js\nvar isArray = require('isarray');\n\nconsole.log(isArray([])); // => true\nconsole.log(isArray({})); // => false\n```\n\n## Installation\n\nWith [npm](http://npmjs.org) do\n\n```bash\n$ npm install isarray\n```\n\nThen bundle for the browser with\n[browserify](https://github.com/substack/browserify).\n\nWith [component](http://component.io) do\n\n```bash\n$ component install juliangruber/isarray\n```\n\n## License\n\n(MIT)\n\nCopyright (c) 2013 Julian Gruber <julian@juliangruber.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" - }, - "_id": "isarray@0.0.1", - "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "_from": "isarray@0.0.1" -} diff --git a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/deps/npm/node_modules/readable-stream/node_modules/string_decoder/.npmignore deleted file mode 100644 index 206320cc1d21b9cc9e3e0e8a303896045453c524..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -build -test diff --git a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/deps/npm/node_modules/readable-stream/node_modules/string_decoder/LICENSE deleted file mode 100644 index 6de584a48f5c897d27bfe9922f976297c07cae02..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -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/readable-stream/node_modules/string_decoder/README.md b/deps/npm/node_modules/readable-stream/node_modules/string_decoder/README.md deleted file mode 100644 index 4d2aa001501107cd2792f385ad62237dc3757521..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/README.md +++ /dev/null @@ -1,7 +0,0 @@ -**string_decoder.js** (`require('string_decoder')`) from Node.js core - -Copyright Joyent, Inc. and other Node contributors. See LICENCE file for details. - -Version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.** - -The *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version. \ No newline at end of file diff --git a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/index.js b/deps/npm/node_modules/readable-stream/node_modules/string_decoder/index.js deleted file mode 100644 index b00e54fb7909827a02b6fa96ef55bd4dd85a3fe7..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/index.js +++ /dev/null @@ -1,221 +0,0 @@ -// 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 Buffer = require('buffer').Buffer; - -var isBufferEncoding = Buffer.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; - default: return false; - } - } - - -function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. CESU-8 is handled as part of the UTF-8 encoding. -// -// @TODO Handling all encodings inside a single object makes it very difficult -// to reason about this code, so it should be split up in the future. -// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code -// points as used by CESU-8. -var StringDecoder = exports.StringDecoder = function(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; -}; - - -// write decodes the given buffer and returns it as JS string that is -// guaranteed to not contain any partial multi-byte characters. Any partial -// character found at the end of the buffer is buffered up, and will be -// returned when calling write again with the remaining bytes. -// -// Note: Converting a Buffer containing an orphan surrogate to a String -// currently works, but converting a String to a Buffer (via `new Buffer`, or -// Buffer#write) will replace incomplete surrogates with the unicode -// replacement character. See https://codereview.chromium.org/121173009/ . -StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; -}; - -// detectIncompleteChar determines if there is an incomplete UTF-8 character at -// the end of the given buffer. If so, it sets this.charLength to the byte -// length that character, and sets this.charReceived to the number of bytes -// that are available for this character. -StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; -}; - -StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; -}; - -function passThroughWrite(buffer) { - return buffer.toString(this.encoding); -} - -function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; -} - -function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; -} 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 deleted file mode 100644 index ee70702359198dc1d7b8bd947831bc65c353dd25..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "string_decoder", - "version": "0.10.31", - "description": "The string_decoder module from Node core", - "main": "index.js", - "dependencies": {}, - "devDependencies": { - "tap": "~0.4.8" - }, - "scripts": { - "test": "tap test/simple/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/rvagg/string_decoder.git" - }, - "homepage": "https://github.com/rvagg/string_decoder", - "keywords": [ - "string", - "decoder", - "browser", - "browserify" - ], - "license": "MIT", - "readme": "**string_decoder.js** (`require('string_decoder')`) from Node.js core\n\nCopyright Joyent, Inc. and other Node contributors. See LICENCE file for details.\n\nVersion numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.**\n\nThe *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version.", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/rvagg/string_decoder/issues" - }, - "_id": "string_decoder@0.10.31", - "_shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "_from": "string_decoder@>=0.10.0 <0.11.0" -} diff --git a/deps/npm/node_modules/readable-stream/package.json b/deps/npm/node_modules/readable-stream/package.json index fbc5e7fa4983be63d10ca75a5ae386aebfc78b06..a82d55fa2424be65f8b063dae6ee0cebf09d82f2 100644 --- a/deps/npm/node_modules/readable-stream/package.json +++ b/deps/npm/node_modules/readable-stream/package.json @@ -1,51 +1,72 @@ { - "name": "readable-stream", - "version": "1.1.13", - "description": "Streams3, a user-land copy of the stream library from Node.js v0.11.x", - "main": "readable.js", + "_args": [ + [ + "readable-stream@^1.1.13", + "/Users/rebecca/code/npm/node_modules/are-we-there-yet" + ] + ], + "_from": "readable-stream@>=1.1.13 <2.0.0", + "_id": "readable-stream@1.1.13", + "_inCache": true, + "_location": "/readable-stream", + "_npmUser": { + "email": "rod@vagg.org", + "name": "rvagg" + }, + "_npmVersion": "1.4.23", + "_phantomChildren": {}, + "_requested": { + "name": "readable-stream", + "raw": "readable-stream@^1.1.13", + "rawSpec": "^1.1.13", + "scope": null, + "spec": ">=1.1.13 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/are-we-there-yet", + "/sha" + ], + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", + "_shasum": "f6eef764f514c89e2b9e23146a75ba106756d23e", + "_shrinkwrap": null, + "_spec": "readable-stream@^1.1.13", + "_where": "/Users/rebecca/code/npm/node_modules/are-we-there-yet", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "browser": { + "util": false + }, + "bugs": { + "url": "https://github.com/isaacs/readable-stream/issues" + }, "dependencies": { "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "~0.10.x", - "inherits": "~2.0.1" + "string_decoder": "~0.10.x" }, + "description": "Streams3, a user-land copy of the stream library from Node.js v0.11.x", "devDependencies": { "tap": "~0.2.6" }, - "scripts": { - "test": "tap test/simple/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/readable-stream.git" + "directories": {}, + "dist": { + "shasum": "f6eef764f514c89e2b9e23146a75ba106756d23e", + "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" }, + "gitHead": "3b672fd7ae92acf5b4ffdbabf74b372a0a56b051", + "homepage": "https://github.com/isaacs/readable-stream", "keywords": [ + "pipe", "readable", - "stream", - "pipe" + "stream" ], - "browser": { - "util": false - }, - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, "license": "MIT", - "gitHead": "3b672fd7ae92acf5b4ffdbabf74b372a0a56b051", - "bugs": { - "url": "https://github.com/isaacs/readable-stream/issues" - }, - "homepage": "https://github.com/isaacs/readable-stream", - "_id": "readable-stream@1.1.13", - "_shasum": "f6eef764f514c89e2b9e23146a75ba106756d23e", - "_from": "readable-stream@>=1.1.13 <1.2.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "rvagg", - "email": "rod@vagg.org" - }, + "main": "readable.js", "maintainers": [ { "name": "isaacs", @@ -60,11 +81,14 @@ "email": "rod@vagg.org" } ], - "dist": { - "shasum": "f6eef764f514c89e2b9e23146a75ba106756d23e", - "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" + "name": "readable-stream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/readable-stream" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tap test/simple/*.js" + }, + "version": "1.1.13" } diff --git a/deps/npm/node_modules/readdir-scoped-modules/.travis.yml b/deps/npm/node_modules/readdir-scoped-modules/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..e1bcee1acd90c1fc4a01826e321d7a3bfcdb2808 --- /dev/null +++ b/deps/npm/node_modules/readdir-scoped-modules/.travis.yml @@ -0,0 +1,7 @@ +language: node_js +before_script: npm install -g npm@latest +node_js: + - '0.8' + - '0.10' + - '0.12' + - 'iojs' diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/LICENSE b/deps/npm/node_modules/readdir-scoped-modules/LICENSE similarity index 100% rename from deps/npm/node_modules/read/node_modules/mute-stream/LICENSE rename to deps/npm/node_modules/readdir-scoped-modules/LICENSE diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/README.md b/deps/npm/node_modules/readdir-scoped-modules/README.md similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/README.md rename to deps/npm/node_modules/readdir-scoped-modules/README.md diff --git a/deps/npm/node_modules/readdir-scoped-modules/package.json b/deps/npm/node_modules/readdir-scoped-modules/package.json new file mode 100644 index 0000000000000000000000000000000000000000..ba44304f4446865dc0108e0714f35b7027030a6c --- /dev/null +++ b/deps/npm/node_modules/readdir-scoped-modules/package.json @@ -0,0 +1,90 @@ +{ + "_args": [ + [ + "readdir-scoped-modules@^1.0.0", + "/Users/rebecca/code/npm/node_modules/read-installed" + ] + ], + "_from": "readdir-scoped-modules@>=1.0.0 <2.0.0", + "_id": "readdir-scoped-modules@1.0.2", + "_inCache": true, + "_location": "/readdir-scoped-modules", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" + }, + "_npmVersion": "2.14.3", + "_phantomChildren": {}, + "_requested": { + "name": "readdir-scoped-modules", + "raw": "readdir-scoped-modules@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/read-installed", + "/read-package-tree" + ], + "_resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", + "_shasum": "9fafa37d286be5d92cbaebdee030dc9b5f406747", + "_shrinkwrap": null, + "_spec": "readdir-scoped-modules@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/read-installed", + "author": { + "email": "i@izs.me", + "name": "Isaac Z. Schlueter", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/npm/readdir-scoped-modules/issues" + }, + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + }, + "description": "Like `fs.readdir` but handling `@org/module` dirs as if they were a single entry.", + "devDependencies": { + "tap": "^1.2.0" + }, + "directories": { + "test": "test" + }, + "dist": { + "shasum": "9fafa37d286be5d92cbaebdee030dc9b5f406747", + "tarball": "http://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz" + }, + "gitHead": "d41d5de877cb4e9e3f14b92913132680af73d1b4", + "homepage": "https://github.com/npm/readdir-scoped-modules", + "installable": true, + "license": "ISC", + "main": "readdir.js", + "maintainers": [ + { + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" + } + ], + "name": "readdir-scoped-modules", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/npm/readdir-scoped-modules.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.2" +} diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/readdir.js b/deps/npm/node_modules/readdir-scoped-modules/readdir.js similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/readdir.js rename to deps/npm/node_modules/readdir-scoped-modules/readdir.js diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/basic.js b/deps/npm/node_modules/readdir-scoped-modules/test/basic.js similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/basic.js rename to deps/npm/node_modules/readdir-scoped-modules/test/basic.js diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/@scope/y/.keep b/deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@org/x/.keep similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/@scope/y/.keep rename to deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@org/x/.keep diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/a/x/.keep b/deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@org/y/.keep similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/a/x/.keep rename to deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@org/y/.keep diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/a/y/.keep b/deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@scope/x/.keep similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/a/y/.keep rename to deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@scope/x/.keep diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/b/x/.keep b/deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@scope/y/.keep similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/b/x/.keep rename to deps/npm/node_modules/readdir-scoped-modules/test/fixtures/@scope/y/.keep diff --git a/deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/b/y/.keep b/deps/npm/node_modules/readdir-scoped-modules/test/fixtures/a/x/.keep similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/readdir-scoped-modules/test/fixtures/b/y/.keep rename to deps/npm/node_modules/readdir-scoped-modules/test/fixtures/a/x/.keep diff --git a/deps/npm/node_modules/readdir-scoped-modules/test/fixtures/a/y/.keep b/deps/npm/node_modules/readdir-scoped-modules/test/fixtures/a/y/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/deps/npm/node_modules/readdir-scoped-modules/test/fixtures/b/x/.keep b/deps/npm/node_modules/readdir-scoped-modules/test/fixtures/b/x/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/deps/npm/node_modules/readdir-scoped-modules/test/fixtures/b/y/.keep b/deps/npm/node_modules/readdir-scoped-modules/test/fixtures/b/y/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/deps/npm/node_modules/realize-package-specifier/package.json b/deps/npm/node_modules/realize-package-specifier/package.json index b14b24beffe3665ad28c937e866b21a626e1fe86..d87b7d9ef5e1c21d16eeade40519f94d62311c81 100644 --- a/deps/npm/node_modules/realize-package-specifier/package.json +++ b/deps/npm/node_modules/realize-package-specifier/package.json @@ -1,47 +1,63 @@ { - "name": "realize-package-specifier", - "version": "3.0.1", - "description": "Like npm-package-arg, but more so, producing full file paths and differentiating local tar and directory sources.", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "realize-package-specifier@~3.0.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "realize-package-specifier@>=3.0.1 <3.1.0", + "_id": "realize-package-specifier@3.0.1", + "_inCache": true, + "_location": "/realize-package-specifier", + "_nodeVersion": "2.0.2", + "_npmUser": { + "email": "ogd@aoaioxxysz.net", + "name": "othiym23" }, - "license": "ISC", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/realize-package-specifier.git" + "_npmVersion": "2.10.1", + "_phantomChildren": {}, + "_requested": { + "name": "realize-package-specifier", + "raw": "realize-package-specifier@~3.0.1", + "rawSpec": "~3.0.1", + "scope": null, + "spec": ">=3.0.1 <3.1.0", + "type": "range" }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/realize-package-specifier/-/realize-package-specifier-3.0.1.tgz", + "_shasum": "fde32e926448e38f99334d95b7b08d51e3a98d9f", + "_shrinkwrap": null, + "_spec": "realize-package-specifier@~3.0.1", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Rebecca Turner", "email": "me@re-becca.org", + "name": "Rebecca Turner", "url": "http://re-becca.org" }, - "homepage": "https://github.com/npm/realize-package-specifier", + "bugs": { + "url": "https://github.com/npm/realize-package-specifier/issues" + }, "dependencies": { "dezalgo": "^1.0.1", "npm-package-arg": "^4.0.0" }, + "description": "Like npm-package-arg, but more so, producing full file paths and differentiating local tar and directory sources.", "devDependencies": { "require-inject": "^1.1.0", "tap": "^0.4.12" }, - "gitHead": "4f50130fa6b5e80954a90ea12bab382f53d890b1", - "bugs": { - "url": "https://github.com/npm/realize-package-specifier/issues" - }, - "_id": "realize-package-specifier@3.0.1", - "_shasum": "fde32e926448e38f99334d95b7b08d51e3a98d9f", - "_from": "realize-package-specifier@>=3.0.0 <3.1.0", - "_npmVersion": "2.10.1", - "_nodeVersion": "2.0.2", - "_npmUser": { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, + "directories": {}, "dist": { "shasum": "fde32e926448e38f99334d95b7b08d51e3a98d9f", "tarball": "http://registry.npmjs.org/realize-package-specifier/-/realize-package-specifier-3.0.1.tgz" }, + "gitHead": "4f50130fa6b5e80954a90ea12bab382f53d890b1", + "homepage": "https://github.com/npm/realize-package-specifier", + "license": "ISC", + "main": "index.js", "maintainers": [ { "name": "iarna", @@ -52,6 +68,14 @@ "email": "ogd@aoaioxxysz.net" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/realize-package-specifier/-/realize-package-specifier-3.0.1.tgz" + "name": "realize-package-specifier", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/npm/realize-package-specifier.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "3.0.1" } diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/README.md b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/README.md deleted file mode 100644 index 5a76b4149c5eb5077c09578e349820bccbbd266e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# core-util-is - -The `util.is*` functions introduced in Node v0.12. diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/float.patch b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/float.patch deleted file mode 100644 index a06d5c05f75fd5617f8849b43a88e0e3d8d824e9..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/float.patch +++ /dev/null @@ -1,604 +0,0 @@ -diff --git a/lib/util.js b/lib/util.js -index a03e874..9074e8e 100644 ---- a/lib/util.js -+++ b/lib/util.js -@@ -19,430 +19,6 @@ - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - --var formatRegExp = /%[sdj%]/g; --exports.format = function(f) { -- if (!isString(f)) { -- var objects = []; -- for (var i = 0; i < arguments.length; i++) { -- objects.push(inspect(arguments[i])); -- } -- return objects.join(' '); -- } -- -- var i = 1; -- var args = arguments; -- var len = args.length; -- var str = String(f).replace(formatRegExp, function(x) { -- if (x === '%%') return '%'; -- if (i >= len) return x; -- switch (x) { -- case '%s': return String(args[i++]); -- case '%d': return Number(args[i++]); -- case '%j': -- try { -- return JSON.stringify(args[i++]); -- } catch (_) { -- return '[Circular]'; -- } -- default: -- return x; -- } -- }); -- for (var x = args[i]; i < len; x = args[++i]) { -- if (isNull(x) || !isObject(x)) { -- str += ' ' + x; -- } else { -- str += ' ' + inspect(x); -- } -- } -- return str; --}; -- -- --// Mark that a method should not be used. --// Returns a modified function which warns once by default. --// If --no-deprecation is set, then it is a no-op. --exports.deprecate = function(fn, msg) { -- // Allow for deprecating things in the process of starting up. -- if (isUndefined(global.process)) { -- return function() { -- return exports.deprecate(fn, msg).apply(this, arguments); -- }; -- } -- -- if (process.noDeprecation === true) { -- return fn; -- } -- -- var warned = false; -- function deprecated() { -- if (!warned) { -- if (process.throwDeprecation) { -- throw new Error(msg); -- } else if (process.traceDeprecation) { -- console.trace(msg); -- } else { -- console.error(msg); -- } -- warned = true; -- } -- return fn.apply(this, arguments); -- } -- -- return deprecated; --}; -- -- --var debugs = {}; --var debugEnviron; --exports.debuglog = function(set) { -- if (isUndefined(debugEnviron)) -- debugEnviron = process.env.NODE_DEBUG || ''; -- set = set.toUpperCase(); -- if (!debugs[set]) { -- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { -- var pid = process.pid; -- debugs[set] = function() { -- var msg = exports.format.apply(exports, arguments); -- console.error('%s %d: %s', set, pid, msg); -- }; -- } else { -- debugs[set] = function() {}; -- } -- } -- return debugs[set]; --}; -- -- --/** -- * Echos the value of a value. Trys to print the value out -- * in the best way possible given the different types. -- * -- * @param {Object} obj The object to print out. -- * @param {Object} opts Optional options object that alters the output. -- */ --/* legacy: obj, showHidden, depth, colors*/ --function inspect(obj, opts) { -- // default options -- var ctx = { -- seen: [], -- stylize: stylizeNoColor -- }; -- // legacy... -- if (arguments.length >= 3) ctx.depth = arguments[2]; -- if (arguments.length >= 4) ctx.colors = arguments[3]; -- if (isBoolean(opts)) { -- // legacy... -- ctx.showHidden = opts; -- } else if (opts) { -- // got an "options" object -- exports._extend(ctx, opts); -- } -- // set default options -- if (isUndefined(ctx.showHidden)) ctx.showHidden = false; -- if (isUndefined(ctx.depth)) ctx.depth = 2; -- if (isUndefined(ctx.colors)) ctx.colors = false; -- if (isUndefined(ctx.customInspect)) ctx.customInspect = true; -- if (ctx.colors) ctx.stylize = stylizeWithColor; -- return formatValue(ctx, obj, ctx.depth); --} --exports.inspect = inspect; -- -- --// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics --inspect.colors = { -- 'bold' : [1, 22], -- 'italic' : [3, 23], -- 'underline' : [4, 24], -- 'inverse' : [7, 27], -- 'white' : [37, 39], -- 'grey' : [90, 39], -- 'black' : [30, 39], -- 'blue' : [34, 39], -- 'cyan' : [36, 39], -- 'green' : [32, 39], -- 'magenta' : [35, 39], -- 'red' : [31, 39], -- 'yellow' : [33, 39] --}; -- --// Don't use 'blue' not visible on cmd.exe --inspect.styles = { -- 'special': 'cyan', -- 'number': 'yellow', -- 'boolean': 'yellow', -- 'undefined': 'grey', -- 'null': 'bold', -- 'string': 'green', -- 'date': 'magenta', -- // "name": intentionally not styling -- 'regexp': 'red' --}; -- -- --function stylizeWithColor(str, styleType) { -- var style = inspect.styles[styleType]; -- -- if (style) { -- return '\u001b[' + inspect.colors[style][0] + 'm' + str + -- '\u001b[' + inspect.colors[style][1] + 'm'; -- } else { -- return str; -- } --} -- -- --function stylizeNoColor(str, styleType) { -- return str; --} -- -- --function arrayToHash(array) { -- var hash = {}; -- -- array.forEach(function(val, idx) { -- hash[val] = true; -- }); -- -- return hash; --} -- -- --function formatValue(ctx, value, recurseTimes) { -- // Provide a hook for user-specified inspect functions. -- // Check that value is an object with an inspect function on it -- if (ctx.customInspect && -- value && -- isFunction(value.inspect) && -- // Filter out the util module, it's inspect function is special -- value.inspect !== exports.inspect && -- // Also filter out any prototype objects using the circular check. -- !(value.constructor && value.constructor.prototype === value)) { -- var ret = value.inspect(recurseTimes, ctx); -- if (!isString(ret)) { -- ret = formatValue(ctx, ret, recurseTimes); -- } -- return ret; -- } -- -- // Primitive types cannot have properties -- var primitive = formatPrimitive(ctx, value); -- if (primitive) { -- return primitive; -- } -- -- // Look up the keys of the object. -- var keys = Object.keys(value); -- var visibleKeys = arrayToHash(keys); -- -- if (ctx.showHidden) { -- keys = Object.getOwnPropertyNames(value); -- } -- -- // Some type of object without properties can be shortcutted. -- if (keys.length === 0) { -- if (isFunction(value)) { -- var name = value.name ? ': ' + value.name : ''; -- return ctx.stylize('[Function' + name + ']', 'special'); -- } -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } -- if (isDate(value)) { -- return ctx.stylize(Date.prototype.toString.call(value), 'date'); -- } -- if (isError(value)) { -- return formatError(value); -- } -- } -- -- var base = '', array = false, braces = ['{', '}']; -- -- // Make Array say that they are Array -- if (isArray(value)) { -- array = true; -- braces = ['[', ']']; -- } -- -- // Make functions say that they are functions -- if (isFunction(value)) { -- var n = value.name ? ': ' + value.name : ''; -- base = ' [Function' + n + ']'; -- } -- -- // Make RegExps say that they are RegExps -- if (isRegExp(value)) { -- base = ' ' + RegExp.prototype.toString.call(value); -- } -- -- // Make dates with properties first say the date -- if (isDate(value)) { -- base = ' ' + Date.prototype.toUTCString.call(value); -- } -- -- // Make error with message first say the error -- if (isError(value)) { -- base = ' ' + formatError(value); -- } -- -- if (keys.length === 0 && (!array || value.length == 0)) { -- return braces[0] + base + braces[1]; -- } -- -- if (recurseTimes < 0) { -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } else { -- return ctx.stylize('[Object]', 'special'); -- } -- } -- -- ctx.seen.push(value); -- -- var output; -- if (array) { -- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); -- } else { -- output = keys.map(function(key) { -- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); -- }); -- } -- -- ctx.seen.pop(); -- -- return reduceToSingleString(output, base, braces); --} -- -- --function formatPrimitive(ctx, value) { -- if (isUndefined(value)) -- return ctx.stylize('undefined', 'undefined'); -- if (isString(value)) { -- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') -- .replace(/'/g, "\\'") -- .replace(/\\"/g, '"') + '\''; -- return ctx.stylize(simple, 'string'); -- } -- if (isNumber(value)) { -- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0, -- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 . -- if (value === 0 && 1 / value < 0) -- return ctx.stylize('-0', 'number'); -- return ctx.stylize('' + value, 'number'); -- } -- if (isBoolean(value)) -- return ctx.stylize('' + value, 'boolean'); -- // For some reason typeof null is "object", so special case here. -- if (isNull(value)) -- return ctx.stylize('null', 'null'); --} -- -- --function formatError(value) { -- return '[' + Error.prototype.toString.call(value) + ']'; --} -- -- --function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { -- var output = []; -- for (var i = 0, l = value.length; i < l; ++i) { -- if (hasOwnProperty(value, String(i))) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- String(i), true)); -- } else { -- output.push(''); -- } -- } -- keys.forEach(function(key) { -- if (!key.match(/^\d+$/)) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- key, true)); -- } -- }); -- return output; --} -- -- --function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { -- var name, str, desc; -- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; -- if (desc.get) { -- if (desc.set) { -- str = ctx.stylize('[Getter/Setter]', 'special'); -- } else { -- str = ctx.stylize('[Getter]', 'special'); -- } -- } else { -- if (desc.set) { -- str = ctx.stylize('[Setter]', 'special'); -- } -- } -- if (!hasOwnProperty(visibleKeys, key)) { -- name = '[' + key + ']'; -- } -- if (!str) { -- if (ctx.seen.indexOf(desc.value) < 0) { -- if (isNull(recurseTimes)) { -- str = formatValue(ctx, desc.value, null); -- } else { -- str = formatValue(ctx, desc.value, recurseTimes - 1); -- } -- if (str.indexOf('\n') > -1) { -- if (array) { -- str = str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n').substr(2); -- } else { -- str = '\n' + str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n'); -- } -- } -- } else { -- str = ctx.stylize('[Circular]', 'special'); -- } -- } -- if (isUndefined(name)) { -- if (array && key.match(/^\d+$/)) { -- return str; -- } -- name = JSON.stringify('' + key); -- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { -- name = name.substr(1, name.length - 2); -- name = ctx.stylize(name, 'name'); -- } else { -- name = name.replace(/'/g, "\\'") -- .replace(/\\"/g, '"') -- .replace(/(^"|"$)/g, "'"); -- name = ctx.stylize(name, 'string'); -- } -- } -- -- return name + ': ' + str; --} -- -- --function reduceToSingleString(output, base, braces) { -- var numLinesEst = 0; -- var length = output.reduce(function(prev, cur) { -- numLinesEst++; -- if (cur.indexOf('\n') >= 0) numLinesEst++; -- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; -- }, 0); -- -- if (length > 60) { -- return braces[0] + -- (base === '' ? '' : base + '\n ') + -- ' ' + -- output.join(',\n ') + -- ' ' + -- braces[1]; -- } -- -- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; --} -- -- - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - function isArray(ar) { -@@ -522,166 +98,10 @@ function isPrimitive(arg) { - exports.isPrimitive = isPrimitive; - - function isBuffer(arg) { -- return arg instanceof Buffer; -+ return Buffer.isBuffer(arg); - } - exports.isBuffer = isBuffer; - - function objectToString(o) { - return Object.prototype.toString.call(o); --} -- -- --function pad(n) { -- return n < 10 ? '0' + n.toString(10) : n.toString(10); --} -- -- --var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', -- 'Oct', 'Nov', 'Dec']; -- --// 26 Feb 16:19:34 --function timestamp() { -- var d = new Date(); -- var time = [pad(d.getHours()), -- pad(d.getMinutes()), -- pad(d.getSeconds())].join(':'); -- return [d.getDate(), months[d.getMonth()], time].join(' '); --} -- -- --// log is just a thin wrapper to console.log that prepends a timestamp --exports.log = function() { -- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); --}; -- -- --/** -- * Inherit the prototype methods from one constructor into another. -- * -- * The Function.prototype.inherits from lang.js rewritten as a standalone -- * function (not on Function.prototype). NOTE: If this file is to be loaded -- * during bootstrapping this function needs to be rewritten using some native -- * functions as prototype setup using normal JavaScript does not work as -- * expected during bootstrapping (see mirror.js in r114903). -- * -- * @param {function} ctor Constructor function which needs to inherit the -- * prototype. -- * @param {function} superCtor Constructor function to inherit prototype from. -- */ --exports.inherits = function(ctor, superCtor) { -- ctor.super_ = superCtor; -- ctor.prototype = Object.create(superCtor.prototype, { -- constructor: { -- value: ctor, -- enumerable: false, -- writable: true, -- configurable: true -- } -- }); --}; -- --exports._extend = function(origin, add) { -- // Don't do anything if add isn't an object -- if (!add || !isObject(add)) return origin; -- -- var keys = Object.keys(add); -- var i = keys.length; -- while (i--) { -- origin[keys[i]] = add[keys[i]]; -- } -- return origin; --}; -- --function hasOwnProperty(obj, prop) { -- return Object.prototype.hasOwnProperty.call(obj, prop); --} -- -- --// Deprecated old stuff. -- --exports.p = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- console.error(exports.inspect(arguments[i])); -- } --}, 'util.p: Use console.error() instead'); -- -- --exports.exec = exports.deprecate(function() { -- return require('child_process').exec.apply(this, arguments); --}, 'util.exec is now called `child_process.exec`.'); -- -- --exports.print = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(String(arguments[i])); -- } --}, 'util.print: Use console.log instead'); -- -- --exports.puts = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(arguments[i] + '\n'); -- } --}, 'util.puts: Use console.log instead'); -- -- --exports.debug = exports.deprecate(function(x) { -- process.stderr.write('DEBUG: ' + x + '\n'); --}, 'util.debug: Use console.error instead'); -- -- --exports.error = exports.deprecate(function(x) { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stderr.write(arguments[i] + '\n'); -- } --}, 'util.error: Use console.error instead'); -- -- --exports.pump = exports.deprecate(function(readStream, writeStream, callback) { -- var callbackCalled = false; -- -- function call(a, b, c) { -- if (callback && !callbackCalled) { -- callback(a, b, c); -- callbackCalled = true; -- } -- } -- -- readStream.addListener('data', function(chunk) { -- if (writeStream.write(chunk) === false) readStream.pause(); -- }); -- -- writeStream.addListener('drain', function() { -- readStream.resume(); -- }); -- -- readStream.addListener('end', function() { -- writeStream.end(); -- }); -- -- readStream.addListener('close', function() { -- call(); -- }); -- -- readStream.addListener('error', function(err) { -- writeStream.end(); -- call(err); -- }); -- -- writeStream.addListener('error', function(err) { -- readStream.destroy(); -- call(err); -- }); --}, 'util.pump(): Use readableStream.pipe() instead'); -- -- --var uv; --exports._errnoException = function(err, syscall) { -- if (isUndefined(uv)) uv = process.binding('uv'); -- var errname = uv.errname(err); -- var e = new Error(syscall + ' ' + errname); -- e.code = errname; -- e.errno = errname; -- e.syscall = syscall; -- return e; --}; -+} \ No newline at end of file diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/lib/util.js b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/lib/util.js deleted file mode 100644 index 9074e8ebcb61e9f505b48a2f729ae86d25d992d8..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +++ /dev/null @@ -1,107 +0,0 @@ -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -function isBuffer(arg) { - return Buffer.isBuffer(arg); -} -exports.isBuffer = isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} \ No newline at end of file diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/package.json b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/package.json deleted file mode 100644 index 466dfdfe0139b3e73ec7b334f353866ba6a499af..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "core-util-is", - "version": "1.0.1", - "description": "The `util.is*` functions introduced in Node v0.12.", - "main": "lib/util.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/core-util-is.git" - }, - "keywords": [ - "util", - "isBuffer", - "isArray", - "isNumber", - "isString", - "isRegExp", - "isThis", - "isThat", - "polyfill" - ], - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/isaacs/core-util-is/issues" - }, - "readme": "# core-util-is\n\nThe `util.is*` functions introduced in Node v0.12.\n", - "readmeFilename": "README.md", - "homepage": "https://github.com/isaacs/core-util-is", - "_id": "core-util-is@1.0.1", - "dist": { - "shasum": "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538", - "tarball": "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "_from": "core-util-is@>=1.0.0 <1.1.0", - "_npmVersion": "1.3.23", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "directories": {}, - "_shasum": "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538", - "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" -} diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/util.js b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/util.js deleted file mode 100644 index 007fa10575636d9ae2cd42d8f9046eb70cc3c20c..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/util.js +++ /dev/null @@ -1,106 +0,0 @@ -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && objectToString(e) === '[object Error]'; -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -function isBuffer(arg) { - return arg instanceof Buffer; -} -exports.isBuffer = isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/README.md b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/README.md deleted file mode 100644 index 052a62b8d7b7ae2c6016d173319db607453659f8..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/README.md +++ /dev/null @@ -1,54 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -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/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/build/build.js b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/build/build.js deleted file mode 100644 index e1856ef0943728d9e530c0e52afbad94142c00bf..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/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/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/component.json b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/component.json deleted file mode 100644 index 9e31b6838890159e397063bdd2ea7de80b4e4a42..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/index.js b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/index.js deleted file mode 100644 index 5f5ad45d46dda97cc2ae37932e0dacf25d06352d..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/index.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/package.json b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/package.json deleted file mode 100644 index 19228ab6fdcaaf30f7c4d598c8b85563de5e3238..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "isarray", - "description": "Array#isArray for older browsers", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "homepage": "https://github.com/juliangruber/isarray", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": {}, - "devDependencies": { - "tap": "*" - }, - "keywords": [ - "browser", - "isarray", - "array" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "_id": "isarray@0.0.1", - "dist": { - "shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "tarball": "http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "_from": "isarray@0.0.1", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "directories": {}, - "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" - }, - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml deleted file mode 100644 index 5ac98855343cee55000079667dbec20470882465..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.11" - - "0.12" - - "iojs" diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/index.js b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/index.js deleted file mode 100644 index 049521cad7ba1bd5de4457ebaa2f781fe0180cac..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; -module.exports = nextTick; - -function nextTick(fn) { - var args = new Array(arguments.length - 1); - var i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - process.nextTick(function afterTick() { - fn.apply(null, args); - }); -} diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/package.json b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/package.json deleted file mode 100644 index 087586e8f8cedd837be71186a35b2d699222f02e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "process-nextick-args", - "version": "1.0.3", - "description": "process.nextTick but always with args", - "main": "index.js", - "scripts": { - "test": "node test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" - }, - "author": "", - "license": "MIT", - "bugs": { - "url": "https://github.com/calvinmetcalf/process-nextick-args/issues" - }, - "homepage": "https://github.com/calvinmetcalf/process-nextick-args", - "devDependencies": { - "tap": "~0.2.6" - }, - "gitHead": "e855846a69662b9489f1ad3dde1ebf2ccc4370b8", - "_id": "process-nextick-args@1.0.3", - "_shasum": "e272eed825d5e9f4ea74d8d73b1fe311c3beb630", - "_from": "process-nextick-args@>=1.0.0 <1.1.0", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.5.0", - "_npmUser": { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - }, - "dist": { - "shasum": "e272eed825d5e9f4ea74d8d73b1fe311c3beb630", - "tarball": "http://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" - }, - "maintainers": [ - { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/readme.md b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/readme.md deleted file mode 100644 index 78e7cfaeb7acdef0248b6820e5ec48302eebf1a0..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -process-nextick-args -===== - -[![Build Status](https://travis-ci.org/calvinmetcalf/process-nextick-args.svg?branch=master)](https://travis-ci.org/calvinmetcalf/process-nextick-args) - -```bash -npm install --save process-nextick-args -``` - -Always be able to pass arguments to process.nextTick, no matter the platform - -```js -var nextTick = require('process-nextick-args'); - -nextTick(function (a, b, c) { - console.log(a, b, c); -}, 'step', 3, 'profit'); -``` diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/test.js b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/test.js deleted file mode 100644 index ef15721584ac9973198e407f6ce3beadf95d5fff..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/test.js +++ /dev/null @@ -1,24 +0,0 @@ -var test = require("tap").test; -var nextTick = require('./'); - -test('should work', function (t) { - t.plan(5); - nextTick(function (a) { - t.ok(a); - nextTick(function (thing) { - t.equals(thing, 7); - }, 7); - }, true); - nextTick(function (a, b, c) { - t.equals(a, 'step'); - t.equals(b, 3); - t.equals(c, 'profit'); - }, 'step', 3, 'profit'); -}); - -test('correct number of arguments', function (t) { - t.plan(1); - nextTick(function () { - t.equals(2, arguments.length, 'correct number'); - }, 1, 2); -}); diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/.npmignore deleted file mode 100644 index 206320cc1d21b9cc9e3e0e8a303896045453c524..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -build -test diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/LICENSE deleted file mode 100644 index 6de584a48f5c897d27bfe9922f976297c07cae02..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -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/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/README.md b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/README.md deleted file mode 100644 index 4d2aa001501107cd2792f385ad62237dc3757521..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/README.md +++ /dev/null @@ -1,7 +0,0 @@ -**string_decoder.js** (`require('string_decoder')`) from Node.js core - -Copyright Joyent, Inc. and other Node contributors. See LICENCE file for details. - -Version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.** - -The *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version. \ No newline at end of file diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/index.js b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/index.js deleted file mode 100644 index b00e54fb7909827a02b6fa96ef55bd4dd85a3fe7..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/index.js +++ /dev/null @@ -1,221 +0,0 @@ -// 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 Buffer = require('buffer').Buffer; - -var isBufferEncoding = Buffer.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; - default: return false; - } - } - - -function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. CESU-8 is handled as part of the UTF-8 encoding. -// -// @TODO Handling all encodings inside a single object makes it very difficult -// to reason about this code, so it should be split up in the future. -// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code -// points as used by CESU-8. -var StringDecoder = exports.StringDecoder = function(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; -}; - - -// write decodes the given buffer and returns it as JS string that is -// guaranteed to not contain any partial multi-byte characters. Any partial -// character found at the end of the buffer is buffered up, and will be -// returned when calling write again with the remaining bytes. -// -// Note: Converting a Buffer containing an orphan surrogate to a String -// currently works, but converting a String to a Buffer (via `new Buffer`, or -// Buffer#write) will replace incomplete surrogates with the unicode -// replacement character. See https://codereview.chromium.org/121173009/ . -StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; -}; - -// detectIncompleteChar determines if there is an incomplete UTF-8 character at -// the end of the given buffer. If so, it sets this.charLength to the byte -// length that character, and sets this.charReceived to the number of bytes -// that are available for this character. -StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; -}; - -StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; -}; - -function passThroughWrite(buffer) { - return buffer.toString(this.encoding); -} - -function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; -} - -function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; -} diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/History.md b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/History.md deleted file mode 100644 index ec010299b1b2591fff4cec3eed03df917c6ce7a1..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/History.md +++ /dev/null @@ -1,11 +0,0 @@ - -1.0.1 / 2014-11-25 -================== - - * browser: use `console.warn()` for deprecation calls - * browser: more jsdocs - -1.0.0 / 2014-04-30 -================== - - * initial commit diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/LICENSE b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/LICENSE deleted file mode 100644 index 6a60e8c225c9baca25907f87c74b428e5d85de0c..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich - -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/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/README.md b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/README.md deleted file mode 100644 index 75622fa7c250a6605f4778d9dffe97bf60291d17..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/README.md +++ /dev/null @@ -1,53 +0,0 @@ -util-deprecate -============== -### The Node.js `util.deprecate()` function with browser support - -In Node.js, this module simply re-exports the `util.deprecate()` function. - -In the web browser (i.e. via browserify), a browser-specific implementation -of the `util.deprecate()` function is used. - - -## API - -A `deprecate()` function is the only thing exposed by this module. - -``` javascript -// setup: -exports.foo = deprecate(foo, 'foo() is deprecated, use bar() instead'); - - -// users see: -foo(); -// foo() is deprecated, use bar() instead -foo(); -foo(); -``` - - -## License - -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich - -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/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/browser.js b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/browser.js deleted file mode 100644 index 55fa5a4bc6056abdb49119f81dba69b172ef4235..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/browser.js +++ /dev/null @@ -1,62 +0,0 @@ - -/** - * Module exports. - */ - -module.exports = deprecate; - -/** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - -function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -} - -/** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - -function config (name) { - if (!global.localStorage) return false; - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; -} diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/node.js b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/node.js deleted file mode 100644 index 5e6fcff5ddd3fbf8bdda6310c224114d30b7509e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/node.js +++ /dev/null @@ -1,6 +0,0 @@ - -/** - * For Node.js, simply re-export the core `util.deprecate` function. - */ - -module.exports = require('util').deprecate; diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/package.json b/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/package.json deleted file mode 100644 index ea487da0e43000542b9f85a1426b62ff87a25f62..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "util-deprecate", - "version": "1.0.1", - "description": "The Node.js `util.deprecate()` function with browser support", - "main": "node.js", - "browser": "browser.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/util-deprecate.git" - }, - "keywords": [ - "util", - "deprecate", - "browserify", - "browser", - "node" - ], - "author": { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io/" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/TooTallNate/util-deprecate/issues" - }, - "homepage": "https://github.com/TooTallNate/util-deprecate", - "gitHead": "6e923f7d98a0afbe5b9c7db9d0f0029c1936746c", - "_id": "util-deprecate@1.0.1", - "_shasum": "3556a3d13c4c6aa7983d7e2425478197199b7881", - "_from": "util-deprecate@>=1.0.1 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "maintainers": [ - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], - "dist": { - "shasum": "3556a3d13c4c6aa7983d7e2425478197199b7881", - "tarball": "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/index.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/index.js deleted file mode 100644 index 4906755bc93573e0e3d86d6e4df78c2dcd511649..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -module.exports = function () { - return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g; -}; diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/package.json b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/package.json deleted file mode 100644 index 7fc07677a044acb9997932fb2b55ea2403afdc6e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "ansi-regex", - "version": "2.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/ansi-regex.git" - }, - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - } - ], - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha test/test.js", - "view-supported": "node test/viewCodes.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "mocha": "*" - }, - "gitHead": "57c3f2941a73079fa8b081e02a522e3d29913e2f", - "bugs": { - "url": "https://github.com/sindresorhus/ansi-regex/issues" - }, - "homepage": "https://github.com/sindresorhus/ansi-regex", - "_id": "ansi-regex@2.0.0", - "_shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", - "_from": "ansi-regex@>=2.0.0 <3.0.0", - "_npmVersion": "2.11.2", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", - "tarball": "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/readme.md deleted file mode 100644 index 1a4894ec1110e3ce2fbfd7824bcf91181a374aeb..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-regex) - -> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) - - -## Install - -``` -$ npm install --save ansi-regex -``` - - -## Usage - -```js -var ansiRegex = require('ansi-regex'); - -ansiRegex().test('\u001b[4mcake\u001b[0m'); -//=> true - -ansiRegex().test('cake'); -//=> false - -'\u001b[4mcake\u001b[0m'.match(ansiRegex()); -//=> ['\u001b[4m', '\u001b[0m'] -``` - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/index.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/index.js deleted file mode 100644 index 099480fbfc54cb238d6d190fda653408fbf1ef7f..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -var ansiRegex = require('ansi-regex')(); - -module.exports = function (str) { - return typeof str === 'string' ? str.replace(ansiRegex, '') : str; -}; diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/license b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/license deleted file mode 100644 index 654d0bfe943437d43242325b1fbcff5f400d84ee..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -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/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/index.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/index.js deleted file mode 100644 index 4906755bc93573e0e3d86d6e4df78c2dcd511649..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -module.exports = function () { - return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g; -}; diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/license b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/license deleted file mode 100644 index 654d0bfe943437d43242325b1fbcff5f400d84ee..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -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/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/package.json b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/package.json deleted file mode 100644 index 7fc07677a044acb9997932fb2b55ea2403afdc6e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "ansi-regex", - "version": "2.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/ansi-regex.git" - }, - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - } - ], - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha test/test.js", - "view-supported": "node test/viewCodes.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "mocha": "*" - }, - "gitHead": "57c3f2941a73079fa8b081e02a522e3d29913e2f", - "bugs": { - "url": "https://github.com/sindresorhus/ansi-regex/issues" - }, - "homepage": "https://github.com/sindresorhus/ansi-regex", - "_id": "ansi-regex@2.0.0", - "_shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", - "_from": "ansi-regex@>=2.0.0 <3.0.0", - "_npmVersion": "2.11.2", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "dist": { - "shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", - "tarball": "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/readme.md deleted file mode 100644 index 1a4894ec1110e3ce2fbfd7824bcf91181a374aeb..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-regex) - -> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) - - -## Install - -``` -$ npm install --save ansi-regex -``` - - -## Usage - -```js -var ansiRegex = require('ansi-regex'); - -ansiRegex().test('\u001b[4mcake\u001b[0m'); -//=> true - -ansiRegex().test('cake'); -//=> false - -'\u001b[4mcake\u001b[0m'.match(ansiRegex()); -//=> ['\u001b[4m', '\u001b[0m'] -``` - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/readme.md b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/readme.md deleted file mode 100644 index 76091512df5e4632b942f988e48846958de373e2..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/readme.md +++ /dev/null @@ -1,33 +0,0 @@ -# strip-ansi [![Build Status](https://travis-ci.org/sindresorhus/strip-ansi.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-ansi) - -> Strip [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) - - -## Install - -``` -$ npm install --save strip-ansi -``` - - -## Usage - -```js -var stripAnsi = require('strip-ansi'); - -stripAnsi('\u001b[4mcake\u001b[0m'); -//=> 'cake' -``` - - -## Related - -- [strip-ansi-cli](https://github.com/sindresorhus/strip-ansi-cli) - CLI for this module -- [has-ansi](https://github.com/sindresorhus/has-ansi) - Check if a string has ANSI escape codes -- [ansi-regex](https://github.com/sindresorhus/ansi-regex) - Regular expression for matching ANSI escape codes -- [chalk](https://github.com/sindresorhus/chalk) - Terminal string styling done right - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/supports-color/license b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/supports-color/license deleted file mode 100644 index 654d0bfe943437d43242325b1fbcff5f400d84ee..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/supports-color/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -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/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/.travis.yml b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/.travis.yml deleted file mode 100644 index 6e5919de39a312330fd1abf64237c4b6ad10c56b..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - "0.10" diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/.travis.yml b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/.travis.yml deleted file mode 100644 index 6e5919de39a312330fd1abf64237c4b6ad10c56b..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - "0.10" diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/package.json b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/package.json deleted file mode 100644 index 4b0677650bcd69cf71e244ba31a885e8eda649ad..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "jsonpointer", - "description": "Simple JSON Addressing.", - "tags": [ - "util", - "simple", - "util", - "utility" - ], - "version": "2.0.0", - "author": { - "name": "Jan Lehnardt", - "email": "jan@apache.org" - }, - "contributors": [ - { - "name": "Joe Hildebrand", - "email": "joe-github@cursive.net" - } - ], - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/janl/node-jsonpointer.git" - }, - "bugs": { - "url": "http://github.com/janl/node-jsonpointer/issues" - }, - "engines": { - "node": ">=0.6.0" - }, - "main": "./jsonpointer", - "scripts": { - "test": "node test.js" - }, - "license": "MIT", - "gitHead": "26ea4a5c0fcb6d9a2e87f733403791dd05637af8", - "homepage": "https://github.com/janl/node-jsonpointer#readme", - "_id": "jsonpointer@2.0.0", - "_shasum": "3af1dd20fe85463910d469a385e33017d2a030d9", - "_from": "jsonpointer@2.0.0", - "_npmVersion": "2.10.1", - "_nodeVersion": "0.10.36", - "_npmUser": { - "name": "marcbachmann", - "email": "marc.brookman@gmail.com" - }, - "maintainers": [ - { - "name": "jan", - "email": "jan@apache.org" - }, - { - "name": "marcbachmann", - "email": "marc.brookman@gmail.com" - } - ], - "dist": { - "shasum": "3af1dd20fe85463910d469a385e33017d2a030d9", - "tarball": "http://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json deleted file mode 100644 index c33f8a5742ae69526c9d9aa14c7b5221de2368bb..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/ctype/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "ctype", - "version": "0.5.3", - "description": "read and write binary structures and data types", - "homepage": "https://github.com/rmustacc/node-ctype", - "author": { - "name": "Robert Mustacchi", - "email": "rm@fingolfin.org" - }, - "engines": { - "node": ">= 0.4" - }, - "main": "ctype.js", - "repository": { - "type": "git", - "url": "git+https://github.com/rmustacc/node-ctype.git" - }, - "_id": "ctype@0.5.3", - "dist": { - "shasum": "82c18c2461f74114ef16c135224ad0b9144ca12f", - "tarball": "http://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" - }, - "_npmVersion": "1.1.59", - "_npmUser": { - "name": "rm", - "email": "rm@fingolfin.org" - }, - "maintainers": [ - { - "name": "rm", - "email": "rm@fingolfin.org" - } - ], - "directories": {}, - "_shasum": "82c18c2461f74114ef16c135224ad0b9144ca12f", - "_resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", - "_from": "ctype@0.5.3", - "bugs": { - "url": "https://github.com/rmustacc/node-ctype/issues" - }, - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json b/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json deleted file mode 100644 index 2e3337b7cc981f7b39e842904451b91a07eaab29..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "name": "mime-db", - "description": "Media Type Database", - "version": "1.19.0", - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - }, - { - "name": "Robert Kieffer", - "email": "robert@broofa.com", - "url": "http://github.com/broofa" - } - ], - "license": "MIT", - "keywords": [ - "mime", - "db", - "type", - "types", - "database", - "charset", - "charsets" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/mime-db.git" - }, - "devDependencies": { - "bluebird": "2.10.0", - "co": "4.6.0", - "cogent": "1.0.1", - "csv-parse": "1.0.0", - "gnode": "0.1.1", - "istanbul": "0.3.20", - "mocha": "1.21.5", - "raw-body": "2.1.3", - "stream-to-array": "2" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "db.json", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "build": "node scripts/build", - "fetch": "gnode scripts/fetch-apache && gnode scripts/fetch-iana && gnode scripts/fetch-nginx", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "update": "npm run fetch && npm run build" - }, - "gitHead": "46a40f0524a01fb3075a7ecde92e8e04fc93d599", - "bugs": { - "url": "https://github.com/jshttp/mime-db/issues" - }, - "homepage": "https://github.com/jshttp/mime-db", - "_id": "mime-db@1.19.0", - "_shasum": "496a18198a7ce8244534e25bb102b74fb420fd56", - "_from": "mime-db@>=1.19.0 <1.20.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "maintainers": [ - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "dist": { - "shasum": "496a18198a7ce8244534e25bb102b74fb420fd56", - "tarball": "http://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/request/node_modules/node-uuid/.npmignore b/deps/npm/node_modules/request/node_modules/node-uuid/.npmignore deleted file mode 100644 index fd4f2b066b339e4fd5c0efd44938231a398e9a81..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/node-uuid/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -.DS_Store diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/.jshintrc b/deps/npm/node_modules/request/node_modules/tough-cookie/.jshintrc deleted file mode 100644 index fb11913a419c1a9459181798aa88fd726d63a9ce..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/request/node_modules/tough-cookie/.jshintrc +++ /dev/null @@ -1,70 +0,0 @@ -{ - "passfail" : false, - "maxerr" : 100, - - "browser" : false, - "node" : true, - "rhino" : false, - "couch" : false, - "wsh" : false, - - "jquery" : false, - "prototypejs" : false, - "mootools" : false, - "dojo" : false, - - "debug" : false, - "devel" : false, - - "esnext" : true, - "strict" : true, - "globalstrict" : true, - - "asi" : false, - "laxbreak" : false, - "bitwise" : true, - "boss" : false, - "curly" : true, - "eqeqeq" : false, - "eqnull" : true, - "evil" : false, - "expr" : false, - "forin" : false, - "immed" : true, - "lastsemic" : true, - "latedef" : false, - "loopfunc" : false, - "noarg" : true, - "regexp" : false, - "regexdash" : false, - "scripturl" : false, - "shadow" : false, - "supernew" : false, - "undef" : true, - "unused" : true, - - "newcap" : true, - "noempty" : true, - "nonew" : true, - "nomen" : false, - "onevar" : false, - "onecase" : true, - "plusplus" : false, - "proto" : false, - "sub" : true, - "trailing" : true, - "white" : false, - - "predef": [ - "describe", - "it", - "before", - "beforeEach", - "after", - "afterEach", - "expect", - "setTimeout", - "clearTimeout" - ], - "maxlen": 0 -} diff --git a/deps/npm/node_modules/request/package.json b/deps/npm/node_modules/request/package.json index 0700cd724f0ef32d9ffcac0f4b306c38505a9b13..3653b72c6ec3e32d2dfbacdc5b4eef7246becb63 100644 --- a/deps/npm/node_modules/request/package.json +++ b/deps/npm/node_modules/request/package.json @@ -1,58 +1,69 @@ { - "name": "request", - "description": "Simplified HTTP request client.", - "tags": [ - "http", - "simple", - "util", - "utility" + "_args": [ + [ + "request@2", + "/Users/rebecca/code/npm/node_modules/node-gyp" + ] ], - "version": "2.64.0", - "author": { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com" + "_from": "request@>=2.0.0 <3.0.0", + "_id": "request@2.64.0", + "_inCache": true, + "_location": "/request", + "_nodeVersion": "4.1.0", + "_npmUser": { + "email": "simeonvelichkov@gmail.com", + "name": "simov" }, - "repository": { - "type": "git", - "url": "git+https://github.com/request/request.git" + "_npmVersion": "2.14.3", + "_phantomChildren": {}, + "_requested": { + "name": "request", + "raw": "request@2", + "rawSpec": "2", + "scope": null, + "spec": ">=2.0.0 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/node-gyp", + "/npm-registry-client" + ], + "_resolved": "https://registry.npmjs.org/request/-/request-2.64.0.tgz", + "_shasum": "96a582423ce9b4b5c34e9b232e480173f14ba608", + "_shrinkwrap": null, + "_spec": "request@2", + "_where": "/Users/rebecca/code/npm/node_modules/node-gyp", + "author": { + "email": "mikeal.rogers@gmail.com", + "name": "Mikeal Rogers" }, "bugs": { "url": "http://github.com/request/request/issues" }, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - }, - "main": "index.js", "dependencies": { + "aws-sign2": "~0.5.0", "bl": "~1.0.0", "caseless": "~0.11.0", + "combined-stream": "~1.0.1", "extend": "~3.0.0", "forever-agent": "~0.6.0", "form-data": "~1.0.0-rc1", + "har-validator": "^1.6.1", + "hawk": "~3.1.0", + "http-signature": "~0.11.0", + "isstream": "~0.1.1", "json-stringify-safe": "~5.0.0", "mime-types": "~2.1.2", "node-uuid": "~1.4.0", - "qs": "~5.1.0", - "tunnel-agent": "~0.4.0", - "tough-cookie": ">=0.12.0", - "http-signature": "~0.11.0", "oauth-sign": "~0.8.0", - "hawk": "~3.1.0", - "aws-sign2": "~0.5.0", + "qs": "~5.1.0", "stringstream": "~0.0.4", - "combined-stream": "~1.0.1", - "isstream": "~0.1.1", - "har-validator": "^1.6.1" - }, - "scripts": { - "test": "npm run lint && npm run test-ci && npm run test-browser", - "test-ci": "taper tests/test-*.js", - "test-cov": "istanbul cover tape tests/test-*.js", - "test-browser": "node tests/browser/start.js", - "lint": "eslint lib/ *.js tests/ && echo Lint passed." + "tough-cookie": ">=0.12.0", + "tunnel-agent": "~0.4.0" }, + "description": "Simplified HTTP request client.", "devDependencies": { + "bluebird": "~2.9.21", "browserify": "~5.9.1", "browserify-istanbul": "~0.1.3", "buffer-equal": "0.0.1", @@ -70,20 +81,21 @@ "rimraf": "~2.2.8", "server-destroy": "~1.0.0", "tape": "~3.0.0", - "taper": "~0.4.0", - "bluebird": "~2.9.21" + "taper": "~0.4.0" + }, + "directories": {}, + "dist": { + "shasum": "96a582423ce9b4b5c34e9b232e480173f14ba608", + "tarball": "http://registry.npmjs.org/request/-/request-2.64.0.tgz" + }, + "engines": { + "node": ">=0.8.0" }, "gitHead": "ca364485249f13c4810bb9b3952fb0fb886a93ee", "homepage": "https://github.com/request/request#readme", - "_id": "request@2.64.0", - "_shasum": "96a582423ce9b4b5c34e9b232e480173f14ba608", - "_from": "request@2.64.0", - "_npmVersion": "2.14.3", - "_nodeVersion": "4.1.0", - "_npmUser": { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - }, + "installable": true, + "license": "Apache-2.0", + "main": "index.js", "maintainers": [ { "name": "mikeal", @@ -102,11 +114,26 @@ "email": "simeonvelichkov@gmail.com" } ], - "dist": { - "shasum": "96a582423ce9b4b5c34e9b232e480173f14ba608", - "tarball": "http://registry.npmjs.org/request/-/request-2.64.0.tgz" + "name": "request", + "optionalDependencies": {}, + "readme": "\n# Request - Simplified HTTP client\n\n[![npm package](https://nodei.co/npm/request.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/request/)\n\n[![Build status](https://img.shields.io/travis/request/request.svg?style=flat-square)](https://travis-ci.org/request/request)\n[![Coverage](https://img.shields.io/codecov/c/github/request/request.svg?style=flat-square)](https://codecov.io/github/request/request?branch=master)\n[![Coverage](https://img.shields.io/coveralls/request/request.svg?style=flat-square)](https://coveralls.io/r/request/request)\n[![Dependency Status](https://img.shields.io/david/request/request.svg?style=flat-square)](https://david-dm.org/request/request)\n[![Gitter](https://img.shields.io/badge/gitter-join_chat-blue.svg?style=flat-square)](https://gitter.im/request/request?utm_source=badge)\n\n\n## Super simple to use\n\nRequest is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default.\n\n```js\nvar request = require('request');\nrequest('http://www.google.com', function (error, response, body) {\n if (!error && response.statusCode == 200) {\n console.log(body) // Show the HTML for the Google homepage.\n }\n})\n```\n\n\n## Table of contents\n\n- [Streaming](#streaming)\n- [Forms](#forms)\n- [HTTP Authentication](#http-authentication)\n- [Custom HTTP Headers](#custom-http-headers)\n- [OAuth Signing](#oauth-signing)\n- [Proxies](#proxies)\n- [Unix Domain Sockets](#unix-domain-sockets)\n- [TLS/SSL Protocol](#tlsssl-protocol)\n- [Support for HAR 1.2](#support-for-har-12)\n- [**All Available Options**](#requestoptions-callback)\n\nRequest also offers [convenience methods](#convenience-methods) like\n`request.defaults` and `request.post`, and there are\nlots of [usage examples](#examples) and several\n[debugging techniques](#debugging).\n\n\n---\n\n\n## Streaming\n\nYou can stream any response to a file stream.\n\n```js\nrequest('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))\n```\n\nYou can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types (in this case `application/json`) and use the proper `content-type` in the PUT request (if the headers don’t already provide one).\n\n```js\nfs.createReadStream('file.json').pipe(request.put('http://mysite.com/obj.json'))\n```\n\nRequest can also `pipe` to itself. When doing so, `content-type` and `content-length` are preserved in the PUT headers.\n\n```js\nrequest.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png'))\n```\n\nRequest emits a \"response\" event when a response is received. The `response` argument will be an instance of [http.IncomingMessage](http://nodejs.org/api/http.html#http_http_incomingmessage).\n\n```js\nrequest\n .get('http://google.com/img.png')\n .on('response', function(response) {\n console.log(response.statusCode) // 200\n console.log(response.headers['content-type']) // 'image/png'\n })\n .pipe(request.put('http://mysite.com/img.png'))\n```\n\nTo easily handle errors when streaming requests, listen to the `error` event before piping:\n\n```js\nrequest\n .get('http://mysite.com/doodle.png')\n .on('error', function(err) {\n console.log(err)\n })\n .pipe(fs.createWriteStream('doodle.png'))\n```\n\nNow let’s get fancy.\n\n```js\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n if (req.method === 'PUT') {\n req.pipe(request.put('http://mysite.com/doodle.png'))\n } else if (req.method === 'GET' || req.method === 'HEAD') {\n request.get('http://mysite.com/doodle.png').pipe(resp)\n }\n }\n})\n```\n\nYou can also `pipe()` from `http.ServerRequest` instances, as well as to `http.ServerResponse` instances. The HTTP method, headers, and entity-body data will be sent. Which means that, if you don't really care about security, you can do:\n\n```js\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n var x = request('http://mysite.com/doodle.png')\n req.pipe(x)\n x.pipe(resp)\n }\n})\n```\n\nAnd since `pipe()` returns the destination stream in ≥ Node 0.5.x you can do one line proxying. :)\n\n```js\nreq.pipe(request('http://mysite.com/doodle.png')).pipe(resp)\n```\n\nAlso, none of this new functionality conflicts with requests previous features, it just expands them.\n\n```js\nvar r = request.defaults({'proxy':'http://localproxy.com'})\n\nhttp.createServer(function (req, resp) {\n if (req.url === '/doodle.png') {\n r.get('http://google.com/doodle.png').pipe(resp)\n }\n})\n```\n\nYou can still use intermediate proxies, the requests will still follow HTTP forwards, etc.\n\n[back to top](#table-of-contents)\n\n\n---\n\n\n## Forms\n\n`request` supports `application/x-www-form-urlencoded` and `multipart/form-data` form uploads. For `multipart/related` refer to the `multipart` API.\n\n\n#### application/x-www-form-urlencoded (URL-Encoded Forms)\n\nURL-encoded forms are simple.\n\n```js\nrequest.post('http://service.com/upload', {form:{key:'value'}})\n// or\nrequest.post('http://service.com/upload').form({key:'value'})\n// or\nrequest.post({url:'http://service.com/upload', form: {key:'value'}}, function(err,httpResponse,body){ /* ... */ })\n```\n\n\n#### multipart/form-data (Multipart Form Uploads)\n\nFor `multipart/form-data` we use the [form-data](https://github.com/felixge/node-form-data) library by [@felixge](https://github.com/felixge). For the most cases, you can pass your upload form data via the `formData` option.\n\n\n```js\nvar formData = {\n // Pass a simple key-value pair\n my_field: 'my_value',\n // Pass data via Buffers\n my_buffer: new Buffer([1, 2, 3]),\n // Pass data via Streams\n my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),\n // Pass multiple values /w an Array\n attachments: [\n fs.createReadStream(__dirname + '/attachment1.jpg'),\n fs.createReadStream(__dirname + '/attachment2.jpg')\n ],\n // Pass optional meta-data with an 'options' object with style: {value: DATA, options: OPTIONS}\n // Use case: for some types of streams, you'll need to provide \"file\"-related information manually.\n // See the `form-data` README for more information about options: https://github.com/felixge/node-form-data\n custom_file: {\n value: fs.createReadStream('/dev/urandom'),\n options: {\n filename: 'topsecret.jpg',\n contentType: 'image/jpg'\n }\n }\n};\nrequest.post({url:'http://service.com/upload', formData: formData}, function optionalCallback(err, httpResponse, body) {\n if (err) {\n return console.error('upload failed:', err);\n }\n console.log('Upload successful! Server responded with:', body);\n});\n```\n\nFor advanced cases, you can access the form-data object itself via `r.form()`. This can be modified until the request is fired on the next cycle of the event-loop. (Note that this calling `form()` will clear the currently set form data for that request.)\n\n```js\n// NOTE: Advanced use-case, for normal use see 'formData' usage above\nvar r = request.post('http://service.com/upload', function optionalCallback(err, httpResponse, body) {...})\nvar form = r.form();\nform.append('my_field', 'my_value');\nform.append('my_buffer', new Buffer([1, 2, 3]));\nform.append('custom_file', fs.createReadStream(__dirname + '/unicycle.jpg'), {filename: 'unicycle.jpg'});\n```\nSee the [form-data README](https://github.com/felixge/node-form-data) for more information & examples.\n\n\n#### multipart/related\n\nSome variations in different HTTP implementations require a newline/CRLF before, after, or both before and after the boundary of a `multipart/related` request (using the multipart option). This has been observed in the .NET WebAPI version 4.0. You can turn on a boundary preambleCRLF or postamble by passing them as `true` to your request options.\n\n```js\n request({\n method: 'PUT',\n preambleCRLF: true,\n postambleCRLF: true,\n uri: 'http://service.com/upload',\n multipart: [\n {\n 'content-type': 'application/json',\n body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}})\n },\n { body: 'I am an attachment' },\n { body: fs.createReadStream('image.png') }\n ],\n // alternatively pass an object containing additional options\n multipart: {\n chunked: false,\n data: [\n {\n 'content-type': 'application/json',\n body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}})\n },\n { body: 'I am an attachment' }\n ]\n }\n },\n function (error, response, body) {\n if (error) {\n return console.error('upload failed:', error);\n }\n console.log('Upload successful! Server responded with:', body);\n })\n```\n\n[back to top](#table-of-contents)\n\n\n---\n\n\n## HTTP Authentication\n\n```js\nrequest.get('http://some.server.com/').auth('username', 'password', false);\n// or\nrequest.get('http://some.server.com/', {\n 'auth': {\n 'user': 'username',\n 'pass': 'password',\n 'sendImmediately': false\n }\n});\n// or\nrequest.get('http://some.server.com/').auth(null, null, true, 'bearerToken');\n// or\nrequest.get('http://some.server.com/', {\n 'auth': {\n 'bearer': 'bearerToken'\n }\n});\n```\n\nIf passed as an option, `auth` should be a hash containing values:\n\n- `user` || `username`\n- `pass` || `password`\n- `sendImmediately` (optional)\n- `bearer` (optional)\n\nThe method form takes parameters\n`auth(username, password, sendImmediately, bearer)`.\n\n`sendImmediately` defaults to `true`, which causes a basic or bearer\nauthentication header to be sent. If `sendImmediately` is `false`, then\n`request` will retry with a proper authentication header after receiving a\n`401` response from the server (which must contain a `WWW-Authenticate` header\nindicating the required authentication method).\n\nNote that you can also specify basic authentication using the URL itself, as\ndetailed in [RFC 1738](http://www.ietf.org/rfc/rfc1738.txt). Simply pass the\n`user:password` before the host with an `@` sign:\n\n```js\nvar username = 'username',\n password = 'password',\n url = 'http://' + username + ':' + password + '@some.server.com';\n\nrequest({url: url}, function (error, response, body) {\n // Do more stuff with 'body' here\n});\n```\n\nDigest authentication is supported, but it only works with `sendImmediately`\nset to `false`; otherwise `request` will send basic authentication on the\ninitial request, which will probably cause the request to fail.\n\nBearer authentication is supported, and is activated when the `bearer` value is\navailable. The value may be either a `String` or a `Function` returning a\n`String`. Using a function to supply the bearer token is particularly useful if\nused in conjunction with `defaults` to allow a single function to supply the\nlast known token at the time of sending a request, or to compute one on the fly.\n\n[back to top](#table-of-contents)\n\n\n---\n\n\n## Custom HTTP Headers\n\nHTTP Headers, such as `User-Agent`, can be set in the `options` object.\nIn the example below, we call the github API to find out the number\nof stars and forks for the request repository. This requires a\ncustom `User-Agent` header as well as https.\n\n```js\nvar request = require('request');\n\nvar options = {\n url: 'https://api.github.com/repos/request/request',\n headers: {\n 'User-Agent': 'request'\n }\n};\n\nfunction callback(error, response, body) {\n if (!error && response.statusCode == 200) {\n var info = JSON.parse(body);\n console.log(info.stargazers_count + \" Stars\");\n console.log(info.forks_count + \" Forks\");\n }\n}\n\nrequest(options, callback);\n```\n\n[back to top](#table-of-contents)\n\n\n---\n\n\n## OAuth Signing\n\n[OAuth version 1.0](https://tools.ietf.org/html/rfc5849) is supported. The\ndefault signing algorithm is\n[HMAC-SHA1](https://tools.ietf.org/html/rfc5849#section-3.4.2):\n\n```js\n// OAuth1.0 - 3-legged server side flow (Twitter example)\n// step 1\nvar qs = require('querystring')\n , oauth =\n { callback: 'http://mysite.com/callback/'\n , consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n }\n , url = 'https://api.twitter.com/oauth/request_token'\n ;\nrequest.post({url:url, oauth:oauth}, function (e, r, body) {\n // Ideally, you would take the body in the response\n // and construct a URL that a user clicks on (like a sign in button).\n // The verifier is only available in the response after a user has\n // verified with twitter that they are authorizing your app.\n\n // step 2\n var req_data = qs.parse(body)\n var uri = 'https://api.twitter.com/oauth/authenticate'\n + '?' + qs.stringify({oauth_token: req_data.oauth_token})\n // redirect the user to the authorize uri\n\n // step 3\n // after the user is redirected back to your server\n var auth_data = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: auth_data.oauth_token\n , token_secret: req_data.oauth_token_secret\n , verifier: auth_data.oauth_verifier\n }\n , url = 'https://api.twitter.com/oauth/access_token'\n ;\n request.post({url:url, oauth:oauth}, function (e, r, body) {\n // ready to make signed requests on behalf of the user\n var perm_data = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: perm_data.oauth_token\n , token_secret: perm_data.oauth_token_secret\n }\n , url = 'https://api.twitter.com/1.1/users/show.json'\n , qs =\n { screen_name: perm_data.screen_name\n , user_id: perm_data.user_id\n }\n ;\n request.get({url:url, oauth:oauth, qs:qs, json:true}, function (e, r, user) {\n console.log(user)\n })\n })\n})\n```\n\nFor [RSA-SHA1 signing](https://tools.ietf.org/html/rfc5849#section-3.4.3), make\nthe following changes to the OAuth options object:\n* Pass `signature_method : 'RSA-SHA1'`\n* Instead of `consumer_secret`, specify a `private_key` string in\n [PEM format](http://how2ssl.com/articles/working_with_pem_files/)\n\nFor [PLAINTEXT signing](http://oauth.net/core/1.0/#anchor22), make\nthe following changes to the OAuth options object:\n* Pass `signature_method : 'PLAINTEXT'`\n\nTo send OAuth parameters via query params or in a post body as described in The\n[Consumer Request Parameters](http://oauth.net/core/1.0/#consumer_req_param)\nsection of the oauth1 spec:\n* Pass `transport_method : 'query'` or `transport_method : 'body'` in the OAuth\n options object.\n* `transport_method` defaults to `'header'`\n\nTo use [Request Body Hash](https://oauth.googlecode.com/svn/spec/ext/body_hash/1.0/oauth-bodyhash.html) you can either\n* Manually generate the body hash and pass it as a string `body_hash: '...'`\n* Automatically generate the body hash by passing `body_hash: true`\n\n[back to top](#table-of-contents)\n\n\n---\n\n\n## Proxies\n\nIf you specify a `proxy` option, then the request (and any subsequent\nredirects) will be sent via a connection to the proxy server.\n\nIf your endpoint is an `https` url, and you are using a proxy, then\nrequest will send a `CONNECT` request to the proxy server *first*, and\nthen use the supplied connection to connect to the endpoint.\n\nThat is, first it will make a request like:\n\n```\nHTTP/1.1 CONNECT endpoint-server.com:80\nHost: proxy-server.com\nUser-Agent: whatever user agent you specify\n```\n\nand then the proxy server make a TCP connection to `endpoint-server`\non port `80`, and return a response that looks like:\n\n```\nHTTP/1.1 200 OK\n```\n\nAt this point, the connection is left open, and the client is\ncommunicating directly with the `endpoint-server.com` machine.\n\nSee [the wikipedia page on HTTP Tunneling](http://en.wikipedia.org/wiki/HTTP_tunnel)\nfor more information.\n\nBy default, when proxying `http` traffic, request will simply make a\nstandard proxied `http` request. This is done by making the `url`\nsection of the initial line of the request a fully qualified url to\nthe endpoint.\n\nFor example, it will make a single request that looks like:\n\n```\nHTTP/1.1 GET http://endpoint-server.com/some-url\nHost: proxy-server.com\nOther-Headers: all go here\n\nrequest body or whatever\n```\n\nBecause a pure \"http over http\" tunnel offers no additional security\nor other features, it is generally simpler to go with a\nstraightforward HTTP proxy in this case. However, if you would like\nto force a tunneling proxy, you may set the `tunnel` option to `true`.\n\nYou can also make a standard proxied `http` request by explicitly setting\n`tunnel : false`, but **note that this will allow the proxy to see the traffic\nto/from the destination server**.\n\nIf you are using a tunneling proxy, you may set the\n`proxyHeaderWhiteList` to share certain headers with the proxy.\n\nYou can also set the `proxyHeaderExclusiveList` to share certain\nheaders only with the proxy and not with destination host.\n\nBy default, this set is:\n\n```\naccept\naccept-charset\naccept-encoding\naccept-language\naccept-ranges\ncache-control\ncontent-encoding\ncontent-language\ncontent-length\ncontent-location\ncontent-md5\ncontent-range\ncontent-type\nconnection\ndate\nexpect\nmax-forwards\npragma\nproxy-authorization\nreferer\nte\ntransfer-encoding\nuser-agent\nvia\n```\n\nNote that, when using a tunneling proxy, the `proxy-authorization`\nheader and any headers from custom `proxyHeaderExclusiveList` are\n*never* sent to the endpoint server, but only to the proxy server.\n\n\n### Controlling proxy behaviour using environment variables\n\nThe following environment variables are respected by `request`:\n\n * `HTTP_PROXY` / `http_proxy`\n * `HTTPS_PROXY` / `https_proxy`\n * `NO_PROXY` / `no_proxy`\n\nWhen `HTTP_PROXY` / `http_proxy` are set, they will be used to proxy non-SSL requests that do not have an explicit `proxy` configuration option present. Similarly, `HTTPS_PROXY` / `https_proxy` will be respected for SSL requests that do not have an explicit `proxy` configuration option. It is valid to define a proxy in one of the environment variables, but then override it for a specific request, using the `proxy` configuration option. Furthermore, the `proxy` configuration option can be explicitly set to false / null to opt out of proxying altogether for that request.\n\n`request` is also aware of the `NO_PROXY`/`no_proxy` environment variables. These variables provide a granular way to opt out of proxying, on a per-host basis. It should contain a comma separated list of hosts to opt out of proxying. It is also possible to opt of proxying when a particular destination port is used. Finally, the variable may be set to `*` to opt out of the implicit proxy configuration of the other environment variables.\n\nHere's some examples of valid `no_proxy` values:\n\n * `google.com` - don't proxy HTTP/HTTPS requests to Google.\n * `google.com:443` - don't proxy HTTPS requests to Google, but *do* proxy HTTP requests to Google.\n * `google.com:443, yahoo.com:80` - don't proxy HTTPS requests to Google, and don't proxy HTTP requests to Yahoo!\n * `*` - ignore `https_proxy`/`http_proxy` environment variables altogether.\n\n[back to top](#table-of-contents)\n\n\n---\n\n\n## UNIX Domain Sockets\n\n`request` supports making requests to [UNIX Domain Sockets](http://en.wikipedia.org/wiki/Unix_domain_socket). To make one, use the following URL scheme:\n\n```js\n/* Pattern */ 'http://unix:SOCKET:PATH'\n/* Example */ request.get('http://unix:/absolute/path/to/unix.socket:/request/path')\n```\n\nNote: The `SOCKET` path is assumed to be absolute to the root of the host file system.\n\n[back to top](#table-of-contents)\n\n\n---\n\n\n## TLS/SSL Protocol\n\nTLS/SSL Protocol options, such as `cert`, `key` and `passphrase`, can be\nset directly in `options` object, in the `agentOptions` property of the `options` object, or even in `https.globalAgent.options`. Keep in mind that, although `agentOptions` allows for a slightly wider range of configurations, the recommended way is via `options` object directly, as using `agentOptions` or `https.globalAgent.options` would not be applied in the same way in proxied environments (as data travels through a TLS connection instead of an http/https agent).\n\n```js\nvar fs = require('fs')\n , path = require('path')\n , certFile = path.resolve(__dirname, 'ssl/client.crt')\n , keyFile = path.resolve(__dirname, 'ssl/client.key')\n , caFile = path.resolve(__dirname, 'ssl/ca.cert.pem')\n , request = require('request');\n\nvar options = {\n url: 'https://api.some-server.com/',\n cert: fs.readFileSync(certFile),\n key: fs.readFileSync(keyFile),\n passphrase: 'password',\n ca: fs.readFileSync(caFile)\n }\n};\n\nrequest.get(options);\n```\n\n### Using `options.agentOptions`\n\nIn the example below, we call an API requires client side SSL certificate\n(in PEM format) with passphrase protected private key (in PEM format) and disable the SSLv3 protocol:\n\n```js\nvar fs = require('fs')\n , path = require('path')\n , certFile = path.resolve(__dirname, 'ssl/client.crt')\n , keyFile = path.resolve(__dirname, 'ssl/client.key')\n , request = require('request');\n\nvar options = {\n url: 'https://api.some-server.com/',\n agentOptions: {\n cert: fs.readFileSync(certFile),\n key: fs.readFileSync(keyFile),\n // Or use `pfx` property replacing `cert` and `key` when using private key, certificate and CA certs in PFX or PKCS12 format:\n // pfx: fs.readFileSync(pfxFilePath),\n passphrase: 'password',\n securityOptions: 'SSL_OP_NO_SSLv3'\n }\n};\n\nrequest.get(options);\n```\n\nIt is able to force using SSLv3 only by specifying `secureProtocol`:\n\n```js\nrequest.get({\n url: 'https://api.some-server.com/',\n agentOptions: {\n secureProtocol: 'SSLv3_method'\n }\n});\n```\n\nIt is possible to accept other certificates than those signed by generally allowed Certificate Authorities (CAs).\nThis can be useful, for example, when using self-signed certificates.\nTo require a different root certificate, you can specify the signing CA by adding the contents of the CA's certificate file to the `agentOptions`.\nThe certificate the domain presents must be signed by the root certificate specified:\n\n```js\nrequest.get({\n url: 'https://api.some-server.com/',\n agentOptions: {\n ca: fs.readFileSync('ca.cert.pem')\n }\n});\n```\n\n[back to top](#table-of-contents)\n\n\n---\n\n## Support for HAR 1.2\n\nThe `options.har` property will override the values: `url`, `method`, `qs`, `headers`, `form`, `formData`, `body`, `json`, as well as construct multipart data and read files from disk when `request.postData.params[].fileName` is present without a matching `value`.\n\na validation step will check if the HAR Request format matches the latest spec (v1.2) and will skip parsing if not matching.\n\n```js\n var request = require('request')\n request({\n // will be ignored\n method: 'GET',\n uri: 'http://www.google.com',\n\n // HTTP Archive Request Object\n har: {\n url: 'http://www.mockbin.com/har',\n method: 'POST',\n headers: [\n {\n name: 'content-type',\n value: 'application/x-www-form-urlencoded'\n }\n ],\n postData: {\n mimeType: 'application/x-www-form-urlencoded',\n params: [\n {\n name: 'foo',\n value: 'bar'\n },\n {\n name: 'hello',\n value: 'world'\n }\n ]\n }\n }\n })\n\n // a POST request will be sent to http://www.mockbin.com\n // with body an application/x-www-form-urlencoded body:\n // foo=bar&hello=world\n```\n\n[back to top](#table-of-contents)\n\n\n---\n\n## request(options, callback)\n\nThe first argument can be either a `url` or an `options` object. The only required option is `uri`; all others are optional.\n\n- `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()`\n- `baseUrl` - fully qualified uri string used as the base url. Most useful with `request.defaults`, for example when you want to do many requests to the same domain. If `baseUrl` is `https://example.com/api/`, then requesting `/end/point?test=true` will fetch `https://example.com/api/end/point?test=true`. When `baseUrl` is given, `uri` must also be a string.\n- `method` - http method (default: `\"GET\"`)\n- `headers` - http headers (default: `{}`)\n\n---\n\n- `qs` - object containing querystring values to be appended to the `uri`\n- `qsParseOptions` - object containing options to pass to the [qs.parse](https://github.com/hapijs/qs#parsing-objects) method. Alternatively pass options to the [querystring.parse](https://nodejs.org/docs/v0.12.0/api/querystring.html#querystring_querystring_parse_str_sep_eq_options) method using this format `{sep:';', eq:':', options:{}}`\n- `qsStringifyOptions` - object containing options to pass to the [qs.stringify](https://github.com/hapijs/qs#stringifying) method. Alternatively pass options to the [querystring.stringify](https://nodejs.org/docs/v0.12.0/api/querystring.html#querystring_querystring_stringify_obj_sep_eq_options) method using this format `{sep:';', eq:':', options:{}}`. For example, to change the way arrays are converted to query strings using the `qs` module pass the `arrayFormat` option with one of `indices|brackets|repeat`\n- `useQuerystring` - If true, use `querystring` to stringify and parse\n querystrings, otherwise use `qs` (default: `false`). Set this option to\n `true` if you need arrays to be serialized as `foo=bar&foo=baz` instead of the\n default `foo[0]=bar&foo[1]=baz`.\n\n---\n\n- `body` - entity body for PATCH, POST and PUT requests. Must be a `Buffer` or `String`, unless `json` is `true`. If `json` is `true`, then `body` must be a JSON-serializable object.\n- `form` - when passed an object or a querystring, this sets `body` to a querystring representation of value, and adds `Content-type: application/x-www-form-urlencoded` header. When passed no options, a `FormData` instance is returned (and is piped to request). See \"Forms\" section above.\n- `formData` - Data to pass for a `multipart/form-data` request. See\n [Forms](#forms) section above.\n- `multipart` - array of objects which contain their own headers and `body`\n attributes. Sends a `multipart/related` request. See [Forms](#forms) section\n above.\n - Alternatively you can pass in an object `{chunked: false, data: []}` where\n `chunked` is used to specify whether the request is sent in\n [chunked transfer encoding](https://en.wikipedia.org/wiki/Chunked_transfer_encoding)\n In non-chunked requests, data items with body streams are not allowed.\n- `preambleCRLF` - append a newline/CRLF before the boundary of your `multipart/form-data` request.\n- `postambleCRLF` - append a newline/CRLF at the end of the boundary of your `multipart/form-data` request.\n- `json` - sets `body` but to JSON representation of value and adds `Content-type: application/json` header. Additionally, parses the response body as JSON.\n- `jsonReviver` - a [reviver function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse) that will be passed to `JSON.parse()` when parsing a JSON response body.\n\n---\n\n- `auth` - A hash containing values `user` || `username`, `pass` || `password`, and `sendImmediately` (optional). See documentation above.\n- `oauth` - Options for OAuth HMAC-SHA1 signing. See documentation above.\n- `hawk` - Options for [Hawk signing](https://github.com/hueniverse/hawk). The `credentials` key must contain the necessary signing info, [see hawk docs for details](https://github.com/hueniverse/hawk#usage-example).\n- `aws` - `object` containing AWS signing information. Should have the properties `key`, `secret`. Also requires the property `bucket`, unless you’re specifying your `bucket` as part of the path, or the request doesn’t use a bucket (i.e. GET Services)\n- `httpSignature` - Options for the [HTTP Signature Scheme](https://github.com/joyent/node-http-signature/blob/master/http_signing.md) using [Joyent's library](https://github.com/joyent/node-http-signature). The `keyId` and `key` properties must be specified. See the docs for other options.\n\n---\n\n- `followRedirect` - follow HTTP 3xx responses as redirects (default: `true`). This property can also be implemented as function which gets `response` object as a single argument and should return `true` if redirects should continue or `false` otherwise.\n- `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects (default: `false`)\n- `maxRedirects` - the maximum number of redirects to follow (default: `10`)\n- `removeRefererHeader` - removes the referer header when a redirect happens (default: `false`).\n\n---\n\n- `encoding` - Encoding to be used on `setEncoding` of response data. If `null`, the `body` is returned as a `Buffer`. Anything else **(including the default value of `undefined`)** will be passed as the [encoding](http://nodejs.org/api/buffer.html#buffer_buffer) parameter to `toString()` (meaning this is effectively `utf8` by default). (**Note:** if you expect binary data, you should set `encoding: null`.)\n- `gzip` - If `true`, add an `Accept-Encoding` header to request compressed content encodings from the server (if not already present) and decode supported content encodings in the response. **Note:** Automatic decoding of the response content is performed on the body data returned through `request` (both through the `request` stream and passed to the callback function) but is not performed on the `response` stream (available from the `response` event) which is the unmodified `http.IncomingMessage` object which may contain compressed data. See example below.\n- `jar` - If `true`, remember cookies for future use (or define your custom cookie jar; see examples section)\n\n---\n\n- `agent` - `http(s).Agent` instance to use\n- `agentClass` - alternatively specify your agent's class name\n- `agentOptions` - and pass its options. **Note:** for HTTPS see [tls API doc for TLS/SSL options](http://nodejs.org/api/tls.html#tls_tls_connect_options_callback) and the [documentation above](#using-optionsagentoptions).\n- `forever` - set to `true` to use the [forever-agent](https://github.com/request/forever-agent) **Note:** Defaults to `http(s).Agent({keepAlive:true})` in node 0.12+\n- `pool` - An object describing which agents to use for the request. If this option is omitted the request will use the global agent (as long as your options allow for it). Otherwise, request will search the pool for your custom agent. If no custom agent is found, a new agent will be created and added to the pool. **Note:** `pool` is used only when the `agent` option is not specified.\n - A `maxSockets` property can also be provided on the `pool` object to set the max number of sockets for all agents created (ex: `pool: {maxSockets: Infinity}`).\n - Note that if you are sending multiple requests in a loop and creating\n multiple new `pool` objects, `maxSockets` will not work as intended. To\n work around this, either use [`request.defaults`](#requestdefaultsoptions)\n with your pool options or create the pool object with the `maxSockets`\n property outside of the loop.\n- `timeout` - Integer containing the number of milliseconds to wait for a\nserver to send response headers (and start the response body) before aborting\nthe request. Note that if the underlying TCP connection cannot be established,\nthe OS-wide TCP connection timeout will overrule the `timeout` option ([the\ndefault in Linux can be anywhere from 20-120 seconds][linux-timeout]).\n\n[linux-timeout]: http://www.sekuda.com/overriding_the_default_linux_kernel_20_second_tcp_socket_connect_timeout\n\n---\n\n- `localAddress` - Local interface to bind for network connections.\n- `proxy` - An HTTP proxy to be used. Supports proxy Auth with Basic Auth, identical to support for the `url` parameter (by embedding the auth info in the `uri`)\n- `strictSSL` - If `true`, requires SSL certificates be valid. **Note:** to use your own certificate authority, you need to specify an agent that was created with that CA as an option.\n- `tunnel` - controls the behavior of\n [HTTP `CONNECT` tunneling](https://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_tunneling)\n as follows:\n - `undefined` (default) - `true` if the destination is `https` or a previous\n request in the redirect chain used a tunneling proxy, `false` otherwise\n - `true` - always tunnel to the destination by making a `CONNECT` request to\n the proxy\n - `false` - request the destination as a `GET` request.\n- `proxyHeaderWhiteList` - A whitelist of headers to send to a\n tunneling proxy.\n- `proxyHeaderExclusiveList` - A whitelist of headers to send\n exclusively to a tunneling proxy and not to destination.\n\n---\n\n- `time` - If `true`, the request-response cycle (including all redirects) is timed at millisecond resolution, and the result provided on the response's `elapsedTime` property.\n- `har` - A [HAR 1.2 Request Object](http://www.softwareishard.com/blog/har-12-spec/#request), will be processed from HAR format into options overwriting matching values *(see the [HAR 1.2 section](#support-for-har-1.2) for details)*\n\nThe callback argument gets 3 arguments:\n\n1. An `error` when applicable (usually from [`http.ClientRequest`](http://nodejs.org/api/http.html#http_class_http_clientrequest) object)\n2. An [`http.IncomingMessage`](http://nodejs.org/api/http.html#http_http_incomingmessage) object\n3. The third is the `response` body (`String` or `Buffer`, or JSON object if the `json` option is supplied)\n\n[back to top](#table-of-contents)\n\n\n---\n\n## Convenience methods\n\nThere are also shorthand methods for different HTTP METHODs and some other conveniences.\n\n\n### request.defaults(options)\n\nThis method **returns a wrapper** around the normal request API that defaults\nto whatever options you pass to it.\n\n**Note:** `request.defaults()` **does not** modify the global request API;\ninstead, it **returns a wrapper** that has your default settings applied to it.\n\n**Note:** You can call `.defaults()` on the wrapper that is returned from\n`request.defaults` to add/override defaults that were previously defaulted.\n\nFor example:\n```js\n//requests using baseRequest() will set the 'x-token' header\nvar baseRequest = request.defaults({\n headers: {x-token: 'my-token'}\n})\n\n//requests using specialRequest() will include the 'x-token' header set in\n//baseRequest and will also include the 'special' header\nvar specialRequest = baseRequest.defaults({\n headers: {special: 'special value'}\n})\n```\n\n### request.put\n\nSame as `request()`, but defaults to `method: \"PUT\"`.\n\n```js\nrequest.put(url)\n```\n\n### request.patch\n\nSame as `request()`, but defaults to `method: \"PATCH\"`.\n\n```js\nrequest.patch(url)\n```\n\n### request.post\n\nSame as `request()`, but defaults to `method: \"POST\"`.\n\n```js\nrequest.post(url)\n```\n\n### request.head\n\nSame as `request()`, but defaults to `method: \"HEAD\"`.\n\n```js\nrequest.head(url)\n```\n\n### request.del\n\nSame as `request()`, but defaults to `method: \"DELETE\"`.\n\n```js\nrequest.del(url)\n```\n\n### request.get\n\nSame as `request()` (for uniformity).\n\n```js\nrequest.get(url)\n```\n### request.cookie\n\nFunction that creates a new cookie.\n\n```js\nrequest.cookie('key1=value1')\n```\n### request.jar()\n\nFunction that creates a new cookie jar.\n\n```js\nrequest.jar()\n```\n\n[back to top](#table-of-contents)\n\n\n---\n\n\n## Debugging\n\nThere are at least three ways to debug the operation of `request`:\n\n1. Launch the node process like `NODE_DEBUG=request node script.js`\n (`lib,request,otherlib` works too).\n\n2. Set `require('request').debug = true` at any time (this does the same thing\n as #1).\n\n3. Use the [request-debug module](https://github.com/nylen/request-debug) to\n view request and response headers and bodies.\n\n[back to top](#table-of-contents)\n\n\n---\n\n## Timeouts\n\nMost requests to external servers should have a timeout attached, in case the\nserver is not responding in a timely manner. Without a timeout, your code may\nhave a socket open/consume resources for minutes or more.\n\nThere are two main types of timeouts: **connection timeouts** and **read\ntimeouts**. A connect timeout occurs if the timeout is hit while your client is\nattempting to establish a connection to a remote machine (corresponding to the\n[connect() call][connect] on the socket). A read timeout occurs any time the\nserver is too slow to send back a part of the response.\n\nThese two situations have widely different implications for what went wrong\nwith the request, so it's useful to be able to distinguish them. You can detect\ntimeout errors by checking `err.code` for an 'ETIMEDOUT' value. Further, you\ncan detect whether the timeout was a connection timeout by checking if the\n`err.connect` property is set to `true`.\n\n```js\nrequest.get('http://10.255.255.1', {timeout: 1500}, function(err) {\n console.log(err.code === 'ETIMEDOUT');\n // Set to `true` if the timeout was a connection timeout, `false` or\n // `undefined` otherwise.\n console.log(err.connect === true);\n process.exit(0);\n});\n```\n\n[connect]: http://linux.die.net/man/2/connect\n\n## Examples:\n\n```js\n var request = require('request')\n , rand = Math.floor(Math.random()*100000000).toString()\n ;\n request(\n { method: 'PUT'\n , uri: 'http://mikeal.iriscouch.com/testjs/' + rand\n , multipart:\n [ { 'content-type': 'application/json'\n , body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}})\n }\n , { body: 'I am an attachment' }\n ]\n }\n , function (error, response, body) {\n if(response.statusCode == 201){\n console.log('document saved as: http://mikeal.iriscouch.com/testjs/'+ rand)\n } else {\n console.log('error: '+ response.statusCode)\n console.log(body)\n }\n }\n )\n```\n\nFor backwards-compatibility, response compression is not supported by default.\nTo accept gzip-compressed responses, set the `gzip` option to `true`. Note\nthat the body data passed through `request` is automatically decompressed\nwhile the response object is unmodified and will contain compressed data if\nthe server sent a compressed response.\n\n```js\n var request = require('request')\n request(\n { method: 'GET'\n , uri: 'http://www.google.com'\n , gzip: true\n }\n , function (error, response, body) {\n // body is the decompressed response body\n console.log('server encoded the data as: ' + (response.headers['content-encoding'] || 'identity'))\n console.log('the decoded data is: ' + body)\n }\n ).on('data', function(data) {\n // decompressed data as it is received\n console.log('decoded chunk: ' + data)\n })\n .on('response', function(response) {\n // unmodified http.IncomingMessage object\n response.on('data', function(data) {\n // compressed data as it is received\n console.log('received ' + data.length + ' bytes of compressed data')\n })\n })\n```\n\nCookies are disabled by default (else, they would be used in subsequent requests). To enable cookies, set `jar` to `true` (either in `defaults` or `options`).\n\n```js\nvar request = request.defaults({jar: true})\nrequest('http://www.google.com', function () {\n request('http://images.google.com')\n})\n```\n\nTo use a custom cookie jar (instead of `request`’s global cookie jar), set `jar` to an instance of `request.jar()` (either in `defaults` or `options`)\n\n```js\nvar j = request.jar()\nvar request = request.defaults({jar:j})\nrequest('http://www.google.com', function () {\n request('http://images.google.com')\n})\n```\n\nOR\n\n```js\nvar j = request.jar();\nvar cookie = request.cookie('key1=value1');\nvar url = 'http://www.google.com';\nj.setCookie(cookie, url);\nrequest({url: url, jar: j}, function () {\n request('http://images.google.com')\n})\n```\n\nTo use a custom cookie store (such as a\n[`FileCookieStore`](https://github.com/mitsuru/tough-cookie-filestore)\nwhich supports saving to and restoring from JSON files), pass it as a parameter\nto `request.jar()`:\n\n```js\nvar FileCookieStore = require('tough-cookie-filestore');\n// NOTE - currently the 'cookies.json' file must already exist!\nvar j = request.jar(new FileCookieStore('cookies.json'));\nrequest = request.defaults({ jar : j })\nrequest('http://www.google.com', function() {\n request('http://images.google.com')\n})\n```\n\nThe cookie store must be a\n[`tough-cookie`](https://github.com/goinstant/tough-cookie)\nstore and it must support synchronous operations; see the\n[`CookieStore` API docs](https://github.com/goinstant/tough-cookie/#cookiestore-api)\nfor details.\n\nTo inspect your cookie jar after a request:\n\n```js\nvar j = request.jar()\nrequest({url: 'http://www.google.com', jar: j}, function () {\n var cookie_string = j.getCookieString(url); // \"key1=value1; key2=value2; ...\"\n var cookies = j.getCookies(url);\n // [{key: 'key1', value: 'value1', domain: \"www.google.com\", ...}, ...]\n})\n```\n\n[back to top](#table-of-contents)\n", + "readmeFilename": "README.md", + "repository": { + "type": "git", + "url": "git+https://github.com/request/request.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/request/-/request-2.64.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "lint": "eslint lib/ *.js tests/ && echo Lint passed.", + "test": "npm run lint && npm run test-ci && npm run test-browser", + "test-browser": "node tests/browser/start.js", + "test-ci": "taper tests/test-*.js", + "test-cov": "istanbul cover tape tests/test-*.js" + }, + "tags": [ + "http", + "simple", + "util", + "utility" + ], + "version": "2.64.0" } diff --git a/deps/npm/node_modules/retry/package.json b/deps/npm/node_modules/retry/package.json index 75b9680d5a9d66a58e0239678cdeeabe668fdab6..4f4664e84396477836fedfa696c50ed8732a481e 100644 --- a/deps/npm/node_modules/retry/package.json +++ b/deps/npm/node_modules/retry/package.json @@ -1,53 +1,78 @@ { + "_args": [ + [ + "retry@~0.8.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "retry@>=0.8.0 <0.9.0", + "_id": "retry@0.8.0", + "_inCache": true, + "_location": "/retry", + "_nodeVersion": "0.10.33", + "_npmUser": { + "email": "tim@debuggable.com", + "name": "tim-kos" + }, + "_npmVersion": "2.1.7", + "_phantomChildren": {}, + "_requested": { + "name": "retry", + "raw": "retry@~0.8.0", + "rawSpec": "~0.8.0", + "scope": null, + "spec": ">=0.8.0 <0.9.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/retry/-/retry-0.8.0.tgz", + "_shasum": "2367628dc0edb247b1eab649dc53ac8628ac2d5f", + "_shrinkwrap": null, + "_spec": "retry@~0.8.0", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Tim Koschützki", "email": "tim@debuggable.com", + "name": "Tim Koschützki", "url": "http://debuggable.com/" }, - "name": "retry", + "bugs": { + "url": "https://github.com/tim-kos/node-retry/issues" + }, + "dependencies": {}, "description": "Abstraction for exponential and custom retry strategies for failed operations.", - "license": "MIT", - "version": "0.8.0", - "homepage": "https://github.com/tim-kos/node-retry", - "repository": { - "type": "git", - "url": "git://github.com/tim-kos/node-retry.git" + "devDependencies": { + "fake": "0.2.0", + "far": "0.0.1" }, "directories": { "lib": "./lib" }, - "main": "index", + "dist": { + "shasum": "2367628dc0edb247b1eab649dc53ac8628ac2d5f", + "tarball": "http://registry.npmjs.org/retry/-/retry-0.8.0.tgz" + }, "engines": { "node": "*" }, - "dependencies": {}, - "devDependencies": { - "fake": "0.2.0", - "far": "0.0.1" - }, "gitHead": "9446e803d6a41ae08732a4a215ae5bf1ff1ccfdd", - "bugs": { - "url": "https://github.com/tim-kos/node-retry/issues" - }, - "_id": "retry@0.8.0", - "scripts": {}, - "_shasum": "2367628dc0edb247b1eab649dc53ac8628ac2d5f", - "_from": "retry@0.8.0", - "_npmVersion": "2.1.7", - "_nodeVersion": "0.10.33", - "_npmUser": { - "name": "tim-kos", - "email": "tim@debuggable.com" - }, + "homepage": "https://github.com/tim-kos/node-retry", + "installable": true, + "license": "MIT", + "main": "index", "maintainers": [ { "name": "tim-kos", "email": "tim@debuggable.com" } ], - "dist": { - "shasum": "2367628dc0edb247b1eab649dc53ac8628ac2d5f", - "tarball": "http://registry.npmjs.org/retry/-/retry-0.8.0.tgz" + "name": "retry", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/tim-kos/node-retry.git" }, - "_resolved": "https://registry.npmjs.org/retry/-/retry-0.8.0.tgz" + "scripts": {}, + "version": "0.8.0" } diff --git a/deps/npm/node_modules/rimraf/package.json b/deps/npm/node_modules/rimraf/package.json index 7576f528f72db2960f7c1bbfa8414b9d73af15c3..0f0f454ff36b78c7e211ae01a0e48596b22a258b 100644 --- a/deps/npm/node_modules/rimraf/package.json +++ b/deps/npm/node_modules/rimraf/package.json @@ -1,61 +1,92 @@ { - "name": "rimraf", - "version": "2.4.3", - "main": "rimraf.js", - "description": "A deep deletion module for node (like `rm -rf`)", + "_args": [ + [ + "rimraf@2.4.3", + "/Users/rebecca/code/npm" + ] + ], + "_from": "rimraf@2.4.3", + "_id": "rimraf@2.4.3", + "_inCache": true, + "_location": "/rimraf", + "_nodeVersion": "2.2.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "3.2.2", + "_phantomChildren": {}, + "_requested": { + "name": "rimraf", + "raw": "rimraf@2.4.3", + "rawSpec": "2.4.3", + "scope": null, + "spec": "2.4.3", + "type": "version" + }, + "_requiredBy": [ + "/", + "/fs-vacuum", + "/fstream", + "/node-gyp", + "/npm-registry-client", + "/nyc", + "/spawn-wrap" + ], + "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz", + "_shasum": "e5b51c9437a4c582adb955e9f28cf8d945e272af", + "_shrinkwrap": null, + "_spec": "rimraf@2.4.3", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "license": "ISC", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/rimraf.git" - }, - "scripts": { - "test": "tap test/*.js" - }, "bin": { "rimraf": "./bin.js" }, + "bugs": { + "url": "https://github.com/isaacs/rimraf/issues" + }, "dependencies": { "glob": "^5.0.14" }, - "files": [ - "LICENSE", - "README.md", - "bin.js", - "rimraf.js" - ], + "description": "A deep deletion module for node (like `rm -rf`)", "devDependencies": { "mkdirp": "^0.5.1", "tap": "^1.3.1" }, - "gitHead": "ec7050f8ca14c931b847414f18466e601ca7c02e", - "bugs": { - "url": "https://github.com/isaacs/rimraf/issues" - }, - "homepage": "https://github.com/isaacs/rimraf#readme", - "_id": "rimraf@2.4.3", - "_shasum": "e5b51c9437a4c582adb955e9f28cf8d945e272af", - "_from": "rimraf@2.4.3", - "_npmVersion": "3.2.2", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, + "directories": {}, "dist": { "shasum": "e5b51c9437a4c582adb955e9f28cf8d945e272af", "tarball": "http://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz" }, + "files": [ + "LICENSE", + "README.md", + "bin.js", + "rimraf.js" + ], + "gitHead": "ec7050f8ca14c931b847414f18466e601ca7c02e", + "homepage": "https://github.com/isaacs/rimraf#readme", + "installable": true, + "license": "ISC", + "main": "rimraf.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz" + "name": "rimraf", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/rimraf.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "2.4.3" } diff --git a/deps/npm/node_modules/semver/package.json b/deps/npm/node_modules/semver/package.json index b3a540c1643bb57bd5d9df627aaf4c637b79515d..d4235760dc1bfabcddae3f1144088a59339fb8a7 100644 --- a/deps/npm/node_modules/semver/package.json +++ b/deps/npm/node_modules/semver/package.json @@ -1,40 +1,65 @@ { - "name": "semver", - "version": "5.0.3", - "description": "The semantic version parser used by npm.", - "main": "semver.js", - "scripts": { - "test": "tap test/*.js" - }, - "devDependencies": { - "tap": "^1.3.4" + "_args": [ + [ + "semver@~5.0.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "semver@>=5.0.1 <5.1.0", + "_id": "semver@5.0.3", + "_inCache": true, + "_location": "/semver", + "_nodeVersion": "4.0.0", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" }, - "license": "ISC", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/node-semver.git" + "_npmVersion": "3.3.2", + "_phantomChildren": {}, + "_requested": { + "name": "semver", + "raw": "semver@~5.0.1", + "rawSpec": "~5.0.1", + "scope": null, + "spec": ">=5.0.1 <5.1.0", + "type": "range" }, + "_requiredBy": [ + "/", + "/init-package-json", + "/node-gyp", + "/normalize-package-data", + "/npm-install-checks", + "/npm-package-arg", + "/npm-registry-client", + "/read-installed" + ], + "_resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "_shasum": "77466de589cd5d3c95f138aa78bc569a3cb5d27a", + "_shrinkwrap": null, + "_spec": "semver@~5.0.1", + "_where": "/Users/rebecca/code/npm", "bin": { "semver": "./bin/semver" }, - "gitHead": "5f89ecbe78145ad0b501cf6279f602a23c89738d", "bugs": { "url": "https://github.com/npm/node-semver/issues" }, - "homepage": "https://github.com/npm/node-semver#readme", - "_id": "semver@5.0.3", - "_shasum": "77466de589cd5d3c95f138aa78bc569a3cb5d27a", - "_from": "semver@5.0.3", - "_npmVersion": "3.3.2", - "_nodeVersion": "4.0.0", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" + "dependencies": {}, + "description": "The semantic version parser used by npm.", + "devDependencies": { + "tap": "^1.3.4" }, + "directories": {}, "dist": { "shasum": "77466de589cd5d3c95f138aa78bc569a3cb5d27a", "tarball": "http://registry.npmjs.org/semver/-/semver-5.0.3.tgz" }, + "gitHead": "5f89ecbe78145ad0b501cf6279f602a23c89738d", + "homepage": "https://github.com/npm/node-semver#readme", + "installable": true, + "license": "ISC", + "main": "semver.js", "maintainers": [ { "name": "isaacs", @@ -45,6 +70,14 @@ "email": "ogd@aoaioxxysz.net" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" + "name": "semver", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "5.0.3" } diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/README.md b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/README.md deleted file mode 100644 index 5a76b4149c5eb5077c09578e349820bccbbd266e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# core-util-is - -The `util.is*` functions introduced in Node v0.12. diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/float.patch b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/float.patch deleted file mode 100644 index a06d5c05f75fd5617f8849b43a88e0e3d8d824e9..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/float.patch +++ /dev/null @@ -1,604 +0,0 @@ -diff --git a/lib/util.js b/lib/util.js -index a03e874..9074e8e 100644 ---- a/lib/util.js -+++ b/lib/util.js -@@ -19,430 +19,6 @@ - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - --var formatRegExp = /%[sdj%]/g; --exports.format = function(f) { -- if (!isString(f)) { -- var objects = []; -- for (var i = 0; i < arguments.length; i++) { -- objects.push(inspect(arguments[i])); -- } -- return objects.join(' '); -- } -- -- var i = 1; -- var args = arguments; -- var len = args.length; -- var str = String(f).replace(formatRegExp, function(x) { -- if (x === '%%') return '%'; -- if (i >= len) return x; -- switch (x) { -- case '%s': return String(args[i++]); -- case '%d': return Number(args[i++]); -- case '%j': -- try { -- return JSON.stringify(args[i++]); -- } catch (_) { -- return '[Circular]'; -- } -- default: -- return x; -- } -- }); -- for (var x = args[i]; i < len; x = args[++i]) { -- if (isNull(x) || !isObject(x)) { -- str += ' ' + x; -- } else { -- str += ' ' + inspect(x); -- } -- } -- return str; --}; -- -- --// Mark that a method should not be used. --// Returns a modified function which warns once by default. --// If --no-deprecation is set, then it is a no-op. --exports.deprecate = function(fn, msg) { -- // Allow for deprecating things in the process of starting up. -- if (isUndefined(global.process)) { -- return function() { -- return exports.deprecate(fn, msg).apply(this, arguments); -- }; -- } -- -- if (process.noDeprecation === true) { -- return fn; -- } -- -- var warned = false; -- function deprecated() { -- if (!warned) { -- if (process.throwDeprecation) { -- throw new Error(msg); -- } else if (process.traceDeprecation) { -- console.trace(msg); -- } else { -- console.error(msg); -- } -- warned = true; -- } -- return fn.apply(this, arguments); -- } -- -- return deprecated; --}; -- -- --var debugs = {}; --var debugEnviron; --exports.debuglog = function(set) { -- if (isUndefined(debugEnviron)) -- debugEnviron = process.env.NODE_DEBUG || ''; -- set = set.toUpperCase(); -- if (!debugs[set]) { -- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { -- var pid = process.pid; -- debugs[set] = function() { -- var msg = exports.format.apply(exports, arguments); -- console.error('%s %d: %s', set, pid, msg); -- }; -- } else { -- debugs[set] = function() {}; -- } -- } -- return debugs[set]; --}; -- -- --/** -- * Echos the value of a value. Trys to print the value out -- * in the best way possible given the different types. -- * -- * @param {Object} obj The object to print out. -- * @param {Object} opts Optional options object that alters the output. -- */ --/* legacy: obj, showHidden, depth, colors*/ --function inspect(obj, opts) { -- // default options -- var ctx = { -- seen: [], -- stylize: stylizeNoColor -- }; -- // legacy... -- if (arguments.length >= 3) ctx.depth = arguments[2]; -- if (arguments.length >= 4) ctx.colors = arguments[3]; -- if (isBoolean(opts)) { -- // legacy... -- ctx.showHidden = opts; -- } else if (opts) { -- // got an "options" object -- exports._extend(ctx, opts); -- } -- // set default options -- if (isUndefined(ctx.showHidden)) ctx.showHidden = false; -- if (isUndefined(ctx.depth)) ctx.depth = 2; -- if (isUndefined(ctx.colors)) ctx.colors = false; -- if (isUndefined(ctx.customInspect)) ctx.customInspect = true; -- if (ctx.colors) ctx.stylize = stylizeWithColor; -- return formatValue(ctx, obj, ctx.depth); --} --exports.inspect = inspect; -- -- --// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics --inspect.colors = { -- 'bold' : [1, 22], -- 'italic' : [3, 23], -- 'underline' : [4, 24], -- 'inverse' : [7, 27], -- 'white' : [37, 39], -- 'grey' : [90, 39], -- 'black' : [30, 39], -- 'blue' : [34, 39], -- 'cyan' : [36, 39], -- 'green' : [32, 39], -- 'magenta' : [35, 39], -- 'red' : [31, 39], -- 'yellow' : [33, 39] --}; -- --// Don't use 'blue' not visible on cmd.exe --inspect.styles = { -- 'special': 'cyan', -- 'number': 'yellow', -- 'boolean': 'yellow', -- 'undefined': 'grey', -- 'null': 'bold', -- 'string': 'green', -- 'date': 'magenta', -- // "name": intentionally not styling -- 'regexp': 'red' --}; -- -- --function stylizeWithColor(str, styleType) { -- var style = inspect.styles[styleType]; -- -- if (style) { -- return '\u001b[' + inspect.colors[style][0] + 'm' + str + -- '\u001b[' + inspect.colors[style][1] + 'm'; -- } else { -- return str; -- } --} -- -- --function stylizeNoColor(str, styleType) { -- return str; --} -- -- --function arrayToHash(array) { -- var hash = {}; -- -- array.forEach(function(val, idx) { -- hash[val] = true; -- }); -- -- return hash; --} -- -- --function formatValue(ctx, value, recurseTimes) { -- // Provide a hook for user-specified inspect functions. -- // Check that value is an object with an inspect function on it -- if (ctx.customInspect && -- value && -- isFunction(value.inspect) && -- // Filter out the util module, it's inspect function is special -- value.inspect !== exports.inspect && -- // Also filter out any prototype objects using the circular check. -- !(value.constructor && value.constructor.prototype === value)) { -- var ret = value.inspect(recurseTimes, ctx); -- if (!isString(ret)) { -- ret = formatValue(ctx, ret, recurseTimes); -- } -- return ret; -- } -- -- // Primitive types cannot have properties -- var primitive = formatPrimitive(ctx, value); -- if (primitive) { -- return primitive; -- } -- -- // Look up the keys of the object. -- var keys = Object.keys(value); -- var visibleKeys = arrayToHash(keys); -- -- if (ctx.showHidden) { -- keys = Object.getOwnPropertyNames(value); -- } -- -- // Some type of object without properties can be shortcutted. -- if (keys.length === 0) { -- if (isFunction(value)) { -- var name = value.name ? ': ' + value.name : ''; -- return ctx.stylize('[Function' + name + ']', 'special'); -- } -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } -- if (isDate(value)) { -- return ctx.stylize(Date.prototype.toString.call(value), 'date'); -- } -- if (isError(value)) { -- return formatError(value); -- } -- } -- -- var base = '', array = false, braces = ['{', '}']; -- -- // Make Array say that they are Array -- if (isArray(value)) { -- array = true; -- braces = ['[', ']']; -- } -- -- // Make functions say that they are functions -- if (isFunction(value)) { -- var n = value.name ? ': ' + value.name : ''; -- base = ' [Function' + n + ']'; -- } -- -- // Make RegExps say that they are RegExps -- if (isRegExp(value)) { -- base = ' ' + RegExp.prototype.toString.call(value); -- } -- -- // Make dates with properties first say the date -- if (isDate(value)) { -- base = ' ' + Date.prototype.toUTCString.call(value); -- } -- -- // Make error with message first say the error -- if (isError(value)) { -- base = ' ' + formatError(value); -- } -- -- if (keys.length === 0 && (!array || value.length == 0)) { -- return braces[0] + base + braces[1]; -- } -- -- if (recurseTimes < 0) { -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } else { -- return ctx.stylize('[Object]', 'special'); -- } -- } -- -- ctx.seen.push(value); -- -- var output; -- if (array) { -- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); -- } else { -- output = keys.map(function(key) { -- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); -- }); -- } -- -- ctx.seen.pop(); -- -- return reduceToSingleString(output, base, braces); --} -- -- --function formatPrimitive(ctx, value) { -- if (isUndefined(value)) -- return ctx.stylize('undefined', 'undefined'); -- if (isString(value)) { -- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') -- .replace(/'/g, "\\'") -- .replace(/\\"/g, '"') + '\''; -- return ctx.stylize(simple, 'string'); -- } -- if (isNumber(value)) { -- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0, -- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 . -- if (value === 0 && 1 / value < 0) -- return ctx.stylize('-0', 'number'); -- return ctx.stylize('' + value, 'number'); -- } -- if (isBoolean(value)) -- return ctx.stylize('' + value, 'boolean'); -- // For some reason typeof null is "object", so special case here. -- if (isNull(value)) -- return ctx.stylize('null', 'null'); --} -- -- --function formatError(value) { -- return '[' + Error.prototype.toString.call(value) + ']'; --} -- -- --function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { -- var output = []; -- for (var i = 0, l = value.length; i < l; ++i) { -- if (hasOwnProperty(value, String(i))) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- String(i), true)); -- } else { -- output.push(''); -- } -- } -- keys.forEach(function(key) { -- if (!key.match(/^\d+$/)) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- key, true)); -- } -- }); -- return output; --} -- -- --function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { -- var name, str, desc; -- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; -- if (desc.get) { -- if (desc.set) { -- str = ctx.stylize('[Getter/Setter]', 'special'); -- } else { -- str = ctx.stylize('[Getter]', 'special'); -- } -- } else { -- if (desc.set) { -- str = ctx.stylize('[Setter]', 'special'); -- } -- } -- if (!hasOwnProperty(visibleKeys, key)) { -- name = '[' + key + ']'; -- } -- if (!str) { -- if (ctx.seen.indexOf(desc.value) < 0) { -- if (isNull(recurseTimes)) { -- str = formatValue(ctx, desc.value, null); -- } else { -- str = formatValue(ctx, desc.value, recurseTimes - 1); -- } -- if (str.indexOf('\n') > -1) { -- if (array) { -- str = str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n').substr(2); -- } else { -- str = '\n' + str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n'); -- } -- } -- } else { -- str = ctx.stylize('[Circular]', 'special'); -- } -- } -- if (isUndefined(name)) { -- if (array && key.match(/^\d+$/)) { -- return str; -- } -- name = JSON.stringify('' + key); -- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { -- name = name.substr(1, name.length - 2); -- name = ctx.stylize(name, 'name'); -- } else { -- name = name.replace(/'/g, "\\'") -- .replace(/\\"/g, '"') -- .replace(/(^"|"$)/g, "'"); -- name = ctx.stylize(name, 'string'); -- } -- } -- -- return name + ': ' + str; --} -- -- --function reduceToSingleString(output, base, braces) { -- var numLinesEst = 0; -- var length = output.reduce(function(prev, cur) { -- numLinesEst++; -- if (cur.indexOf('\n') >= 0) numLinesEst++; -- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; -- }, 0); -- -- if (length > 60) { -- return braces[0] + -- (base === '' ? '' : base + '\n ') + -- ' ' + -- output.join(',\n ') + -- ' ' + -- braces[1]; -- } -- -- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; --} -- -- - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - function isArray(ar) { -@@ -522,166 +98,10 @@ function isPrimitive(arg) { - exports.isPrimitive = isPrimitive; - - function isBuffer(arg) { -- return arg instanceof Buffer; -+ return Buffer.isBuffer(arg); - } - exports.isBuffer = isBuffer; - - function objectToString(o) { - return Object.prototype.toString.call(o); --} -- -- --function pad(n) { -- return n < 10 ? '0' + n.toString(10) : n.toString(10); --} -- -- --var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', -- 'Oct', 'Nov', 'Dec']; -- --// 26 Feb 16:19:34 --function timestamp() { -- var d = new Date(); -- var time = [pad(d.getHours()), -- pad(d.getMinutes()), -- pad(d.getSeconds())].join(':'); -- return [d.getDate(), months[d.getMonth()], time].join(' '); --} -- -- --// log is just a thin wrapper to console.log that prepends a timestamp --exports.log = function() { -- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); --}; -- -- --/** -- * Inherit the prototype methods from one constructor into another. -- * -- * The Function.prototype.inherits from lang.js rewritten as a standalone -- * function (not on Function.prototype). NOTE: If this file is to be loaded -- * during bootstrapping this function needs to be rewritten using some native -- * functions as prototype setup using normal JavaScript does not work as -- * expected during bootstrapping (see mirror.js in r114903). -- * -- * @param {function} ctor Constructor function which needs to inherit the -- * prototype. -- * @param {function} superCtor Constructor function to inherit prototype from. -- */ --exports.inherits = function(ctor, superCtor) { -- ctor.super_ = superCtor; -- ctor.prototype = Object.create(superCtor.prototype, { -- constructor: { -- value: ctor, -- enumerable: false, -- writable: true, -- configurable: true -- } -- }); --}; -- --exports._extend = function(origin, add) { -- // Don't do anything if add isn't an object -- if (!add || !isObject(add)) return origin; -- -- var keys = Object.keys(add); -- var i = keys.length; -- while (i--) { -- origin[keys[i]] = add[keys[i]]; -- } -- return origin; --}; -- --function hasOwnProperty(obj, prop) { -- return Object.prototype.hasOwnProperty.call(obj, prop); --} -- -- --// Deprecated old stuff. -- --exports.p = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- console.error(exports.inspect(arguments[i])); -- } --}, 'util.p: Use console.error() instead'); -- -- --exports.exec = exports.deprecate(function() { -- return require('child_process').exec.apply(this, arguments); --}, 'util.exec is now called `child_process.exec`.'); -- -- --exports.print = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(String(arguments[i])); -- } --}, 'util.print: Use console.log instead'); -- -- --exports.puts = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(arguments[i] + '\n'); -- } --}, 'util.puts: Use console.log instead'); -- -- --exports.debug = exports.deprecate(function(x) { -- process.stderr.write('DEBUG: ' + x + '\n'); --}, 'util.debug: Use console.error instead'); -- -- --exports.error = exports.deprecate(function(x) { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stderr.write(arguments[i] + '\n'); -- } --}, 'util.error: Use console.error instead'); -- -- --exports.pump = exports.deprecate(function(readStream, writeStream, callback) { -- var callbackCalled = false; -- -- function call(a, b, c) { -- if (callback && !callbackCalled) { -- callback(a, b, c); -- callbackCalled = true; -- } -- } -- -- readStream.addListener('data', function(chunk) { -- if (writeStream.write(chunk) === false) readStream.pause(); -- }); -- -- writeStream.addListener('drain', function() { -- readStream.resume(); -- }); -- -- readStream.addListener('end', function() { -- writeStream.end(); -- }); -- -- readStream.addListener('close', function() { -- call(); -- }); -- -- readStream.addListener('error', function(err) { -- writeStream.end(); -- call(err); -- }); -- -- writeStream.addListener('error', function(err) { -- readStream.destroy(); -- call(err); -- }); --}, 'util.pump(): Use readableStream.pipe() instead'); -- -- --var uv; --exports._errnoException = function(err, syscall) { -- if (isUndefined(uv)) uv = process.binding('uv'); -- var errname = uv.errname(err); -- var e = new Error(syscall + ' ' + errname); -- e.code = errname; -- e.errno = errname; -- e.syscall = syscall; -- return e; --}; -+} \ No newline at end of file diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/lib/util.js b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/lib/util.js deleted file mode 100644 index 9074e8ebcb61e9f505b48a2f729ae86d25d992d8..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +++ /dev/null @@ -1,107 +0,0 @@ -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -function isBuffer(arg) { - return Buffer.isBuffer(arg); -} -exports.isBuffer = isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} \ No newline at end of file diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/util.js b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/util.js deleted file mode 100644 index 007fa10575636d9ae2cd42d8f9046eb70cc3c20c..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/core-util-is/util.js +++ /dev/null @@ -1,106 +0,0 @@ -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && objectToString(e) === '[object Error]'; -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -function isBuffer(arg) { - return arg instanceof Buffer; -} -exports.isBuffer = isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/README.md b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/README.md deleted file mode 100644 index 052a62b8d7b7ae2c6016d173319db607453659f8..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/README.md +++ /dev/null @@ -1,54 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -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/sha/node_modules/readable-stream/node_modules/isarray/build/build.js b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/build/build.js deleted file mode 100644 index e1856ef0943728d9e530c0e52afbad94142c00bf..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/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/sha/node_modules/readable-stream/node_modules/isarray/component.json b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/component.json deleted file mode 100644 index 9e31b6838890159e397063bdd2ea7de80b4e4a42..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/index.js b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/index.js deleted file mode 100644 index 5f5ad45d46dda97cc2ae37932e0dacf25d06352d..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/index.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/package.json b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/package.json deleted file mode 100644 index 19228ab6fdcaaf30f7c4d598c8b85563de5e3238..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/isarray/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "isarray", - "description": "Array#isArray for older browsers", - "version": "0.0.1", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "homepage": "https://github.com/juliangruber/isarray", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": {}, - "devDependencies": { - "tap": "*" - }, - "keywords": [ - "browser", - "isarray", - "array" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "_id": "isarray@0.0.1", - "dist": { - "shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "tarball": "http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "_from": "isarray@0.0.1", - "_npmVersion": "1.2.18", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], - "directories": {}, - "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" - }, - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml deleted file mode 100644 index 5ac98855343cee55000079667dbec20470882465..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.11" - - "0.12" - - "iojs" diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/index.js b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/index.js deleted file mode 100644 index 049521cad7ba1bd5de4457ebaa2f781fe0180cac..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; -module.exports = nextTick; - -function nextTick(fn) { - var args = new Array(arguments.length - 1); - var i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - process.nextTick(function afterTick() { - fn.apply(null, args); - }); -} diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/license.md b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/license.md deleted file mode 100644 index c67e3532b542455fad8c4004ef297534d7f480b2..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/license.md +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (c) 2015 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 -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/sha/node_modules/readable-stream/node_modules/process-nextick-args/readme.md b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/readme.md deleted file mode 100644 index 78e7cfaeb7acdef0248b6820e5ec48302eebf1a0..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -process-nextick-args -===== - -[![Build Status](https://travis-ci.org/calvinmetcalf/process-nextick-args.svg?branch=master)](https://travis-ci.org/calvinmetcalf/process-nextick-args) - -```bash -npm install --save process-nextick-args -``` - -Always be able to pass arguments to process.nextTick, no matter the platform - -```js -var nextTick = require('process-nextick-args'); - -nextTick(function (a, b, c) { - console.log(a, b, c); -}, 'step', 3, 'profit'); -``` diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/test.js b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/test.js deleted file mode 100644 index ef15721584ac9973198e407f6ce3beadf95d5fff..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/process-nextick-args/test.js +++ /dev/null @@ -1,24 +0,0 @@ -var test = require("tap").test; -var nextTick = require('./'); - -test('should work', function (t) { - t.plan(5); - nextTick(function (a) { - t.ok(a); - nextTick(function (thing) { - t.equals(thing, 7); - }, 7); - }, true); - nextTick(function (a, b, c) { - t.equals(a, 'step'); - t.equals(b, 3); - t.equals(c, 'profit'); - }, 'step', 3, 'profit'); -}); - -test('correct number of arguments', function (t) { - t.plan(1); - nextTick(function () { - t.equals(2, arguments.length, 'correct number'); - }, 1, 2); -}); diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/.npmignore deleted file mode 100644 index 206320cc1d21b9cc9e3e0e8a303896045453c524..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -build -test diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/LICENSE deleted file mode 100644 index 6de584a48f5c897d27bfe9922f976297c07cae02..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -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/sha/node_modules/readable-stream/node_modules/string_decoder/README.md b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/README.md deleted file mode 100644 index 4d2aa001501107cd2792f385ad62237dc3757521..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/README.md +++ /dev/null @@ -1,7 +0,0 @@ -**string_decoder.js** (`require('string_decoder')`) from Node.js core - -Copyright Joyent, Inc. and other Node contributors. See LICENCE file for details. - -Version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.** - -The *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version. \ No newline at end of file diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/index.js b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/index.js deleted file mode 100644 index b00e54fb7909827a02b6fa96ef55bd4dd85a3fe7..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/index.js +++ /dev/null @@ -1,221 +0,0 @@ -// 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 Buffer = require('buffer').Buffer; - -var isBufferEncoding = Buffer.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; - default: return false; - } - } - - -function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. CESU-8 is handled as part of the UTF-8 encoding. -// -// @TODO Handling all encodings inside a single object makes it very difficult -// to reason about this code, so it should be split up in the future. -// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code -// points as used by CESU-8. -var StringDecoder = exports.StringDecoder = function(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; -}; - - -// write decodes the given buffer and returns it as JS string that is -// guaranteed to not contain any partial multi-byte characters. Any partial -// character found at the end of the buffer is buffered up, and will be -// returned when calling write again with the remaining bytes. -// -// Note: Converting a Buffer containing an orphan surrogate to a String -// currently works, but converting a String to a Buffer (via `new Buffer`, or -// Buffer#write) will replace incomplete surrogates with the unicode -// replacement character. See https://codereview.chromium.org/121173009/ . -StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; -}; - -// detectIncompleteChar determines if there is an incomplete UTF-8 character at -// the end of the given buffer. If so, it sets this.charLength to the byte -// length that character, and sets this.charReceived to the number of bytes -// that are available for this character. -StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; -}; - -StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; -}; - -function passThroughWrite(buffer) { - return buffer.toString(this.encoding); -} - -function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; -} - -function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; -} diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/package.json b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/package.json deleted file mode 100644 index 0364d54ba46af640f28c1cb181ba3f6c6b223c67..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/string_decoder/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "string_decoder", - "version": "0.10.31", - "description": "The string_decoder module from Node core", - "main": "index.js", - "dependencies": {}, - "devDependencies": { - "tap": "~0.4.8" - }, - "scripts": { - "test": "tap test/simple/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/rvagg/string_decoder.git" - }, - "homepage": "https://github.com/rvagg/string_decoder", - "keywords": [ - "string", - "decoder", - "browser", - "browserify" - ], - "license": "MIT", - "gitHead": "d46d4fd87cf1d06e031c23f1ba170ca7d4ade9a0", - "bugs": { - "url": "https://github.com/rvagg/string_decoder/issues" - }, - "_id": "string_decoder@0.10.31", - "_shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "_from": "string_decoder@>=0.10.0 <0.11.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "rvagg", - "email": "rod@vagg.org" - }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - }, - { - "name": "rvagg", - "email": "rod@vagg.org" - } - ], - "dist": { - "shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "tarball": "http://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", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/History.md b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/History.md deleted file mode 100644 index ec010299b1b2591fff4cec3eed03df917c6ce7a1..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/History.md +++ /dev/null @@ -1,11 +0,0 @@ - -1.0.1 / 2014-11-25 -================== - - * browser: use `console.warn()` for deprecation calls - * browser: more jsdocs - -1.0.0 / 2014-04-30 -================== - - * initial commit diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/LICENSE b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/LICENSE deleted file mode 100644 index 6a60e8c225c9baca25907f87c74b428e5d85de0c..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich - -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/sha/node_modules/readable-stream/node_modules/util-deprecate/README.md b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/README.md deleted file mode 100644 index 75622fa7c250a6605f4778d9dffe97bf60291d17..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/README.md +++ /dev/null @@ -1,53 +0,0 @@ -util-deprecate -============== -### The Node.js `util.deprecate()` function with browser support - -In Node.js, this module simply re-exports the `util.deprecate()` function. - -In the web browser (i.e. via browserify), a browser-specific implementation -of the `util.deprecate()` function is used. - - -## API - -A `deprecate()` function is the only thing exposed by this module. - -``` javascript -// setup: -exports.foo = deprecate(foo, 'foo() is deprecated, use bar() instead'); - - -// users see: -foo(); -// foo() is deprecated, use bar() instead -foo(); -foo(); -``` - - -## License - -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich - -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/sha/node_modules/readable-stream/node_modules/util-deprecate/browser.js b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/browser.js deleted file mode 100644 index 55fa5a4bc6056abdb49119f81dba69b172ef4235..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/browser.js +++ /dev/null @@ -1,62 +0,0 @@ - -/** - * Module exports. - */ - -module.exports = deprecate; - -/** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - -function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -} - -/** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - -function config (name) { - if (!global.localStorage) return false; - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; -} diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/node.js b/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/node.js deleted file mode 100644 index 5e6fcff5ddd3fbf8bdda6310c224114d30b7509e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/node.js +++ /dev/null @@ -1,6 +0,0 @@ - -/** - * For Node.js, simply re-export the core `util.deprecate` function. - */ - -module.exports = require('util').deprecate; diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/package.json b/deps/npm/node_modules/sha/node_modules/readable-stream/package.json index 7a333a98a324e14513d6b2e6cdfaa50f7693c399..edc90f8d7cbae6b25e0e3434e8caecee564d4b0c 100644 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/package.json +++ b/deps/npm/node_modules/sha/node_modules/readable-stream/package.json @@ -1,8 +1,43 @@ { - "name": "readable-stream", - "version": "2.0.2", - "description": "Streams3, a user-land copy of the stream library from iojs v2.x", - "main": "readable.js", + "_args": [ + [ + "readable-stream@^2.0.2", + "/Users/rebecca/code/npm/node_modules/sha" + ] + ], + "_from": "readable-stream@>=2.0.2 <3.0.0", + "_id": "readable-stream@2.0.2", + "_inCache": true, + "_location": "/sha/readable-stream", + "_nodeVersion": "2.3.0", + "_npmUser": { + "email": "calvin.metcalf@gmail.com", + "name": "cwmma" + }, + "_npmVersion": "2.11.1", + "_phantomChildren": {}, + "_requested": { + "name": "readable-stream", + "raw": "readable-stream@^2.0.2", + "rawSpec": "^2.0.2", + "scope": null, + "spec": ">=2.0.2 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/sha" + ], + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", + "_shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", + "_shrinkwrap": null, + "_spec": "readable-stream@^2.0.2", + "_where": "/Users/rebecca/code/npm/node_modules/sha", + "browser": { + "util": false + }, + "bugs": { + "url": "https://github.com/nodejs/readable-stream/issues" + }, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -11,46 +46,27 @@ "string_decoder": "~0.10.x", "util-deprecate": "~1.0.1" }, + "description": "Streams3, a user-land copy of the stream library from iojs v2.x", "devDependencies": { "tap": "~0.2.6", "tape": "~4.0.0", "zuul": "~3.0.0" }, - "scripts": { - "test": "tap test/parallel/*.js", - "browser": "zuul --browser-name $BROWSER_NAME --browser-version $BROWSER_VERSION -- test/browser.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream.git" + "directories": {}, + "dist": { + "shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", + "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz" }, + "gitHead": "1a70134a71196eeabb5e27bc7580faaa68d30513", + "homepage": "https://github.com/nodejs/readable-stream#readme", + "installable": true, "keywords": [ + "pipe", "readable", - "stream", - "pipe" + "stream" ], - "browser": { - "util": false - }, "license": "MIT", - "gitHead": "1a70134a71196eeabb5e27bc7580faaa68d30513", - "bugs": { - "url": "https://github.com/nodejs/readable-stream/issues" - }, - "homepage": "https://github.com/nodejs/readable-stream#readme", - "_id": "readable-stream@2.0.2", - "_shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", - "_from": "readable-stream@>=2.0.2 <3.0.0", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - }, - "dist": { - "shasum": "bec81beae8cf455168bc2e5b2b31f5bcfaed9b1b", - "tarball": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz" - }, + "main": "readable.js", "maintainers": [ { "name": "isaacs", @@ -69,7 +85,15 @@ "email": "calvin.metcalf@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", - "readme": "ERROR: No README data found!" + "name": "readable-stream", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/nodejs/readable-stream.git" + }, + "scripts": { + "browser": "zuul --browser-name $BROWSER_NAME --browser-version $BROWSER_VERSION -- test/browser.js", + "test": "tap test/parallel/*.js" + }, + "version": "2.0.2" } diff --git a/deps/npm/node_modules/sha/package.json b/deps/npm/node_modules/sha/package.json index 95e55e138946a66082159593bd24d48b9a4d0a6b..0bd2cf7a1dcafb46858944886a76073aabba03c6 100644 --- a/deps/npm/node_modules/sha/package.json +++ b/deps/npm/node_modules/sha/package.json @@ -1,36 +1,64 @@ { - "name": "sha", - "version": "2.0.1", - "description": "Check and get file hashes", - "scripts": { - "test": "mocha -R spec" + "_args": [ + [ + "sha@~2.0.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "sha@>=2.0.1 <2.1.0", + "_id": "sha@2.0.1", + "_inCache": true, + "_location": "/sha", + "_nodeVersion": "1.6.2", + "_npmUser": { + "email": "forbes@lindesay.co.uk", + "name": "forbeslindesay" }, - "repository": { - "type": "git", - "url": "https://github.com/ForbesLindesay/sha.git" + "_npmVersion": "2.7.1", + "_phantomChildren": { + "core-util-is": "1.0.1", + "inherits": "2.0.1", + "isarray": "0.0.1", + "process-nextick-args": "1.0.3", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.1" + }, + "_requested": { + "name": "sha", + "raw": "sha@~2.0.1", + "rawSpec": "~2.0.1", + "scope": null, + "spec": ">=2.0.1 <2.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz", + "_shasum": "6030822fbd2c9823949f8f72ed6411ee5cf25aae", + "_shrinkwrap": null, + "_spec": "sha@~2.0.1", + "_where": "/Users/rebecca/code/npm", + "bugs": { + "url": "https://github.com/ForbesLindesay/sha/issues" }, - "license": "(BSD-2-Clause OR MIT)", "dependencies": { "graceful-fs": "^4.1.2", "readable-stream": "^2.0.2" }, + "description": "Check and get file hashes", "devDependencies": { "mocha": "~1.9.0" }, - "gitHead": "ce7c72ba753d886fb46c396cbadcbfc8eac25b4f", - "bugs": { - "url": "https://github.com/ForbesLindesay/sha/issues" + "directories": {}, + "dist": { + "shasum": "6030822fbd2c9823949f8f72ed6411ee5cf25aae", + "tarball": "http://registry.npmjs.org/sha/-/sha-2.0.1.tgz" }, + "gitHead": "ce7c72ba753d886fb46c396cbadcbfc8eac25b4f", "homepage": "https://github.com/ForbesLindesay/sha", - "_id": "sha@2.0.1", - "_shasum": "6030822fbd2c9823949f8f72ed6411ee5cf25aae", - "_from": "sha@2.0.1", - "_npmVersion": "2.7.1", - "_nodeVersion": "1.6.2", - "_npmUser": { - "name": "forbeslindesay", - "email": "forbes@lindesay.co.uk" - }, + "installable": true, + "license": "(BSD-2-Clause OR MIT)", "maintainers": [ { "name": "forbeslindesay", @@ -45,10 +73,14 @@ "email": "thechargingvolcano@gmail.com" } ], - "dist": { - "shasum": "6030822fbd2c9823949f8f72ed6411ee5cf25aae", - "tarball": "http://registry.npmjs.org/sha/-/sha-2.0.1.tgz" + "name": "sha", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/ForbesLindesay/sha.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz" + "scripts": { + "test": "mocha -R spec" + }, + "version": "2.0.1" } diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE b/deps/npm/node_modules/sigmund/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE rename to deps/npm/node_modules/sigmund/LICENSE diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/README.md b/deps/npm/node_modules/sigmund/README.md similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/README.md rename to deps/npm/node_modules/sigmund/README.md diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/bench.js b/deps/npm/node_modules/sigmund/bench.js similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/bench.js rename to deps/npm/node_modules/sigmund/bench.js diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/package.json b/deps/npm/node_modules/sigmund/package.json similarity index 61% rename from deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/package.json rename to deps/npm/node_modules/sigmund/package.json index 4255e77a933eed80f65927f6f30fffbc0a668796..61af1e0b73a51e2a84c5ba4910d07bb79b69fb12 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/package.json +++ b/deps/npm/node_modules/sigmund/package.json @@ -1,60 +1,83 @@ { - "name": "sigmund", - "version": "1.0.1", - "description": "Quick and dirty signatures for Objects.", - "main": "sigmund.js", - "directories": { - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "~0.3.0" - }, - "scripts": { - "test": "tap test/*.js", - "bench": "node bench.js" + "_args": [ + [ + "sigmund@~1.0.0", + "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/minimatch" + ] + ], + "_from": "sigmund@>=1.0.0 <1.1.0", + "_id": "sigmund@1.0.1", + "_inCache": true, + "_location": "/sigmund", + "_nodeVersion": "2.0.1", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/sigmund.git" + "_npmVersion": "2.10.0", + "_phantomChildren": {}, + "_requested": { + "name": "sigmund", + "raw": "sigmund@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" }, - "keywords": [ - "object", - "signature", - "key", - "data", - "psychoanalysis" + "_requiredBy": [ + "/node-gyp/minimatch" ], + "_resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "_shasum": "3ff21f198cad2175f9f3b781853fd94d0d19b590", + "_shrinkwrap": null, + "_spec": "sigmund@~1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/minimatch", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "license": "ISC", - "gitHead": "527f97aa5bb253d927348698c0cd3bb267d098c6", "bugs": { "url": "https://github.com/isaacs/sigmund/issues" }, - "homepage": "https://github.com/isaacs/sigmund#readme", - "_id": "sigmund@1.0.1", - "_shasum": "3ff21f198cad2175f9f3b781853fd94d0d19b590", - "_from": "sigmund@>=1.0.0 <1.1.0", - "_npmVersion": "2.10.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" + "dependencies": {}, + "description": "Quick and dirty signatures for Objects.", + "devDependencies": { + "tap": "~0.3.0" + }, + "directories": { + "test": "test" }, "dist": { "shasum": "3ff21f198cad2175f9f3b781853fd94d0d19b590", "tarball": "http://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" }, + "gitHead": "527f97aa5bb253d927348698c0cd3bb267d098c6", + "homepage": "https://github.com/isaacs/sigmund#readme", + "keywords": [ + "data", + "key", + "object", + "psychoanalysis", + "signature" + ], + "license": "ISC", + "main": "sigmund.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "_resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "readme": "ERROR: No README data found!" + "name": "sigmund", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/sigmund.git" + }, + "scripts": { + "bench": "node bench.js", + "test": "tap test/*.js" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/sigmund.js b/deps/npm/node_modules/sigmund/sigmund.js similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/sigmund.js rename to deps/npm/node_modules/sigmund/sigmund.js diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/test/basic.js b/deps/npm/node_modules/sigmund/test/basic.js similarity index 99% rename from deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/test/basic.js rename to deps/npm/node_modules/sigmund/test/basic.js index 50c53a13e98d0e0011f546258450d39333be4fa1..6149a80239f059ef510f0008be716a4d0eddc366 100644 --- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/sigmund/test/basic.js +++ b/deps/npm/node_modules/sigmund/test/basic.js @@ -21,4 +21,3 @@ test('basic', function (t) { t.equal(sigmund(obj3), cycleHash) t.end() }) - diff --git a/deps/npm/node_modules/slide/package.json b/deps/npm/node_modules/slide/package.json index 1c0b30bf2a96e8c4619a279faa1e6697141f527d..6ec642342c2423a1332345e10acb599e07891de6 100644 --- a/deps/npm/node_modules/slide/package.json +++ b/deps/npm/node_modules/slide/package.json @@ -1,11 +1,47 @@ { - "name": "slide", - "version": "1.1.6", + "_args": [ + [ + "slide@~1.1.6", + "/Users/rebecca/code/npm" + ] + ], + "_from": "slide@>=1.1.6 <1.2.0", + "_id": "slide@1.1.6", + "_inCache": true, + "_location": "/slide", + "_npmUser": { + "email": "i@izs.me", + "name": "isaacs" + }, + "_npmVersion": "2.0.0-beta.3", + "_phantomChildren": {}, + "_requested": { + "name": "slide", + "raw": "slide@~1.1.6", + "rawSpec": "~1.1.6", + "scope": null, + "spec": ">=1.1.6 <1.2.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/npm-registry-client", + "/read-installed", + "/write-file-atomic" + ], + "_resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "_shasum": "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707", + "_shrinkwrap": null, + "_spec": "slide@~1.1.6", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, + "bugs": { + "url": "https://github.com/isaacs/slide-flow-control/issues" + }, "contributors": [ { "name": "S. Sriram", @@ -13,42 +49,33 @@ "url": "http://www.565labs.com" } ], - "description": "A flow control lib small enough to fit on in a slide presentation. Derived live at Oak.JS", - "main": "./lib/slide.js", "dependencies": {}, + "description": "A flow control lib small enough to fit on in a slide presentation. Derived live at Oak.JS", "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707", + "tarball": "http://registry.npmjs.org/slide/-/slide-1.1.6.tgz" + }, "engines": { "node": "*" }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/slide-flow-control.git" - }, - "license": "ISC", "gitHead": "8345e51ee41e35825abc1a40750ea11462f57028", - "bugs": { - "url": "https://github.com/isaacs/slide-flow-control/issues" - }, "homepage": "https://github.com/isaacs/slide-flow-control", - "_id": "slide@1.1.6", - "scripts": {}, - "_shasum": "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707", - "_from": "slide@>=1.1.6 <1.2.0", - "_npmVersion": "2.0.0-beta.3", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, + "license": "ISC", + "main": "./lib/slide.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "dist": { - "shasum": "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707", - "tarball": "http://registry.npmjs.org/slide/-/slide-1.1.6.tgz" + "name": "slide", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/slide-flow-control.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz" + "scripts": {}, + "version": "1.1.6" } diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore b/deps/npm/node_modules/sntp/.npmignore similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore rename to deps/npm/node_modules/sntp/.npmignore index 77ba16cb055ca541749d23cb973e1cdfc41504e1..b0939eabe34d2defcf4061394f2d22475f0c36af 100644 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore +++ b/deps/npm/node_modules/sntp/.npmignore @@ -15,4 +15,3 @@ config.json */*/._* coverage.* lib-cov - diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/.travis.yml b/deps/npm/node_modules/sntp/.travis.yml similarity index 97% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/.travis.yml rename to deps/npm/node_modules/sntp/.travis.yml index 047f7e3d5e1e39a877ae1c4b37d5786d5ee588aa..77795c6a9b47df7362037a006600e179a68e1960 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/.travis.yml +++ b/deps/npm/node_modules/sntp/.travis.yml @@ -2,4 +2,3 @@ language: node_js node_js: - 0.10 - diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE b/deps/npm/node_modules/sntp/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE rename to deps/npm/node_modules/sntp/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/Makefile b/deps/npm/node_modules/sntp/Makefile similarity index 94% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/Makefile rename to deps/npm/node_modules/sntp/Makefile index 417fd93708605f0a88b4cf36f0eab46d9eb653ca..43189de8e3577ea64bb92e27fabae632eef980c8 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/Makefile +++ b/deps/npm/node_modules/sntp/Makefile @@ -1,9 +1,8 @@ test: @node node_modules/lab/bin/lab -test-cov: +test-cov: @node node_modules/lab/bin/lab -t 100 -m 3000 test-cov-html: @node node_modules/lab/bin/lab -r html -o coverage.html .PHONY: test test-cov test-cov-html - diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/README.md b/deps/npm/node_modules/sntp/README.md similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/README.md rename to deps/npm/node_modules/sntp/README.md index 98a6e025dba0b5abf304facb20ab660569c6c06e..ec5c1a14af19ffe98bbf74f45df0c995f745c9ab 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/README.md +++ b/deps/npm/node_modules/sntp/README.md @@ -65,4 +65,3 @@ Sntp.start(function () { Sntp.stop(); }); ``` - diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/examples/offset.js b/deps/npm/node_modules/sntp/examples/offset.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/examples/offset.js rename to deps/npm/node_modules/sntp/examples/offset.js index 0303f6dcfa76231936cbe958ee5558c6eab4d2a3..58f3cf93e036ffeeaa39de85310ce15140cd42ad 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/examples/offset.js +++ b/deps/npm/node_modules/sntp/examples/offset.js @@ -13,4 +13,3 @@ Sntp.offset(function (err, offset) { console.log(offset); // Identical (served from cache) }); }); - diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/examples/time.js b/deps/npm/node_modules/sntp/examples/time.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/examples/time.js rename to deps/npm/node_modules/sntp/examples/time.js index bd70d0e6a516f4b01fd1d180edd2f0d4aa9dd8d4..ff2589f75ebb3319f8ccae5e01eb1d4c882aa2d8 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/examples/time.js +++ b/deps/npm/node_modules/sntp/examples/time.js @@ -22,4 +22,3 @@ Sntp.time(options, function (err, time) { console.log('Local clock is off by: ' + time.t + ' milliseconds'); process.exit(0); }); - diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/index.js b/deps/npm/node_modules/sntp/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/index.js rename to deps/npm/node_modules/sntp/index.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js b/deps/npm/node_modules/sntp/lib/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js rename to deps/npm/node_modules/sntp/lib/index.js diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json b/deps/npm/node_modules/sntp/package.json similarity index 67% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json rename to deps/npm/node_modules/sntp/package.json index 8b664b60fcd738ef134cc89633d25246db42ca6c..263dc45954d90f1ff90999f367925c3285c09e8d 100644 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json +++ b/deps/npm/node_modules/sntp/package.json @@ -1,65 +1,88 @@ { - "name": "sntp", - "description": "SNTP Client", - "version": "1.0.9", + "_args": [ + [ + "sntp@1.x.x", + "/Users/rebecca/code/npm/node_modules/hawk" + ] + ], + "_from": "sntp@>=1.0.0 <2.0.0", + "_id": "sntp@1.0.9", + "_inCache": true, + "_location": "/sntp", + "_npmUser": { + "email": "eran@hueniverse.com", + "name": "hueniverse" + }, + "_npmVersion": "1.4.23", + "_phantomChildren": {}, + "_requested": { + "name": "sntp", + "raw": "sntp@1.x.x", + "rawSpec": "1.x.x", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/hawk" + ], + "_resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "_shasum": "6541184cc90aeea6c6e7b35e2659082443c66198", + "_shrinkwrap": null, + "_spec": "sntp@1.x.x", + "_where": "/Users/rebecca/code/npm/node_modules/hawk", "author": { - "name": "Eran Hammer", "email": "eran@hammer.io", + "name": "Eran Hammer", "url": "http://hueniverse.com" }, - "contributors": [], - "repository": { - "type": "git", - "url": "git://github.com/hueniverse/sntp.git" - }, - "main": "index", - "keywords": [ - "sntp", - "ntp", - "time" - ], - "engines": { - "node": ">=0.8.0" + "bugs": { + "url": "https://github.com/hueniverse/sntp/issues" }, + "contributors": [], "dependencies": { "hoek": "2.x.x" }, + "description": "SNTP Client", "devDependencies": { "lab": "4.x.x" }, - "scripts": { - "test": "make test-cov" + "directories": {}, + "dist": { + "shasum": "6541184cc90aeea6c6e7b35e2659082443c66198", + "tarball": "http://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" }, + "engines": { + "node": ">=0.8.0" + }, + "gitHead": "ee2e35284f684609990681734d39010cd356d7da", + "homepage": "https://github.com/hueniverse/sntp", + "keywords": [ + "ntp", + "sntp", + "time" + ], "licenses": [ { "type": "BSD", "url": "http://github.com/hueniverse/sntp/raw/master/LICENSE" } ], - "gitHead": "ee2e35284f684609990681734d39010cd356d7da", - "bugs": { - "url": "https://github.com/hueniverse/sntp/issues" - }, - "homepage": "https://github.com/hueniverse/sntp", - "_id": "sntp@1.0.9", - "_shasum": "6541184cc90aeea6c6e7b35e2659082443c66198", - "_from": "sntp@>=1.0.0 <2.0.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "hueniverse", - "email": "eran@hueniverse.com" - }, + "main": "index", "maintainers": [ { "name": "hueniverse", "email": "eran@hueniverse.com" } ], - "dist": { - "shasum": "6541184cc90aeea6c6e7b35e2659082443c66198", - "tarball": "http://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + "name": "sntp", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/hueniverse/sntp" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "make test-cov" + }, + "version": "1.0.9" } diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/test/index.js b/deps/npm/node_modules/sntp/test/index.js similarity index 99% rename from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/test/index.js rename to deps/npm/node_modules/sntp/test/index.js index f1d1cdabf5bb6689b68846140ae438caa8c2a2ff..2b8a1c256e8fe5b945fe6a37209e887210464246 100755 --- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/test/index.js +++ b/deps/npm/node_modules/sntp/test/index.js @@ -432,4 +432,3 @@ describe('SNTP', function () { }); }); }); - diff --git a/deps/npm/node_modules/sorted-object/package.json b/deps/npm/node_modules/sorted-object/package.json index 5bd814207aa35286a5144f8b10c4fb5f7a0b889c..ea1e21dd2dc42e5cd8af1a83dc480de3ed872023 100644 --- a/deps/npm/node_modules/sorted-object/package.json +++ b/deps/npm/node_modules/sorted-object/package.json @@ -1,37 +1,78 @@ { - "name": "sorted-object", - "description": "Returns a copy of an object with its keys sorted", - "keywords": [ - "sort", - "keys", - "object" + "_args": [ + [ + "sorted-object@~1.0.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "sorted-object@>=1.0.0 <1.1.0", + "_id": "sorted-object@1.0.0", + "_inCache": true, + "_location": "/sorted-object", + "_npmUser": { + "email": "domenic@domenicdenicola.com", + "name": "domenic" + }, + "_npmVersion": "1.3.25", + "_phantomChildren": {}, + "_requested": { + "name": "sorted-object", + "raw": "sorted-object@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" ], - "version": "1.0.0", + "_resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz", + "_shasum": "5d1f4f9c1fb2cd48965967304e212eb44cfb6d05", + "_shrinkwrap": null, + "_spec": "sorted-object@~1.0.0", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Domenic Denicola", "email": "domenic@domenicdenicola.com", + "name": "Domenic Denicola", "url": "http://domenic.me/" }, - "license": "WTFPL", - "repository": { - "type": "git", - "url": "git://github.com/domenic/sorted-object.git" - }, "bugs": { "url": "http://github.com/domenic/sorted-object/issues" }, - "main": "lib/sorted-object.js", - "scripts": { - "test": "tape test/tests.js", - "lint": "jshint lib && jshint test" - }, + "dependencies": {}, + "description": "Returns a copy of an object with its keys sorted", "devDependencies": { "jshint": "~2.4.3", "tape": "~2.4.2" }, - "readme": "# Get a Version of an Object with Sorted Keys\n\nAlthough objects in JavaScript are theoretically unsorted, in practice most engines use insertion order—at least, ignoring numeric keys. This manifests itself most prominently when dealing with an object's JSON serialization.\n\nSo, for example, you might be trying to serialize some object to a JSON file. But every time you write it, it ends up being output in a different order, depending on how you created it in the first place! This makes for some ugly diffs.\n\n**sorted-object** gives you the answer. Just use this package to create a version of your object with its keys sorted before serializing, and you'll get a consistent order every time.\n\n```js\nvar sortedObject = require(\"sorted-object\");\n\nvar objectToSerialize = generateStuffNondeterministically();\n\n// Before:\nfs.writeFileSync(\"dest.json\", JSON.stringify(objectToSerialize));\n\n// After:\nvar sortedVersion = sortedObject(objectToSerialize);\nfs.writeFileSync(\"dest.json\", JSON.stringify(sortedVersion));\n```\n", - "readmeFilename": "README.md", + "directories": {}, + "dist": { + "shasum": "5d1f4f9c1fb2cd48965967304e212eb44cfb6d05", + "tarball": "http://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz" + }, "homepage": "https://github.com/domenic/sorted-object", - "_id": "sorted-object@1.0.0", - "_from": "sorted-object@" + "keywords": [ + "keys", + "object", + "sort" + ], + "license": "WTFPL", + "main": "lib/sorted-object.js", + "maintainers": [ + { + "name": "domenic", + "email": "domenic@domenicdenicola.com" + } + ], + "name": "sorted-object", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/domenic/sorted-object.git" + }, + "scripts": { + "lint": "jshint lib && jshint test", + "test": "tape test/tests.js" + }, + "version": "1.0.0" } diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/README.md b/deps/npm/node_modules/spdx-correct/README.md similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/README.md rename to deps/npm/node_modules/spdx-correct/README.md diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js b/deps/npm/node_modules/spdx-correct/index.js similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js rename to deps/npm/node_modules/spdx-correct/index.js diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json b/deps/npm/node_modules/spdx-correct/package.json similarity index 67% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json rename to deps/npm/node_modules/spdx-correct/package.json index f1a85e2ea38e0ce504ef25a569f40de1cb0d9485..efaea0260352d900f4667b68b81ac286ff1e7002 100644 --- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json +++ b/deps/npm/node_modules/spdx-correct/package.json @@ -1,21 +1,63 @@ { - "name": "spdx-correct", - "description": "correct invalid SPDX identifiers", - "version": "1.0.1", + "_args": [ + [ + "spdx-correct@~1.0.0", + "/Users/rebecca/code/npm/node_modules/validate-npm-package-license" + ] + ], + "_from": "spdx-correct@>=1.0.0 <1.1.0", + "_id": "spdx-correct@1.0.1", + "_inCache": true, + "_location": "/spdx-correct", + "_nodeVersion": "0.12.7", + "_npmUser": { + "email": "kyle@kemitchell.com", + "name": "kemitchell" + }, + "_npmVersion": "2.13.5", + "_phantomChildren": {}, + "_requested": { + "name": "spdx-correct", + "raw": "spdx-correct@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/validate-npm-package-license" + ], + "_resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.1.tgz", + "_shasum": "ac075f5f2f6a06c0bfdd1c847eb3dde3dd8221ea", + "_shrinkwrap": null, + "_spec": "spdx-correct@~1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/validate-npm-package-license", "author": { - "name": "Kyle E. Mitchell", "email": "kyle@kemitchell.com", + "name": "Kyle E. Mitchell", "url": "https://kemitchell.com" }, + "bugs": { + "url": "https://github.com/kemitchell/spdx-correct.js/issues" + }, "dependencies": { "spdx-license-ids": "^1.0.2" }, + "description": "correct invalid SPDX identifiers", "devDependencies": { "defence-cli": "^1.0.1", "replace-require-self": "^1.0.0", "spdx-expression-parse": "^1.0.0", "tape": "~4.0.0" }, + "directories": {}, + "dist": { + "shasum": "ac075f5f2f6a06c0bfdd1c847eb3dde3dd8221ea", + "tarball": "http://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.1.tgz" + }, + "gitHead": "f3581dea1529d975851ceab7f86e646d8220608a", + "homepage": "https://github.com/kemitchell/spdx-correct.js#readme", + "installable": true, "keywords": [ "SPDX", "law", @@ -24,31 +66,6 @@ "metadata" ], "license": "Apache-2.0", - "repository": { - "type": "git", - "url": "git+https://github.com/kemitchell/spdx-correct.js.git" - }, - "scripts": { - "test": "defence README.md | replace-require-self | node && tape *.test.js" - }, - "gitHead": "f3581dea1529d975851ceab7f86e646d8220608a", - "bugs": { - "url": "https://github.com/kemitchell/spdx-correct.js/issues" - }, - "homepage": "https://github.com/kemitchell/spdx-correct.js#readme", - "_id": "spdx-correct@1.0.1", - "_shasum": "ac075f5f2f6a06c0bfdd1c847eb3dde3dd8221ea", - "_from": "spdx-correct@>=1.0.0 <1.1.0", - "_npmVersion": "2.13.5", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - }, - "dist": { - "shasum": "ac075f5f2f6a06c0bfdd1c847eb3dde3dd8221ea", - "tarball": "http://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.1.tgz" - }, "maintainers": [ { "name": "kemitchell", @@ -59,6 +76,14 @@ "email": "ogd@aoaioxxysz.net" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.1.tgz" + "name": "spdx-correct", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/kemitchell/spdx-correct.js.git" + }, + "scripts": { + "test": "defence README.md | replace-require-self | node && tape *.test.js" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/.npmignore b/deps/npm/node_modules/spdx-exceptions/.npmignore similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/.npmignore rename to deps/npm/node_modules/spdx-exceptions/.npmignore diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/LICENSE.md b/deps/npm/node_modules/spdx-exceptions/LICENSE.md similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/LICENSE.md rename to deps/npm/node_modules/spdx-exceptions/LICENSE.md diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/README.md b/deps/npm/node_modules/spdx-exceptions/README.md similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/README.md rename to deps/npm/node_modules/spdx-exceptions/README.md diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/index.json b/deps/npm/node_modules/spdx-exceptions/index.json similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/index.json rename to deps/npm/node_modules/spdx-exceptions/index.json diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/package.json b/deps/npm/node_modules/spdx-exceptions/package.json similarity index 63% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/package.json rename to deps/npm/node_modules/spdx-exceptions/package.json index 0824998934011212fe6046f96875ff7eda36b960..0ed389b575dbcdfda1e82d2d5b9775993bab92a9 100644 --- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions/package.json +++ b/deps/npm/node_modules/spdx-exceptions/package.json @@ -1,10 +1,43 @@ { - "name": "spdx-exceptions", - "description": "list of SPDX standard license exceptions", - "version": "1.0.2", + "_args": [ + [ + "spdx-exceptions@^1.0.0", + "/Users/ogd/Documents/projects/npm/npm/node_modules/spdx-expression-parse" + ] + ], + "_from": "spdx-exceptions@>=1.0.0 <2.0.0", + "_id": "spdx-exceptions@1.0.2", + "_inCache": true, + "_location": "/spdx-exceptions", + "_nodeVersion": "0.12.7", + "_npmUser": { + "email": "kyle@kemitchell.com", + "name": "kemitchell" + }, + "_npmVersion": "2.13.3", + "_phantomChildren": {}, + "_requested": { + "name": "spdx-exceptions", + "raw": "spdx-exceptions@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/spdx-expression-parse" + ], + "_resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.2.tgz", + "_shasum": "c584a2875a1db1c8743266990af6e0c82e143a5b", + "_shrinkwrap": null, + "_spec": "spdx-exceptions@^1.0.0", + "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/spdx-expression-parse", "author": { "name": "The Linux Foundation" }, + "bugs": { + "url": "https://github.com/kemitchell/spdx-exceptions.js/issues" + }, "contributors": [ { "name": "Kyle E. Mitchell", @@ -12,41 +45,34 @@ "url": "https://kemitchell.com/" } ], + "dependencies": {}, + "description": "list of SPDX standard license exceptions", "devDependencies": { "defence-cli": "^1.0.1" }, - "license": "CC-BY-3.0", - "repository": { - "type": "git", - "url": "git+https://github.com/kemitchell/spdx-exceptions.js.git" - }, - "scripts": { - "test": "defence -i javascript README.md | sed 's!spdx-exceptions!./!' | node" - }, - "gitHead": "a1e7b0595efee0e4436e9807dd36280791e44c82", - "bugs": { - "url": "https://github.com/kemitchell/spdx-exceptions.js/issues" - }, - "homepage": "https://github.com/kemitchell/spdx-exceptions.js#readme", - "_id": "spdx-exceptions@1.0.2", - "_shasum": "c584a2875a1db1c8743266990af6e0c82e143a5b", - "_from": "spdx-exceptions@>=1.0.0 <2.0.0", - "_npmVersion": "2.13.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - }, + "directories": {}, "dist": { "shasum": "c584a2875a1db1c8743266990af6e0c82e143a5b", "tarball": "http://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.2.tgz" }, + "gitHead": "a1e7b0595efee0e4436e9807dd36280791e44c82", + "homepage": "https://github.com/kemitchell/spdx-exceptions.js#readme", + "installable": true, + "license": "CC-BY-3.0", "maintainers": [ { "name": "kemitchell", "email": "kyle@kemitchell.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.2.tgz" + "name": "spdx-exceptions", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/kemitchell/spdx-exceptions.js.git" + }, + "scripts": { + "test": "defence -i javascript README.md | sed 's!spdx-exceptions!./!' | node" + }, + "version": "1.0.2" } diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/LICENSE b/deps/npm/node_modules/spdx-expression-parse/LICENSE similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/LICENSE rename to deps/npm/node_modules/spdx-expression-parse/LICENSE diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/README.md b/deps/npm/node_modules/spdx-expression-parse/README.md similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/README.md rename to deps/npm/node_modules/spdx-expression-parse/README.md diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js b/deps/npm/node_modules/spdx-expression-parse/index.js similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js rename to deps/npm/node_modules/spdx-expression-parse/index.js diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json b/deps/npm/node_modules/spdx-expression-parse/package.json similarity index 65% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json rename to deps/npm/node_modules/spdx-expression-parse/package.json index e38d0b5a9671c1c2842362771ee0c65b7864750e..79ab103509df6e2021bfb4a9a2aec63801a34958 100644 --- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json +++ b/deps/npm/node_modules/spdx-expression-parse/package.json @@ -1,20 +1,62 @@ { - "name": "spdx-expression-parse", - "description": "parse SPDX license expressions", - "version": "1.0.0", + "_args": [ + [ + "spdx-expression-parse@~1.0.0", + "/Users/ogd/Documents/projects/npm/npm/node_modules/init-package-json/node_modules/validate-npm-package-license" + ] + ], + "_from": "spdx-expression-parse@>=1.0.0 <1.1.0", + "_id": "spdx-expression-parse@1.0.0", + "_inCache": true, + "_location": "/spdx-expression-parse", + "_nodeVersion": "0.12.7", + "_npmUser": { + "email": "kyle@kemitchell.com", + "name": "kemitchell" + }, + "_npmVersion": "2.13.3", + "_phantomChildren": {}, + "_requested": { + "name": "spdx-expression-parse", + "raw": "spdx-expression-parse@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/init-package-json/validate-npm-package-license" + ], + "_resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.0.tgz", + "_shasum": "4fbb7e738c9e98fa0b0914dfd961ac6629fbcdef", + "_shrinkwrap": null, + "_spec": "spdx-expression-parse@~1.0.0", + "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/init-package-json/node_modules/validate-npm-package-license", "author": { - "name": "Kyle E. Mitchell", "email": "kyle@kemitchell.com", + "name": "Kyle E. Mitchell", "url": "http://kemitchell.com" }, + "bugs": { + "url": "https://github.com/kemitchell/spdx-expression-parse.js/issues" + }, "dependencies": { "spdx-exceptions": "^1.0.0", "spdx-license-ids": "^1.0.0" }, + "description": "parse SPDX license expressions", "devDependencies": { "defence-cli": "^1.0.1", "jison": "^0.4.15" }, + "directories": {}, + "dist": { + "shasum": "4fbb7e738c9e98fa0b0914dfd961ac6629fbcdef", + "tarball": "http://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.0.tgz" + }, + "gitHead": "213bc03808f709a4ceaadb8466740a8c96c1e896", + "homepage": "https://github.com/kemitchell/spdx-expression-parse.js#readme", + "installable": true, "keywords": [ "SPDX", "law", @@ -26,6 +68,14 @@ "standards" ], "license": "(MIT AND CC-BY-3.0)", + "maintainers": [ + { + "name": "kemitchell", + "email": "kyle@kemitchell.com" + } + ], + "name": "spdx-expression-parse", + "optionalDependencies": {}, "repository": { "type": "git", "url": "git+https://github.com/kemitchell/spdx-expression-parse.js.git" @@ -36,30 +86,5 @@ "pretest": "npm run generate", "test": "defence -i javascript README.md | node" }, - "gitHead": "213bc03808f709a4ceaadb8466740a8c96c1e896", - "bugs": { - "url": "https://github.com/kemitchell/spdx-expression-parse.js/issues" - }, - "homepage": "https://github.com/kemitchell/spdx-expression-parse.js#readme", - "_id": "spdx-expression-parse@1.0.0", - "_shasum": "4fbb7e738c9e98fa0b0914dfd961ac6629fbcdef", - "_from": "spdx-expression-parse@>=1.0.0 <1.1.0", - "_npmVersion": "2.13.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - }, - "dist": { - "shasum": "4fbb7e738c9e98fa0b0914dfd961ac6629fbcdef", - "tarball": "http://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.0.tgz" - }, - "maintainers": [ - { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - } - ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.0.tgz" + "version": "1.0.0" } diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.generated.js b/deps/npm/node_modules/spdx-expression-parse/parser.generated.js similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.generated.js rename to deps/npm/node_modules/spdx-expression-parse/parser.generated.js diff --git a/deps/npm/node_modules/spdx/node_modules/spdx-license-ids/LICENSE b/deps/npm/node_modules/spdx-license-ids/LICENSE similarity index 100% rename from deps/npm/node_modules/spdx/node_modules/spdx-license-ids/LICENSE rename to deps/npm/node_modules/spdx-license-ids/LICENSE diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/README.md b/deps/npm/node_modules/spdx-license-ids/README.md similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/README.md rename to deps/npm/node_modules/spdx-license-ids/README.md diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json b/deps/npm/node_modules/spdx-license-ids/package.json similarity index 72% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json rename to deps/npm/node_modules/spdx-license-ids/package.json index 62c5c37ba96261e5cb71c8a08e510d6a020ef994..c2a1dbf2c6a19c41552b05b0036430cc8f784b50 100644 --- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json +++ b/deps/npm/node_modules/spdx-license-ids/package.json @@ -1,41 +1,46 @@ { - "name": "spdx-license-ids", - "version": "1.0.2", - "description": "A list of SPDX license identifiers", - "repository": { - "type": "git", - "url": "git+https://github.com/shinnn/spdx-license-ids.git" + "_args": [ + [ + "spdx-license-ids@^1.0.0", + "/Users/rebecca/code/npm/node_modules/spdx" + ] + ], + "_from": "spdx-license-ids@>=1.0.0 <2.0.0", + "_id": "spdx-license-ids@1.0.2", + "_inCache": true, + "_location": "/spdx-license-ids", + "_nodeVersion": "2.3.3", + "_npmUser": { + "email": "snnskwtnb@gmail.com", + "name": "shinnn" }, + "_npmVersion": "2.12.1", + "_phantomChildren": {}, + "_requested": { + "name": "spdx-license-ids", + "raw": "spdx-license-ids@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/spdx" + ], + "_resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.0.2.tgz", + "_shasum": "0674e9c9a230f980016b5b073a10aa165701677c", + "_shrinkwrap": null, + "_spec": "spdx-license-ids@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/spdx", "author": { "name": "Shinnosuke Watanabe", "url": "https://github.com/shinnn" }, - "scripts": { - "build": "node --harmony_arrow_functions build.js", - "lint": "eslint --config node_modules/@shinnn/eslintrc/rc.json --ignore-path .gitignore .", - "pretest": "${npm_package_scripts_build} && ${npm_package_scripts_lint}", - "test": "node --harmony_arrow_functions test.js", - "coverage": "node --harmony_arrow_functions node_modules/.bin/istanbul cover test.js", - "coveralls": "${npm_package_scripts_coverage} && istanbul-coveralls" + "bugs": { + "url": "https://github.com/shinnn/spdx-license-ids/issues" }, - "license": "Unlicense", - "main": "spdx-license-ids.json", - "files": [ - "spdx-license-ids.json" - ], - "keywords": [ - "spdx", - "license", - "licenses", - "id", - "identifier", - "identifiers", - "json", - "array", - "oss", - "browser", - "client-side" - ], + "dependencies": {}, + "description": "A list of SPDX license identifiers", "devDependencies": { "@shinnn/eslintrc": "^1.0.0", "each-async": "^1.1.1", @@ -48,30 +53,50 @@ "stringify-object": "^2.2.0", "tape": "^4.0.0" }, - "gitHead": "df183ecdf1738f77b1e8e41f686ee56206a40693", - "bugs": { - "url": "https://github.com/shinnn/spdx-license-ids/issues" + "directories": {}, + "dist": { + "shasum": "0674e9c9a230f980016b5b073a10aa165701677c", + "tarball": "http://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.0.2.tgz" }, + "files": [ + "spdx-license-ids.json" + ], + "gitHead": "df183ecdf1738f77b1e8e41f686ee56206a40693", "homepage": "https://github.com/shinnn/spdx-license-ids#readme", - "_id": "spdx-license-ids@1.0.2", - "_shasum": "0674e9c9a230f980016b5b073a10aa165701677c", - "_from": "spdx-license-ids@>=1.0.0 <2.0.0", - "_npmVersion": "2.12.1", - "_nodeVersion": "2.3.3", - "_npmUser": { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - }, + "keywords": [ + "array", + "browser", + "client-side", + "id", + "identifier", + "identifiers", + "json", + "license", + "licenses", + "oss", + "spdx" + ], + "license": "Unlicense", + "main": "spdx-license-ids.json", "maintainers": [ { "name": "shinnn", "email": "snnskwtnb@gmail.com" } ], - "dist": { - "shasum": "0674e9c9a230f980016b5b073a10aa165701677c", - "tarball": "http://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.0.2.tgz" + "name": "spdx-license-ids", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/shinnn/spdx-license-ids.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.0.2.tgz" + "scripts": { + "build": "node --harmony_arrow_functions build.js", + "coverage": "node --harmony_arrow_functions node_modules/.bin/istanbul cover test.js", + "coveralls": "${npm_package_scripts_coverage} && istanbul-coveralls", + "lint": "eslint --config node_modules/@shinnn/eslintrc/rc.json --ignore-path .gitignore .", + "pretest": "${npm_package_scripts_build} && ${npm_package_scripts_lint}", + "test": "node --harmony_arrow_functions test.js" + }, + "version": "1.0.2" } diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json b/deps/npm/node_modules/spdx-license-ids/spdx-license-ids.json similarity index 100% rename from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json rename to deps/npm/node_modules/spdx-license-ids/spdx-license-ids.json diff --git a/deps/npm/node_modules/spdx/LICENSE.md b/deps/npm/node_modules/spdx/LICENSE.md deleted file mode 100644 index 2180a8c1a3676eb058368b40d981df964711da35..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/spdx/LICENSE.md +++ /dev/null @@ -1,7 +0,0 @@ -Copyright Kyle E. Mitchell - -Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. diff --git a/deps/npm/node_modules/spdx/README.md b/deps/npm/node_modules/spdx/README.md deleted file mode 100644 index f373262474e8bb231079d2710840f48f872cc053..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/spdx/README.md +++ /dev/null @@ -1,145 +0,0 @@ -spdx.js -======= - -[![npm version](https://img.shields.io/npm/v/spdx.svg)](https://www.npmjs.com/package/spdx) -[![SPDX License Expression Syntax version](https://img.shields.io/badge/SPDX-2.0-blue.svg)](http://spdx.org/SPDX-specifications/spdx-version-2.0) -[![license](https://img.shields.io/badge/license-Apache--2.0-303284.svg)](http://www.apache.org/licenses/LICENSE-2.0) -[![build status](https://img.shields.io/travis/kemitchell/spdx.js.svg)](http://travis-ci.org/kemitchell/spdx.js) - -SPDX License Expression Syntax parser - - - -Simple License Expressions --------------------------- -```js -spdx.valid('Invalid-Identifier'); // => null -spdx.valid('GPL-2.0'); // => true -spdx.valid('GPL-2.0+'); // => true -spdx.valid('LicenseRef-23'); // => true -spdx.valid('LicenseRef-MIT-Style-1'); // => true -spdx.valid('DocumentRef-spdx-tool-1.2:LicenseRef-MIT-Style-2'); // => true -``` - -Composite License Expressions ------------------------------ - -### Disjunctive `OR` Operator -```js -spdx.valid('(LGPL-2.1 OR MIT)'); // => true -spdx.valid('(LGPL-2.1 OR MIT OR BSD-3-Clause)'); // => true -``` - -### Conjunctive `AND` Operator -```js -spdx.valid('(LGPL-2.1 AND MIT)'); // => true -spdx.valid('(LGPL-2.1 AND MIT AND BSD-2-Clause)'); // => true -``` - -### Exception `WITH` Operator -```js -spdx.valid('(GPL-2.0+ WITH Bison-exception-2.2)'); // => true -``` - -### Order of Precedence and Parentheses -```js -var firstAST = { - left: {license: 'LGPL-2.1'}, - conjunction: 'or', - right: { - left: {license: 'BSD-3-Clause'}, - conjunction: 'and', - right: {license: 'MIT'} - } -}; -spdx.parse('(LGPL-2.1 OR BSD-3-Clause AND MIT)'); // => firstAST - -var secondAST = { - left: {license: 'MIT'}, - conjunction: 'and', - right: { - left: {license: 'LGPL-2.1', plus: true}, - conjunction: 'and', - right: {license: 'BSD-3-Clause'} - } -}; -spdx.parse('(MIT AND (LGPL-2.1+ AND BSD-3-Clause))'); // => secondAST -``` - -Strict Whitespace Rules ------------------------ -```js -spdx.valid('MIT '); // => false -spdx.valid(' MIT'); // => false -spdx.valid('MIT AND BSD-3-Clause'); // => false -``` - -Identifier Lists ----------------- -```js -Array.isArray(spdx.licenses); // => true -spdx.licenses.indexOf('ISC') > -1; // => true -spdx.licenses.indexOf('Apache-1.7') > -1; // => false -spdx.licenses.every(function(element) { - return typeof element === 'string'; -}); // => true - -Array.isArray(spdx.exceptions); // => true -spdx.exceptions.indexOf('GCC-exception-3.1') > -1; // => true -spdx.exceptions.every(function(element) { - return typeof element === 'string'; -}); // => true -``` - -Comparison ----------- -```js -spdx.gt('GPL-3.0', 'GPL-2.0'); // => true -spdx.lt('MPL-1.0', 'MPL-2.0'); // => true - -spdx.gt('LPPL-1.3a', 'LPPL-1.0'); // => true -spdx.gt('LPPL-1.3c', 'LPPL-1.3a'); // => true -spdx.gt('MIT', 'ISC'); // => false -spdx.gt('OSL-1.0', 'OPL-1.0'); // => false -spdx.gt('AGPL-3.0', 'AGPL-1.0'); // => true - -try { - spdx.gt('(MIT OR ISC)', 'GPL-3.0'); -} catch (error) { - error.message; // => '"(MIT OR ISC)" is not a simple license identifier' -} - -spdx.satisfies('MIT', 'MIT'); // => true -spdx.satisfies('MIT', '(ISC OR MIT)'); // => true -spdx.satisfies('Zlib', '(ISC OR (MIT OR Zlib))'); // => true -spdx.satisfies('GPL-3.0', '(ISC OR MIT)'); // => false -spdx.satisfies('GPL-2.0', 'GPL-2.0+'); // => true -spdx.satisfies('GPL-3.0', 'GPL-2.0+'); // => true -spdx.satisfies('GPL-1.0', 'GPL-2.0+'); // => false - -spdx.satisfies('GPL-2.0', 'GPL-2.0+ WITH Bison-exception-2.2'); // => false -spdx.satisfies( - 'GPL-3.0 WITH Bison-exception-2.2', 'GPL-2.0+ WITH Bison-exception-2.2' -); // => true - -spdx.satisfies('(MIT OR GPL-2.0)', '(ISC OR MIT)'); // => true -spdx.satisfies('(MIT AND GPL-2.0)', '(MIT OR GPL-2.0)'); // => true -spdx.satisfies('(MIT AND GPL-2.0)', '(ISC OR GPL-2.0)'); // => false -``` - -Version Metadata ----------------- -```js -spdx.specificationVersion; // => '2.0' -spdx.implementationVersion; // => package.version -``` - -The Specification ------------------ -[The Software Package Data Exchange (SPDX) specification](http://spdx.org) is the work of the [Linux Foundation](http://www.linuxfoundation.org) and its contributors, and is licensed under the terms of [the Creative Commons Attribution License 3.0 Unported (SPDX: "CC-BY-3.0")](http://spdx.org/licenses/CC-BY-3.0). "SPDX" is a United States federally registered trademark of the Linux Foundation. diff --git a/deps/npm/node_modules/spdx/node_modules/spdx-license-ids/README.md b/deps/npm/node_modules/spdx/node_modules/spdx-license-ids/README.md deleted file mode 100755 index 7ea6092d6cb3df5636325a973fbc4db6f739caad..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/spdx/node_modules/spdx-license-ids/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# spdx-license-ids - -A list of [SPDX license](http://spdx.org/licenses/) identifiers - -[**Download JSON**](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/spdx-license-ids.json) - -## Use as a JavaScript Library - -[![NPM version](https://img.shields.io/npm/v/spdx-license-ids.svg)](https://www.npmjs.org/package/spdx-license-ids) -[![Bower version](https://img.shields.io/bower/v/spdx-license-ids.svg)](https://github.com/shinnn/spdx-license-ids/releases) -[![Build Status](https://travis-ci.org/shinnn/spdx-license-ids.svg?branch=master)](https://travis-ci.org/shinnn/spdx-license-ids) -[![Coverage Status](https://img.shields.io/coveralls/shinnn/spdx-license-ids.svg)](https://coveralls.io/r/shinnn/spdx-license-ids) -[![devDependency Status](https://david-dm.org/shinnn/spdx-license-ids/dev-status.svg)](https://david-dm.org/shinnn/spdx-license-ids#info=devDependencies) - -### Installation - -#### Package managers - -##### [npm](https://www.npmjs.com/) - -```sh -npm install spdx-license-ids -``` - -##### [bower](http://bower.io/) - -```sh -bower install spdx-license-ids -``` - -##### [Duo](http://duojs.org/) - -```javascript -var spdxLicenseIds = require('shinnn/spdx-license-ids'); -``` - -#### Standalone - -[Download the script file directly.](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/spdx-license-ids-browser.js) - -### API - -#### spdxLicenseIds - -Type: `Array` of `String` - -It returns an array of SPDX license identifiers. - -```javascript -var spdxLicenseIds = require('spdx-license-ids'); //=> ['Glide', 'Abstyles', 'AFL-1.1', ... ] -``` - -## License - -[The Unlicense](./LICENSE). diff --git a/deps/npm/node_modules/spdx/node_modules/spdx-license-ids/package.json b/deps/npm/node_modules/spdx/node_modules/spdx-license-ids/package.json deleted file mode 100644 index e6e341b111d03a20a8e892f8a15ff3d1bdc39b0e..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/spdx/node_modules/spdx-license-ids/package.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "name": "spdx-license-ids", - "version": "1.0.1", - "description": "A list of SPDX license identifiers", - "repository": { - "type": "git", - "url": "git+https://github.com/shinnn/spdx-license-ids.git" - }, - "author": { - "name": "Shinnosuke Watanabe", - "url": "https://github.com/shinnn" - }, - "scripts": { - "build": "node --harmony_arrow_functions build.js", - "lint": "eslint --config node_modules/@shinnn/eslintrc/rc.json --ignore-path .gitignore .", - "pretest": "${npm_package_scripts_build} && ${npm_package_scripts_lint}", - "test": "node --harmony_arrow_functions test.js", - "coverage": "node --harmony_arrow_functions node_modules/.bin/istanbul cover test.js", - "coveralls": "${npm_package_scripts_coverage} && istanbul-coveralls" - }, - "license": "Unlicense", - "main": "spdx-license-ids.json", - "files": [ - "spdx-license-ids.json" - ], - "keywords": [ - "spdx", - "license", - "licenses", - "id", - "identifier", - "identifiers", - "json", - "array", - "oss", - "browser", - "client-side" - ], - "devDependencies": { - "@shinnn/eslintrc": "^1.0.0", - "each-async": "^1.1.1", - "eslint": "^0.21.2", - "got": "^3.2.0", - "istanbul": "^0.3.14", - "istanbul-coveralls": "^1.0.2", - "require-bower-files": "^2.0.0", - "rm-rf": "^0.1.0", - "stringify-object": "^2.0.0", - "tape": "^4.0.0" - }, - "gitHead": "05c7466fcd62c8642006ef354c95064fcade3a03", - "bugs": { - "url": "https://github.com/shinnn/spdx-license-ids/issues" - }, - "homepage": "https://github.com/shinnn/spdx-license-ids#readme", - "_id": "spdx-license-ids@1.0.1", - "_shasum": "8f7d365fbeb056f82d21d0c0e9c1ebbd676e6af4", - "_from": "spdx-license-ids@>=1.0.0 <2.0.0", - "_npmVersion": "2.10.1", - "_nodeVersion": "2.0.2", - "_npmUser": { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - }, - "maintainers": [ - { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - } - ], - "dist": { - "shasum": "8f7d365fbeb056f82d21d0c0e9c1ebbd676e6af4", - "tarball": "http://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.0.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.0.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/spdx/node_modules/spdx-license-ids/spdx-license-ids.json b/deps/npm/node_modules/spdx/node_modules/spdx-license-ids/spdx-license-ids.json deleted file mode 100644 index 3c5bdfcd0fc2dd1344bce2edd4d9701c8beeab4b..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/spdx/node_modules/spdx-license-ids/spdx-license-ids.json +++ /dev/null @@ -1,296 +0,0 @@ -[ - "Glide", - "Abstyles", - "AFL-1.1", - "AFL-1.2", - "AFL-2.0", - "AFL-2.1", - "AFL-3.0", - "AMPAS", - "APL-1.0", - "Adobe-Glyph", - "APAFML", - "Adobe-2006", - "AGPL-1.0", - "Afmparse", - "Aladdin", - "ADSL", - "AMDPLPA", - "ANTLR-PD", - "Apache-1.0", - "Apache-1.1", - "Apache-2.0", - "AML", - "APSL-1.0", - "APSL-1.1", - "APSL-1.2", - "APSL-2.0", - "Artistic-1.0", - "Artistic-1.0-Perl", - "Artistic-1.0-cl8", - "Artistic-2.0", - "AAL", - "Bahyph", - "Barr", - "Beerware", - "BitTorrent-1.0", - "BitTorrent-1.1", - "BSL-1.0", - "Borceux", - "BSD-2-Clause", - "BSD-2-Clause-FreeBSD", - "BSD-2-Clause-NetBSD", - "BSD-3-Clause", - "BSD-3-Clause-Clear", - "BSD-4-Clause", - "BSD-Protection", - "BSD-3-Clause-Attribution", - "BSD-4-Clause-UC", - "bzip2-1.0.5", - "bzip2-1.0.6", - "Caldera", - "CECILL-1.0", - "CECILL-1.1", - "CECILL-2.0", - "CECILL-B", - "CECILL-C", - "ClArtistic", - "MIT-CMU", - "CNRI-Python", - "CNRI-Python-GPL-Compatible", - "CPOL-1.02", - "CDDL-1.0", - "CDDL-1.1", - "CPAL-1.0", - "CPL-1.0", - "CATOSL-1.1", - "Condor-1.1", - "CC-BY-1.0", - "CC-BY-2.0", - "CC-BY-2.5", - "CC-BY-3.0", - "CC-BY-4.0", - "CC-BY-ND-1.0", - "CC-BY-ND-2.0", - "CC-BY-ND-2.5", - "CC-BY-ND-3.0", - "CC-BY-ND-4.0", - "CC-BY-NC-1.0", - "CC-BY-NC-2.0", - "CC-BY-NC-2.5", - "CC-BY-NC-3.0", - "CC-BY-NC-4.0", - "CC-BY-NC-ND-1.0", - "CC-BY-NC-ND-2.0", - "CC-BY-NC-ND-2.5", - "CC-BY-NC-ND-3.0", - "CC-BY-NC-ND-4.0", - "CC-BY-NC-SA-1.0", - "CC-BY-NC-SA-2.0", - "CC-BY-NC-SA-2.5", - "CC-BY-NC-SA-3.0", - "CC-BY-NC-SA-4.0", - "CC-BY-SA-1.0", - "CC-BY-SA-2.0", - "CC-BY-SA-2.5", - "CC-BY-SA-3.0", - "CC-BY-SA-4.0", - "CC0-1.0", - "Crossword", - "CUA-OPL-1.0", - "Cube", - "D-FSL-1.0", - "diffmark", - "WTFPL", - "DOC", - "Dotseqn", - "DSDP", - "dvipdfm", - "EPL-1.0", - "ECL-1.0", - "ECL-2.0", - "eGenix", - "EFL-1.0", - "EFL-2.0", - "MIT-advertising", - "MIT-enna", - "Entessa", - "ErlPL-1.1", - "EUDatagrid", - "EUPL-1.0", - "EUPL-1.1", - "Eurosym", - "Fair", - "MIT-feh", - "Frameworx-1.0", - "FreeImage", - "FTL", - "FSFUL", - "FSFULLR", - "Giftware", - "GL2PS", - "Glulxe", - "AGPL-3.0", - "GFDL-1.1", - "GFDL-1.2", - "GFDL-1.3", - "GPL-1.0", - "GPL-2.0", - "GPL-3.0", - "LGPL-2.1", - "LGPL-3.0", - "LGPL-2.0", - "gnuplot", - "gSOAP-1.3b", - "HaskellReport", - "HPND", - "IBM-pibs", - "IPL-1.0", - "ImageMagick", - "iMatix", - "Imlib2", - "IJG", - "Intel-ACPI", - "Intel", - "IPA", - "ISC", - "JasPer-2.0", - "JSON", - "LPPL-1.3a", - "LPPL-1.0", - "LPPL-1.1", - "LPPL-1.2", - "LPPL-1.3c", - "Latex2e", - "BSD-3-Clause-LBNL", - "Leptonica", - "Libpng", - "libtiff", - "LPL-1.02", - "LPL-1.0", - "MakeIndex", - "MTLL", - "MS-PL", - "MS-RL", - "MirOS", - "MITNFA", - "MIT", - "Motosoto", - "MPL-1.0", - "MPL-1.1", - "MPL-2.0", - "MPL-2.0-no-copyleft-exception", - "mpich2", - "Multics", - "Mup", - "NASA-1.3", - "Naumen", - "NBPL-1.0", - "NetCDF", - "NGPL", - "NOSL", - "NPL-1.0", - "NPL-1.1", - "Newsletr", - "NLPL", - "Nokia", - "NPOSL-3.0", - "Noweb", - "NRL", - "NTP", - "Nunit", - "OCLC-2.0", - "ODbL-1.0", - "PDDL-1.0", - "OGTSL", - "OLDAP-2.2.2", - "OLDAP-1.1", - "OLDAP-1.2", - "OLDAP-1.3", - "OLDAP-1.4", - "OLDAP-2.0", - "OLDAP-2.0.1", - "OLDAP-2.1", - "OLDAP-2.2", - "OLDAP-2.2.1", - "OLDAP-2.3", - "OLDAP-2.4", - "OLDAP-2.5", - "OLDAP-2.6", - "OLDAP-2.7", - "OLDAP-2.8", - "OML", - "OPL-1.0", - "OSL-1.0", - "OSL-1.1", - "OSL-2.0", - "OSL-2.1", - "OSL-3.0", - "OpenSSL", - "PHP-3.0", - "PHP-3.01", - "Plexus", - "PostgreSQL", - "psfrag", - "psutils", - "Python-2.0", - "QPL-1.0", - "Qhull", - "Rdisc", - "RPSL-1.0", - "RPL-1.1", - "RPL-1.5", - "RHeCos-1.1", - "RSCPL", - "Ruby", - "SAX-PD", - "Saxpath", - "SCEA", - "SWL", - "SGI-B-1.0", - "SGI-B-1.1", - "SGI-B-2.0", - "OFL-1.0", - "OFL-1.1", - "SimPL-2.0", - "Sleepycat", - "SNIA", - "SMLNJ", - "SugarCRM-1.1.3", - "SISSL", - "SISSL-1.2", - "SPL-1.0", - "Watcom-1.0", - "TCL", - "Unlicense", - "TMate", - "TORQUE-1.1", - "TOSL", - "Unicode-TOU", - "NCSA", - "Vim", - "VOSTROM", - "VSL-1.0", - "W3C", - "W3C-19980720", - "Wsuipa", - "Xnet", - "X11", - "Xerox", - "XFree86-1.1", - "xinetd", - "xpp", - "XSkat", - "YPL-1.0", - "YPL-1.1", - "Zed", - "Zend-2.0", - "Zimbra-1.3", - "Zimbra-1.4", - "Zlib", - "zlib-acknowledgement", - "ZPL-1.1", - "ZPL-2.0", - "ZPL-2.1", - "ICU" -] diff --git a/deps/npm/node_modules/spdx/package.json b/deps/npm/node_modules/spdx/package.json deleted file mode 100644 index d1601c60119e8268a0ac8891a3edf5e590d2605d..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/spdx/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "spdx", - "description": "SPDX License Expression Syntax parser", - "version": "0.4.1", - "author": { - "name": "Kyle E. Mitchell", - "email": "kyle@kemitchell.com", - "url": "http://kemitchell.com" - }, - "bugs": { - "url": "https://github.com/kemitchell/spdx.js/issues" - }, - "dependencies": { - "spdx-license-ids": "^1.0.0" - }, - "devDependencies": { - "docco": "^0.7.0", - "fixpack": "^2.2.0", - "jison": "^0.4.15", - "jscs": "^1.12.0", - "jshint": "^2.7.0", - "jsmd": "^0.3.0" - }, - "homepage": "https://github.com/kemitchell/spdx.js", - "keywords": [ - "SPDX", - "law", - "legal", - "license", - "metadata", - "package", - "package.json", - "standards" - ], - "license": "Apache-2.0", - "main": "source/spdx.js", - "repository": { - "type": "git", - "url": "git+https://github.com/kemitchell/spdx.js.git" - }, - "scripts": { - "build": "node build/parser.js > source/parser.generated.js", - "doc": "docco --output documentation source/spdx.js", - "lint": "fixpack && jshint build source/spdx.js && jscs build source/spdx.js", - "precommit": "npm run lint && npm run test", - "prepublish": "npm run build", - "pretest": "npm run build", - "test": "jsmd README.md" - }, - "gitHead": "e98233f7ebfa27ceec7d9f9bd77d7eb003ca3210", - "_id": "spdx@0.4.1", - "_shasum": "eb43a2d83483e7073d24184b5ca0d00f33e184ff", - "_from": "spdx@>=0.4.0 <0.5.0", - "_npmVersion": "2.11.0", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - }, - "maintainers": [ - { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - } - ], - "dist": { - "shasum": "eb43a2d83483e7073d24184b5ca0d00f33e184ff", - "tarball": "http://registry.npmjs.org/spdx/-/spdx-0.4.1.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/spdx/-/spdx-0.4.1.tgz", - "readme": "ERROR: No README data found!" -} diff --git a/deps/npm/node_modules/spdx/source/exceptions.json b/deps/npm/node_modules/spdx/source/exceptions.json deleted file mode 100644 index d588a1af7e11f86332c232468e7f9046f7f3e897..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/spdx/source/exceptions.json +++ /dev/null @@ -1,11 +0,0 @@ -[ - "Autoconf-exception-2.0", - "Autoconf-exception-3.0", - "Bison-exception-2.2", - "Classpath-exception-2.0", - "eCos-exception-2.0", - "Font-exception-2.0", - "GCC-exception-2.0", - "GCC-exception-3.1", - "WxWindows-exception-3.1" -] diff --git a/deps/npm/node_modules/spdx/source/parser.generated.js b/deps/npm/node_modules/spdx/source/parser.generated.js deleted file mode 100644 index 380609339cd77af5a55bdee0510ad2b10b521cc0..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/spdx/source/parser.generated.js +++ /dev/null @@ -1,1255 +0,0 @@ -/* parser generated by jison 0.4.15 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var spdxparse = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,5],$V1=[1,6],$V2=[1,7],$V3=[1,4],$V4=[1,9],$V5=[1,10],$V6=[5,14,15,17],$V7=[5,12,14,15,17]; -var parser = {trace: function trace() { }, -yy: {}, -symbols_: {"error":2,"start":3,"expression":4,"EOS":5,"simpleExpression":6,"LICENSE":7,"PLUS":8,"LICENSEREF":9,"DOCUMENTREF":10,"COLON":11,"WITH":12,"EXCEPTION":13,"AND":14,"OR":15,"OPEN":16,"CLOSE":17,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOS",7:"LICENSE",8:"PLUS",9:"LICENSEREF",10:"DOCUMENTREF",11:"COLON",12:"WITH",13:"EXCEPTION",14:"AND",15:"OR",16:"OPEN",17:"CLOSE"}, -productions_: [0,[3,2],[6,1],[6,2],[6,1],[6,3],[4,1],[4,3],[4,3],[4,3],[4,3]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 1: -return this.$ = $$[$0-1]; -break; -case 2: case 4: case 5: -this.$ = { license: yytext }; -break; -case 3: -this.$ = { license: $$[$0-1], plus: true }; -break; -case 6: -this.$ = $$[$0]; -break; -case 7: -this.$ = { exception: $$[$0] }; -this.$.license = $$[$0-2].license; -if ($$[$0-2].hasOwnProperty('plus')) { - this.$.plus = $$[$0-2].plus; -} -break; -case 8: -this.$ = { conjunction: 'and', left: $$[$0-2], right: $$[$0] }; -break; -case 9: -this.$ = { conjunction: 'or', left: $$[$0-2], right: $$[$0] }; -break; -case 10: -this.$ = $$[$0-1] -break; -} -}, -table: [{3:1,4:2,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{1:[3]},{5:[1,8],14:$V4,15:$V5},o($V6,[2,6],{12:[1,11]}),{4:12,6:3,7:$V0,9:$V1,10:$V2,16:$V3},o($V7,[2,2],{8:[1,13]}),o($V7,[2,4]),{11:[1,14]},{1:[2,1]},{4:15,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{4:16,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{13:[1,17]},{14:$V4,15:$V5,17:[1,18]},o($V7,[2,3]),{9:[1,19]},o($V6,[2,8]),o([5,15,17],[2,9],{14:$V4}),o($V6,[2,7]),o($V6,[2,10]),o($V7,[2,5])], -defaultActions: {8:[2,1]}, -parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - throw new Error(str); - } -}, -parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - var ranges = lexer.options && lexer.options.ranges; - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - _token_stack: - function lex() { - var token; - token = lexer.lex() || EOF; - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; -}}; -/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState(condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0:return 5; -break; -case 1:/* skip whitespace */ -break; -case 2:return 8; -break; -case 3:return 16; -break; -case 4:return 17; -break; -case 5:return 11; -break; -case 6:return 10; -break; -case 7:return 9; -break; -case 8:return 14; -break; -case 9:return 15; -break; -case 10:return 12; -break; -case 11:return 7; -break; -case 12:return 7; -break; -case 13:return 7; -break; -case 14:return 7; -break; -case 15:return 7; -break; -case 16:return 7; -break; -case 17:return 7; -break; -case 18:return 7; -break; -case 19:return 7; -break; -case 20:return 7; -break; -case 21:return 7; -break; -case 22:return 7; -break; -case 23:return 7; -break; -case 24:return 7; -break; -case 25:return 7; -break; -case 26:return 7; -break; -case 27:return 7; -break; -case 28:return 7; -break; -case 29:return 7; -break; -case 30:return 7; -break; -case 31:return 7; -break; -case 32:return 7; -break; -case 33:return 7; -break; -case 34:return 7; -break; -case 35:return 7; -break; -case 36:return 7; -break; -case 37:return 7; -break; -case 38:return 7; -break; -case 39:return 7; -break; -case 40:return 7; -break; -case 41:return 7; -break; -case 42:return 7; -break; -case 43:return 7; -break; -case 44:return 7; -break; -case 45:return 7; -break; -case 46:return 7; -break; -case 47:return 7; -break; -case 48:return 7; -break; -case 49:return 7; -break; -case 50:return 7; -break; -case 51:return 7; -break; -case 52:return 7; -break; -case 53:return 7; -break; -case 54:return 7; -break; -case 55:return 7; -break; -case 56:return 7; -break; -case 57:return 7; -break; -case 58:return 7; -break; -case 59:return 7; -break; -case 60:return 7; -break; -case 61:return 7; -break; -case 62:return 7; -break; -case 63:return 7; -break; -case 64:return 7; -break; -case 65:return 7; -break; -case 66:return 7; -break; -case 67:return 7; -break; -case 68:return 7; -break; -case 69:return 7; -break; -case 70:return 7; -break; -case 71:return 7; -break; -case 72:return 7; -break; -case 73:return 7; -break; -case 74:return 7; -break; -case 75:return 7; -break; -case 76:return 7; -break; -case 77:return 7; -break; -case 78:return 7; -break; -case 79:return 7; -break; -case 80:return 7; -break; -case 81:return 7; -break; -case 82:return 7; -break; -case 83:return 7; -break; -case 84:return 7; -break; -case 85:return 7; -break; -case 86:return 7; -break; -case 87:return 7; -break; -case 88:return 7; -break; -case 89:return 7; -break; -case 90:return 7; -break; -case 91:return 7; -break; -case 92:return 7; -break; -case 93:return 7; -break; -case 94:return 7; -break; -case 95:return 7; -break; -case 96:return 7; -break; -case 97:return 7; -break; -case 98:return 7; -break; -case 99:return 7; -break; -case 100:return 7; -break; -case 101:return 7; -break; -case 102:return 7; -break; -case 103:return 7; -break; -case 104:return 7; -break; -case 105:return 7; -break; -case 106:return 7; -break; -case 107:return 7; -break; -case 108:return 7; -break; -case 109:return 7; -break; -case 110:return 7; -break; -case 111:return 7; -break; -case 112:return 7; -break; -case 113:return 7; -break; -case 114:return 7; -break; -case 115:return 7; -break; -case 116:return 7; -break; -case 117:return 7; -break; -case 118:return 7; -break; -case 119:return 7; -break; -case 120:return 7; -break; -case 121:return 7; -break; -case 122:return 7; -break; -case 123:return 7; -break; -case 124:return 7; -break; -case 125:return 7; -break; -case 126:return 7; -break; -case 127:return 7; -break; -case 128:return 7; -break; -case 129:return 7; -break; -case 130:return 7; -break; -case 131:return 7; -break; -case 132:return 7; -break; -case 133:return 7; -break; -case 134:return 7; -break; -case 135:return 7; -break; -case 136:return 7; -break; -case 137:return 7; -break; -case 138:return 7; -break; -case 139:return 7; -break; -case 140:return 7; -break; -case 141:return 7; -break; -case 142:return 7; -break; -case 143:return 7; -break; -case 144:return 7; -break; -case 145:return 7; -break; -case 146:return 7; -break; -case 147:return 7; -break; -case 148:return 7; -break; -case 149:return 7; -break; -case 150:return 7; -break; -case 151:return 7; -break; -case 152:return 7; -break; -case 153:return 7; -break; -case 154:return 7; -break; -case 155:return 7; -break; -case 156:return 7; -break; -case 157:return 7; -break; -case 158:return 7; -break; -case 159:return 7; -break; -case 160:return 7; -break; -case 161:return 7; -break; -case 162:return 7; -break; -case 163:return 7; -break; -case 164:return 7; -break; -case 165:return 7; -break; -case 166:return 7; -break; -case 167:return 7; -break; -case 168:return 7; -break; -case 169:return 7; -break; -case 170:return 7; -break; -case 171:return 7; -break; -case 172:return 7; -break; -case 173:return 7; -break; -case 174:return 7; -break; -case 175:return 7; -break; -case 176:return 7; -break; -case 177:return 7; -break; -case 178:return 7; -break; -case 179:return 7; -break; -case 180:return 7; -break; -case 181:return 7; -break; -case 182:return 7; -break; -case 183:return 7; -break; -case 184:return 7; -break; -case 185:return 7; -break; -case 186:return 7; -break; -case 187:return 7; -break; -case 188:return 7; -break; -case 189:return 7; -break; -case 190:return 7; -break; -case 191:return 7; -break; -case 192:return 7; -break; -case 193:return 7; -break; -case 194:return 7; -break; -case 195:return 7; -break; -case 196:return 7; -break; -case 197:return 7; -break; -case 198:return 7; -break; -case 199:return 7; -break; -case 200:return 7; -break; -case 201:return 7; -break; -case 202:return 7; -break; -case 203:return 7; -break; -case 204:return 7; -break; -case 205:return 7; -break; -case 206:return 7; -break; -case 207:return 7; -break; -case 208:return 7; -break; -case 209:return 7; -break; -case 210:return 7; -break; -case 211:return 7; -break; -case 212:return 7; -break; -case 213:return 7; -break; -case 214:return 7; -break; -case 215:return 7; -break; -case 216:return 7; -break; -case 217:return 7; -break; -case 218:return 7; -break; -case 219:return 7; -break; -case 220:return 7; -break; -case 221:return 7; -break; -case 222:return 7; -break; -case 223:return 7; -break; -case 224:return 7; -break; -case 225:return 7; -break; -case 226:return 7; -break; -case 227:return 7; -break; -case 228:return 7; -break; -case 229:return 7; -break; -case 230:return 7; -break; -case 231:return 7; -break; -case 232:return 7; -break; -case 233:return 7; -break; -case 234:return 7; -break; -case 235:return 7; -break; -case 236:return 7; -break; -case 237:return 7; -break; -case 238:return 7; -break; -case 239:return 7; -break; -case 240:return 7; -break; -case 241:return 7; -break; -case 242:return 7; -break; -case 243:return 7; -break; -case 244:return 7; -break; -case 245:return 7; -break; -case 246:return 7; -break; -case 247:return 7; -break; -case 248:return 7; -break; -case 249:return 7; -break; -case 250:return 7; -break; -case 251:return 7; -break; -case 252:return 7; -break; -case 253:return 7; -break; -case 254:return 7; -break; -case 255:return 7; -break; -case 256:return 7; -break; -case 257:return 7; -break; -case 258:return 7; -break; -case 259:return 7; -break; -case 260:return 7; -break; -case 261:return 7; -break; -case 262:return 7; -break; -case 263:return 7; -break; -case 264:return 7; -break; -case 265:return 7; -break; -case 266:return 7; -break; -case 267:return 7; -break; -case 268:return 7; -break; -case 269:return 7; -break; -case 270:return 7; -break; -case 271:return 7; -break; -case 272:return 7; -break; -case 273:return 7; -break; -case 274:return 7; -break; -case 275:return 7; -break; -case 276:return 7; -break; -case 277:return 7; -break; -case 278:return 7; -break; -case 279:return 7; -break; -case 280:return 7; -break; -case 281:return 7; -break; -case 282:return 7; -break; -case 283:return 7; -break; -case 284:return 7; -break; -case 285:return 7; -break; -case 286:return 7; -break; -case 287:return 7; -break; -case 288:return 7; -break; -case 289:return 7; -break; -case 290:return 7; -break; -case 291:return 7; -break; -case 292:return 7; -break; -case 293:return 7; -break; -case 294:return 7; -break; -case 295:return 7; -break; -case 296:return 7; -break; -case 297:return 7; -break; -case 298:return 7; -break; -case 299:return 7; -break; -case 300:return 7; -break; -case 301:return 7; -break; -case 302:return 7; -break; -case 303:return 7; -break; -case 304:return 7; -break; -case 305:return 7; -break; -case 306:return 7; -break; -case 307:return 7; -break; -case 308:return 13; -break; -case 309:return 13; -break; -case 310:return 13; -break; -case 311:return 13; -break; -case 312:return 13; -break; -case 313:return 13; -break; -case 314:return 13; -break; -case 315:return 13; -break; -case 316:return 13; -break; -} -}, -rules: [/^(?:$)/,/^(?:\s+)/,/^(?:\+)/,/^(?:\()/,/^(?:\))/,/^(?::)/,/^(?:DocumentRef-([0-9A-Za-z-+.]+))/,/^(?:LicenseRef-([0-9A-Za-z-+.]+))/,/^(?:AND)/,/^(?:OR)/,/^(?:WITH)/,/^(?:Glide)/,/^(?:Abstyles)/,/^(?:AFL-1.1)/,/^(?:AFL-1.2)/,/^(?:AFL-2.0)/,/^(?:AFL-2.1)/,/^(?:AFL-3.0)/,/^(?:AMPAS)/,/^(?:APL-1.0)/,/^(?:Adobe-Glyph)/,/^(?:APAFML)/,/^(?:Adobe-2006)/,/^(?:AGPL-1.0)/,/^(?:Afmparse)/,/^(?:Aladdin)/,/^(?:ADSL)/,/^(?:AMDPLPA)/,/^(?:ANTLR-PD)/,/^(?:Apache-1.0)/,/^(?:Apache-1.1)/,/^(?:Apache-2.0)/,/^(?:AML)/,/^(?:APSL-1.0)/,/^(?:APSL-1.1)/,/^(?:APSL-1.2)/,/^(?:APSL-2.0)/,/^(?:Artistic-1.0)/,/^(?:Artistic-1.0-Perl)/,/^(?:Artistic-1.0-cl8)/,/^(?:Artistic-2.0)/,/^(?:AAL)/,/^(?:Bahyph)/,/^(?:Barr)/,/^(?:Beerware)/,/^(?:BitTorrent-1.0)/,/^(?:BitTorrent-1.1)/,/^(?:BSL-1.0)/,/^(?:Borceux)/,/^(?:BSD-2-Clause)/,/^(?:BSD-2-Clause-FreeBSD)/,/^(?:BSD-2-Clause-NetBSD)/,/^(?:BSD-3-Clause)/,/^(?:BSD-3-Clause-Clear)/,/^(?:BSD-4-Clause)/,/^(?:BSD-Protection)/,/^(?:BSD-3-Clause-Attribution)/,/^(?:BSD-4-Clause-UC)/,/^(?:bzip2-1.0.5)/,/^(?:bzip2-1.0.6)/,/^(?:Caldera)/,/^(?:CECILL-1.0)/,/^(?:CECILL-1.1)/,/^(?:CECILL-2.0)/,/^(?:CECILL-B)/,/^(?:CECILL-C)/,/^(?:ClArtistic)/,/^(?:MIT-CMU)/,/^(?:CNRI-Jython)/,/^(?:CNRI-Python)/,/^(?:CNRI-Python-GPL-Compatible)/,/^(?:CPOL-1.02)/,/^(?:CDDL-1.0)/,/^(?:CDDL-1.1)/,/^(?:CPAL-1.0)/,/^(?:CPL-1.0)/,/^(?:CATOSL-1.1)/,/^(?:Condor-1.1)/,/^(?:CC-BY-1.0)/,/^(?:CC-BY-2.0)/,/^(?:CC-BY-2.5)/,/^(?:CC-BY-3.0)/,/^(?:CC-BY-4.0)/,/^(?:CC-BY-ND-1.0)/,/^(?:CC-BY-ND-2.0)/,/^(?:CC-BY-ND-2.5)/,/^(?:CC-BY-ND-3.0)/,/^(?:CC-BY-ND-4.0)/,/^(?:CC-BY-NC-1.0)/,/^(?:CC-BY-NC-2.0)/,/^(?:CC-BY-NC-2.5)/,/^(?:CC-BY-NC-3.0)/,/^(?:CC-BY-NC-4.0)/,/^(?:CC-BY-NC-ND-1.0)/,/^(?:CC-BY-NC-ND-2.0)/,/^(?:CC-BY-NC-ND-2.5)/,/^(?:CC-BY-NC-ND-3.0)/,/^(?:CC-BY-NC-ND-4.0)/,/^(?:CC-BY-NC-SA-1.0)/,/^(?:CC-BY-NC-SA-2.0)/,/^(?:CC-BY-NC-SA-2.5)/,/^(?:CC-BY-NC-SA-3.0)/,/^(?:CC-BY-NC-SA-4.0)/,/^(?:CC-BY-SA-1.0)/,/^(?:CC-BY-SA-2.0)/,/^(?:CC-BY-SA-2.5)/,/^(?:CC-BY-SA-3.0)/,/^(?:CC-BY-SA-4.0)/,/^(?:CC0-1.0)/,/^(?:Crossword)/,/^(?:CUA-OPL-1.0)/,/^(?:Cube)/,/^(?:D-FSL-1.0)/,/^(?:diffmark)/,/^(?:WTFPL)/,/^(?:DOC)/,/^(?:Dotseqn)/,/^(?:DSDP)/,/^(?:dvipdfm)/,/^(?:EPL-1.0)/,/^(?:ECL-1.0)/,/^(?:ECL-2.0)/,/^(?:eGenix)/,/^(?:EFL-1.0)/,/^(?:EFL-2.0)/,/^(?:MIT-advertising)/,/^(?:MIT-enna)/,/^(?:Entessa)/,/^(?:ErlPL-1.1)/,/^(?:EUDatagrid)/,/^(?:EUPL-1.0)/,/^(?:EUPL-1.1)/,/^(?:Eurosym)/,/^(?:Fair)/,/^(?:MIT-feh)/,/^(?:Frameworx-1.0)/,/^(?:FreeImage)/,/^(?:FTL)/,/^(?:FSFUL)/,/^(?:FSFULLR)/,/^(?:Giftware)/,/^(?:GL2PS)/,/^(?:Glulxe)/,/^(?:AGPL-3.0)/,/^(?:GFDL-1.1)/,/^(?:GFDL-1.2)/,/^(?:GFDL-1.3)/,/^(?:GPL-1.0)/,/^(?:GPL-2.0)/,/^(?:GPL-3.0)/,/^(?:LGPL-2.1)/,/^(?:LGPL-3.0)/,/^(?:LGPL-2.0)/,/^(?:gnuplot)/,/^(?:gSOAP-1.3b)/,/^(?:HaskellReport)/,/^(?:HPND)/,/^(?:IBM-pibs)/,/^(?:IPL-1.0)/,/^(?:ICU)/,/^(?:ImageMagick)/,/^(?:iMatix)/,/^(?:Imlib2)/,/^(?:IJG)/,/^(?:Intel-ACPI)/,/^(?:Intel)/,/^(?:IPA)/,/^(?:ISC)/,/^(?:JasPer-2.0)/,/^(?:JSON)/,/^(?:LPPL-1.3a)/,/^(?:LPPL-1.0)/,/^(?:LPPL-1.1)/,/^(?:LPPL-1.2)/,/^(?:LPPL-1.3c)/,/^(?:Latex2e)/,/^(?:BSD-3-Clause-LBNL)/,/^(?:Leptonica)/,/^(?:Libpng)/,/^(?:libtiff)/,/^(?:LPL-1.02)/,/^(?:LPL-1.0)/,/^(?:MakeIndex)/,/^(?:MTLL)/,/^(?:MS-PL)/,/^(?:MS-RL)/,/^(?:MirOS)/,/^(?:MITNFA)/,/^(?:MIT)/,/^(?:Motosoto)/,/^(?:MPL-1.0)/,/^(?:MPL-1.1)/,/^(?:MPL-2.0)/,/^(?:MPL-2.0-no-copyleft-exception)/,/^(?:mpich2)/,/^(?:Multics)/,/^(?:Mup)/,/^(?:NASA-1.3)/,/^(?:Naumen)/,/^(?:NBPL-1.0)/,/^(?:NetCDF)/,/^(?:NGPL)/,/^(?:NOSL)/,/^(?:NPL-1.0)/,/^(?:NPL-1.1)/,/^(?:Newsletr)/,/^(?:NLPL)/,/^(?:Nokia)/,/^(?:NPOSL-3.0)/,/^(?:Noweb)/,/^(?:NRL)/,/^(?:NTP)/,/^(?:Nunit)/,/^(?:OCLC-2.0)/,/^(?:ODbL-1.0)/,/^(?:PDDL-1.0)/,/^(?:OGTSL)/,/^(?:OLDAP-2.2.2)/,/^(?:OLDAP-1.1)/,/^(?:OLDAP-1.2)/,/^(?:OLDAP-1.3)/,/^(?:OLDAP-1.4)/,/^(?:OLDAP-2.0)/,/^(?:OLDAP-2.0.1)/,/^(?:OLDAP-2.1)/,/^(?:OLDAP-2.2)/,/^(?:OLDAP-2.2.1)/,/^(?:OLDAP-2.3)/,/^(?:OLDAP-2.4)/,/^(?:OLDAP-2.5)/,/^(?:OLDAP-2.6)/,/^(?:OLDAP-2.7)/,/^(?:OLDAP-2.8)/,/^(?:OML)/,/^(?:OPL-1.0)/,/^(?:OSL-1.0)/,/^(?:OSL-1.1)/,/^(?:OSL-2.0)/,/^(?:OSL-2.1)/,/^(?:OSL-3.0)/,/^(?:OpenSSL)/,/^(?:PHP-3.0)/,/^(?:PHP-3.01)/,/^(?:Plexus)/,/^(?:PostgreSQL)/,/^(?:psfrag)/,/^(?:psutils)/,/^(?:Python-2.0)/,/^(?:QPL-1.0)/,/^(?:Qhull)/,/^(?:Rdisc)/,/^(?:RPSL-1.0)/,/^(?:RPL-1.1)/,/^(?:RPL-1.5)/,/^(?:RHeCos-1.1)/,/^(?:RSCPL)/,/^(?:RSA-MD)/,/^(?:Ruby)/,/^(?:SAX-PD)/,/^(?:Saxpath)/,/^(?:SCEA)/,/^(?:SWL)/,/^(?:SGI-B-1.0)/,/^(?:SGI-B-1.1)/,/^(?:SGI-B-2.0)/,/^(?:OFL-1.0)/,/^(?:OFL-1.1)/,/^(?:SimPL-2.0)/,/^(?:Sleepycat)/,/^(?:SNIA)/,/^(?:SMLNJ)/,/^(?:SugarCRM-1.1.3)/,/^(?:SISSL)/,/^(?:SISSL-1.2)/,/^(?:SPL-1.0)/,/^(?:Watcom-1.0)/,/^(?:TCL)/,/^(?:Unlicense)/,/^(?:TMate)/,/^(?:TORQUE-1.1)/,/^(?:TOSL)/,/^(?:Unicode-TOU)/,/^(?:UPL-1.0)/,/^(?:NCSA)/,/^(?:Vim)/,/^(?:VOSTROM)/,/^(?:VSL-1.0)/,/^(?:W3C-19980720)/,/^(?:W3C)/,/^(?:Wsuipa)/,/^(?:Xnet)/,/^(?:X11)/,/^(?:Xerox)/,/^(?:XFree86-1.1)/,/^(?:xinetd)/,/^(?:xpp)/,/^(?:XSkat)/,/^(?:YPL-1.0)/,/^(?:YPL-1.1)/,/^(?:Zed)/,/^(?:Zend-2.0)/,/^(?:Zimbra-1.3)/,/^(?:Zimbra-1.4)/,/^(?:Zlib)/,/^(?:zlib-acknowledgement)/,/^(?:ZPL-1.1)/,/^(?:ZPL-2.0)/,/^(?:ZPL-2.1)/,/^(?:Autoconf-exception-2.0)/,/^(?:Autoconf-exception-3.0)/,/^(?:Bison-exception-2.2)/,/^(?:Classpath-exception-2.0)/,/^(?:eCos-exception-2.0)/,/^(?:Font-exception-2.0)/,/^(?:GCC-exception-2.0)/,/^(?:GCC-exception-3.1)/,/^(?:WxWindows-exception-3.1)/], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); - - -if (typeof require !== 'undefined' && typeof exports !== 'undefined') { -exports.parser = spdxparse; -exports.Parser = spdxparse.Parser; -exports.parse = function () { return spdxparse.parse.apply(spdxparse, arguments); }; -exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: '+args[0]+' FILE'); - process.exit(1); - } - var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); - return exports.parser.parse(source); -}; -if (typeof module !== 'undefined' && require.main === module) { - exports.main(process.argv.slice(1)); -} -} diff --git a/deps/npm/node_modules/spdx/source/ranges.json b/deps/npm/node_modules/spdx/source/ranges.json deleted file mode 100644 index 1f3c52b3e194dd37bdcd5908e7697bb2a0cdc661..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/spdx/source/ranges.json +++ /dev/null @@ -1,194 +0,0 @@ -[ - [ - "AFL-1.1", - "AFL-1.2", - "AFL-2.0", - "AFL-2.1", - "AFL-3.0" - ], - [ - "AGPL-1.0", - "AGPL-3.0" - ], - [ - "Apache-1.0", - "Apache-1.1", - "Apache-2.0" - ], - [ - "APSL-1.0", - "APSL-1.1", - "APSL-1.2", - "APSL-2.0" - ], - [ - "Artistic-1.0", - "Artistic-2.0" - ], - [ - "BitTorrent-1.0", - "BitTorrent-1.1" - ], - [ - "CC-BY-1.0", - "CC-BY-2.0", - "CC-BY-2.5", - "CC-BY-3.0", - "CC-BY-4.0" - ], - [ - "CC-BY-NC-1.0", - "CC-BY-NC-2.0", - "CC-BY-NC-2.5", - "CC-BY-NC-3.0", - "CC-BY-NC-4.0" - ], - [ - "CC-BY-NC-ND-1.0", - "CC-BY-NC-ND-2.0", - "CC-BY-NC-ND-2.5", - "CC-BY-NC-ND-3.0", - "CC-BY-NC-ND-4.0" - ], - [ - "CC-BY-NC-SA-1.0", - "CC-BY-NC-SA-2.0", - "CC-BY-NC-SA-2.5", - "CC-BY-NC-SA-3.0", - "CC-BY-NC-SA-4.0" - ], - [ - "CC-BY-ND-1.0", - "CC-BY-ND-2.0", - "CC-BY-ND-2.5", - "CC-BY-ND-3.0", - "CC-BY-ND-4.0" - ], - [ - "CC-BY-SA-1.0", - "CC-BY-SA-2.0", - "CC-BY-SA-2.5", - "CC-BY-SA-3.0", - "CC-BY-SA-4.0" - ], - [ - "CDDL-1.0", - "CDDL-1.1" - ], - [ - "CECILL-1.0", - "CECILL-1.1", - "CECILL-2.0" - ], - [ - "ECL-1.0", - "ECL-2.0" - ], - [ - "EFL-1.0", - "EFL-2.0" - ], - [ - "EUPL-1.0", - "EUPL-1.1" - ], - [ - "GFDL-1.1", - "GFDL-1.2", - "GFDL-1.3" - ], - [ - "GPL-1.0", - "GPL-2.0", - "GPL-3.0" - ], - [ - "LGPL-2.0", - "LGPL-2.1", - "LGPL-3.0" - ], - [ - "LPL-1.0", - "LPL-1.02" - ], - [ - "LPPL-1.0", - "LPPL-1.1", - "LPPL-1.2", - "LPPL-1.3a", - "LPPL-1.3c" - ], - [ - "MPL-1.0", - "MPL-1.1", - "MPL-2.0" - ], - [ - "MPL-1.0", - "MPL-1.1", - "MPL-2.0-no-copyleft-exception" - ], - [ - "NPL-1.0", - "NPL-1.1" - ], - [ - "OFL-1.0", - "OFL-1.1" - ], - [ - "OLDAP-1.1", - "OLDAP-1.2", - "OLDAP-1.3", - "OLDAP-1.4", - "OLDAP-2.0", - "OLDAP-2.0.1", - "OLDAP-2.1", - "OLDAP-2.2", - "OLDAP-2.2.1", - "OLDAP-2.2.2", - "OLDAP-2.3", - "OLDAP-2.4", - "OLDAP-2.5", - "OLDAP-2.6", - "OLDAP-2.7", - "OLDAP-2.8" - ], - [ - "OSL-1.0", - "OSL-1.1", - "OSL-2.0", - "OSL-2.1", - "OSL-3.0" - ], - [ - "PHP-3.0", - "PHP-3.01" - ], - [ - "RPL-1.1", - "RPL-1.5" - ], - [ - "SGI-B-1.0", - "SGI-B-1.1", - "SGI-B-2.0" - ], - [ - "YPL-1.0", - "YPL-1.1" - ], - [ - "ZPL-1.1", - "ZPL-2.0", - "ZPL-2.1" - ], - [ - "Zimbra-1.3", - "Zimbra-1.4" - ], - [ - "bzip2-1.0.5", - "bzip2-1.0.6" - ] -] diff --git a/deps/npm/node_modules/spdx/source/spdx.js b/deps/npm/node_modules/spdx/source/spdx.js deleted file mode 100644 index 5aece3d5437511a9b347817ee081027f21fad18a..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/spdx/source/spdx.js +++ /dev/null @@ -1,161 +0,0 @@ -// spdx.js -// ======= -// SPDX License Expression Syntax parser - -// Validation -// ---------- - -// Require the generated parser. -var parser = require('./parser.generated.js').parser; - -exports.parse = function(argument) { - return parser.parse(argument); -}; - -var containsRepeatedSpace = /\s{2,}/; - -exports.valid = function(argument) { - if ( - argument.trim() !== argument || - containsRepeatedSpace.test(argument) - ) { - return false; - } - try { - parser.parse(argument); - return true; - } catch (e) { - // jison generates parsers that throw errors, while this function - // mimics `semver.valid` by returning null. - return null; - } -}; - -// Comparison -// ---------- - -var ranges = require('./ranges.json'); - -var notALicenseIdentifier = ' is not a simple license identifier'; - -var rangeComparison = function(comparison) { - return function(first, second) { - var firstAST = exports.parse(first); - if (!firstAST.hasOwnProperty('license')) { - throw new Error('"' + first + '"' + notALicenseIdentifier); - } - var secondAST = exports.parse(second); - if (!secondAST.hasOwnProperty('license')) { - throw new Error('"' + second + '"' + notALicenseIdentifier); - } - return ranges.some(function(range) { - var indexOfFirst = range.indexOf(firstAST.license); - if (indexOfFirst < 0) { - return false; - } - var indexOfSecond = range.indexOf(secondAST.license); - if (indexOfSecond < 0) { - return false; - } - return comparison(indexOfFirst, indexOfSecond); - }); - }; -}; - -exports.gt = rangeComparison(function(first, second) { - return first > second; -}); - -exports.lt = rangeComparison(function(first, second) { - return first < second; -}); - -exports.satisfies = (function() { - var rangesAreCompatible = function(first, second) { - return ( - first.license === second.license || - ranges.some(function(range) { - return ( - range.indexOf(first.license) > -1 && - range.indexOf(second.license) - ); - }) - ); - }; - - var identifierInRange = function(identifier, range) { - return ( - identifier.license === range.license || - exports.gt(identifier.license, range.license) - ); - }; - - var licensesAreCompatible = function(first, second) { - if (first.exception !== second.exception) { - return false; - } else if (second.hasOwnProperty('license')) { - if (second.hasOwnProperty('plus')) { - if (first.hasOwnProperty('plus')) { - // first+, second+ - return rangesAreCompatible(first, second); - } else { - // first, second+ - return identifierInRange(first, second); - } - } else { - if (first.hasOwnProperty('plus')) { - // first+, second - return identifierInRange(second, first); - } else { - // first, second - return first.license === second.license; - } - } - } - }; - - var recurseLeftAndRight = function(first, second) { - var firstConjunction = first.conjunction; - if (firstConjunction === 'and') { - return ( - recurse(first.left, second) && - recurse(first.right, second) - ); - } else if (firstConjunction === 'or') { - return ( - recurse(first.left, second) || - recurse(first.right, second) - ); - } - }; - - var recurse = function(first, second) { - if (first.hasOwnProperty('conjunction')) { - return recurseLeftAndRight(first, second); - } else if (second.hasOwnProperty('conjunction')) { - return recurseLeftAndRight(second, first); - } else { - return licensesAreCompatible(first, second); - } - }; - - return function(first, second) { - return recurse(parser.parse(first), parser.parse(second)); - }; -})(); - -// Reference Data -// -------------- - -// Require the same license and exception data used by the parser. -exports.licenses = require('spdx-license-ids'); -exports.exceptions = require('./exceptions.json'); - -// Version Metadata -// ---------------- - -// The License Expression Syntax version -exports.specificationVersion = '2.0'; - -// This module's semantic version -exports.implementationVersion = '0.4.1'; diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/deps/npm/node_modules/string_decoder/.npmignore similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/.npmignore rename to deps/npm/node_modules/string_decoder/.npmignore diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/deps/npm/node_modules/string_decoder/LICENSE similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/LICENSE rename to deps/npm/node_modules/string_decoder/LICENSE diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/README.md b/deps/npm/node_modules/string_decoder/README.md similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/README.md rename to deps/npm/node_modules/string_decoder/README.md diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/index.js b/deps/npm/node_modules/string_decoder/index.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/index.js rename to deps/npm/node_modules/string_decoder/index.js diff --git a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/package.json b/deps/npm/node_modules/string_decoder/package.json similarity index 61% rename from deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/package.json rename to deps/npm/node_modules/string_decoder/package.json index 0364d54ba46af640f28c1cb181ba3f6c6b223c67..10772c834f78c2e7283d6876ba45c2208e77eb7f 100644 --- a/deps/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/package.json +++ b/deps/npm/node_modules/string_decoder/package.json @@ -1,39 +1,61 @@ { - "name": "string_decoder", - "version": "0.10.31", - "description": "The string_decoder module from Node core", - "main": "index.js", + "_args": [ + [ + "string_decoder@~0.10.x", + "/Users/rebecca/code/npm/node_modules/readable-stream" + ] + ], + "_from": "string_decoder@>=0.10.0 <0.11.0", + "_id": "string_decoder@0.10.31", + "_inCache": true, + "_location": "/string_decoder", + "_npmUser": { + "email": "rod@vagg.org", + "name": "rvagg" + }, + "_npmVersion": "1.4.23", + "_phantomChildren": {}, + "_requested": { + "name": "string_decoder", + "raw": "string_decoder@~0.10.x", + "rawSpec": "~0.10.x", + "scope": null, + "spec": ">=0.10.0 <0.11.0", + "type": "range" + }, + "_requiredBy": [ + "/bl/readable-stream", + "/concat-stream/readable-stream", + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "_shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", + "_shrinkwrap": null, + "_spec": "string_decoder@~0.10.x", + "_where": "/Users/rebecca/code/npm/node_modules/readable-stream", + "bugs": { + "url": "https://github.com/rvagg/string_decoder/issues" + }, "dependencies": {}, + "description": "The string_decoder module from Node core", "devDependencies": { "tap": "~0.4.8" }, - "scripts": { - "test": "tap test/simple/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/rvagg/string_decoder.git" + "directories": {}, + "dist": { + "shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", + "tarball": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, + "gitHead": "d46d4fd87cf1d06e031c23f1ba170ca7d4ade9a0", "homepage": "https://github.com/rvagg/string_decoder", "keywords": [ - "string", - "decoder", "browser", - "browserify" + "browserify", + "decoder", + "string" ], "license": "MIT", - "gitHead": "d46d4fd87cf1d06e031c23f1ba170ca7d4ade9a0", - "bugs": { - "url": "https://github.com/rvagg/string_decoder/issues" - }, - "_id": "string_decoder@0.10.31", - "_shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "_from": "string_decoder@>=0.10.0 <0.11.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "rvagg", - "email": "rod@vagg.org" - }, + "main": "index.js", "maintainers": [ { "name": "substack", @@ -44,11 +66,14 @@ "email": "rod@vagg.org" } ], - "dist": { - "shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94", - "tarball": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "name": "string_decoder", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/rvagg/string_decoder.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tap test/simple/*.js" + }, + "version": "0.10.31" } diff --git a/deps/npm/node_modules/request/node_modules/stringstream/.npmignore b/deps/npm/node_modules/stringstream/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/stringstream/.npmignore rename to deps/npm/node_modules/stringstream/.npmignore diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/deps/npm/node_modules/stringstream/.travis.yml similarity index 100% rename from deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml rename to deps/npm/node_modules/stringstream/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/stringstream/LICENSE.txt b/deps/npm/node_modules/stringstream/LICENSE.txt similarity index 100% rename from deps/npm/node_modules/request/node_modules/stringstream/LICENSE.txt rename to deps/npm/node_modules/stringstream/LICENSE.txt diff --git a/deps/npm/node_modules/request/node_modules/stringstream/README.md b/deps/npm/node_modules/stringstream/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/stringstream/README.md rename to deps/npm/node_modules/stringstream/README.md diff --git a/deps/npm/node_modules/request/node_modules/stringstream/example.js b/deps/npm/node_modules/stringstream/example.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/stringstream/example.js rename to deps/npm/node_modules/stringstream/example.js diff --git a/deps/npm/node_modules/request/node_modules/stringstream/package.json b/deps/npm/node_modules/stringstream/package.json similarity index 72% rename from deps/npm/node_modules/request/node_modules/stringstream/package.json rename to deps/npm/node_modules/stringstream/package.json index 3b1373bb581d024a1293d6c026f570ca010ed24c..890b0ae3d0084d4685938efdb486bc1a1dfc91ee 100644 --- a/deps/npm/node_modules/request/node_modules/stringstream/package.json +++ b/deps/npm/node_modules/stringstream/package.json @@ -1,48 +1,70 @@ { - "name": "stringstream", - "version": "0.0.4", - "description": "Encode and decode streams into string streams", - "author": { - "name": "Michael Hart", + "_args": [ + [ + "stringstream@~0.0.4", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "stringstream@>=0.0.4 <0.1.0", + "_id": "stringstream@0.0.4", + "_inCache": true, + "_location": "/stringstream", + "_npmUser": { "email": "michael.hart.au@gmail.com", - "url": "http://github.com/mhart" + "name": "hichaelmart" }, - "main": "stringstream.js", - "keywords": [ - "string", - "stream", - "base64", - "gzip" + "_npmVersion": "1.2.0", + "_phantomChildren": {}, + "_requested": { + "name": "stringstream", + "raw": "stringstream@~0.0.4", + "rawSpec": "~0.0.4", + "scope": null, + "spec": ">=0.0.4 <0.1.0", + "type": "range" + }, + "_requiredBy": [ + "/request" ], - "repository": { - "type": "git", - "url": "git+https://github.com/mhart/StringStream.git" + "_resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz", + "_shasum": "0f0e3423f942960b5692ac324a57dd093bc41a92", + "_shrinkwrap": null, + "_spec": "stringstream@~0.0.4", + "_where": "/Users/rebecca/code/npm/node_modules/request", + "author": { + "email": "michael.hart.au@gmail.com", + "name": "Michael Hart", + "url": "http://github.com/mhart" }, - "license": "MIT", - "readme": "# Decode streams into strings The Right Way(tm)\n\n```javascript\nvar fs = require('fs')\nvar zlib = require('zlib')\nvar strs = require('stringstream')\n\nvar utf8Stream = fs.createReadStream('massiveLogFile.gz')\n .pipe(zlib.createGunzip())\n .pipe(strs('utf8'))\n```\n\nNo need to deal with `setEncoding()` weirdness, just compose streams\nlike they were supposed to be!\n\nHandles input and output encoding:\n\n```javascript\n// Stream from utf8 to hex to base64... Why not, ay.\nvar hex64Stream = fs.createReadStream('myFile')\n .pipe(strs('utf8', 'hex'))\n .pipe(strs('hex', 'base64'))\n```\n\nAlso deals with `base64` output correctly by aligning each emitted data\nchunk so that there are no dangling `=` characters:\n\n```javascript\nvar stream = fs.createReadStream('myFile').pipe(strs('base64'))\n\nvar base64Str = ''\n\nstream.on('data', function(data) { base64Str += data })\nstream.on('end', function() {\n console.log('My base64 encoded file is: ' + base64Str) // Wouldn't work with setEncoding()\n console.log('Original file is: ' + new Buffer(base64Str, 'base64'))\n})\n```\n", - "readmeFilename": "README.md", - "_id": "stringstream@0.0.4", + "dependencies": {}, + "description": "Encode and decode streams into string streams", + "devDependencies": {}, + "directories": {}, "dist": { "shasum": "0f0e3423f942960b5692ac324a57dd093bc41a92", "tarball": "http://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" }, - "_npmVersion": "1.2.0", - "_npmUser": { - "name": "hichaelmart", - "email": "michael.hart.au@gmail.com" - }, + "keywords": [ + "base64", + "gzip", + "stream", + "string" + ], + "license": "MIT", + "main": "stringstream.js", "maintainers": [ { "name": "hichaelmart", "email": "michael.hart.au@gmail.com" } ], - "directories": {}, - "_shasum": "0f0e3423f942960b5692ac324a57dd093bc41a92", - "_resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz", - "_from": "stringstream@>=0.0.4 <0.1.0", - "bugs": { - "url": "https://github.com/mhart/StringStream/issues" + "name": "stringstream", + "optionalDependencies": {}, + "readme": "# Decode streams into strings The Right Way(tm)\n\n```javascript\nvar fs = require('fs')\nvar zlib = require('zlib')\nvar strs = require('stringstream')\n\nvar utf8Stream = fs.createReadStream('massiveLogFile.gz')\n .pipe(zlib.createGunzip())\n .pipe(strs('utf8'))\n```\n\nNo need to deal with `setEncoding()` weirdness, just compose streams\nlike they were supposed to be!\n\nHandles input and output encoding:\n\n```javascript\n// Stream from utf8 to hex to base64... Why not, ay.\nvar hex64Stream = fs.createReadStream('myFile')\n .pipe(strs('utf8', 'hex'))\n .pipe(strs('hex', 'base64'))\n```\n\nAlso deals with `base64` output correctly by aligning each emitted data\nchunk so that there are no dangling `=` characters:\n\n```javascript\nvar stream = fs.createReadStream('myFile').pipe(strs('base64'))\n\nvar base64Str = ''\n\nstream.on('data', function(data) { base64Str += data })\nstream.on('end', function() {\n console.log('My base64 encoded file is: ' + base64Str) // Wouldn't work with setEncoding()\n console.log('Original file is: ' + new Buffer(base64Str, 'base64'))\n})\n```\n", + "readmeFilename": "README.md", + "repository": { + "type": "git", + "url": "https://github.com/mhart/StringStream.git" }, - "homepage": "https://github.com/mhart/StringStream#readme" + "version": "0.0.4" } diff --git a/deps/npm/node_modules/request/node_modules/stringstream/stringstream.js b/deps/npm/node_modules/stringstream/stringstream.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/stringstream/stringstream.js rename to deps/npm/node_modules/stringstream/stringstream.js diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/index.js b/deps/npm/node_modules/strip-ansi/index.js similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/strip-ansi/index.js rename to deps/npm/node_modules/strip-ansi/index.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/license b/deps/npm/node_modules/strip-ansi/license similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/license rename to deps/npm/node_modules/strip-ansi/license diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/package.json b/deps/npm/node_modules/strip-ansi/package.json similarity index 51% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/package.json rename to deps/npm/node_modules/strip-ansi/package.json index 2871d037908d6277e037cc561f593183a81ed7f0..765c6921f4ca748cca7dad47955f418fadc5a64c 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/strip-ansi/package.json +++ b/deps/npm/node_modules/strip-ansi/package.json @@ -1,85 +1,111 @@ { - "name": "strip-ansi", - "version": "3.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/strip-ansi.git" + "_args": [ + [ + "strip-ansi@^3.0.0", + "/Users/rebecca/code/npm/node_modules/chalk" + ] + ], + "_from": "strip-ansi@>=3.0.0 <4.0.0", + "_id": "strip-ansi@3.0.0", + "_inCache": true, + "_location": "/strip-ansi", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.11.2", + "_phantomChildren": {}, + "_requested": { + "name": "strip-ansi", + "raw": "strip-ansi@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" }, + "_requiredBy": [ + "/chalk", + "/columnify" + ], + "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "_shasum": "7510b665567ca914ccb5d7e072763ac968be3724", + "_shrinkwrap": null, + "_spec": "strip-ansi@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/chalk", "author": { - "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", "url": "sindresorhus.com" }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - } - ], + "bugs": { + "url": "https://github.com/sindresorhus/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "0.0.4" + }, + "directories": {}, + "dist": { + "shasum": "7510b665567ca914ccb5d7e072763ac968be3724", + "tarball": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "gitHead": "3f05b9810e1438f946e2eb84ee854cc00b972e9e", + "homepage": "https://github.com/sindresorhus/strip-ansi", "keywords": [ - "strip", - "trim", - "remove", + "256", "ansi", - "styles", "color", - "colour", "colors", - "terminal", + "colour", + "command-line", "console", - "string", - "tty", "escape", "formatting", - "rgb", - "256", - "shell", - "xterm", "log", "logging", - "command-line", - "text" + "remove", + "rgb", + "shell", + "string", + "strip", + "styles", + "terminal", + "text", + "trim", + "tty", + "xterm" ], - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "devDependencies": { - "ava": "0.0.4" - }, - "gitHead": "3f05b9810e1438f946e2eb84ee854cc00b972e9e", - "bugs": { - "url": "https://github.com/sindresorhus/strip-ansi/issues" - }, - "homepage": "https://github.com/sindresorhus/strip-ansi", - "_id": "strip-ansi@3.0.0", - "_shasum": "7510b665567ca914ccb5d7e072763ac968be3724", - "_from": "strip-ansi@>=3.0.0 <4.0.0", - "_npmVersion": "2.11.2", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + }, + { + "name": "jbnicolai", + "email": "jappelman@xebia.com" + } + ], + "name": "strip-ansi", + "optionalDependencies": {}, + "readme": "# strip-ansi [![Build Status](https://travis-ci.org/sindresorhus/strip-ansi.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-ansi)\n\n> Strip [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)\n\n\n## Install\n\n```\n$ npm install --save strip-ansi\n```\n\n\n## Usage\n\n```js\nvar stripAnsi = require('strip-ansi');\n\nstripAnsi('\\u001b[4mcake\\u001b[0m');\n//=> 'cake'\n```\n\n\n## Related\n\n- [strip-ansi-cli](https://github.com/sindresorhus/strip-ansi-cli) - CLI for this module\n- [has-ansi](https://github.com/sindresorhus/has-ansi) - Check if a string has ANSI escape codes\n- [ansi-regex](https://github.com/sindresorhus/ansi-regex) - Regular expression for matching ANSI escape codes\n- [chalk](https://github.com/sindresorhus/chalk) - Terminal string styling done right\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n", + "readmeFilename": "readme.md", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/strip-ansi.git" }, - "dist": { - "shasum": "7510b665567ca914ccb5d7e072763ac968be3724", - "tarball": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" + "scripts": { + "test": "node test.js" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", - "readme": "ERROR: No README data found!" + "version": "3.0.0" } diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/readme.md b/deps/npm/node_modules/strip-ansi/readme.md similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/strip-ansi/readme.md rename to deps/npm/node_modules/strip-ansi/readme.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/supports-color/index.js b/deps/npm/node_modules/supports-color/index.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/supports-color/index.js rename to deps/npm/node_modules/supports-color/index.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/license b/deps/npm/node_modules/supports-color/license similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/license rename to deps/npm/node_modules/supports-color/license diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/supports-color/package.json b/deps/npm/node_modules/supports-color/package.json similarity index 67% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/supports-color/package.json rename to deps/npm/node_modules/supports-color/package.json index 38a1ecb3cebb2a8fb89bb422745d8020000921a8..020a57ea52ed18f69089ecc98ae863262ef61ef6 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/supports-color/package.json +++ b/deps/npm/node_modules/supports-color/package.json @@ -1,79 +1,103 @@ { - "name": "supports-color", - "version": "2.0.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/supports-color.git" + "_args": [ + [ + "supports-color@^2.0.0", + "/Users/rebecca/code/npm/node_modules/chalk" + ] + ], + "_from": "supports-color@>=2.0.0 <3.0.0", + "_id": "supports-color@2.0.0", + "_inCache": true, + "_location": "/supports-color", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.11.2", + "_phantomChildren": {}, + "_requested": { + "name": "supports-color", + "raw": "supports-color@^2.0.0", + "rawSpec": "^2.0.0", + "scope": null, + "spec": ">=2.0.0 <3.0.0", + "type": "range" }, + "_requiredBy": [ + "/chalk" + ], + "_resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "_shasum": "535d045ce6b6363fa40117084629995e9df324c7", + "_shrinkwrap": null, + "_spec": "supports-color@^2.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/chalk", "author": { - "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", "url": "sindresorhus.com" }, - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - } - ], + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": {}, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "mocha": "*", + "require-uncached": "^1.0.2" + }, + "directories": {}, + "dist": { + "shasum": "535d045ce6b6363fa40117084629995e9df324c7", + "tarball": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + }, "engines": { "node": ">=0.8.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "gitHead": "8400d98ade32b2adffd50902c06d9e725a5c6588", + "homepage": "https://github.com/chalk/supports-color", "keywords": [ + "256", + "ansi", + "capability", + "cli", "color", - "colour", "colors", - "terminal", + "colour", + "command-line", "console", - "cli", - "ansi", - "styles", - "tty", + "detect", "rgb", - "256", "shell", - "xterm", - "command-line", + "styles", "support", "supports", - "capability", - "detect" + "terminal", + "tty", + "xterm" ], - "devDependencies": { - "mocha": "*", - "require-uncached": "^1.0.2" - }, - "gitHead": "8400d98ade32b2adffd50902c06d9e725a5c6588", - "bugs": { - "url": "https://github.com/chalk/supports-color/issues" - }, - "homepage": "https://github.com/chalk/supports-color", - "_id": "supports-color@2.0.0", - "_shasum": "535d045ce6b6363fa40117084629995e9df324c7", - "_from": "supports-color@>=2.0.0 <3.0.0", - "_npmVersion": "2.11.2", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + }, + { + "name": "jbnicolai", + "email": "jappelman@xebia.com" + } + ], + "name": "supports-color", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/chalk/supports-color" }, - "dist": { - "shasum": "535d045ce6b6363fa40117084629995e9df324c7", - "tarball": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + "scripts": { + "test": "mocha" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "readme": "ERROR: No README data found!" + "version": "2.0.0" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/supports-color/readme.md b/deps/npm/node_modules/supports-color/readme.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/supports-color/readme.md rename to deps/npm/node_modules/supports-color/readme.md diff --git a/deps/npm/node_modules/tar/package.json b/deps/npm/node_modules/tar/package.json index 2d0846a1fde27b5c19ac55cc84dae9c5d547b9c3..de38b24615214515fa54c057843eaa9a31deccbd 100644 --- a/deps/npm/node_modules/tar/package.json +++ b/deps/npm/node_modules/tar/package.json @@ -1,40 +1,93 @@ { + "_args": [ + [ + "tar@~2.2.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "tar@>=2.2.0 <2.3.0", + "_id": "tar@2.2.1", + "_inCache": true, + "_location": "/tar", + "_nodeVersion": "2.2.2", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" + }, + "_npmVersion": "2.14.3", + "_phantomChildren": {}, + "_requested": { + "name": "tar", + "raw": "tar@~2.2.0", + "rawSpec": "~2.2.0", + "scope": null, + "spec": ">=2.2.0 <2.3.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "_shasum": "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1", + "_shrinkwrap": null, + "_spec": "tar@~2.2.0", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "tar", - "description": "tar for node", - "version": "2.2.1", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-tar.git" - }, - "main": "tar.js", - "scripts": { - "test": "tap test/*.js" + "bugs": { + "url": "https://github.com/isaacs/node-tar/issues" }, "dependencies": { "block-stream": "*", "fstream": "^1.0.2", "inherits": "2" }, + "description": "tar for node", "devDependencies": { "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", "rimraf": "1.x", - "tap": "0.x", - "mkdirp": "^0.5.0" + "tap": "0.x" }, - "license": "ISC", - "readme": "# node-tar\n\nTar for Node.js.\n\n[![NPM](https://nodei.co/npm/tar.png)](https://nodei.co/npm/tar/)\n\n## API\n\nSee `examples/` for usage examples.\n\n### var tar = require('tar')\n\nReturns an object with `.Pack`, `.Extract` and `.Parse` methods.\n\n### tar.Pack([properties])\n\nReturns a through stream. Use\n[fstream](https://npmjs.org/package/fstream) to write files into the\npack stream and you will receive tar archive data from the pack\nstream.\n\nThis only works with directories, it does not work with individual files.\n\nThe optional `properties` object are used to set properties in the tar\n'Global Extended Header'. If the `fromBase` property is set to true,\nthe tar will contain files relative to the path passed, and not with\nthe path included.\n\n### tar.Extract([options])\n\nReturns a through stream. Write tar data to the stream and the files\nin the tarball will be extracted onto the filesystem.\n\n`options` can be:\n\n```js\n{\n path: '/path/to/extract/tar/into',\n strip: 0, // how many path segments to strip from the root when extracting\n}\n```\n\n`options` also get passed to the `fstream.Writer` instance that `tar`\nuses internally.\n\n### tar.Parse()\n\nReturns a writable stream. Write tar data to it and it will emit\n`entry` events for each entry parsed from the tarball. This is used by\n`tar.Extract`.\n", - "readmeFilename": "README.md", - "gitHead": "52237e39d2eb68d22a32d9a98f1d762189fe6a3d", - "bugs": { - "url": "https://github.com/isaacs/node-tar/issues" + "directories": {}, + "dist": { + "shasum": "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1", + "tarball": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz" }, + "gitHead": "52237e39d2eb68d22a32d9a98f1d762189fe6a3d", "homepage": "https://github.com/isaacs/node-tar#readme", - "_id": "tar@2.2.1", - "_shasum": "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1", - "_from": "tar@2.2.1" + "installable": true, + "license": "ISC", + "main": "tar.js", + "maintainers": [ + { + "name": "isaacs", + "email": "isaacs@npmjs.com" + }, + { + "name": "othiym23", + "email": "ogd@aoaioxxysz.net" + }, + { + "name": "soldair", + "email": "soldair@gmail.com" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" + } + ], + "name": "tar", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-tar.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "2.2.1" } diff --git a/deps/npm/node_modules/text-table/package.json b/deps/npm/node_modules/text-table/package.json index 1eacd78e222a4b172cf7f45314db6cbae5c3e659..da8084b42b586f0fe3e9c55e4cb723aa85dee292 100644 --- a/deps/npm/node_modules/text-table/package.json +++ b/deps/npm/node_modules/text-table/package.json @@ -1,52 +1,95 @@ { - "name": "text-table", - "version": "0.2.0", + "_args": [ + [ + "text-table@~0.2.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "text-table@>=0.2.0 <0.3.0", + "_id": "text-table@0.2.0", + "_inCache": true, + "_location": "/text-table", + "_npmUser": { + "email": "mail@substack.net", + "name": "substack" + }, + "_npmVersion": "1.3.7", + "_phantomChildren": {}, + "_requested": { + "name": "text-table", + "raw": "text-table@~0.2.0", + "rawSpec": "~0.2.0", + "scope": null, + "spec": ">=0.2.0 <0.3.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "_shasum": "7f5ee823ae805207c00af2df4a84ec3fcfa570b4", + "_shrinkwrap": null, + "_spec": "text-table@~0.2.0", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "mail@substack.net", + "name": "James Halliday", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/text-table/issues" + }, + "dependencies": {}, "description": "borderless text tables with alignment", - "main": "index.js", "devDependencies": { + "cli-color": "~0.2.3", "tap": "~0.4.0", - "tape": "~1.0.2", - "cli-color": "~0.2.3" + "tape": "~1.0.2" }, - "scripts": { - "test": "tap test/*.js" - }, - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/6..latest", - "chrome/20..latest", - "firefox/10..latest", - "safari/latest", - "opera/11.0..latest", - "iphone/6", - "ipad/6" - ] - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/text-table.git" + "directories": {}, + "dist": { + "shasum": "7f5ee823ae805207c00af2df4a84ec3fcfa570b4", + "tarball": "http://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" }, "homepage": "https://github.com/substack/text-table", "keywords": [ - "text", - "table", "align", "ascii", "rows", - "tabular" + "table", + "tabular", + "text" ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "name": "substack", + "email": "mail@substack.net" + } + ], + "name": "text-table", + "optionalDependencies": {}, "readme": "# text-table\n\ngenerate borderless text table strings suitable for printing to stdout\n\n[![build status](https://secure.travis-ci.org/substack/text-table.png)](http://travis-ci.org/substack/text-table)\n\n[![browser support](https://ci.testling.com/substack/text-table.png)](http://ci.testling.com/substack/text-table)\n\n# example\n\n## default align\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'master', '0123456789abcdef' ],\n [ 'staging', 'fedcba9876543210' ]\n]);\nconsole.log(t);\n```\n\n```\nmaster 0123456789abcdef\nstaging fedcba9876543210\n```\n\n## left-right align\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'beep', '1024' ],\n [ 'boop', '33450' ],\n [ 'foo', '1006' ],\n [ 'bar', '45' ]\n], { align: [ 'l', 'r' ] });\nconsole.log(t);\n```\n\n```\nbeep 1024\nboop 33450\nfoo 1006\nbar 45\n```\n\n## dotted align\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'beep', '1024' ],\n [ 'boop', '334.212' ],\n [ 'foo', '1006' ],\n [ 'bar', '45.6' ],\n [ 'baz', '123.' ]\n], { align: [ 'l', '.' ] });\nconsole.log(t);\n```\n\n```\nbeep 1024\nboop 334.212\nfoo 1006\nbar 45.6\nbaz 123.\n```\n\n## centered\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'beep', '1024', 'xyz' ],\n [ 'boop', '3388450', 'tuv' ],\n [ 'foo', '10106', 'qrstuv' ],\n [ 'bar', '45', 'lmno' ]\n], { align: [ 'l', 'c', 'l' ] });\nconsole.log(t);\n```\n\n```\nbeep 1024 xyz\nboop 3388450 tuv\nfoo 10106 qrstuv\nbar 45 lmno\n```\n\n# methods\n\n``` js\nvar table = require('text-table')\n```\n\n## var s = table(rows, opts={})\n\nReturn a formatted table string `s` from an array of `rows` and some options\n`opts`.\n\n`rows` should be an array of arrays containing strings, numbers, or other\nprintable values.\n\noptions can be:\n\n* `opts.hsep` - separator to use between columns, default `' '`\n* `opts.align` - array of alignment types for each column, default `['l','l',...]`\n* `opts.stringLength` - callback function to use when calculating the string length\n\nalignment types are:\n\n* `'l'` - left\n* `'r'` - right\n* `'c'` - center\n* `'.'` - decimal\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install text-table\n```\n\n# Use with ANSI-colors\n\nSince the string length of ANSI color schemes does not equal the length\nJavaScript sees internally it is necessary to pass the a custom string length\ncalculator during the main function call.\n\nSee the `test/ansi-colors.js` file for an example.\n\n# license\n\nMIT\n", "readmeFilename": "readme.markdown", - "bugs": { - "url": "https://github.com/substack/text-table/issues" + "repository": { + "type": "git", + "url": "git://github.com/substack/text-table.git" }, - "_id": "text-table@0.2.0", - "_from": "text-table@~0.2.0" + "scripts": { + "test": "tap test/*.js" + }, + "testling": { + "browsers": [ + "chrome/20..latest", + "firefox/10..latest", + "ie/6..latest", + "ipad/6", + "iphone/6", + "opera/11.0..latest", + "safari/latest" + ], + "files": "test/*.js" + }, + "version": "0.2.0" } diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/.editorconfig b/deps/npm/node_modules/tough-cookie/.editorconfig similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/.editorconfig rename to deps/npm/node_modules/tough-cookie/.editorconfig diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/.npmignore b/deps/npm/node_modules/tough-cookie/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/.npmignore rename to deps/npm/node_modules/tough-cookie/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/.travis.yml b/deps/npm/node_modules/tough-cookie/.travis.yml similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/.travis.yml rename to deps/npm/node_modules/tough-cookie/.travis.yml diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE b/deps/npm/node_modules/tough-cookie/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE rename to deps/npm/node_modules/tough-cookie/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/README.md b/deps/npm/node_modules/tough-cookie/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/README.md rename to deps/npm/node_modules/tough-cookie/README.md diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js b/deps/npm/node_modules/tough-cookie/generate-pubsuffix.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/generate-pubsuffix.js rename to deps/npm/node_modules/tough-cookie/generate-pubsuffix.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js b/deps/npm/node_modules/tough-cookie/lib/cookie.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js rename to deps/npm/node_modules/tough-cookie/lib/cookie.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js b/deps/npm/node_modules/tough-cookie/lib/memstore.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js rename to deps/npm/node_modules/tough-cookie/lib/memstore.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js b/deps/npm/node_modules/tough-cookie/lib/pathMatch.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js rename to deps/npm/node_modules/tough-cookie/lib/pathMatch.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js b/deps/npm/node_modules/tough-cookie/lib/permuteDomain.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js rename to deps/npm/node_modules/tough-cookie/lib/permuteDomain.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js b/deps/npm/node_modules/tough-cookie/lib/pubsuffix.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js rename to deps/npm/node_modules/tough-cookie/lib/pubsuffix.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js b/deps/npm/node_modules/tough-cookie/lib/store.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js rename to deps/npm/node_modules/tough-cookie/lib/store.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/package.json b/deps/npm/node_modules/tough-cookie/package.json similarity index 62% rename from deps/npm/node_modules/request/node_modules/tough-cookie/package.json rename to deps/npm/node_modules/tough-cookie/package.json index 55605b3ee689b5f876ca7f0b7f271aaf0f56ca10..f808bccefe31823c60d6757fb4efb3c7ede65878 100644 --- a/deps/npm/node_modules/request/node_modules/tough-cookie/package.json +++ b/deps/npm/node_modules/tough-cookie/package.json @@ -1,55 +1,72 @@ { - "author": { - "name": "Jeremy Stashewsky", - "email": "jstashewsky@salesforce.com" + "_args": [ + [ + "tough-cookie@>=0.12.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "tough-cookie@>=0.12.0", + "_id": "tough-cookie@2.0.0", + "_inCache": true, + "_location": "/tough-cookie", + "_nodeVersion": "0.12.2", + "_npmUser": { + "email": "jstash@gmail.com", + "name": "jstash" }, - "license": "BSD-3-Clause", - "name": "tough-cookie", - "description": "RFC6265 Cookies and Cookie Jar for node.js", - "keywords": [ - "HTTP", - "cookie", - "cookies", - "set-cookie", - "cookiejar", - "jar", - "RFC6265", - "RFC2965" + "_npmVersion": "2.7.4", + "_phantomChildren": {}, + "_requested": { + "name": "tough-cookie", + "raw": "tough-cookie@>=0.12.0", + "rawSpec": ">=0.12.0", + "scope": null, + "spec": ">=0.12.0", + "type": "range" + }, + "_requiredBy": [ + "/request" ], - "version": "2.0.0", - "homepage": "https://github.com/SalesforceEng/tough-cookie", - "repository": { - "type": "git", - "url": "git://github.com/SalesforceEng/tough-cookie.git" + "_resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.0.0.tgz", + "_shasum": "41ce08720b35cf90beb044dd2609fb19e928718f", + "_shrinkwrap": null, + "_spec": "tough-cookie@>=0.12.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", + "author": { + "email": "jstashewsky@salesforce.com", + "name": "Jeremy Stashewsky" }, "bugs": { "url": "https://github.com/SalesforceEng/tough-cookie/issues" }, - "main": "./lib/cookie", - "scripts": { - "test": "vows test/*_test.js" - }, - "engines": { - "node": ">=0.10.0" - }, + "dependencies": {}, + "description": "RFC6265 Cookies and Cookie Jar for node.js", "devDependencies": { - "vows": "0.7.0", - "async": ">=0.1.12" - }, - "gitHead": "a3af6104da7787c23bb98910109b0e0e8a10153c", - "_id": "tough-cookie@2.0.0", - "_shasum": "41ce08720b35cf90beb044dd2609fb19e928718f", - "_from": "tough-cookie@>=0.12.0", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "jstash", - "email": "jstash@gmail.com" + "async": ">=0.1.12", + "vows": "0.7.0" }, + "directories": {}, "dist": { "shasum": "41ce08720b35cf90beb044dd2609fb19e928718f", "tarball": "http://registry.npmjs.org/tough-cookie/-/tough-cookie-2.0.0.tgz" }, + "engines": { + "node": ">=0.10.0" + }, + "gitHead": "a3af6104da7787c23bb98910109b0e0e8a10153c", + "homepage": "https://github.com/SalesforceEng/tough-cookie", + "keywords": [ + "HTTP", + "RFC2965", + "RFC6265", + "cookie", + "cookiejar", + "cookies", + "jar", + "set-cookie" + ], + "license": "BSD-3-Clause", + "main": "./lib/cookie", "maintainers": [ { "name": "jstash", @@ -60,7 +77,14 @@ "email": "services@goinstant.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.0.0.tgz", - "readme": "ERROR: No README data found!" + "name": "tough-cookie", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/SalesforceEng/tough-cookie.git" + }, + "scripts": { + "test": "vows test/*_test.js" + }, + "version": "2.0.0" } diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/public-suffix.txt b/deps/npm/node_modules/tough-cookie/public-suffix.txt similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/public-suffix.txt rename to deps/npm/node_modules/tough-cookie/public-suffix.txt diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/api_test.js b/deps/npm/node_modules/tough-cookie/test/api_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/api_test.js rename to deps/npm/node_modules/tough-cookie/test/api_test.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/cookie_jar_test.js b/deps/npm/node_modules/tough-cookie/test/cookie_jar_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/cookie_jar_test.js rename to deps/npm/node_modules/tough-cookie/test/cookie_jar_test.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/cookie_sorting_test.js b/deps/npm/node_modules/tough-cookie/test/cookie_sorting_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/cookie_sorting_test.js rename to deps/npm/node_modules/tough-cookie/test/cookie_sorting_test.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/cookie_to_json_test.js b/deps/npm/node_modules/tough-cookie/test/cookie_to_json_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/cookie_to_json_test.js rename to deps/npm/node_modules/tough-cookie/test/cookie_to_json_test.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/cookie_to_string_test.js b/deps/npm/node_modules/tough-cookie/test/cookie_to_string_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/cookie_to_string_test.js rename to deps/npm/node_modules/tough-cookie/test/cookie_to_string_test.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/date_test.js b/deps/npm/node_modules/tough-cookie/test/date_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/date_test.js rename to deps/npm/node_modules/tough-cookie/test/date_test.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/domain_and_path_test.js b/deps/npm/node_modules/tough-cookie/test/domain_and_path_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/domain_and_path_test.js rename to deps/npm/node_modules/tough-cookie/test/domain_and_path_test.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/ietf_data/dates/bsd-examples.json b/deps/npm/node_modules/tough-cookie/test/ietf_data/dates/bsd-examples.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/ietf_data/dates/bsd-examples.json rename to deps/npm/node_modules/tough-cookie/test/ietf_data/dates/bsd-examples.json diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/ietf_data/dates/examples.json b/deps/npm/node_modules/tough-cookie/test/ietf_data/dates/examples.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/ietf_data/dates/examples.json rename to deps/npm/node_modules/tough-cookie/test/ietf_data/dates/examples.json diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/ietf_data/parser.json b/deps/npm/node_modules/tough-cookie/test/ietf_data/parser.json similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/ietf_data/parser.json rename to deps/npm/node_modules/tough-cookie/test/ietf_data/parser.json diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/ietf_test.js b/deps/npm/node_modules/tough-cookie/test/ietf_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/ietf_test.js rename to deps/npm/node_modules/tough-cookie/test/ietf_test.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/jar_serialization_test.js b/deps/npm/node_modules/tough-cookie/test/jar_serialization_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/jar_serialization_test.js rename to deps/npm/node_modules/tough-cookie/test/jar_serialization_test.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/lifetime_test.js b/deps/npm/node_modules/tough-cookie/test/lifetime_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/lifetime_test.js rename to deps/npm/node_modules/tough-cookie/test/lifetime_test.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/parsing_test.js b/deps/npm/node_modules/tough-cookie/test/parsing_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/parsing_test.js rename to deps/npm/node_modules/tough-cookie/test/parsing_test.js diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/test/regression_test.js b/deps/npm/node_modules/tough-cookie/test/regression_test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/tough-cookie/test/regression_test.js rename to deps/npm/node_modules/tough-cookie/test/regression_test.js diff --git a/deps/npm/node_modules/request/node_modules/tunnel-agent/LICENSE b/deps/npm/node_modules/tunnel-agent/LICENSE similarity index 100% rename from deps/npm/node_modules/request/node_modules/tunnel-agent/LICENSE rename to deps/npm/node_modules/tunnel-agent/LICENSE diff --git a/deps/npm/node_modules/request/node_modules/tunnel-agent/README.md b/deps/npm/node_modules/tunnel-agent/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/tunnel-agent/README.md rename to deps/npm/node_modules/tunnel-agent/README.md diff --git a/deps/npm/node_modules/request/node_modules/tunnel-agent/index.js b/deps/npm/node_modules/tunnel-agent/index.js similarity index 98% rename from deps/npm/node_modules/request/node_modules/tunnel-agent/index.js rename to deps/npm/node_modules/tunnel-agent/index.js index da516ec43f87850c0fcaa54a8c66fd51de48e5df..6a0d9642c9cf2fbd8484f6736ba5e3e5a161740a 100644 --- a/deps/npm/node_modules/request/node_modules/tunnel-agent/index.js +++ b/deps/npm/node_modules/tunnel-agent/index.js @@ -116,7 +116,7 @@ TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { var placeholder = {} self.sockets.push(placeholder) - var connectOptions = mergeOptions({}, self.proxyOptions, + var connectOptions = mergeOptions({}, self.proxyOptions, { method: 'CONNECT' , path: options.host + ':' + options.port , agent: false @@ -181,7 +181,7 @@ TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { var pos = this.sockets.indexOf(socket) if (pos === -1) return - + this.sockets.splice(pos, 1) var pending = this.requests.shift() @@ -196,7 +196,7 @@ function createSecureSocket(options, cb) { var self = this TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, mergeOptions({}, self.options, + var secureSocket = tls.connect(0, mergeOptions({}, self.options, { servername: options.host , socket: socket } diff --git a/deps/npm/node_modules/request/node_modules/tunnel-agent/package.json b/deps/npm/node_modules/tunnel-agent/package.json similarity index 71% rename from deps/npm/node_modules/request/node_modules/tunnel-agent/package.json rename to deps/npm/node_modules/tunnel-agent/package.json index 77c19da8d3ddc5f8e021a368b166e710bef27772..67f840442a48a14d79e48ad68e6fcb6f9945efa6 100644 --- a/deps/npm/node_modules/request/node_modules/tunnel-agent/package.json +++ b/deps/npm/node_modules/tunnel-agent/package.json @@ -1,41 +1,59 @@ { + "_args": [ + [ + "tunnel-agent@~0.4.0", + "/Users/rebecca/code/npm/node_modules/request" + ] + ], + "_from": "tunnel-agent@>=0.4.0 <0.5.0", + "_id": "tunnel-agent@0.4.1", + "_inCache": true, + "_location": "/tunnel-agent", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "simeonvelichkov@gmail.com", + "name": "simov" + }, + "_npmVersion": "2.11.2", + "_phantomChildren": {}, + "_requested": { + "name": "tunnel-agent", + "raw": "tunnel-agent@~0.4.0", + "rawSpec": "~0.4.0", + "scope": null, + "spec": ">=0.4.0 <0.5.0", + "type": "range" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz", + "_shasum": "bbeecff4d679ce753db9462761a88dfcec3c5ab3", + "_shrinkwrap": null, + "_spec": "tunnel-agent@~0.4.0", + "_where": "/Users/rebecca/code/npm/node_modules/request", "author": { - "name": "Mikeal Rogers", "email": "mikeal.rogers@gmail.com", + "name": "Mikeal Rogers", "url": "http://www.futurealoof.com" }, - "name": "tunnel-agent", - "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.", - "version": "0.4.1", - "repository": { - "url": "git+https://github.com/mikeal/tunnel-agent.git" + "bugs": { + "url": "https://github.com/mikeal/tunnel-agent/issues" }, - "main": "index.js", "dependencies": {}, + "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.", "devDependencies": {}, - "optionalDependencies": {}, + "directories": {}, + "dist": { + "shasum": "bbeecff4d679ce753db9462761a88dfcec3c5ab3", + "tarball": "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + }, "engines": { "node": "*" }, "gitHead": "912a7a6d00e10ec76baf9c9369de280fa5badef3", - "bugs": { - "url": "https://github.com/mikeal/tunnel-agent/issues" - }, "homepage": "https://github.com/mikeal/tunnel-agent#readme", - "_id": "tunnel-agent@0.4.1", - "scripts": {}, - "_shasum": "bbeecff4d679ce753db9462761a88dfcec3c5ab3", - "_from": "tunnel-agent@>=0.4.0 <0.5.0", - "_npmVersion": "2.11.2", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - }, - "dist": { - "shasum": "bbeecff4d679ce753db9462761a88dfcec3c5ab3", - "tarball": "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" - }, + "main": "index.js", "maintainers": [ { "name": "mikeal", @@ -54,7 +72,11 @@ "email": "simeonvelichkov@gmail.com" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz", - "readme": "ERROR: No README data found!" + "name": "tunnel-agent", + "optionalDependencies": {}, + "repository": { + "url": "git+https://github.com/mikeal/tunnel-agent.git" + }, + "scripts": {}, + "version": "0.4.1" } diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/.travis.yml b/deps/npm/node_modules/typedarray/.travis.yml similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/.travis.yml rename to deps/npm/node_modules/typedarray/.travis.yml diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/LICENSE b/deps/npm/node_modules/typedarray/LICENSE similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/LICENSE rename to deps/npm/node_modules/typedarray/LICENSE diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/example/tarray.js b/deps/npm/node_modules/typedarray/example/tarray.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/example/tarray.js rename to deps/npm/node_modules/typedarray/example/tarray.js diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/index.js b/deps/npm/node_modules/typedarray/index.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/index.js rename to deps/npm/node_modules/typedarray/index.js diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json b/deps/npm/node_modules/typedarray/package.json similarity index 67% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json rename to deps/npm/node_modules/typedarray/package.json index b8b59f5c303991b79b1650d6e71e4d8d245c1869..3d8667a09ce9df75fb91c9d5e712ebbc1ae2f9a8 100644 --- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json +++ b/deps/npm/node_modules/typedarray/package.json @@ -1,17 +1,53 @@ { - "name": "typedarray", - "version": "0.0.6", + "_args": [ + [ + "typedarray@~0.0.5", + "/Users/rebecca/code/npm/node_modules/concat-stream" + ] + ], + "_from": "typedarray@>=0.0.5 <0.1.0", + "_id": "typedarray@0.0.6", + "_inCache": true, + "_location": "/typedarray", + "_npmUser": { + "email": "mail@substack.net", + "name": "substack" + }, + "_npmVersion": "1.4.3", + "_phantomChildren": {}, + "_requested": { + "name": "typedarray", + "raw": "typedarray@~0.0.5", + "rawSpec": "~0.0.5", + "scope": null, + "spec": ">=0.0.5 <0.1.0", + "type": "range" + }, + "_requiredBy": [ + "/concat-stream" + ], + "_resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "_shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777", + "_shrinkwrap": null, + "_spec": "typedarray@~0.0.5", + "_where": "/Users/rebecca/code/npm/node_modules/concat-stream", + "author": { + "email": "mail@substack.net", + "name": "James Halliday", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/typedarray/issues" + }, + "dependencies": {}, "description": "TypedArray polyfill for old browsers", - "main": "index.js", "devDependencies": { "tape": "~2.3.2" }, - "scripts": { - "test": "tape test/*.js test/server/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/typedarray.git" + "directories": {}, + "dist": { + "shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777", + "tarball": "http://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" }, "homepage": "https://github.com/substack/typedarray", "keywords": [ @@ -19,61 +55,49 @@ "DataView", "Float32Array", "Float64Array", - "Int8Array", "Int16Array", "Int32Array", - "Uint8Array", - "Uint8ClampedArray", + "Int8Array", "Uint16Array", "Uint32Array", - "typed", + "Uint8Array", + "Uint8ClampedArray", "array", - "polyfill" + "polyfill", + "typed" ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "name": "substack", + "email": "mail@substack.net" + } + ], + "name": "typedarray", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/substack/typedarray.git" + }, + "scripts": { + "test": "tape test/*.js test/server/*.js" + }, "testling": { - "files": "test/*.js", "browsers": [ - "ie/6..latest", - "firefox/16..latest", - "firefox/nightly", + "android-browser/4.2..latest", "chrome/22..latest", "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", + "firefox/16..latest", + "firefox/nightly", + "ie/6..latest", "ipad/6.0..latest", "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "bugs": { - "url": "https://github.com/substack/typedarray/issues" - }, - "_id": "typedarray@0.0.6", - "dist": { - "shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777", - "tarball": "http://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - }, - "_from": "typedarray@>=0.0.5 <0.1.0", - "_npmVersion": "1.4.3", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" + "opera/12..latest", + "opera/next", + "safari/5.1..latest" + ], + "files": "test/*.js" }, - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], - "directories": {}, - "_shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777", - "_resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "readme": "ERROR: No README data found!" + "version": "0.0.6" } diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/readme.markdown b/deps/npm/node_modules/typedarray/readme.markdown similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/readme.markdown rename to deps/npm/node_modules/typedarray/readme.markdown diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js b/deps/npm/node_modules/typedarray/test/server/undef_globals.js similarity index 98% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js rename to deps/npm/node_modules/typedarray/test/server/undef_globals.js index 425950f9fc9ed7c09d78c749f27014cfdf4a84d3..e57dabdcebc9c1f2270c44ae86290925ebf2911e 100644 --- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js +++ b/deps/npm/node_modules/typedarray/test/server/undef_globals.js @@ -11,7 +11,7 @@ test('u8a without globals', function (t) { vm.runInNewContext(src, c); var TA = c.module.exports; var ua = new(TA.Uint8Array)(5); - + t.equal(ua.length, 5); ua[1] = 256 + 55; t.equal(ua[1], 55); diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/tarray.js b/deps/npm/node_modules/typedarray/test/tarray.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/tarray.js rename to deps/npm/node_modules/typedarray/test/tarray.js diff --git a/deps/npm/node_modules/uid-number/package.json b/deps/npm/node_modules/uid-number/package.json index 8d416235f86da83f58534b0ec1fe33c2fed39408..2d1af9ce8d7508db511154c5bce71011855f57b3 100644 --- a/deps/npm/node_modules/uid-number/package.json +++ b/deps/npm/node_modules/uid-number/package.json @@ -1,49 +1,72 @@ { + "_args": [ + [ + "uid-number@0.0.6", + "/Users/rebecca/code/npm" + ] + ], + "_from": "uid-number@0.0.6", + "_id": "uid-number@0.0.6", + "_inCache": true, + "_location": "/uid-number", + "_nodeVersion": "0.10.31", + "_npmUser": { + "email": "i@izs.me", + "name": "isaacs" + }, + "_npmVersion": "2.1.3", + "_phantomChildren": {}, + "_requested": { + "name": "uid-number", + "raw": "uid-number@0.0.6", + "rawSpec": "0.0.6", + "scope": null, + "spec": "0.0.6", + "type": "version" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "_shasum": "0ea10e8035e8eb5b8e4449f06da1c730663baa81", + "_shrinkwrap": null, + "_spec": "uid-number@0.0.6", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "name": "uid-number", - "description": "Convert a username/group name to a uid/gid number", - "version": "0.0.6", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/uid-number.git" + "bugs": { + "url": "https://github.com/isaacs/uid-number/issues" }, - "main": "uid-number.js", "dependencies": {}, + "description": "Convert a username/group name to a uid/gid number", "devDependencies": {}, - "optionalDependencies": {}, + "directories": {}, + "dist": { + "shasum": "0ea10e8035e8eb5b8e4449f06da1c730663baa81", + "tarball": "http://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" + }, "engines": { "node": "*" }, - "license": "ISC", "gitHead": "aab48f5d6bda85794946b26d945d2ee452e0e9ab", - "bugs": { - "url": "https://github.com/isaacs/uid-number/issues" - }, "homepage": "https://github.com/isaacs/uid-number", - "_id": "uid-number@0.0.6", - "scripts": {}, - "_shasum": "0ea10e8035e8eb5b8e4449f06da1c730663baa81", - "_from": "uid-number@>=0.0.6 <0.1.0", - "_npmVersion": "2.1.3", - "_nodeVersion": "0.10.31", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, + "license": "ISC", + "main": "uid-number.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "dist": { - "shasum": "0ea10e8035e8eb5b8e4449f06da1c730663baa81", - "tarball": "http://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" + "name": "uid-number", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/uid-number.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" + "scripts": {}, + "version": "0.0.6" } diff --git a/deps/npm/node_modules/umask/package.json b/deps/npm/node_modules/umask/package.json index ed84e346f110ca16a202817c70e5a42439a4f5bc..c0c6fdc114aafe2c0a13e7bc73fb39d81aa074ae 100644 --- a/deps/npm/node_modules/umask/package.json +++ b/deps/npm/node_modules/umask/package.json @@ -1,53 +1,78 @@ { - "name": "umask", - "version": "1.1.0", - "description": "convert umask from string <-> number", - "main": "index.js", - "scripts": { - "test": "lab -ct 100", - "lint": "jslint --terse --latest *.js test/*.js" + "_args": [ + [ + "umask@~1.1.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "umask@>=1.1.0 <1.2.0", + "_id": "umask@1.1.0", + "_inCache": true, + "_location": "/umask", + "_nodeVersion": "0.10.35", + "_npmUser": { + "email": "smikes@cubane.com", + "name": "smikes" }, - "repository": { - "type": "git", - "url": "https://github.com/smikes/umask.git" + "_npmVersion": "2.2.0", + "_phantomChildren": {}, + "_requested": { + "name": "umask", + "raw": "umask@~1.1.0", + "rawSpec": "~1.1.0", + "scope": null, + "spec": ">=1.1.0 <1.2.0", + "type": "range" }, - "keywords": [ - "umask" + "_requiredBy": [ + "/" ], + "_resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", + "_shasum": "f29cebf01df517912bb58ff9c4e50fde8e33320d", + "_shrinkwrap": null, + "_spec": "umask@~1.1.0", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Sam Mikes", - "email": "smikes@cubane.com" + "email": "smikes@cubane.com", + "name": "Sam Mikes" }, - "license": "MIT", "bugs": { "url": "https://github.com/smikes/umask/issues" }, - "homepage": "https://github.com/smikes/umask", + "dependencies": {}, + "description": "convert umask from string <-> number", "devDependencies": { "code": "^1.2.1", "jslint": "^0.7.2", "lab": "^5.2.0" }, - "gitHead": "63d821e4d0b06ef9a4b727c5fbe5976e9534d76e", - "_id": "umask@1.1.0", - "_shasum": "f29cebf01df517912bb58ff9c4e50fde8e33320d", - "_from": "umask@>=1.1.0 <1.2.0", - "_npmVersion": "2.2.0", - "_nodeVersion": "0.10.35", - "_npmUser": { - "name": "smikes", - "email": "smikes@cubane.com" + "directories": {}, + "dist": { + "shasum": "f29cebf01df517912bb58ff9c4e50fde8e33320d", + "tarball": "http://registry.npmjs.org/umask/-/umask-1.1.0.tgz" }, + "gitHead": "63d821e4d0b06ef9a4b727c5fbe5976e9534d76e", + "homepage": "https://github.com/smikes/umask", + "keywords": [ + "umask" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "smikes", "email": "smikes@cubane.com" } ], - "dist": { - "shasum": "f29cebf01df517912bb58ff9c4e50fde8e33320d", - "tarball": "http://registry.npmjs.org/umask/-/umask-1.1.0.tgz" + "name": "umask", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/smikes/umask.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz" + "scripts": { + "lint": "jslint --terse --latest *.js test/*.js", + "test": "lab -ct 100" + }, + "version": "1.1.0" } diff --git a/deps/npm/node_modules/unique-filename/.npmignore b/deps/npm/node_modules/unique-filename/.npmignore new file mode 100644 index 0000000000000000000000000000000000000000..1ab9fa63f542dba9b4c3a74eff6b8fbb1431c535 --- /dev/null +++ b/deps/npm/node_modules/unique-filename/.npmignore @@ -0,0 +1,5 @@ +*~ +.#* +DEADJOE + +node_modules diff --git a/deps/npm/node_modules/unique-filename/README.md b/deps/npm/node_modules/unique-filename/README.md new file mode 100644 index 0000000000000000000000000000000000000000..4b5b241eb9acfd79f10748fc70a56e66a88ebec6 --- /dev/null +++ b/deps/npm/node_modules/unique-filename/README.md @@ -0,0 +1,33 @@ +unique-filename +=============== + +Generate a unique filename for use in temporary directories or caches. + +``` +var uniqueFilename = require('unique-filename') + +// returns something like: /tmp/912ec803b2ce49e4a541068d495ab570 +var randomTmpfile = uniqueFilename(os.tmpdir()) + +// returns something like: /tmp/my-test-912ec803b2ce49e4a541068d495ab570 +var randomPrefixedTmpfile = uniqueFilename(os.tmpdir(), 'my-test') + +var uniqueTmpfile = uniqueFilename('/tmp', 'testing', '/my/thing/to/uniq/on') +``` + +### uniqueFilename(*dir*, *fileprefix*, *uniqstr*) → String + +Returns the full path of a unique filename that looks like: +`dir/prefix-912ec803b2ce49e4a541068d495ab570` +or `dir/912ec803b2ce49e4a541068d495ab570` + +*dir* – The path you want the filename in. `os.tmpdir()` is a good choice for this. + +*fileprefix* – A string to append prior to the unique part of the filename. +The parameter is required if *uniqstr* is also passed in but is otherwise +optional and can be `undefined`/`null`/`''`. If present and not empty +then this string plus a hyphen are prepended to the unique part. + +*uniqstr* – Optional, if not passed the unique part of the resulting +filename will be random. If passed in it will be generated from this string +in a reproducable way. diff --git a/deps/npm/node_modules/unique-filename/index.js b/deps/npm/node_modules/unique-filename/index.js new file mode 100644 index 0000000000000000000000000000000000000000..02bf1e273143c1f01671276492ea86af6e08d53a --- /dev/null +++ b/deps/npm/node_modules/unique-filename/index.js @@ -0,0 +1,8 @@ +'use strict' +var path = require('path') + +var uniqueSlug = require('unique-slug') + +module.exports = function (filepath, prefix, uniq) { + return path.join(filepath, (prefix ? prefix + '-' : '') + uniqueSlug(uniq)) +} diff --git a/deps/npm/node_modules/unique-filename/package.json b/deps/npm/node_modules/unique-filename/package.json new file mode 100644 index 0000000000000000000000000000000000000000..2b3f9a1b6c7e1456ef0997abb8cfa1834d3a86c9 --- /dev/null +++ b/deps/npm/node_modules/unique-filename/package.json @@ -0,0 +1,76 @@ +{ + "_args": [ + [ + "unique-filename@~1.0.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "unique-filename@>=1.0.0 <1.1.0", + "_id": "unique-filename@1.0.0", + "_inCache": true, + "_location": "/unique-filename", + "_nodeVersion": "1.6.2", + "_npmUser": { + "email": "me@re-becca.org", + "name": "iarna" + }, + "_npmVersion": "2.7.6", + "_phantomChildren": {}, + "_requested": { + "name": "unique-filename", + "raw": "unique-filename@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_shasum": "0bee4219e192e86da3c4ffc0cc6e054d8634eab9", + "_shrinkwrap": null, + "_spec": "unique-filename@~1.0.0", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "me@re-becca.org", + "name": "Rebecca Turner", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/iarna/unique-filename/issues" + }, + "dependencies": { + "unique-slug": "^1.0.0" + }, + "description": "Generate a unique filename for use in temporary directories or caches.", + "devDependencies": { + "standard": "^3.7.3", + "tap": "^1.0.0" + }, + "directories": {}, + "dist": { + "shasum": "0bee4219e192e86da3c4ffc0cc6e054d8634eab9", + "tarball": "http://registry.npmjs.org/unique-filename/-/unique-filename-1.0.0.tgz" + }, + "gitHead": "935739361f6ecc7b613c5daf66a57b67938796d4", + "homepage": "https://github.com/iarna/unique-filename", + "keywords": [], + "license": "ISC", + "main": "index.js", + "maintainers": [ + { + "name": "iarna", + "email": "me@re-becca.org" + } + ], + "name": "unique-filename", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/iarna/unique-filename.git" + }, + "scripts": { + "test": "standard && tap test" + }, + "version": "1.0.0" +} diff --git a/deps/npm/node_modules/unique-filename/test/index.js b/deps/npm/node_modules/unique-filename/test/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b1a8fee5eb77bd390dc2a25748c78f1de1a4d179 --- /dev/null +++ b/deps/npm/node_modules/unique-filename/test/index.js @@ -0,0 +1,23 @@ +'sue strict' +var t = require('tap') +var uniqueFilename = require('../index.js') + +t.plan(6) + +var randomTmpfile = uniqueFilename('tmp') +t.like(randomTmpfile, /^tmp.[a-f0-9]{32}$/, 'random tmp file') + +var randomAgain = uniqueFilename('tmp') +t.notEqual(randomAgain, randomTmpfile, 'random tmp files are not the same') + +var randomPrefixedTmpfile = uniqueFilename('tmp', 'my-test') +t.like(randomPrefixedTmpfile, /^tmp.my-test-[a-f0-9]{32}$/, 'random prefixed tmp file') + +var randomPrefixedAgain = uniqueFilename('tmp', 'my-test') +t.notEqual(randomPrefixedAgain, randomPrefixedTmpfile, 'random prefixed tmp files are not the same') + +var uniqueTmpfile = uniqueFilename('tmp', 'testing', '/my/thing/to/uniq/on') +t.like(uniqueTmpfile, /^tmp.testing-dd1ecbb112056bb8a7347e852ce3ddf9$/, 'unique filename') + +var uniqueAgain = uniqueFilename('tmp', 'testing', '/my/thing/to/uniq/on') +t.is(uniqueTmpfile, uniqueAgain, 'same unique string component produces same filename') diff --git a/deps/npm/node_modules/unique-slug/.npmignore b/deps/npm/node_modules/unique-slug/.npmignore new file mode 100644 index 0000000000000000000000000000000000000000..1ab9fa63f542dba9b4c3a74eff6b8fbb1431c535 --- /dev/null +++ b/deps/npm/node_modules/unique-slug/.npmignore @@ -0,0 +1,5 @@ +*~ +.#* +DEADJOE + +node_modules diff --git a/deps/npm/node_modules/unique-slug/README.md b/deps/npm/node_modules/unique-slug/README.md new file mode 100644 index 0000000000000000000000000000000000000000..617735a986a5b85bb6a74affb7f67ff4471824e1 --- /dev/null +++ b/deps/npm/node_modules/unique-slug/README.md @@ -0,0 +1,19 @@ +unique-slug +=========== + +Generate a unique character string suitible for use in files and URLs. + +``` +var uniqueSlug = require('unique-slug') + +var randomSlug = uniqueSlug() +var fileSlug = uniqueSlug('/etc/passwd') +``` + +### uniqueSlug(*str*) → String (32 chars) + +If *str* is passed in then the return value will be its md5 digest in +hex. + +If *str* is not passed in, it will be 16 bytes coverted into 32 hex +characters, generated by `crypto.pseudoRandomBytes`. diff --git a/deps/npm/node_modules/unique-slug/index.js b/deps/npm/node_modules/unique-slug/index.js new file mode 100644 index 0000000000000000000000000000000000000000..747cf6d06a092219450deee23fdd02c437e0dd98 --- /dev/null +++ b/deps/npm/node_modules/unique-slug/index.js @@ -0,0 +1,15 @@ +'use strict' +var crypto = require('crypto') + +module.exports = function (uniq) { + if (uniq) { + var hash = crypto.createHash('md5') + hash.update(uniq) + return hash.digest('hex') + } else { + // Safe because w/o a callback because this interface can + // neither block nor error (by contrast with randomBytes + // which will throw an exception without enough entropy) + return crypto.pseudoRandomBytes(16).toString('hex') + } +} diff --git a/deps/npm/node_modules/unique-slug/package.json b/deps/npm/node_modules/unique-slug/package.json new file mode 100644 index 0000000000000000000000000000000000000000..95923348210591b930d420b0f20a4440b1b35fda --- /dev/null +++ b/deps/npm/node_modules/unique-slug/package.json @@ -0,0 +1,74 @@ +{ + "_args": [ + [ + "unique-slug@^1.0.0", + "/Users/rebecca/code/npm/node_modules/unique-filename" + ] + ], + "_from": "unique-slug@>=1.0.0 <2.0.0", + "_id": "unique-slug@1.0.0", + "_inCache": true, + "_location": "/unique-slug", + "_nodeVersion": "1.6.2", + "_npmUser": { + "email": "me@re-becca.org", + "name": "iarna" + }, + "_npmVersion": "2.7.6", + "_phantomChildren": {}, + "_requested": { + "name": "unique-slug", + "raw": "unique-slug@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/unique-filename" + ], + "_shasum": "4459d12416f576cc091a3deb19939ec99c735626", + "_shrinkwrap": null, + "_spec": "unique-slug@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/unique-filename", + "author": { + "email": "me@re-becca.org", + "name": "Rebecca Turner", + "url": "http://re-becca.org" + }, + "bugs": { + "url": "https://github.com/iarna/unique-slug/issues" + }, + "dependencies": {}, + "description": "Generate a unique character string suitible for use in files and URLs.", + "devDependencies": { + "standard": "^3.7.3", + "tap": "^1.0.0" + }, + "directories": {}, + "dist": { + "shasum": "4459d12416f576cc091a3deb19939ec99c735626", + "tarball": "http://registry.npmjs.org/unique-slug/-/unique-slug-1.0.0.tgz" + }, + "gitHead": "024b3bd3c0184550702c93f088822e3f38da5c17", + "homepage": "https://github.com/iarna/unique-slug", + "keywords": [], + "license": "ISC", + "main": "index.js", + "maintainers": [ + { + "name": "iarna", + "email": "me@re-becca.org" + } + ], + "name": "unique-slug", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/iarna/unique-slug.git" + }, + "scripts": { + "test": "standard && tap test" + }, + "version": "1.0.0" +} diff --git a/deps/npm/node_modules/unique-slug/test/index.js b/deps/npm/node_modules/unique-slug/test/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6866678ed0f55d66b018e41f8179fbd60528ba1a --- /dev/null +++ b/deps/npm/node_modules/unique-slug/test/index.js @@ -0,0 +1,13 @@ +'use strict' +var t = require('tap') +var uniqueSlug = require('../index.js') + +t.plan(5) +var slugA = uniqueSlug() +t.is(slugA.length, 32, 'random slugs are 32 chars') +t.notEqual(slugA, uniqueSlug(), "two slugs aren't the same") +var base = '/path/to/thingy' +var slugB = uniqueSlug(base) +t.is(slugB.length, 32, 'string based slugs are 32 chars') +t.is(slugB, uniqueSlug(base), 'two string based slugs, from the same string are the same') +t.notEqual(slugB, uniqueSlug(slugA), 'two string based slongs, from diff strings are different') diff --git a/deps/npm/node_modules/unpipe/HISTORY.md b/deps/npm/node_modules/unpipe/HISTORY.md new file mode 100644 index 0000000000000000000000000000000000000000..85e0f8d747dc2a960e1ae6640c8bf081631ac0ec --- /dev/null +++ b/deps/npm/node_modules/unpipe/HISTORY.md @@ -0,0 +1,4 @@ +1.0.0 / 2015-06-14 +================== + + * Initial release diff --git a/deps/npm/node_modules/github-url-from-git/LICENSE b/deps/npm/node_modules/unpipe/LICENSE similarity index 93% rename from deps/npm/node_modules/github-url-from-git/LICENSE rename to deps/npm/node_modules/unpipe/LICENSE index b7409302c44e35cb7aae50b542bbb9e92363f1e8..aed0138278a940d6e7b2d43903e04eee233b957e 100644 --- a/deps/npm/node_modules/github-url-from-git/LICENSE +++ b/deps/npm/node_modules/unpipe/LICENSE @@ -1,6 +1,6 @@ (The MIT License) -Copyright (c) 2013 TJ Holowaychuk +Copyright (c) 2015 Douglas Christopher Wilson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/deps/npm/node_modules/unpipe/README.md b/deps/npm/node_modules/unpipe/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e536ad2c045bba26e9d1f93202a44833656adfad --- /dev/null +++ b/deps/npm/node_modules/unpipe/README.md @@ -0,0 +1,43 @@ +# unpipe + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Unpipe a stream from all destinations. + +## Installation + +```sh +$ npm install unpipe +``` + +## API + +```js +var unpipe = require('unpipe') +``` + +### unpipe(stream) + +Unpipes all destinations from a given stream. With stream 2+, this is +equivalent to `stream.unpipe()`. When used with streams 1 style streams +(typically Node.js 0.8 and below), this module attempts to undo the +actions done in `stream.pipe(dest)`. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/unpipe.svg +[npm-url]: https://npmjs.org/package/unpipe +[node-image]: https://img.shields.io/node/v/unpipe.svg +[node-url]: http://nodejs.org/download/ +[travis-image]: https://img.shields.io/travis/stream-utils/unpipe.svg +[travis-url]: https://travis-ci.org/stream-utils/unpipe +[coveralls-image]: https://img.shields.io/coveralls/stream-utils/unpipe.svg +[coveralls-url]: https://coveralls.io/r/stream-utils/unpipe?branch=master +[downloads-image]: https://img.shields.io/npm/dm/unpipe.svg +[downloads-url]: https://npmjs.org/package/unpipe diff --git a/deps/npm/node_modules/unpipe/index.js b/deps/npm/node_modules/unpipe/index.js new file mode 100644 index 0000000000000000000000000000000000000000..15c3d97a12b484c2a1c9735e24c952c3079876d0 --- /dev/null +++ b/deps/npm/node_modules/unpipe/index.js @@ -0,0 +1,69 @@ +/*! + * unpipe + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = unpipe + +/** + * Determine if there are Node.js pipe-like data listeners. + * @private + */ + +function hasPipeDataListeners(stream) { + var listeners = stream.listeners('data') + + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].name === 'ondata') { + return true + } + } + + return false +} + +/** + * Unpipe a stream from all destinations. + * + * @param {object} stream + * @public + */ + +function unpipe(stream) { + if (!stream) { + throw new TypeError('argument stream is required') + } + + if (typeof stream.unpipe === 'function') { + // new-style + stream.unpipe() + return + } + + // Node.js 0.8 hack + if (!hasPipeDataListeners(stream)) { + return + } + + var listener + var listeners = stream.listeners('close') + + for (var i = 0; i < listeners.length; i++) { + listener = listeners[i] + + if (listener.name !== 'cleanup' && listener.name !== 'onclose') { + continue + } + + // invoke the listener + listener.call(stream) + } +} diff --git a/deps/npm/node_modules/unpipe/package.json b/deps/npm/node_modules/unpipe/package.json new file mode 100644 index 0000000000000000000000000000000000000000..8d270a91e08b66fa1f40a8b05493dbb22e10f4c6 --- /dev/null +++ b/deps/npm/node_modules/unpipe/package.json @@ -0,0 +1,83 @@ +{ + "_args": [ + [ + "unpipe@~1.0.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "unpipe@>=1.0.0 <1.1.0", + "_id": "unpipe@1.0.0", + "_inCache": true, + "_location": "/unpipe", + "_npmUser": { + "email": "doug@somethingdoug.com", + "name": "dougwilson" + }, + "_npmVersion": "1.4.28", + "_phantomChildren": {}, + "_requested": { + "name": "unpipe", + "raw": "unpipe@~1.0.0", + "rawSpec": "~1.0.0", + "scope": null, + "spec": ">=1.0.0 <1.1.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "_shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec", + "_shrinkwrap": null, + "_spec": "unpipe@~1.0.0", + "_where": "/Users/rebecca/code/npm", + "author": { + "email": "doug@somethingdoug.com", + "name": "Douglas Christopher Wilson" + }, + "bugs": { + "url": "https://github.com/stream-utils/unpipe/issues" + }, + "dependencies": {}, + "description": "Unpipe a stream from all destinations", + "devDependencies": { + "istanbul": "0.3.15", + "mocha": "2.2.5", + "readable-stream": "1.1.13" + }, + "directories": {}, + "dist": { + "shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec", + "tarball": "http://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "gitHead": "d2df901c06487430e78dca62b6edb8bb2fc5e99d", + "homepage": "https://github.com/stream-utils/unpipe", + "license": "MIT", + "maintainers": [ + { + "name": "dougwilson", + "email": "doug@somethingdoug.com" + } + ], + "name": "unpipe", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/stream-utils/unpipe" + }, + "scripts": { + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "1.0.0" +} diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/History.md b/deps/npm/node_modules/util-deprecate/History.md similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/History.md rename to deps/npm/node_modules/util-deprecate/History.md diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/LICENSE b/deps/npm/node_modules/util-deprecate/LICENSE similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/LICENSE rename to deps/npm/node_modules/util-deprecate/LICENSE diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/README.md b/deps/npm/node_modules/util-deprecate/README.md similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/README.md rename to deps/npm/node_modules/util-deprecate/README.md diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/browser.js b/deps/npm/node_modules/util-deprecate/browser.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/browser.js rename to deps/npm/node_modules/util-deprecate/browser.js diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/node.js b/deps/npm/node_modules/util-deprecate/node.js similarity index 100% rename from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/node.js rename to deps/npm/node_modules/util-deprecate/node.js diff --git a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/package.json b/deps/npm/node_modules/util-deprecate/package.json similarity index 61% rename from deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/package.json rename to deps/npm/node_modules/util-deprecate/package.json index ea487da0e43000542b9f85a1426b62ff87a25f62..aa607316f718080f6e22534db494d45651d78c6a 100644 --- a/deps/npm/node_modules/sha/node_modules/readable-stream/node_modules/util-deprecate/package.json +++ b/deps/npm/node_modules/util-deprecate/package.json @@ -1,53 +1,78 @@ { - "name": "util-deprecate", - "version": "1.0.1", - "description": "The Node.js `util.deprecate()` function with browser support", - "main": "node.js", - "browser": "browser.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "util-deprecate@~1.0.1", + "/Users/rebecca/code/npm/node_modules/concat-stream/node_modules/readable-stream" + ] + ], + "_from": "util-deprecate@>=1.0.1 <1.1.0", + "_id": "util-deprecate@1.0.1", + "_inCache": true, + "_location": "/util-deprecate", + "_npmUser": { + "email": "nathan@tootallnate.net", + "name": "tootallnate" }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/util-deprecate.git" + "_npmVersion": "1.4.28", + "_phantomChildren": {}, + "_requested": { + "name": "util-deprecate", + "raw": "util-deprecate@~1.0.1", + "rawSpec": "~1.0.1", + "scope": null, + "spec": ">=1.0.1 <1.1.0", + "type": "range" }, - "keywords": [ - "util", - "deprecate", - "browserify", - "browser", - "node" + "_requiredBy": [ + "/concat-stream/readable-stream" ], + "_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz", + "_shasum": "3556a3d13c4c6aa7983d7e2425478197199b7881", + "_shrinkwrap": null, + "_spec": "util-deprecate@~1.0.1", + "_where": "/Users/rebecca/code/npm/node_modules/concat-stream/node_modules/readable-stream", "author": { - "name": "Nathan Rajlich", "email": "nathan@tootallnate.net", + "name": "Nathan Rajlich", "url": "http://n8.io/" }, - "license": "MIT", + "browser": "browser.js", "bugs": { "url": "https://github.com/TooTallNate/util-deprecate/issues" }, - "homepage": "https://github.com/TooTallNate/util-deprecate", - "gitHead": "6e923f7d98a0afbe5b9c7db9d0f0029c1936746c", - "_id": "util-deprecate@1.0.1", - "_shasum": "3556a3d13c4c6aa7983d7e2425478197199b7881", - "_from": "util-deprecate@>=1.0.1 <1.1.0", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" + "dependencies": {}, + "description": "The Node.js `util.deprecate()` function with browser support", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "3556a3d13c4c6aa7983d7e2425478197199b7881", + "tarball": "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" }, + "gitHead": "6e923f7d98a0afbe5b9c7db9d0f0029c1936746c", + "homepage": "https://github.com/TooTallNate/util-deprecate", + "keywords": [ + "browser", + "browserify", + "deprecate", + "node", + "util" + ], + "license": "MIT", + "main": "node.js", "maintainers": [ { "name": "tootallnate", "email": "nathan@tootallnate.net" } ], - "dist": { - "shasum": "3556a3d13c4c6aa7983d7e2425478197199b7881", - "tarball": "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" + "name": "util-deprecate", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/TooTallNate/util-deprecate.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/read-installed/node_modules/util-extend/README.md b/deps/npm/node_modules/util-extend/README.md similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/util-extend/README.md rename to deps/npm/node_modules/util-extend/README.md diff --git a/deps/npm/node_modules/read-installed/node_modules/util-extend/extend.js b/deps/npm/node_modules/util-extend/extend.js similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/util-extend/extend.js rename to deps/npm/node_modules/util-extend/extend.js diff --git a/deps/npm/node_modules/read-installed/node_modules/util-extend/package.json b/deps/npm/node_modules/util-extend/package.json similarity index 61% rename from deps/npm/node_modules/read-installed/node_modules/util-extend/package.json rename to deps/npm/node_modules/util-extend/package.json index 259d6c1049fac577f5ede5b8c9c951ff1489ab66..90d27e158c009969d08b3a4232e3ecfc8cd37a26 100644 --- a/deps/npm/node_modules/read-installed/node_modules/util-extend/package.json +++ b/deps/npm/node_modules/util-extend/package.json @@ -1,41 +1,66 @@ { - "name": "util-extend", - "version": "1.0.1", - "description": "Node's internal object extension function", - "main": "extend.js", - "scripts": { - "test": "node test.js" + "_args": [ + [ + "util-extend@^1.0.1", + "/Users/rebecca/code/npm/node_modules/read-installed" + ] + ], + "_from": "util-extend@>=1.0.1 <2.0.0", + "_id": "util-extend@1.0.1", + "_inCache": true, + "_location": "/util-extend", + "_npmUser": { + "email": "i@izs.me", + "name": "isaacs" }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/util-extend.git" + "_npmVersion": "1.3.4", + "_phantomChildren": {}, + "_requested": { + "name": "util-extend", + "raw": "util-extend@^1.0.1", + "rawSpec": "^1.0.1", + "scope": null, + "spec": ">=1.0.1 <2.0.0", + "type": "range" }, + "_requiredBy": [ + "/read-installed" + ], + "_resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.1.tgz", + "_shasum": "bb703b79480293ddcdcfb3c6a9fea20f483415bc", + "_shrinkwrap": null, + "_spec": "util-extend@^1.0.1", + "_where": "/Users/rebecca/code/npm/node_modules/read-installed", "author": "", - "license": "MIT", - "readmeFilename": "README.md", - "readme": "# util-extend\n\nThe Node object extending function that Node uses for Node!\n\n## Usage\n\n```js\nvar extend = require('util-extend');\nfunction functionThatTakesOptions(options) {\n var options = extend(defaults, options);\n // now any unset options are set to the defaults.\n}\n```\n", "bugs": { "url": "https://github.com/isaacs/util-extend/issues" }, - "_id": "util-extend@1.0.1", + "dependencies": {}, + "description": "Node's internal object extension function", + "devDependencies": {}, + "directories": {}, "dist": { "shasum": "bb703b79480293ddcdcfb3c6a9fea20f483415bc", "tarball": "http://registry.npmjs.org/util-extend/-/util-extend-1.0.1.tgz" }, - "_from": "util-extend@>=1.0.1 <2.0.0", - "_npmVersion": "1.3.4", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, + "license": "MIT", + "main": "extend.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_shasum": "bb703b79480293ddcdcfb3c6a9fea20f483415bc", - "_resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.1.tgz", - "homepage": "https://github.com/isaacs/util-extend#readme" + "name": "util-extend", + "optionalDependencies": {}, + "readme": "# util-extend\n\nThe Node object extending function that Node uses for Node!\n\n## Usage\n\n```js\nvar extend = require('util-extend');\nfunction functionThatTakesOptions(options) {\n var options = extend(defaults, options);\n // now any unset options are set to the defaults.\n}\n```\n", + "readmeFilename": "README.md", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/util-extend" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/read-installed/node_modules/util-extend/test.js b/deps/npm/node_modules/util-extend/test.js similarity index 100% rename from deps/npm/node_modules/read-installed/node_modules/util-extend/test.js rename to deps/npm/node_modules/util-extend/test.js diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE deleted file mode 100644 index 68a49daad8ff7e35068f2b7a97d643aab440eaec..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -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 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. - -For more information, please refer to diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/LICENSE b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/LICENSE deleted file mode 100644 index 68a49daad8ff7e35068f2b7a97d643aab440eaec..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -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 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. - -For more information, please refer to diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/README.md b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/README.md deleted file mode 100755 index 92523532b2460949da337dd7d42b020487a3e1d8..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# spdx-license-ids - -A list of [SPDX license](https://spdx.org/licenses/) identifiers - -[**Download JSON**](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/spdx-license-ids.json) - -## Use as a JavaScript Library - -[![NPM version](https://img.shields.io/npm/v/spdx-license-ids.svg)](https://www.npmjs.org/package/spdx-license-ids) -[![Bower version](https://img.shields.io/bower/v/spdx-license-ids.svg)](https://github.com/shinnn/spdx-license-ids/releases) -[![Build Status](https://travis-ci.org/shinnn/spdx-license-ids.svg?branch=master)](https://travis-ci.org/shinnn/spdx-license-ids) -[![Coverage Status](https://img.shields.io/coveralls/shinnn/spdx-license-ids.svg)](https://coveralls.io/r/shinnn/spdx-license-ids) -[![devDependency Status](https://david-dm.org/shinnn/spdx-license-ids/dev-status.svg)](https://david-dm.org/shinnn/spdx-license-ids#info=devDependencies) - -### Installation - -#### Package managers - -##### [npm](https://www.npmjs.com/) - -```sh -npm install spdx-license-ids -``` - -##### [bower](http://bower.io/) - -```sh -bower install spdx-license-ids -``` - -##### [Duo](http://duojs.org/) - -```javascript -const spdxLicenseIds = require('shinnn/spdx-license-ids'); -``` - -#### Standalone - -[Download the script file directly.](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/spdx-license-ids-browser.js) - -### API - -#### spdxLicenseIds - -Type: `Array` of `String` - -It returns an array of SPDX license identifiers. - -```javascript -const spdxLicenseIds = require('spdx-license-ids'); //=> ['Glide', 'Abstyles', 'AFL-1.1', ... ] -``` - -## License - -[The Unlicense](./LICENSE). diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/package.json b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/package.json deleted file mode 100644 index 62c5c37ba96261e5cb71c8a08e510d6a020ef994..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "spdx-license-ids", - "version": "1.0.2", - "description": "A list of SPDX license identifiers", - "repository": { - "type": "git", - "url": "git+https://github.com/shinnn/spdx-license-ids.git" - }, - "author": { - "name": "Shinnosuke Watanabe", - "url": "https://github.com/shinnn" - }, - "scripts": { - "build": "node --harmony_arrow_functions build.js", - "lint": "eslint --config node_modules/@shinnn/eslintrc/rc.json --ignore-path .gitignore .", - "pretest": "${npm_package_scripts_build} && ${npm_package_scripts_lint}", - "test": "node --harmony_arrow_functions test.js", - "coverage": "node --harmony_arrow_functions node_modules/.bin/istanbul cover test.js", - "coveralls": "${npm_package_scripts_coverage} && istanbul-coveralls" - }, - "license": "Unlicense", - "main": "spdx-license-ids.json", - "files": [ - "spdx-license-ids.json" - ], - "keywords": [ - "spdx", - "license", - "licenses", - "id", - "identifier", - "identifiers", - "json", - "array", - "oss", - "browser", - "client-side" - ], - "devDependencies": { - "@shinnn/eslintrc": "^1.0.0", - "each-async": "^1.1.1", - "eslint": "^0.24.0", - "got": "^3.3.0", - "istanbul": "^0.3.17", - "istanbul-coveralls": "^1.0.3", - "require-bower-files": "^2.0.0", - "rimraf": "^2.4.1", - "stringify-object": "^2.2.0", - "tape": "^4.0.0" - }, - "gitHead": "df183ecdf1738f77b1e8e41f686ee56206a40693", - "bugs": { - "url": "https://github.com/shinnn/spdx-license-ids/issues" - }, - "homepage": "https://github.com/shinnn/spdx-license-ids#readme", - "_id": "spdx-license-ids@1.0.2", - "_shasum": "0674e9c9a230f980016b5b073a10aa165701677c", - "_from": "spdx-license-ids@>=1.0.0 <2.0.0", - "_npmVersion": "2.12.1", - "_nodeVersion": "2.3.3", - "_npmUser": { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - }, - "maintainers": [ - { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - } - ], - "dist": { - "shasum": "0674e9c9a230f980016b5b073a10aa165701677c", - "tarball": "http://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.0.2.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.0.2.tgz" -} diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/spdx-license-ids.json b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/spdx-license-ids.json deleted file mode 100644 index 2a4a78f549f06e5ea6809ef2ce6acb43eefa0d31..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids/spdx-license-ids.json +++ /dev/null @@ -1,303 +0,0 @@ -[ - "Glide", - "Abstyles", - "AFL-1.1", - "AFL-1.2", - "AFL-2.0", - "AFL-2.1", - "AFL-3.0", - "AMPAS", - "APL-1.0", - "Adobe-Glyph", - "APAFML", - "Adobe-2006", - "AGPL-1.0", - "Afmparse", - "Aladdin", - "ADSL", - "AMDPLPA", - "ANTLR-PD", - "Apache-1.0", - "Apache-1.1", - "Apache-2.0", - "AML", - "APSL-1.0", - "APSL-1.1", - "APSL-1.2", - "APSL-2.0", - "Artistic-1.0", - "Artistic-1.0-Perl", - "Artistic-1.0-cl8", - "Artistic-2.0", - "AAL", - "Bahyph", - "Barr", - "Beerware", - "BitTorrent-1.0", - "BitTorrent-1.1", - "BSL-1.0", - "Borceux", - "BSD-2-Clause", - "BSD-2-Clause-FreeBSD", - "BSD-2-Clause-NetBSD", - "BSD-3-Clause", - "BSD-3-Clause-Clear", - "BSD-4-Clause", - "BSD-Protection", - "BSD-3-Clause-Attribution", - "BSD-4-Clause-UC", - "bzip2-1.0.5", - "bzip2-1.0.6", - "Caldera", - "CECILL-1.0", - "CECILL-1.1", - "CECILL-2.0", - "CECILL-B", - "CECILL-C", - "ClArtistic", - "MIT-CMU", - "CNRI-Jython", - "CNRI-Python", - "CNRI-Python-GPL-Compatible", - "CPOL-1.02", - "CDDL-1.0", - "CDDL-1.1", - "CPAL-1.0", - "CPL-1.0", - "CATOSL-1.1", - "Condor-1.1", - "CC-BY-1.0", - "CC-BY-2.0", - "CC-BY-2.5", - "CC-BY-3.0", - "CC-BY-4.0", - "CC-BY-ND-1.0", - "CC-BY-ND-2.0", - "CC-BY-ND-2.5", - "CC-BY-ND-3.0", - "CC-BY-ND-4.0", - "CC-BY-NC-1.0", - "CC-BY-NC-2.0", - "CC-BY-NC-2.5", - "CC-BY-NC-3.0", - "CC-BY-NC-4.0", - "CC-BY-NC-ND-1.0", - "CC-BY-NC-ND-2.0", - "CC-BY-NC-ND-2.5", - "CC-BY-NC-ND-3.0", - "CC-BY-NC-ND-4.0", - "CC-BY-NC-SA-1.0", - "CC-BY-NC-SA-2.0", - "CC-BY-NC-SA-2.5", - "CC-BY-NC-SA-3.0", - "CC-BY-NC-SA-4.0", - "CC-BY-SA-1.0", - "CC-BY-SA-2.0", - "CC-BY-SA-2.5", - "CC-BY-SA-3.0", - "CC-BY-SA-4.0", - "CC0-1.0", - "Crossword", - "CUA-OPL-1.0", - "Cube", - "D-FSL-1.0", - "diffmark", - "WTFPL", - "DOC", - "Dotseqn", - "DSDP", - "dvipdfm", - "EPL-1.0", - "ECL-1.0", - "ECL-2.0", - "eGenix", - "EFL-1.0", - "EFL-2.0", - "MIT-advertising", - "MIT-enna", - "Entessa", - "ErlPL-1.1", - "EUDatagrid", - "EUPL-1.0", - "EUPL-1.1", - "Eurosym", - "Fair", - "MIT-feh", - "Frameworx-1.0", - "FreeImage", - "FTL", - "FSFUL", - "FSFULLR", - "Giftware", - "GL2PS", - "Glulxe", - "AGPL-3.0", - "GFDL-1.1", - "GFDL-1.2", - "GFDL-1.3", - "GPL-1.0", - "GPL-2.0", - "GPL-3.0", - "LGPL-2.1", - "LGPL-3.0", - "LGPL-2.0", - "gnuplot", - "gSOAP-1.3b", - "HaskellReport", - "HPND", - "IBM-pibs", - "IPL-1.0", - "ICU", - "ImageMagick", - "iMatix", - "Imlib2", - "IJG", - "Intel-ACPI", - "Intel", - "IPA", - "ISC", - "JasPer-2.0", - "JSON", - "LPPL-1.3a", - "LPPL-1.0", - "LPPL-1.1", - "LPPL-1.2", - "LPPL-1.3c", - "Latex2e", - "BSD-3-Clause-LBNL", - "Leptonica", - "LGPLLR", - "Libpng", - "libtiff", - "LPL-1.02", - "LPL-1.0", - "MakeIndex", - "MTLL", - "MS-PL", - "MS-RL", - "MirOS", - "MITNFA", - "MIT", - "Motosoto", - "MPL-1.0", - "MPL-1.1", - "MPL-2.0", - "MPL-2.0-no-copyleft-exception", - "mpich2", - "Multics", - "Mup", - "NASA-1.3", - "Naumen", - "NBPL-1.0", - "NetCDF", - "NGPL", - "NOSL", - "NPL-1.0", - "NPL-1.1", - "Newsletr", - "NLPL", - "Nokia", - "NPOSL-3.0", - "Noweb", - "NRL", - "NTP", - "Nunit", - "OCLC-2.0", - "ODbL-1.0", - "PDDL-1.0", - "OGTSL", - "OLDAP-2.2.2", - "OLDAP-1.1", - "OLDAP-1.2", - "OLDAP-1.3", - "OLDAP-1.4", - "OLDAP-2.0", - "OLDAP-2.0.1", - "OLDAP-2.1", - "OLDAP-2.2", - "OLDAP-2.2.1", - "OLDAP-2.3", - "OLDAP-2.4", - "OLDAP-2.5", - "OLDAP-2.6", - "OLDAP-2.7", - "OLDAP-2.8", - "OML", - "OPL-1.0", - "OSL-1.0", - "OSL-1.1", - "OSL-2.0", - "OSL-2.1", - "OSL-3.0", - "OpenSSL", - "PHP-3.0", - "PHP-3.01", - "Plexus", - "PostgreSQL", - "psfrag", - "psutils", - "Python-2.0", - "QPL-1.0", - "Qhull", - "Rdisc", - "RPSL-1.0", - "RPL-1.1", - "RPL-1.5", - "RHeCos-1.1", - "RSCPL", - "RSA-MD", - "Ruby", - "SAX-PD", - "Saxpath", - "SCEA", - "SWL", - "SGI-B-1.0", - "SGI-B-1.1", - "SGI-B-2.0", - "OFL-1.0", - "OFL-1.1", - "SimPL-2.0", - "Sleepycat", - "SNIA", - "Spencer-86", - "Spencer-94", - "Spencer-99", - "SMLNJ", - "SugarCRM-1.1.3", - "SISSL", - "SISSL-1.2", - "SPL-1.0", - "Watcom-1.0", - "TCL", - "Unlicense", - "TMate", - "TORQUE-1.1", - "TOSL", - "Unicode-TOU", - "UPL-1.0", - "NCSA", - "Vim", - "VOSTROM", - "VSL-1.0", - "W3C-19980720", - "W3C", - "Wsuipa", - "Xnet", - "X11", - "Xerox", - "XFree86-1.1", - "xinetd", - "xpp", - "XSkat", - "YPL-1.0", - "YPL-1.1", - "Zed", - "Zend-2.0", - "Zimbra-1.3", - "Zimbra-1.4", - "Zlib", - "zlib-acknowledgement", - "ZPL-1.1", - "ZPL-2.0", - "ZPL-2.1" -] diff --git a/deps/npm/node_modules/validate-npm-package-license/package.json b/deps/npm/node_modules/validate-npm-package-license/package.json index 00006cc3904b9067cc3800a4180780b5b2f131c4..94c1433c77c7f4063209352b735733d1c42dc10c 100644 --- a/deps/npm/node_modules/validate-npm-package-license/package.json +++ b/deps/npm/node_modules/validate-npm-package-license/package.json @@ -1,20 +1,63 @@ { - "name": "validate-npm-package-license", - "description": "Give me a string and I'll tell you if it's a valid npm package license string", - "version": "3.0.1", + "_args": [ + [ + "validate-npm-package-license@^3.0.1", + "/Users/ogd/Documents/projects/npm/npm/node_modules/init-package-json" + ] + ], + "_from": "validate-npm-package-license@>=3.0.1 <4.0.0", + "_id": "validate-npm-package-license@3.0.1", + "_inCache": true, + "_location": "/validate-npm-package-license", + "_nodeVersion": "0.12.7", + "_npmUser": { + "email": "kyle@kemitchell.com", + "name": "kemitchell" + }, + "_npmVersion": "2.13.5", + "_phantomChildren": {}, + "_requested": { + "name": "validate-npm-package-license", + "raw": "validate-npm-package-license@^3.0.1", + "rawSpec": "^3.0.1", + "scope": null, + "spec": ">=3.0.1 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/init-package-json", + "/normalize-package-data" + ], + "_resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "_shasum": "2804babe712ad3379459acfbe24746ab2c303fbc", + "_shrinkwrap": null, + "_spec": "validate-npm-package-license@^3.0.1", + "_where": "/Users/ogd/Documents/projects/npm/npm/node_modules/init-package-json", "author": { - "name": "Kyle E. Mitchell", "email": "kyle@kemitchell.com", + "name": "Kyle E. Mitchell", "url": "https://kemitchell.com" }, + "bugs": { + "url": "https://github.com/kemitchell/validate-npm-package-license.js/issues" + }, "dependencies": { "spdx-correct": "~1.0.0", "spdx-expression-parse": "~1.0.0" }, + "description": "Give me a string and I'll tell you if it's a valid npm package license string", "devDependencies": { "defence-cli": "^1.0.1", "replace-require-self": "^1.0.0" }, + "directories": {}, + "dist": { + "shasum": "2804babe712ad3379459acfbe24746ab2c303fbc", + "tarball": "http://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" + }, + "gitHead": "00200d28f9960985f221bc1a8a71e4760daf39bf", + "homepage": "https://github.com/kemitchell/validate-npm-package-license.js#readme", + "installable": true, "keywords": [ "license", "npm", @@ -22,31 +65,6 @@ "validation" ], "license": "Apache-2.0", - "repository": { - "type": "git", - "url": "git+https://github.com/kemitchell/validate-npm-package-license.js.git" - }, - "scripts": { - "test": "defence README.md | replace-require-self | node" - }, - "gitHead": "00200d28f9960985f221bc1a8a71e4760daf39bf", - "bugs": { - "url": "https://github.com/kemitchell/validate-npm-package-license.js/issues" - }, - "homepage": "https://github.com/kemitchell/validate-npm-package-license.js#readme", - "_id": "validate-npm-package-license@3.0.1", - "_shasum": "2804babe712ad3379459acfbe24746ab2c303fbc", - "_from": "validate-npm-package-license@3.0.1", - "_npmVersion": "2.13.5", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "kemitchell", - "email": "kyle@kemitchell.com" - }, - "dist": { - "shasum": "2804babe712ad3379459acfbe24746ab2c303fbc", - "tarball": "http://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" - }, "maintainers": [ { "name": "kemitchell", @@ -57,6 +75,16 @@ "email": "ogd@aoaioxxysz.net" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" + "name": "validate-npm-package-license", + "optionalDependencies": {}, + "readme": "validate-npm-package-license\n============================\n\nGive me a string and I'll tell you if it's a valid npm package license string.\n\n```javascript\nvar valid = require('validate-npm-package-license');\n```\n\nSPDX license identifiers are valid license strings:\n\n```javascript\n\nvar assert = require('assert');\nvar validSPDXExpression = {\n validForNewPackages: true,\n validForOldPackages: true,\n spdx: true\n};\n\nassert.deepEqual(valid('MIT'), validSPDXExpression);\nassert.deepEqual(valid('BSD-2-Clause'), validSPDXExpression);\nassert.deepEqual(valid('Apache-2.0'), validSPDXExpression);\nassert.deepEqual(valid('ISC'), validSPDXExpression);\n```\nThe function will return a warning and suggestion for nearly-correct license identifiers:\n\n```javascript\nassert.deepEqual(\n valid('Apache 2.0'),\n {\n validForOldPackages: false,\n validForNewPackages: false,\n warnings: [\n 'license should be ' +\n 'a valid SPDX license expression (without \"LicenseRef\"), ' +\n '\"UNLICENSED\", or ' +\n '\"SEE LICENSE IN \"',\n 'license is similar to the valid expression \"Apache-2.0\"'\n ]\n }\n);\n```\n\nSPDX expressions are valid, too ...\n\n```javascript\n// Simple SPDX license expression for dual licensing\nassert.deepEqual(\n valid('(GPL-3.0 OR BSD-2-Clause)'),\n validSPDXExpression\n);\n```\n\n... except if they contain `LicenseRef`:\n\n```javascript\nvar warningAboutLicenseRef = {\n validForOldPackages: false,\n validForNewPackages: false,\n spdx: true,\n warnings: [\n 'license should be ' +\n 'a valid SPDX license expression (without \"LicenseRef\"), ' +\n '\"UNLICENSED\", or ' +\n '\"SEE LICENSE IN \"',\n ]\n};\n\nassert.deepEqual(\n valid('LicenseRef-Made-Up'),\n warningAboutLicenseRef\n);\n\nassert.deepEqual(\n valid('(MIT OR LicenseRef-Made-Up)'),\n warningAboutLicenseRef\n);\n```\n\nIf you can't describe your licensing terms with standardized SPDX identifiers, put the terms in a file in the package and point users there:\n\n```javascript\nassert.deepEqual(\n valid('SEE LICENSE IN LICENSE.txt'),\n {\n validForNewPackages: true,\n validForOldPackages: true,\n inFile: 'LICENSE.txt'\n }\n);\n\nassert.deepEqual(\n valid('SEE LICENSE IN license.md'),\n {\n validForNewPackages: true,\n validForOldPackages: true,\n inFile: 'license.md'\n }\n);\n```\n\nIf there aren't any licensing terms, use `UNLICENSED`:\n\n```javascript\nvar unlicensed = {\n validForNewPackages: true,\n validForOldPackages: true,\n unlicensed: true\n};\nassert.deepEqual(valid('UNLICENSED'), unlicensed);\nassert.deepEqual(valid('UNLICENCED'), unlicensed);\n```\n", + "readmeFilename": "README.md", + "repository": { + "type": "git", + "url": "git+https://github.com/kemitchell/validate-npm-package-license.js.git" + }, + "scripts": { + "test": "defence README.md | replace-require-self | node" + }, + "version": "3.0.1" } diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml b/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml deleted file mode 100644 index cc4dba29d959a2da7b97f9edd3c7c91384b2ee5b..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json b/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json deleted file mode 100644 index 32b8c350692db4585cba9c0fbd58fcd5d512e7ad..0000000000000000000000000000000000000000 --- a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "builtins", - "version": "0.0.7", - "description": "List of node.js builtin modules", - "repository": { - "type": "git", - "url": "git+https://github.com/juliangruber/builtins.git" - }, - "license": "MIT", - "main": "builtins.json", - "publishConfig": { - "registry": "https://registry.npmjs.org" - }, - "scripts": { - "test": "node -e \"require('./builtins.json')\"" - }, - "readme": "\n# builtins\n\n List of node.js [builtin modules](http://nodejs.org/api/).\n\n [![build status](https://secure.travis-ci.org/juliangruber/builtins.svg)](http://travis-ci.org/juliangruber/builtins)\n\n## Example\n\n```js\nvar builtins = require('builtins');\n\nassert(builtins.indexOf('http') > -1);\n```\n\n## License\n\n MIT\n", - "readmeFilename": "Readme.md", - "bugs": { - "url": "https://github.com/juliangruber/builtins/issues" - }, - "homepage": "https://github.com/juliangruber/builtins", - "_id": "builtins@0.0.7", - "_from": "builtins@0.0.7" -} diff --git a/deps/npm/node_modules/validate-npm-package-name/package.json b/deps/npm/node_modules/validate-npm-package-name/package.json index b2a6104af58c6e229696eb5fd8ea8773ebbbd123..63cfacd9419c862bcecfe5808ac16908d9030121 100644 --- a/deps/npm/node_modules/validate-npm-package-name/package.json +++ b/deps/npm/node_modules/validate-npm-package-name/package.json @@ -1,42 +1,90 @@ { - "name": "validate-npm-package-name", - "version": "2.2.2", - "description": "Give me a string and I'll tell you if it's a valid npm package name", - "main": "index.js", - "directories": { - "test": "test" + "_args": [ + [ + "validate-npm-package-name@~2.2.0", + "/Users/rebecca/code/npm" + ] + ], + "_from": "validate-npm-package-name@>=2.2.0 <2.3.0", + "_id": "validate-npm-package-name@2.2.2", + "_inCache": true, + "_location": "/validate-npm-package-name", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "kat@sykosomatic.org", + "name": "zkat" + }, + "_npmVersion": "3.0.0", + "_phantomChildren": {}, + "_requested": { + "name": "validate-npm-package-name", + "raw": "validate-npm-package-name@~2.2.0", + "rawSpec": "~2.2.0", + "scope": null, + "spec": ">=2.2.0 <2.3.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/init-package-json" + ], + "_resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz", + "_shasum": "f65695b22f7324442019a3c7fa39a6e7fd299085", + "_shrinkwrap": null, + "_spec": "validate-npm-package-name@~2.2.0", + "_where": "/Users/rebecca/code/npm", + "author": { + "name": "zeke" + }, + "bugs": { + "url": "https://github.com/npm/validate-npm-package-name/issues" }, "dependencies": { "builtins": "0.0.7" }, + "description": "Give me a string and I'll tell you if it's a valid npm package name", "devDependencies": { "tap": "^0.4.13" }, - "scripts": { - "test": "tap test/*.js" + "directories": { + "test": "test" }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/validate-npm-package-name.git" + "dist": { + "shasum": "f65695b22f7324442019a3c7fa39a6e7fd299085", + "tarball": "http://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz" }, + "gitHead": "3af92c881549f1b96f05ab6bfb5768bba94ad72d", + "homepage": "https://github.com/npm/validate-npm-package-name", "keywords": [ + "names", "npm", "package", - "names", "validation" ], - "author": { - "name": "zeke" - }, "license": "ISC", - "bugs": { - "url": "https://github.com/npm/validate-npm-package-name/issues" + "main": "index.js", + "maintainers": [ + { + "name": "zeke", + "email": "zeke@sikelianos.com" + }, + { + "name": "bcoe", + "email": "ben@npmjs.com" + }, + { + "name": "zkat", + "email": "kat@sykosomatic.org" + } + ], + "name": "validate-npm-package-name", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/npm/validate-npm-package-name.git" }, - "homepage": "https://github.com/npm/validate-npm-package-name", - "readme": "# validate-npm-package-name\n\nGive me a string and I'll tell you if it's a valid `npm` package name.\n\nThis package exports a single synchronous function that takes a `string` as\ninput and returns an object with two properties:\n\n- `validForNewPackages` :: `Boolean`\n- `validForOldPackages` :: `Boolean`\n\n## Contents\n\n- [Naming rules](#naming-rules)\n- [Examples](#examples)\n + [Valid Names](#valid-names)\n + [Invalid Names](#invalid-names)\n- [Legacy Names](#legacy-names)\n- [Tests](#tests)\n- [License](#license)\n\n## Naming Rules\n\nBelow is a list of rules that valid `npm` package name should conform to.\n\n- package name length should be greater than zero\n- all the characters in the package name must be lowercase i.e., no uppercase or mixed case names are allowed\n- package name *can* consist of hyphens\n- package name must *not* contain any non-url-safe characters (since name ends up being part of a URL)\n- package name should not start with `.` or `_`\n- package name should *not* contain any leading or trailing spaces\n- package name *cannot* be the same as a node.js/io.js core module nor a reserved/blacklisted name. For example, the following names are invalid:\n + http\n + stream\n + node_modules\n + favicon.ico\n- package name length cannot exceed 214\n\n\n## Examples\n\n### Valid Names\n\n```js\nvar validate = require(\"validate-npm-package-name\")\n\nvalidate(\"some-package\")\nvalidate(\"example.com\")\nvalidate(\"under_score\")\nvalidate(\"123numeric\")\nvalidate(\"crazy!\")\nvalidate(\"@npm/thingy\")\nvalidate(\"@jane/foo.js\")\n```\n\nAll of the above names are valid, so you'll get this object back:\n\n```js\n{\n validForNewPackages: true,\n validForOldPackages: true\n}\n```\n\n### Invalid Names\n\n```js\nvalidate(\" leading-space:and:weirdchars\")\n```\n\nThat was never a valid package name, so you get this:\n\n```js\n{\n validForNewPackages: false,\n validForOldPackages: false,\n errors: [\n 'name cannot contain leading or trailing spaces',\n 'name can only contain URL-friendly characters'\n ]\n}\n```\n\n## Legacy Names\n\nIn the old days of npm, package names were wild. They could have capital\nletters in them. They could be really long. They could be the name of an\nexisting module in node core.\n\nIf you give this function a package name that **used to be valid**, you'll see\na change in the value of `validForNewPackages` property, and a warnings array\nwill be present:\n\n```js\nvalidate(\"cRaZY-paCkAgE-with-mixed-case-and-more-than-214-characters-----------------------------------------------------------------------------------------------------------------------------------------------------------\")\n```\n\nreturns:\n\n```js\n{\n validForNewPackages: false,\n validForOldPackages: true,\n warnings: [\n \"name can no longer contain capital letters\",\n \"name can no longer contain more than 214 characters\"\n ]\n}\n```\n\n## Tests\n\n```sh\nnpm install\nnpm test\n```\n\n## License\n\nISC\n", - "readmeFilename": "README.md", - "gitHead": "3af92c881549f1b96f05ab6bfb5768bba94ad72d", - "_id": "validate-npm-package-name@2.2.2", - "_shasum": "f65695b22f7324442019a3c7fa39a6e7fd299085", - "_from": "validate-npm-package-name@2.2.2" + "scripts": { + "test": "tap test/*.js" + }, + "version": "2.2.2" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/.npmignore b/deps/npm/node_modules/wcwidth/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/.npmignore rename to deps/npm/node_modules/wcwidth/.npmignore diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/LICENSE b/deps/npm/node_modules/wcwidth/LICENSE similarity index 99% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/LICENSE rename to deps/npm/node_modules/wcwidth/LICENSE index 313ef1e888e41b3dddc011aa1da5fb5c0635d40f..14deaf94b8162d9f86a4c5eaa783d1cfacfc9141 100644 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/LICENSE +++ b/deps/npm/node_modules/wcwidth/LICENSE @@ -27,4 +27,3 @@ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/Readme.md b/deps/npm/node_modules/wcwidth/Readme.md similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/Readme.md rename to deps/npm/node_modules/wcwidth/Readme.md diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/combining.js b/deps/npm/node_modules/wcwidth/combining.js similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/combining.js rename to deps/npm/node_modules/wcwidth/combining.js diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/docs/index.md b/deps/npm/node_modules/wcwidth/docs/index.md similarity index 99% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/docs/index.md rename to deps/npm/node_modules/wcwidth/docs/index.md index 5c5126d03287b4511636815de621e29dce5000fc..64c1f3f7cd8a8acd029f9bff633f67438f38a17c 100644 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/docs/index.md +++ b/deps/npm/node_modules/wcwidth/docs/index.md @@ -60,6 +60,3 @@ for any purpose and without fee is hereby granted. The author disclaims all warranties with regard to this software. Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c - - - diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/index.js b/deps/npm/node_modules/wcwidth/index.js similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/index.js rename to deps/npm/node_modules/wcwidth/index.js diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/package.json b/deps/npm/node_modules/wcwidth/package.json similarity index 64% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/package.json rename to deps/npm/node_modules/wcwidth/package.json index 4744d9dc3f7f7b8d630d8fa7516e1082b5a3ec14..a950ab260c2a7dccfcea2fbf71c9d0fd7b31066f 100644 --- a/deps/npm/node_modules/columnify/node_modules/wcwidth/package.json +++ b/deps/npm/node_modules/wcwidth/package.json @@ -1,7 +1,36 @@ { - "name": "wcwidth", - "version": "1.0.0", - "description": "Port of C's wcwidth() and wcswidth()", + "_args": [ + [ + "wcwidth@^1.0.0", + "/Users/rebecca/code/npm/node_modules/columnify" + ] + ], + "_from": "wcwidth@>=1.0.0 <2.0.0", + "_id": "wcwidth@1.0.0", + "_inCache": true, + "_location": "/wcwidth", + "_npmUser": { + "email": "secoif@gmail.com", + "name": "timoxley" + }, + "_npmVersion": "1.4.23", + "_phantomChildren": {}, + "_requested": { + "name": "wcwidth", + "raw": "wcwidth@^1.0.0", + "rawSpec": "^1.0.0", + "scope": null, + "spec": ">=1.0.0 <2.0.0", + "type": "range" + }, + "_requiredBy": [ + "/columnify" + ], + "_resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz", + "_shasum": "02d059ff7a8fc741e0f6b5da1e69b2b40daeca6f", + "_shrinkwrap": null, + "_spec": "wcwidth@^1.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/columnify", "author": { "name": "Tim Oxley" }, @@ -12,49 +41,44 @@ "url": "http://code.woong.org/" } ], - "main": "index.js", "dependencies": { "defaults": "^1.0.0" }, + "description": "Port of C's wcwidth() and wcswidth()", "devDependencies": { "tape": "^2.13.4" }, - "license": "MIT", - "keywords": [ - "wide character", - "wc", - "wide character string", - "wcs", - "terminal", - "width", - "wcwidth", - "wcswidth" - ], "directories": { "doc": "docs", "test": "test" }, - "scripts": { - "test": "tape test/*.js" + "dist": { + "shasum": "02d059ff7a8fc741e0f6b5da1e69b2b40daeca6f", + "tarball": "http://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz" }, "gitHead": "5bc3aafd45c89f233c27b9479c18a23ca91ba660", - "_id": "wcwidth@1.0.0", - "_shasum": "02d059ff7a8fc741e0f6b5da1e69b2b40daeca6f", - "_from": "wcwidth@>=1.0.0 <2.0.0", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "timoxley", - "email": "secoif@gmail.com" - }, + "keywords": [ + "terminal", + "wc", + "wcs", + "wcswidth", + "wcwidth", + "wide character", + "wide character string", + "width" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "timoxley", "email": "secoif@gmail.com" } ], - "dist": { - "shasum": "02d059ff7a8fc741e0f6b5da1e69b2b40daeca6f", - "tarball": "http://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz" + "name": "wcwidth", + "optionalDependencies": {}, + "scripts": { + "test": "tape test/*.js" }, - "_resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz" + "version": "1.0.0" } diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js b/deps/npm/node_modules/wcwidth/test/index.js similarity index 100% rename from deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js rename to deps/npm/node_modules/wcwidth/test/index.js diff --git a/deps/npm/node_modules/which/package.json b/deps/npm/node_modules/which/package.json index 0213e184e7b74632de6f30ed3b241ef9418fc664..af78bbeb3860c76fb4be6e916f714827741f191f 100644 --- a/deps/npm/node_modules/which/package.json +++ b/deps/npm/node_modules/which/package.json @@ -1,57 +1,82 @@ { + "_args": [ + [ + "which@~1.1.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "which@>=1.1.1 <1.2.0", + "_id": "which@1.1.2", + "_inCache": true, + "_location": "/which", + "_nodeVersion": "2.5.0", + "_npmUser": { + "email": "isaacs@npmjs.com", + "name": "isaacs" + }, + "_npmVersion": "3.3.1", + "_phantomChildren": {}, + "_requested": { + "name": "which", + "raw": "which@~1.1.1", + "rawSpec": "~1.1.1", + "scope": null, + "spec": ">=1.1.1 <1.2.0", + "type": "range" + }, + "_requiredBy": [ + "/", + "/node-gyp" + ], + "_resolved": "https://registry.npmjs.org/which/-/which-1.1.2.tgz", + "_shasum": "486c48af6dfecc7a7dcf9c655acf108d2dcbdf3d", + "_shrinkwrap": null, + "_spec": "which@~1.1.1", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me" }, - "name": "which", - "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", - "version": "1.1.2", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-which.git" - }, - "main": "which.js", "bin": { "which": "./bin/which" }, - "license": "ISC", + "bugs": { + "url": "https://github.com/isaacs/node-which/issues" + }, "dependencies": { "is-absolute": "^0.1.7" }, + "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", "devDependencies": { "mkdirp": "^0.5.0", "rimraf": "^2.3.3", "tap": "^1.0.2" }, - "scripts": { - "test": "tap test/*.js" - }, - "gitHead": "e576e42f0c377571884f844eec58b3ca4a331681", - "bugs": { - "url": "https://github.com/isaacs/node-which/issues" - }, - "homepage": "https://github.com/isaacs/node-which#readme", - "_id": "which@1.1.2", - "_shasum": "486c48af6dfecc7a7dcf9c655acf108d2dcbdf3d", - "_from": "which@1.1.2", - "_npmVersion": "3.3.1", - "_nodeVersion": "2.5.0", - "_npmUser": { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, + "directories": {}, "dist": { "shasum": "486c48af6dfecc7a7dcf9c655acf108d2dcbdf3d", "tarball": "http://registry.npmjs.org/which/-/which-1.1.2.tgz" }, + "gitHead": "e576e42f0c377571884f844eec58b3ca4a331681", + "homepage": "https://github.com/isaacs/node-which#readme", + "installable": true, + "license": "ISC", + "main": "which.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/which/-/which-1.1.2.tgz", - "readme": "ERROR: No README data found!" + "name": "which", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-which.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.1.2" } diff --git a/deps/npm/node_modules/wrappy/package.json b/deps/npm/node_modules/wrappy/package.json index b88e66283290baf6b7930d29222b5ec04909ad01..3c4e03b037d4b9b99a5e36cb4d6ff8bc689621e9 100644 --- a/deps/npm/node_modules/wrappy/package.json +++ b/deps/npm/node_modules/wrappy/package.json @@ -1,52 +1,78 @@ { - "name": "wrappy", - "version": "1.0.1", - "description": "Callback wrapping utility", - "main": "wrappy.js", - "directories": { - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "tap": "^0.4.12" - }, - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "wrappy@~1.0.1", + "/Users/rebecca/code/npm" + ] + ], + "_from": "wrappy@>=1.0.1 <1.1.0", + "_id": "wrappy@1.0.1", + "_inCache": true, + "_location": "/wrappy", + "_nodeVersion": "0.10.31", + "_npmUser": { + "email": "i@izs.me", + "name": "isaacs" }, - "repository": { - "type": "git", - "url": "https://github.com/npm/wrappy" + "_npmVersion": "2.0.0", + "_phantomChildren": {}, + "_requested": { + "name": "wrappy", + "raw": "wrappy@~1.0.1", + "rawSpec": "~1.0.1", + "scope": null, + "spec": ">=1.0.1 <1.1.0", + "type": "range" }, + "_requiredBy": [ + "/", + "/dezalgo", + "/inflight", + "/once" + ], + "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", + "_shasum": "1e65969965ccbc2db4548c6b84a6f2c5aedd4739", + "_shrinkwrap": null, + "_spec": "wrappy@~1.0.1", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Isaac Z. Schlueter", "email": "i@izs.me", + "name": "Isaac Z. Schlueter", "url": "http://blog.izs.me/" }, - "license": "ISC", "bugs": { "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", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" + "dependencies": {}, + "description": "Callback wrapping utility", + "devDependencies": { + "tap": "^0.4.12" + }, + "directories": { + "test": "test" + }, + "dist": { + "shasum": "1e65969965ccbc2db4548c6b84a6f2c5aedd4739", + "tarball": "http://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" }, + "gitHead": "006a8cbac6b99988315834c207896eed71fd069a", + "homepage": "https://github.com/npm/wrappy", + "license": "ISC", + "main": "wrappy.js", "maintainers": [ { "name": "isaacs", "email": "i@izs.me" } ], - "dist": { - "shasum": "1e65969965ccbc2db4548c6b84a6f2c5aedd4739", - "tarball": "http://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + "name": "wrappy", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/npm/wrappy" }, - "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.0.1" } diff --git a/deps/npm/node_modules/write-file-atomic/package.json b/deps/npm/node_modules/write-file-atomic/package.json index 4fad94d3dd42dc8576ddbb820a1b6ed7691efce0..1dbe79432ba1f358c3c4eaae6bed7317982ea8ea 100644 --- a/deps/npm/node_modules/write-file-atomic/package.json +++ b/deps/npm/node_modules/write-file-atomic/package.json @@ -1,57 +1,81 @@ { - "name": "write-file-atomic", - "version": "1.1.3", - "description": "Write files in an atomic fashion w/configurable ownership", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "write-file-atomic@~1.1.2", + "/Users/rebecca/code/npm" + ] + ], + "_from": "write-file-atomic@>=1.1.2 <1.2.0", + "_id": "write-file-atomic@1.1.3", + "_inCache": true, + "_location": "/write-file-atomic", + "_nodeVersion": "3.1.0", + "_npmUser": { + "email": "me@re-becca.org", + "name": "iarna" }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/iarna/write-file-atomic.git" + "_npmVersion": "3.3.0", + "_phantomChildren": {}, + "_requested": { + "name": "write-file-atomic", + "raw": "write-file-atomic@~1.1.2", + "rawSpec": "~1.1.2", + "scope": null, + "spec": ">=1.1.2 <1.2.0", + "type": "range" }, - "keywords": [ - "writeFile", - "atomic" + "_requiredBy": [ + "/" ], + "_shasum": "60eaca258a0b559b37aca82b21d64a293b4b90d0", + "_shrinkwrap": null, + "_spec": "write-file-atomic@~1.1.2", + "_where": "/Users/rebecca/code/npm", "author": { - "name": "Rebecca Turner", "email": "me@re-becca.org", + "name": "Rebecca Turner", "url": "http://re-becca.org" }, - "license": "ISC", "bugs": { "url": "https://github.com/iarna/write-file-atomic/issues" }, - "homepage": "https://github.com/iarna/write-file-atomic", "dependencies": { "graceful-fs": "^4.1.2", "slide": "^1.1.5" }, + "description": "Write files in an atomic fashion w/configurable ownership", "devDependencies": { "require-inject": "^1.1.0", "tap": "^0.4.12" }, - "gitHead": "65a1e2e156c0d0bfb7acac2e039b943d6ec9876d", - "_id": "write-file-atomic@1.1.3", - "_shasum": "60eaca258a0b559b37aca82b21d64a293b4b90d0", - "_from": "write-file-atomic@1.1.3", - "_npmVersion": "3.3.0", - "_nodeVersion": "3.1.0", - "_npmUser": { - "name": "iarna", - "email": "me@re-becca.org" - }, + "directories": {}, "dist": { "shasum": "60eaca258a0b559b37aca82b21d64a293b4b90d0", "tarball": "http://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.1.3.tgz" }, + "gitHead": "65a1e2e156c0d0bfb7acac2e039b943d6ec9876d", + "homepage": "https://github.com/iarna/write-file-atomic", + "installable": true, + "keywords": [ + "atomic", + "writeFile" + ], + "license": "ISC", + "main": "index.js", "maintainers": [ { "name": "iarna", "email": "me@re-becca.org" } ], - "directories": {}, - "_resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.1.3.tgz" + "name": "write-file-atomic", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/iarna/write-file-atomic.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.1.3" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/.npmignore b/deps/npm/node_modules/xtend/.npmignore similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/.npmignore rename to deps/npm/node_modules/xtend/.npmignore diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/LICENCE b/deps/npm/node_modules/xtend/LICENCE similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/LICENCE rename to deps/npm/node_modules/xtend/LICENCE diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/Makefile b/deps/npm/node_modules/xtend/Makefile similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/Makefile rename to deps/npm/node_modules/xtend/Makefile diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/README.md b/deps/npm/node_modules/xtend/README.md similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/README.md rename to deps/npm/node_modules/xtend/README.md diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/immutable.js b/deps/npm/node_modules/xtend/immutable.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/immutable.js rename to deps/npm/node_modules/xtend/immutable.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/mutable.js b/deps/npm/node_modules/xtend/mutable.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/mutable.js rename to deps/npm/node_modules/xtend/mutable.js diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/package.json b/deps/npm/node_modules/xtend/package.json similarity index 63% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/package.json rename to deps/npm/node_modules/xtend/package.json index 907a720da7e2f6c42911290e4a0abb14bbb7b6e1..116a2797fc286b71428dc5564500466bc7cfc13c 100644 --- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/package.json +++ b/deps/npm/node_modules/xtend/package.json @@ -1,32 +1,44 @@ { - "name": "xtend", - "version": "4.0.0", - "description": "extend like a boss", - "keywords": [ - "extend", - "merge", - "options", - "opts", - "object", - "array" + "_args": [ + [ + "xtend@^4.0.0", + "/Users/rebecca/code/npm/node_modules/is-my-json-valid" + ] ], - "author": { - "name": "Raynos", - "email": "raynos2@gmail.com" + "_from": "xtend@>=4.0.0 <5.0.0", + "_id": "xtend@4.0.0", + "_inCache": true, + "_location": "/xtend", + "_npmUser": { + "email": "raynos2@gmail.com", + "name": "raynos" }, - "repository": { - "type": "git", - "url": "git://github.com/Raynos/xtend.git" + "_npmVersion": "1.4.15", + "_phantomChildren": {}, + "_requested": { + "name": "xtend", + "raw": "xtend@^4.0.0", + "rawSpec": "^4.0.0", + "scope": null, + "spec": ">=4.0.0 <5.0.0", + "type": "range" }, - "main": "immutable", - "scripts": { - "test": "node test" + "_requiredBy": [ + "/is-my-json-valid" + ], + "_resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz", + "_shasum": "8bc36ff87aedbe7ce9eaf0bca36b2354a743840f", + "_shrinkwrap": null, + "_spec": "xtend@^4.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/is-my-json-valid", + "author": { + "email": "raynos2@gmail.com", + "name": "Raynos" }, - "dependencies": {}, - "devDependencies": { - "tape": "~1.1.0" + "bugs": { + "email": "raynos2@gmail.com", + "url": "https://github.com/Raynos/xtend/issues" }, - "homepage": "https://github.com/Raynos/xtend", "contributors": [ { "name": "Jake Verbaten" @@ -35,54 +47,65 @@ "name": "Matt Esch" } ], - "bugs": { - "url": "https://github.com/Raynos/xtend/issues", - "email": "raynos2@gmail.com" + "dependencies": {}, + "description": "extend like a boss", + "devDependencies": { + "tape": "~1.1.0" + }, + "directories": {}, + "dist": { + "shasum": "8bc36ff87aedbe7ce9eaf0bca36b2354a743840f", + "tarball": "http://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" + }, + "engines": { + "node": ">=0.4" }, + "gitHead": "94a95d76154103290533b2c55ffa0fe4be16bfef", + "homepage": "https://github.com/Raynos/xtend", + "keywords": [ + "array", + "extend", + "merge", + "object", + "options", + "opts" + ], "licenses": [ { "type": "MIT", "url": "http://github.com/raynos/xtend/raw/master/LICENSE" } ], - "testling": { - "files": "test.js", - "browsers": [ - "ie/7..latest", - "firefox/16..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" - ] - }, - "engines": { - "node": ">=0.4" - }, - "gitHead": "94a95d76154103290533b2c55ffa0fe4be16bfef", - "_id": "xtend@4.0.0", - "_shasum": "8bc36ff87aedbe7ce9eaf0bca36b2354a743840f", - "_from": "xtend@>=4.0.0 <5.0.0", - "_npmVersion": "1.4.15", - "_npmUser": { - "name": "raynos", - "email": "raynos2@gmail.com" - }, + "main": "immutable", "maintainers": [ { "name": "raynos", "email": "raynos2@gmail.com" } ], - "dist": { - "shasum": "8bc36ff87aedbe7ce9eaf0bca36b2354a743840f", - "tarball": "http://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" + "name": "xtend", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/Raynos/xtend.git" }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz", - "readme": "ERROR: No README data found!" + "scripts": { + "test": "node test" + }, + "testling": { + "browsers": [ + "chrome/22..latest", + "chrome/canary", + "firefox/16..latest", + "firefox/nightly", + "ie/7..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "opera/12..latest", + "opera/next", + "safari/5.1..latest" + ], + "files": "test.js" + }, + "version": "4.0.0" } diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/test.js b/deps/npm/node_modules/xtend/test.js similarity index 100% rename from deps/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/test.js rename to deps/npm/node_modules/xtend/test.js diff --git a/deps/npm/package.json b/deps/npm/package.json index 6d2f755d383dd53495699ea4b0f29bcef9cc0c75..274a9f0cb8fb34cd75eba12cdb2597fcd76b42e8 100644 --- a/deps/npm/package.json +++ b/deps/npm/package.json @@ -1,11 +1,11 @@ { - "version": "2.14.7", + "version": "3.3.6", "name": "npm", "description": "a package manager for JavaScript", "keywords": [ - "package manager", - "modules", "install", + "modules", + "package manager", "package.json" ], "preferGlobal": true, @@ -22,23 +22,20 @@ "url": "http://github.com/npm/npm/issues" }, "directories": { + "bin": "./bin", "doc": "./doc", - "man": "./man", "lib": "./lib", - "bin": "./bin" + "man": "./man" }, "main": "./lib/npm.js", "bin": "./bin/npm-cli.js", "dependencies": { "abbrev": "~1.0.7", - "ansi": "~0.3.0", "ansicolors": "~0.3.2", "ansistyles": "~0.1.3", + "aproba": "~1.0.1", "archy": "~1.0.0", "async-some": "~1.0.2", - "block-stream": "0.0.8", - "char-spinner": "~1.0.1", - "chmodr": "~1.0.1", "chownr": "~1.0.1", "cmd-shim": "~2.0.1", "columnify": "~1.5.2", @@ -49,25 +46,27 @@ "fs-write-stream-atomic": "~1.0.4", "fstream": "~1.0.8", "fstream-npm": "~1.0.5", - "github-url-from-git": "~1.4.0", - "github-url-from-username-repo": "~1.0.2", "glob": "~5.0.15", "graceful-fs": "~4.1.2", + "has-unicode": "~1.0.0", "hosted-git-info": "~2.1.4", + "iferr": "~0.1.5", "inflight": "~1.0.4", "inherits": "~2.0.1", "ini": "~1.3.4", "init-package-json": "~1.9.1", "lockfile": "~1.0.1", - "lru-cache": "~2.7.0", - "minimatch": "~2.0.10", + "lodash.clonedeep": "~3.0.2", + "lodash.union": "~3.1.0", + "lodash.uniq": "~3.2.2", + "lodash.without": "~3.2.1", "mkdirp": "~0.5.1", "node-gyp": "~3.0.3", "nopt": "~3.0.4", "normalize-git-url": "~3.0.1", "normalize-package-data": "~2.3.4", "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~1.0.6", + "npm-install-checks": "~2.0.1", "npm-package-arg": "~4.0.2", "npm-registry-client": "~7.0.7", "npm-user-validate": "~0.1.2", @@ -75,25 +74,25 @@ "once": "~1.3.2", "opener": "~1.4.1", "osenv": "~0.1.3", - "path-is-inside": "~1.0.0", + "path-is-inside": "~1.0.1", "read": "~1.0.7", + "read-cmd-shim": "~1.0.1", "read-installed": "~4.0.3", "read-package-json": "~2.0.1", - "readable-stream": "~1.1.13", + "read-package-tree": "~5.1.2", "realize-package-specifier": "~3.0.1", - "request": "~2.64.0", "retry": "~0.8.0", "rimraf": "~2.4.3", "semver": "~5.0.3", "sha": "~2.0.1", "slide": "~1.1.6", "sorted-object": "~1.0.0", - "spdx": "~0.4.1", "tar": "~2.2.1", "text-table": "~0.2.0", "uid-number": "0.0.6", "umask": "~1.1.0", - "validate-npm-package-license": "~3.0.1", + "unique-filename": "~1.0.0", + "unpipe": "~1.0.0", "validate-npm-package-name": "~2.2.2", "which": "~1.1.2", "wrappy": "~1.0.1", @@ -101,14 +100,11 @@ }, "bundleDependencies": [ "abbrev", - "ansi", "ansicolors", "ansistyles", + "aproba", "archy", "async-some", - "block-stream", - "char-spinner", - "chmodr", "chownr", "cmd-shim", "columnify", @@ -119,18 +115,20 @@ "fs-write-stream-atomic", "fstream", "fstream-npm", - "github-url-from-git", - "github-url-from-username-repo", "glob", "graceful-fs", + "has-unicode", "hosted-git-info", + "iferr", "inflight", "inherits", "ini", "init-package-json", "lockfile", - "lru-cache", - "minimatch", + "lodash.clonedeep", + "lodash.union", + "lodash.uniq", + "lodash.without", "mkdirp", "node-gyp", "nopt", @@ -147,23 +145,23 @@ "osenv", "path-is-inside", "read", + "read-cmd-shim", "read-installed", "read-package-json", - "readable-stream", + "read-package-tree", "realize-package-specifier", - "request", "retry", "rimraf", "semver", "sha", "slide", "sorted-object", - "spdx", "tar", "text-table", "uid-number", "umask", - "validate-npm-package-license", + "unique-filename", + "unpipe", "validate-npm-package-name", "which", "wrappy", @@ -171,22 +169,23 @@ ], "devDependencies": { "deep-equal": "~1.0.1", - "marked": "~0.3.3", + "estraverse": "~4.1.0", + "marked": "~0.3.5", "marked-man": "~0.1.5", "nock": "~2.13.0", - "npm-registry-couchapp": "~2.6.7", - "npm-registry-mock": "~1.0.0", - "require-inject": "~1.2.0", - "sprintf-js": "~1.0.2", - "tap": "~1.4.1" + "npm-registry-couchapp": "~2.6.11", + "npm-registry-mock": "~1.0.1", + "require-inject": "~1.2.1", + "standard": "~4.5.4", + "tap": "~2.0.0" }, "scripts": { "dumpconf": "env | grep npm | sort | uniq", - "prepublish": "node bin/npm-cli.js prune --prefix=. --no-global && rimraf test/*/*/node_modules && make -j4 doc", + "prepublish": "bash scripts/installable.sh && node bin/npm-cli.js prune --prefix=. --no-global && rimraf test/*/*/node_modules && make -j4 doc", "preversion": "bash scripts/update-authors.sh && git add AUTHORS && git commit -m \"update AUTHORS\" || true", "tap": "tap --timeout 240", - "test": "npm run test-tap", - "test-all": "npm run test-legacy && npm run test-tap", + "test": "standard && npm run test-tap", + "test-all": "standard && npm run test-legacy && npm run test-tap", "test-legacy": "node ./test/run.js", "test-tap": "npm run tap -- \"test/tap/*.js\"" }, diff --git a/deps/npm/scripts/index-build.js b/deps/npm/scripts/index-build.js index 21297cc93ec1d3e657a5a9198c9e5bc900c2757f..8fbbf8595d5fd79e669597d4f671c968df75ec85 100755 --- a/deps/npm/scripts/index-build.js +++ b/deps/npm/scripts/index-build.js @@ -1,63 +1,58 @@ #!/usr/bin/env node -var fs = require("fs") - , path = require("path") - , root = path.resolve(__dirname, "..") - , glob = require("glob") - , conversion = { "cli": 1, "api": 3, "files": 5, "misc": 7 } - -glob(root + "/{README.md,doc/*/*.md}", function (er, files) { - if (er) - throw er +var fs = require('fs') +var path = require('path') +var root = path.resolve(__dirname, '..') +var glob = require('glob') +var conversion = { 'cli': 1, 'api': 3, 'files': 5, 'misc': 7 } + +glob(root + '/{README.md,doc/*/*.md}', function (er, files) { + if (er) throw er + output(files.map(function (f) { var b = path.basename(f) - if (b === "README.md") - return [0, b] - if (b === "index.md") - return null + if (b === 'README.md') return [0, b] + if (b === 'index.md') return null var s = conversion[path.basename(path.dirname(f))] return [s, f] }).filter(function (f) { return f }).sort(function (a, b) { - return (a[0] === b[0]) - ? ( path.basename(a[1]) === "npm.md" ? -1 - : path.basename(b[1]) === "npm.md" ? 1 - : a[1] > b[1] ? 1 : -1 ) - : a[0] - b[0] + return (a[0] === b[0]) ? + (path.basename(a[1]) === 'npm.md' ? -1 : + path.basename(b[1]) === 'npm.md' ? 1 : + a[1] > b[1] ? 1 : -1) : + a[0] - b[0] })) }) -return - function output (files) { console.log( - "npm-index(7) -- Index of all npm documentation\n" + - "==============================================\n") + 'npm-index(7) -- Index of all npm documentation\n' + + '==============================================\n') writeLines(files, 0) - writeLines(files, 1, "Command Line Documentation", "Using npm on the command line") - writeLines(files, 3, "API Documentation", "Using npm in your Node programs") - writeLines(files, 5, "Files", "File system structures npm uses") - writeLines(files, 7, "Misc", "Various other bits and bobs") + writeLines(files, 1, 'Command Line Documentation', 'Using npm on the command line') + writeLines(files, 3, 'API Documentation', 'Using npm in your Node programs') + writeLines(files, 5, 'Files', 'File system structures npm uses') + writeLines(files, 7, 'Misc', 'Various other bits and bobs') } function writeLines (files, sxn, heading, desc) { if (heading) { - console.log("## %s\n\n%s\n", heading, desc) + console.log('## %s\n\n%s\n', heading, desc) } files.filter(function (f) { return f[0] === sxn }).forEach(writeLine) } - function writeLine (sd) { var sxn = sd[0] || 1 - , doc = sd[1] - , d = path.basename(doc, ".md") + var doc = sd[1] + var d = path.basename(doc, '.md') - var content = fs.readFileSync(doc, "utf8").split("\n")[0].split("-- ")[1] + var content = fs.readFileSync(doc, 'utf8').split('\n')[0].split('-- ')[1] - console.log("### %s(%d)\n", d, sxn) - console.log(content + "\n") + console.log('### %s(%d)\n', d, sxn) + console.log(content + '\n') } diff --git a/deps/npm/scripts/installable.sh b/deps/npm/scripts/installable.sh new file mode 100644 index 0000000000000000000000000000000000000000..1d5a90c290bcc85f54e9466981896dd8440c3852 --- /dev/null +++ b/deps/npm/scripts/installable.sh @@ -0,0 +1,13 @@ +#!/bin/bash +npmver=$(perl -E "say q{$npm_config_user_agent} =~ m{/(\S+)}") + +if semver -r ^3.0.0-0 $npmver > /dev/null; then + echo "Packaging with $npmver" +else + echo "Packaging or installing npm@$npm_package_version with npm@$npmver is impossible." 1>&2 + echo "Please install npm@^3.0.0-0 from the registry and use that or run your command with" 1>&2 + echo "this version of npm with:" 1>&2 + npmargs=$(node -e "a=$npm_config_argv; console.log(a.original.join(' '))") + echo " $npm_node_execpath $PWD $npmargs" 1>&2 + exit 1 +fi diff --git a/deps/npm/scripts/publish-tag.js b/deps/npm/scripts/publish-tag.js index 046ec9888109c44fc1d74cc5d07ee606fb10e671..d0c04556e1b322b18f17b796248b244a0e9c7111 100644 --- a/deps/npm/scripts/publish-tag.js +++ b/deps/npm/scripts/publish-tag.js @@ -1,3 +1,3 @@ -var semver = require("semver") -var version = semver.parse(require("../package.json").version) +var semver = require('semver') +var version = semver.parse(require('../package.json').version) console.log('v%s.%s-next', version.major, version.minor) diff --git a/deps/npm/test/common.js b/deps/npm/test/common.js deleted file mode 100644 index 2755056b1b491c130a29566ce7be19f267648415..0000000000000000000000000000000000000000 --- 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/disabled/package-config/test.js b/deps/npm/test/disabled/package-config/test.js index 7337b237b5f4fb6f914442d01c1359c3aac8a4a0..386891d312167eb1337334cbb450e394f7043b9a 100755 --- a/deps/npm/test/disabled/package-config/test.js +++ b/deps/npm/test/disabled/package-config/test.js @@ -1,17 +1,20 @@ #!/usr/bin/env node var env = process.env - , orig = require(process.env.npm_package_name+"/package.json").config - , assert = require("assert") +var orig = require(process.env.npm_package_name + '/package.json').config +var assert = require('assert') -console.log("Before running this test, do:\n" - +" npm config set package-config:foo boo\n" - +"or else it's about to fail.") -assert.equal(env.npm_package_config_foo, "boo", "foo != boo") -assert.equal(orig.foo, "bar", "original foo != bar") -assert.equal(env["npm_config_package-config:foo"], "boo", - "package-config:foo != boo") -console.log({ foo: env.npm_package_config_foo - , orig_foo: orig.foo - , "package-config:foo": env["npm_config_package-config:foo"] - }) +console.log( + 'Before running this test, do:\n' + + ' npm config set package-config:foo boo\n' + + "or else it's about to fail." +) +assert.equal(env.npm_package_config_foo, 'boo', 'foo != boo') +assert.equal(orig.foo, 'bar', 'original foo != bar') +assert.equal(env['npm_config_package-config:foo'], 'boo', + 'package-config:foo != boo') +console.log({ + foo: env.npm_package_config_foo, + orig_foo: orig.foo, + 'package-config:foo': env['npm_config_package-config:foo'] +}) diff --git a/deps/npm/test/fixtures/config/userconfig-with-gc b/deps/npm/test/fixtures/config/userconfig-with-gc index 62ad80be113e5e95a0f8dc11a3bcdf14feeaae88..ad4dd54c1ed00c07382f9db8f977fc7956dfc347 100644 --- a/deps/npm/test/fixtures/config/userconfig-with-gc +++ b/deps/npm/test/fixtures/config/userconfig-with-gc @@ -1,22 +1,24 @@ -globalconfig=/Users/zkat/Documents/code/npm/test/fixtures/config/globalconfig -email=i@izs.me -env-thing=asdf -init.author.name=Isaac Z. Schlueter -init.author.email=i@izs.me -init.author.url=http://blog.izs.me/ -init.version=1.2.3 -proprietary-attribs=false -npm:publishtest=true -_npmjs.org:couch=https://admin:password@localhost:5984/registry -npm-www:nocache=1 -sign-git-tag=false -message=v%s -strict-ssl=false -_auth="dXNlcm5hbWU6cGFzc3dvcmQ=" +globalconfig = /Users/rebecca/code/release/npm-3/test/fixtures/config/globalconfig +email = i@izs.me +env-thing = ${random_env_var} +init.author.name = Isaac Z. Schlueter +init.author.email = i@izs.me +init.author.url = http://blog.izs.me/ +init.version = 1.2.3 +proprietary-attribs = false +npm:publishtest = true +_npmjs.org:couch = https://admin:password@localhost:5984/registry +npm-www:nocache = 1 +nodedir = /Users/isaacs/dev/js/node-v0.8 +sign-git-tag = true +message = v%s +strict-ssl = false +tmp = ~/.tmp +_auth = dXNlcm5hbWU6cGFzc3dvcmQ= [_token] -AuthSession=yabba-dabba-doodle -version=1 -expires=1345001053415 -path=/ -httponly=true +AuthSession = yabba-dabba-doodle +version = 1 +expires = 1345001053415 +path = / +httponly = true diff --git a/deps/npm/test/packages/npm-test-blerg/test.js b/deps/npm/test/packages/npm-test-blerg/test.js index f548458ac042c517a6e61a233fb280d8b9e2e842..cc8d2da546e5b59c11eb8221b481d569f4accb87 100644 --- a/deps/npm/test/packages/npm-test-blerg/test.js +++ b/deps/npm/test/packages/npm-test-blerg/test.js @@ -1,5 +1,4 @@ - -var assert = require("assert") -assert.equal(undefined, process.env.npm_config__password, "password exposed!") -assert.equal(undefined, process.env.npm_config__auth, "auth exposed!") -assert.equal(undefined, process.env.npm_config__authCrypt, "authCrypt exposed!") +var assert = require('assert') +assert.equal(undefined, process.env.npm_config__password, 'password exposed!') +assert.equal(undefined, process.env.npm_config__auth, 'auth exposed!') +assert.equal(undefined, process.env.npm_config__authCrypt, 'authCrypt exposed!') diff --git a/deps/npm/test/packages/npm-test-blerg3/test.js b/deps/npm/test/packages/npm-test-blerg3/test.js index f548458ac042c517a6e61a233fb280d8b9e2e842..cc8d2da546e5b59c11eb8221b481d569f4accb87 100644 --- a/deps/npm/test/packages/npm-test-blerg3/test.js +++ b/deps/npm/test/packages/npm-test-blerg3/test.js @@ -1,5 +1,4 @@ - -var assert = require("assert") -assert.equal(undefined, process.env.npm_config__password, "password exposed!") -assert.equal(undefined, process.env.npm_config__auth, "auth exposed!") -assert.equal(undefined, process.env.npm_config__authCrypt, "authCrypt exposed!") +var assert = require('assert') +assert.equal(undefined, process.env.npm_config__password, 'password exposed!') +assert.equal(undefined, process.env.npm_config__auth, 'auth exposed!') +assert.equal(undefined, process.env.npm_config__authCrypt, 'authCrypt exposed!') diff --git a/deps/npm/test/packages/npm-test-bundled-git/test.js b/deps/npm/test/packages/npm-test-bundled-git/test.js index 4fcc54cafe4b34a860c1b97e41abf83c13b3ef19..793cc55a881cd21f6ef5324bf68a3c19c75dd9a2 100644 --- a/deps/npm/test/packages/npm-test-bundled-git/test.js +++ b/deps/npm/test/packages/npm-test-bundled-git/test.js @@ -1,4 +1,4 @@ -var a = require("./node_modules/glob/node_modules/minimatch/package.json") -var e = require("./minimatch-expected.json") -var assert = require("assert") +var a = require('./node_modules/glob/node_modules/minimatch/package.json') +var e = require('./minimatch-expected.json') +var assert = require('assert') assert.deepEqual(a, e, "didn't get expected minimatch/package.json") diff --git a/deps/npm/test/packages/npm-test-ignore-nested-nm/test.js b/deps/npm/test/packages/npm-test-ignore-nested-nm/test.js index 308c66b500be99af52a1d32d845d94ca747c10b1..18a0f0b56b9ba5bf02516e9a9b00ae8b58f16566 100644 --- a/deps/npm/test/packages/npm-test-ignore-nested-nm/test.js +++ b/deps/npm/test/packages/npm-test-ignore-nested-nm/test.js @@ -1,2 +1,2 @@ -fs = require('fs') +var fs = require('fs') fs.statSync(__dirname + '/lib/node_modules/foo') diff --git a/deps/npm/test/packages/npm-test-missing-bindir/test.js b/deps/npm/test/packages/npm-test-missing-bindir/test.js index f548458ac042c517a6e61a233fb280d8b9e2e842..cc8d2da546e5b59c11eb8221b481d569f4accb87 100644 --- a/deps/npm/test/packages/npm-test-missing-bindir/test.js +++ b/deps/npm/test/packages/npm-test-missing-bindir/test.js @@ -1,5 +1,4 @@ - -var assert = require("assert") -assert.equal(undefined, process.env.npm_config__password, "password exposed!") -assert.equal(undefined, process.env.npm_config__auth, "auth exposed!") -assert.equal(undefined, process.env.npm_config__authCrypt, "authCrypt exposed!") +var assert = require('assert') +assert.equal(undefined, process.env.npm_config__password, 'password exposed!') +assert.equal(undefined, process.env.npm_config__auth, 'auth exposed!') +assert.equal(undefined, process.env.npm_config__authCrypt, 'authCrypt exposed!') diff --git a/deps/npm/test/packages/npm-test-optional-deps/test.js b/deps/npm/test/packages/npm-test-optional-deps/test.js index 2232906d64711b58ddccf0092b51811cd323aa4e..b9dc2c79bbd4f5c245b8ba46e20046e6ce6781a9 100644 --- a/deps/npm/test/packages/npm-test-optional-deps/test.js +++ b/deps/npm/test/packages/npm-test-optional-deps/test.js @@ -1,9 +1,9 @@ -var fs = require("fs") -var assert = require("assert") -var path = require("path") +var fs = require('fs') +var assert = require('assert') +var path = require('path') // sax should be the only dep that ends up installed -var dir = path.resolve(__dirname, "node_modules") -assert.deepEqual(fs.readdirSync(dir), ["sax"]) -assert.equal(require("sax/package.json").version, "0.3.5") +var dir = path.resolve(__dirname, 'node_modules') +assert.deepEqual(fs.readdirSync(dir), ['sax']) +assert.equal(require('sax/package.json').version, '0.3.5') diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/npm-shrinkwrap.json b/deps/npm/test/packages/npm-test-shrinkwrap/npm-shrinkwrap.json index 09a034141f7f6e8f88d63dd34c2742eeddea6fdf..4f8b22d055434558fa48007ed4639b273cf3f468 100644 --- a/deps/npm/test/packages/npm-test-shrinkwrap/npm-shrinkwrap.json +++ b/deps/npm/test/packages/npm-test-shrinkwrap/npm-shrinkwrap.json @@ -2,22 +2,11 @@ "name": "npm-test-shrinkwrap", "version": "0.0.0", "dependencies": { - "npm-test-single-file": { - "version": "1.2.3", - "resolved": "https://gist.github.com/isaacs/1837112/raw/9ef57a59fc22aeb1d1ca346b68826dcb638b8416/index.js" - }, "glob": { "version": "3.1.5", + "from": "git://github.com/isaacs/node-glob.git#npm-test", "resolved": "git://github.com/isaacs/node-glob.git#67bda227fd7a559cca5620307c7d30a6732a792f", "dependencies": { - "minimatch": { - "version": "0.2.1", - "dependencies": { - "lru-cache": { - "version": "1.0.5" - } - } - }, "graceful-fs": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.5.tgz", @@ -31,6 +20,14 @@ "inherits": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz" + }, + "minimatch": { + "version": "0.2.1", + "dependencies": { + "lru-cache": { + "version": "1.0.5" + } + } } } }, @@ -43,6 +40,10 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-1.0.5.tgz" } } + }, + "npm-test-single-file": { + "version": "1.2.3", + "resolved": "https://gist.github.com/isaacs/1837112/raw/9ef57a59fc22aeb1d1ca346b68826dcb638b8416/index.js" } } } diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/test.js b/deps/npm/test/packages/npm-test-shrinkwrap/test.js index fba90ec6516311d0109c37d3dd977c0e8e6a2786..34638c2ce5148b6d694600efb2b0a99cf8904746 100644 --- a/deps/npm/test/packages/npm-test-shrinkwrap/test.js +++ b/deps/npm/test/packages/npm-test-shrinkwrap/test.js @@ -1,5 +1,4 @@ -var path = require("path") -var assert = require("assert") +var assert = require('assert') process.env.npm_config_prefix = process.cwd() delete process.env.npm_config_global @@ -7,13 +6,13 @@ 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() }, +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") + var expected = require('./npm-shrinkwrap.json') rmFrom(actual) actual = actual.dependencies rmFrom(expected) @@ -26,10 +25,12 @@ require("child_process").execFile(process.execPath, [npm, "ls", "--json"], { function rmFrom (obj) { for (var i in obj) { - if (i === "from") + if (i === 'from') { delete obj[i] - else if (i === "dependencies") - for (var j in obj[i]) + } else if (i === 'dependencies') { + for (var j in obj[i]) { rmFrom(obj[i][j]) + } + } } } diff --git a/deps/npm/test/run.js b/deps/npm/test/run.js index 5b33e68ab47a7750e051df5aca6d4764df292f1b..c9eb9756906a09552edd316ba3738015d26dbafd 100644 --- a/deps/npm/test/run.js +++ b/deps/npm/test/run.js @@ -1,35 +1,35 @@ // Everything in this file uses child processes, because we're // testing a command line utility. -var chain = require("slide").chain -var child_process = require("child_process") -var path = require("path") - , testdir = __dirname - , fs = require("graceful-fs") - , npmpkg = path.dirname(testdir) - , npmcli = path.resolve(npmpkg, "bin", "npm-cli.js") - -var temp = process.env.TMPDIR - || process.env.TMP - || process.env.TEMP - || ( process.platform === "win32" - ? "c:\\windows\\temp" - : "/tmp" ) - -temp = path.resolve(temp, "npm-test-" + process.pid) - -var root = path.resolve(temp, "root") - , cache = path.resolve(temp, "npm_cache") +var chain = require('slide').chain +var child_process = require('child_process') +var path = require('path') +var testdir = __dirname +var fs = require('graceful-fs') +var npmpkg = path.dirname(testdir) +var npmcli = path.resolve(npmpkg, 'bin', 'npm-cli.js') + +var temp = process.env.TMPDIR || + process.env.TMP || + process.env.TEMP || + (process.platform === 'win32' ? + 'c:\\windows\\temp' : + '/tmp') + +temp = path.resolve(temp, 'npm-test-' + process.pid) + +var root = path.resolve(temp, 'root') +var cache = path.resolve(temp, 'npm_cache') var failures = 0 - , mkdir = require("mkdirp") - , rimraf = require("rimraf") +var mkdir = require('mkdirp') +var rimraf = require('rimraf') -var pathEnvSplit = process.platform === "win32" ? ";" : ":" - , pathEnv = process.env.PATH.split(pathEnvSplit) - , npmPath = process.platform === "win32" ? root : path.join(root, "bin") +var pathEnvSplit = process.platform === 'win32' ? ';' : ':' +var pathEnv = process.env.PATH.split(pathEnvSplit) +var npmPath = process.platform === 'win32' ? root : path.join(root, 'bin') -pathEnv.unshift(npmPath, path.join(root, "node_modules", ".bin")) +pathEnv.unshift(npmPath, path.join(root, 'node_modules', '.bin')) // lastly, make sure that we get the same node that is being used to do // run this script. That's very important, especially when running this @@ -42,66 +42,65 @@ Object.keys(process.env).forEach(function (i) { env[i] = process.env[i] }) env.npm_config_prefix = root -env.npm_config_color = "always" -env.npm_config_global = "true" +env.npm_config_color = 'always' +env.npm_config_global = 'true' // have to set this to false, or it'll try to test itself forever -env.npm_config_npat = "false" +env.npm_config_npat = 'false' env.PATH = pathEnv.join(pathEnvSplit) -env.NODE_PATH = path.join(root, "node_modules") +env.NODE_PATH = path.join(root, 'node_modules') env.npm_config_cache = cache - - function cleanup (cb) { if (failures !== 0) return rimraf(root, function (er) { if (er) cb(er) - mkdir(root, 0755, cb) + mkdir(root, parseInt('0755', 8), cb) }) } function prefix (content, pref) { - return pref + (content.trim().split(/\r?\n/).join("\n" + pref)) + return pref + (content.trim().split(/\r?\n/).join('\n' + pref)) } var execCount = 0 function exec (cmd, cwd, shouldFail, cb) { - if (typeof shouldFail === "function") { - cb = shouldFail, shouldFail = false + if (typeof shouldFail === 'function') { + cb = shouldFail + shouldFail = false } - console.error("\n+"+cmd + (shouldFail ? " (expect failure)" : "")) + console.error('\n+' + cmd + (shouldFail ? ' (expect failure)' : '')) // special: replace 'node' with the current execPath, // and 'npm' with the thing we installed. var cmdShow = cmd - var npmReplace = path.resolve(npmPath, "npm") + var npmReplace = path.resolve(npmPath, 'npm') var nodeReplace = process.execPath - if (process.platform === "win32") { + if (process.platform === 'win32') { npmReplace = '"' + npmReplace + '"' nodeReplace = '"' + nodeReplace + '"' } - cmd = cmd.replace(/^npm /, npmReplace + " ") - cmd = cmd.replace(/^node /, nodeReplace + " ") + cmd = cmd.replace(/^npm /, npmReplace + ' ') + cmd = cmd.replace(/^node /, nodeReplace + ' ') - console.error("$$$$$$ cd %s; PATH=%s %s", cwd, env.PATH, cmd) + console.error('$$$$$$ cd %s; PATH=%s %s', cwd, env.PATH, cmd) child_process.exec(cmd, {cwd: cwd, env: env}, function (er, stdout, stderr) { - console.error("$$$$$$ after command", cmd, cwd) + console.error('$$$$$$ after command', cmd, cwd) if (stdout) { - console.error(prefix(stdout, " 1> ")) + console.error(prefix(stdout, ' 1> ')) } if (stderr) { - console.error(prefix(stderr, " 2> ")) + console.error(prefix(stderr, ' 2> ')) } - execCount ++ + execCount++ if (!shouldFail && !er || shouldFail && er) { - // stdout = (""+stdout).trim() - console.log("ok " + execCount + " " + cmdShow) + // stdout = (''+stdout).trim() + console.log('ok ' + execCount + ' ' + cmdShow) return cb() } else { - console.log("not ok " + execCount + " " + cmdShow) - cb(new Error("failed "+cmdShow)) + console.log('not ok ' + execCount + ' ' + cmdShow) + cb(new Error('failed ' + cmdShow)) } }) } @@ -121,23 +120,21 @@ function flatten (arr) { function setup (cb) { cleanup(function (er) { if (er) return cb(er) - exec("node \""+npmcli+"\" install \""+npmpkg+"\"", root, false, cb) + exec('node \'' + npmcli + '\' install \'' + npmpkg + '\'', root, false, cb) }) } function main (cb) { - console.log("# testing in %s", temp) - console.log("# global prefix = %s", root) - - + console.log('# testing in %s', temp) + console.log('# global prefix = %s', root) failures = 0 process.chdir(testdir) - var base = path.resolve(root, path.join("lib", "node_modules")) + var base = path.resolve(root, path.join('lib', 'node_modules')) // get the list of packages - var packages = fs.readdirSync(path.resolve(testdir, "packages")) + var packages = fs.readdirSync(path.resolve(testdir, 'packages')) packages = packages.filter(function (p) { return p && !p.match(/^\./) }) @@ -146,41 +143,44 @@ function main (cb) { function installAllThenTestAll () { var packagesToRm = packages.slice(0) - if (process.platform !== "win32") { + if (process.platform !== 'win32') { // Windows can't handle npm rm npm due to file-in-use issues. - packagesToRm.push("npm") + packagesToRm.push('npm') } chain( - [ setup - , [ exec, "npm install "+npmpkg, testdir ] - , [ execChain, packages.map(function (p) { - return [ "npm install packages/"+p, testdir ] - }) ] - , [ execChain, packages.map(function (p) { - return [ "npm test -ddd", path.resolve(base, p) ] - }) ] - , [ execChain, packagesToRm.map(function (p) { - return [ "npm rm "+p, root ] - }) ] - , installAndTestEach - ] - , cb - ) + [ + setup, + [exec, 'npm install ' + npmpkg, testdir], + [execChain, packages.map(function (p) { + return [ 'npm install packages/' + p, testdir ] + })], + [execChain, packages.map(function (p) { + return [ 'npm test -ddd', path.resolve(base, p) ] + })], + [execChain, packagesToRm.map(function (p) { + return [ 'npm rm ' + p, root ] + })], + installAndTestEach + ], + cb + ) } function installAndTestEach (cb) { var thingsToChain = [ - setup - , [ execChain, flatten(packages.map(function (p) { - return [ [ "npm install packages/"+p, testdir ] - , [ "npm test", path.resolve(base, p) ] - , [ "npm rm "+p, root ] ] - })) ] + setup, + [execChain, flatten(packages.map(function (p) { + return [ + ['npm install packages/' + p, testdir], + ['npm test', path.resolve(base, p)], + ['npm rm ' + p, root] + ] + }))] ] - if (process.platform !== "win32") { + if (process.platform !== 'win32') { // Windows can't handle npm rm npm due to file-in-use issues. - thingsToChain.push([exec, "npm rm npm", testdir]) + thingsToChain.push([exec, 'npm rm npm', testdir]) } chain(thingsToChain, cb) @@ -188,6 +188,6 @@ function main (cb) { } main(function (er) { - console.log("1.." + execCount) + console.log('1..' + execCount) if (er) throw er }) diff --git a/deps/npm/test/tap/00-check-mock-dep.js b/deps/npm/test/tap/00-check-mock-dep.js index 1c862317c9a97112dc4ef7767ce25fd16114d39f..cdc7af852b344c78e89f8829fad9a9072c12564c 100644 --- a/deps/npm/test/tap/00-check-mock-dep.js +++ b/deps/npm/test/tap/00-check-mock-dep.js @@ -1,17 +1,17 @@ -console.log("TAP Version 13") +console.log('TAP Version 13') -process.on("uncaughtException", function (er) { +process.on('uncaughtException', function (er) { if (er) { throw er } - console.log("not ok - Failed checking mock registry dep. Expect much fail!") - console.log("1..1") + console.log('not ok - Failed checking mock registry dep. Expect much fail!') + console.log('1..1') process.exit(1) }) -var assert = require("assert") -var semver = require("semver") -var mock = require("npm-registry-mock/package.json").version -var req = require("../../package.json").devDependencies["npm-registry-mock"] +var assert = require('assert') +var semver = require('semver') +var mock = require('npm-registry-mock/package.json').version +var req = require('../../package.json').devDependencies['npm-registry-mock'] assert(semver.satisfies(mock, req)) -console.log("ok") -console.log("1..1") +console.log('ok') +console.log('1..1') diff --git a/deps/npm/test/tap/00-config-setup.js b/deps/npm/test/tap/00-config-setup.js index 0daf0decd6a5466457132fa4efb7a1e48406dfc5..0d267851eb7feae281771a435b03696b953a711f 100644 --- a/deps/npm/test/tap/00-config-setup.js +++ b/deps/npm/test/tap/00-config-setup.js @@ -1,33 +1,33 @@ -var fs = require("graceful-fs") -var path = require("path") -var userconfigSrc = path.resolve(__dirname, "..", "fixtures", "config", "userconfig") -exports.userconfig = userconfigSrc + "-with-gc" -exports.globalconfig = path.resolve(__dirname, "..", "fixtures", "config", "globalconfig") -exports.builtin = path.resolve(__dirname, "..", "fixtures", "config", "builtin") -exports.malformed = path.resolve(__dirname, "..", "fixtures", "config", "malformed") +var fs = require('graceful-fs') +var path = require('path') +var userconfigSrc = path.resolve(__dirname, '..', 'fixtures', 'config', 'userconfig') +exports.userconfig = userconfigSrc + '-with-gc' +exports.globalconfig = path.resolve(__dirname, '..', 'fixtures', 'config', 'globalconfig') +exports.builtin = path.resolve(__dirname, '..', 'fixtures', 'config', 'builtin') +exports.malformed = path.resolve(__dirname, '..', 'fixtures', 'config', 'malformed') exports.ucData = { globalconfig: exports.globalconfig, - email: "i@izs.me", - "env-thing": "asdf", - "init.author.name": "Isaac Z. Schlueter", - "init.author.email": "i@izs.me", - "init.author.url": "http://blog.izs.me/", - "init.version": "1.2.3", - "proprietary-attribs": false, - "npm:publishtest": true, - "_npmjs.org:couch": "https://admin:password@localhost:5984/registry", - "npm-www:nocache": "1", - nodedir: "/Users/isaacs/dev/js/node-v0.8", - "sign-git-tag": true, - message: "v%s", - "strict-ssl": false, - "tmp": process.env.HOME + "/.tmp", - _auth: "dXNlcm5hbWU6cGFzc3dvcmQ=", + email: 'i@izs.me', + 'env-thing': 'asdf', + 'init.author.name': 'Isaac Z. Schlueter', + 'init.author.email': 'i@izs.me', + 'init.author.url': 'http://blog.izs.me/', + 'init.version': '1.2.3', + 'proprietary-attribs': false, + 'npm:publishtest': true, + '_npmjs.org:couch': 'https://admin:password@localhost:5984/registry', + 'npm-www:nocache': '1', + nodedir: '/Users/isaacs/dev/js/node-v0.8', + 'sign-git-tag': true, + message: 'v%s', + 'strict-ssl': false, + 'tmp': process.env.HOME + '/.tmp', + _auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', _token: - { AuthSession: "yabba-dabba-doodle", - version: "1", - expires: "1345001053415", - path: "/", + { AuthSession: 'yabba-dabba-doodle', + version: '1', + expires: '1345001053415', + path: '/', httponly: true } } // set the userconfig in the env @@ -39,21 +39,21 @@ Object.keys(process.env).forEach(function (k) { }) process.env.npm_config_userconfig = exports.userconfig process.env.npm_config_other_env_thing = 1000 -process.env.random_env_var = "asdf" -process.env.npm_config__underbar_env_thing = "underful" +process.env.random_env_var = 'asdf' +process.env.npm_config__underbar_env_thing = 'underful' process.env.NPM_CONFIG_UPPERCASE_ENV_THING = 42 exports.envData = { userconfig: exports.userconfig, - "_underbar-env-thing": "underful", - "uppercase-env-thing": "42", - "other-env-thing": "1000" + '_underbar-env-thing': 'underful', + 'uppercase-env-thing': '42', + 'other-env-thing': '1000' } exports.envDataFix = { userconfig: exports.userconfig, - "_underbar-env-thing": "underful", - "uppercase-env-thing": 42, - "other-env-thing": 1000 + '_underbar-env-thing': 'underful', + 'uppercase-env-thing': 42, + 'other-env-thing': 1000 } var projectConf = path.resolve(__dirname, '..', '..', '.npmrc') @@ -75,9 +75,9 @@ try { if (module === require.main) { // set the globalconfig in the userconfig var uc = fs.readFileSync(userconfigSrc) - var gcini = "globalconfig = " + exports.globalconfig + "\n" + var gcini = 'globalconfig = ' + exports.globalconfig + '\n' fs.writeFileSync(exports.userconfig, gcini + uc) - console.log("1..1") - console.log("ok 1 setup done") + console.log('1..1') + console.log('ok 1 setup done') } diff --git a/deps/npm/test/tap/00-verify-bundle-deps.js b/deps/npm/test/tap/00-verify-bundle-deps.js index 9d16b2d3b1220b71a7aa657f38412320faacd962..75ea81c593e76f1a01885e6c024ca180a134ec72 100644 --- a/deps/npm/test/tap/00-verify-bundle-deps.js +++ b/deps/npm/test/tap/00-verify-bundle-deps.js @@ -1,27 +1,16 @@ -var fs = require("fs") -var path = require("path") -var test = require("tap").test +var test = require('tap').test -var manifest = require("../../package.json") +var manifest = require('../../package.json') var deps = Object.keys(manifest.dependencies) -var dev = Object.keys(manifest.devDependencies) var bundled = manifest.bundleDependencies -test("all deps are bundled deps or dev deps", function (t) { +test('all deps are bundled deps or dev deps', function (t) { deps.forEach(function (name) { t.assert( bundled.indexOf(name) !== -1, - name + " is in bundledDependencies" + name + ' is in bundledDependencies' ) }) - t.same( - fs.readdirSync(path.resolve(__dirname, "../../node_modules")).filter(function (name) { - return (dev.indexOf(name) === -1) && (name !== ".bin") - }).sort(), - bundled.sort(), - "bundleDependencies matches what's in node_modules" - ) - t.end() }) diff --git a/deps/npm/test/tap/00-verify-ls-ok.js b/deps/npm/test/tap/00-verify-ls-ok.js index aa6acdbc56f8aca45a98c87244fc79ae054303b7..2d20e500b71cd8b369a754a370f1cb205d613ad3 100644 --- a/deps/npm/test/tap/00-verify-ls-ok.js +++ b/deps/npm/test/tap/00-verify-ls-ok.js @@ -1,18 +1,18 @@ -var common = require("../common-tap") -var test = require("tap").test -var path = require("path") -var cwd = path.resolve(__dirname, "..", "..") -var fs = require("fs") +var common = require('../common-tap') +var test = require('tap').test +var path = require('path') +var cwd = path.resolve(__dirname, '..', '..') +var fs = require('fs') -test("npm ls in npm", function (t) { - t.ok(fs.existsSync(cwd), "ensure that the path we are calling ls within exists") +test('npm ls in npm', function (t) { + t.ok(fs.existsSync(cwd), 'ensure that the path we are calling ls within exists') var files = fs.readdirSync(cwd) - t.notEqual(files.length, 0, "ensure there are files in the directory we are to ls") + t.notEqual(files.length, 0, 'ensure there are files in the directory we are to ls') - var opt = { cwd: cwd, stdio: [ "ignore", "ignore", 2 ] } - common.npm(["ls"], opt, function (err, code) { - t.ifError(err, "error should not exist") - t.equal(code, 0, "npm ls exited with code") + var opt = { cwd: cwd, stdio: [ 'ignore', 'ignore', 2 ] } + common.npm(['ls'], opt, function (err, code) { + t.ifError(err, 'error should not exist') + t.equal(code, 0, 'npm ls exited with code') t.end() }) }) diff --git a/deps/npm/test/tap/404-parent.js b/deps/npm/test/tap/404-parent.js index eb8ae9bb150d8bfcbcb9f9e05f8c57cd972cf7a8..a8bd951636e8882849bdcc009f0350dc8cdcfcb9 100644 --- a/deps/npm/test/tap/404-parent.js +++ b/deps/npm/test/tap/404-parent.js @@ -1,54 +1,57 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var npm = require("../../") -var osenv = require("osenv") -var path = require("path") -var fs = require("fs") -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") -var pkg = path.resolve(__dirname, "404-parent") -var mr = require("npm-registry-mock") +var common = require('../common-tap.js') +var test = require('tap').test +var npm = require('../../') +var osenv = require('osenv') +var path = require('path') +var fs = require('fs') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var pkg = path.resolve(__dirname, '404-parent') +var mr = require('npm-registry-mock') -test("404-parent: if parent exists, specify parent in error message", function (t) { +test('404-parent: if parent exists, specify parent in error message', function (t) { setup() - rimraf.sync(path.resolve(pkg, "node_modules")) + rimraf.sync(path.resolve(pkg, 'node_modules')) performInstall(function (err) { - t.ok(err instanceof Error, "error was returned") - t.ok(err.parent === "404-parent-test", "error's parent set") + t.ok(err instanceof Error, 'error was returned') + t.ok(err.parent === '404-parent-test', "error's parent set") t.end() }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { process.chdir(osenv.tmpdir()) rimraf.sync(pkg) t.end() }) -function setup() { +function setup () { mkdirp.sync(pkg) - mkdirp.sync(path.resolve(pkg, "cache")) - fs.writeFileSync(path.resolve(pkg, "package.json"), JSON.stringify({ - author: "Evan Lucas", - name: "404-parent-test", - version: "0.0.0", - description: "Test for 404-parent", + mkdirp.sync(path.resolve(pkg, 'cache')) + fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ + author: 'Evan Lucas', + name: '404-parent-test', + version: '0.0.0', + description: 'Test for 404-parent', dependencies: { - "test-npm-404-parent-test": "*" + 'test-npm-404-parent-test': '*' } - }), "utf8") + }), 'utf8') process.chdir(pkg) } function plugin (server) { - server.get("/test-npm-404-parent-test") - .reply(404, {"error": "version not found"}) + server.get('/test-npm-404-parent-test') + .reply(404, {'error': 'version not found'}) } function performInstall (cb) { - mr({port : common.port, plugin : plugin}, function (er, s) { // create mock registry. + mr({port: common.port, plugin: plugin}, function (er, s) { // create mock registry. npm.load({registry: common.registry}, function () { - npm.commands.install(pkg, [], function (err) { + var pwd = process.cwd() + process.chdir(pkg) + npm.commands.install([], function (err) { + process.chdir(pwd) cb(err) s.close() // shutdown mock npm server. }) diff --git a/deps/npm/test/tap/404-private-registry.js b/deps/npm/test/tap/404-private-registry.js index 698f5b86133d35525b354ec9507881ac94cbdbfb..dfe893eb1c06a5ccdcd6cb59b2e2924c9783dd60 100644 --- a/deps/npm/test/tap/404-private-registry.js +++ b/deps/npm/test/tap/404-private-registry.js @@ -4,7 +4,7 @@ var path = require('path') var npm = require('../../') var addNamed = require('../../lib/cache/add-named') -var packageName = path.basename(__filename,'.js') +var packageName = path.basename(__filename, '.js') test('package names not mangled on error with non-root registry', function test404 (t) { nock('http://localhost:1337') diff --git a/deps/npm/test/tap/access.js b/deps/npm/test/tap/access.js index c72ea5c8986c5f78a65fe9f483acd2b0445ed5b4..5e13a23cd5ab44897e9db7b5cdb72247a1235806 100644 --- a/deps/npm/test/tap/access.js +++ b/deps/npm/test/tap/access.js @@ -15,10 +15,6 @@ var scoped = { version: '1.1.1' } -var body = { - access: 'public' -} - test('setup', function (t) { mkdirp(pkg, function (er) { t.ifError(er, pkg + ' made successfully') @@ -385,7 +381,6 @@ test('npm access ls-collaborators on current w/user filter', function (t) { ) }) - test('npm access edit', function (t) { common.npm( [ diff --git a/deps/npm/test/tap/add-remote-git-fake-windows.js b/deps/npm/test/tap/add-remote-git-fake-windows.js index c9c9dd446b9e1ad33041d2e956dd086c75a9df92..33b38781a8c1160a1938769747046e969fbc85e6 100644 --- a/deps/npm/test/tap/add-remote-git-fake-windows.js +++ b/deps/npm/test/tap/add-remote-git-fake-windows.js @@ -29,7 +29,6 @@ var pjChild = JSON.stringify({ version: '1.0.3' }, null, 2) + '\n' - test('setup', function (t) { bootstrap() setup(function (er, r) { diff --git a/deps/npm/test/tap/add-remote-git-get-resolved.js b/deps/npm/test/tap/add-remote-git-get-resolved.js index 0bd0f29eb11aeb175e5ec90b7c8adc38ee711947..3f31467285a50c174bd7cfcfd2a4490fa85eb7fe 100644 --- a/deps/npm/test/tap/add-remote-git-get-resolved.js +++ b/deps/npm/test/tap/add-remote-git-get-resolved.js @@ -11,7 +11,7 @@ var getResolved = null * Note: This is here because `normalizeGitUrl` is usually called * before getResolved is, and receives *that* URL. */ -function tryGetResolved(uri, treeish) { +function tryGetResolved (uri, treeish) { return getResolved(normalizeGitUrl(uri).url, treeish) } diff --git a/deps/npm/test/tap/adduser-always-auth.js b/deps/npm/test/tap/adduser-always-auth.js index 6a451b451c3c62090eaa5d525e4479581e4c7a2d..3ec8190006b369d41f83c45a4ae02c505d8158ab 100644 --- a/deps/npm/test/tap/adduser-always-auth.js +++ b/deps/npm/test/tap/adduser-always-auth.js @@ -1,142 +1,147 @@ -var fs = require("fs") -var path = require("path") -var rimraf = require("rimraf") -var mr = require("npm-registry-mock") +var fs = require('fs') +var path = require('path') +var rimraf = require('rimraf') +var mr = require('npm-registry-mock') -var test = require("tap").test -var common = require("../common-tap.js") +var test = require('tap').test +var common = require('../common-tap.js') -var opts = {cwd : __dirname} -var outfile = path.resolve(__dirname, "_npmrc") +var opts = {cwd: __dirname} +var outfile = path.resolve(__dirname, '_npmrc') var responses = { - "Username" : "u\n", - "Password" : "p\n", - "Email" : "u@p.me\n" + 'Username': 'u\n', + 'Password': 'p\n', + 'Email': 'u@p.me\n' } -function mocks(server) { +function mocks (server) { server.filteringRequestBody(function (r) { if (r.match(/\"_id\":\"org\.couchdb\.user:u\"/)) { - return "auth" + return 'auth' } }) - server.put("/-/user/org.couchdb.user:u", "auth") - .reply(201, {username : "u", password : "p", email : "u@p.me"}) + server.put('/-/user/org.couchdb.user:u', 'auth') + .reply(201, { username: 'u', password: 'p', email: 'u@p.me' }) } -test("npm login", function (t) { - mr({port : common.port, plugin : mocks}, function (er, s) { +test('npm login', function (t) { + mr({ port: common.port, plugin: mocks }, function (er, s) { var runner = common.npm( [ - "login", - "--registry", common.registry, - "--loglevel", "silent", - "--userconfig", outfile + 'login', + '--registry', common.registry, + '--loglevel', 'silent', + '--userconfig', outfile ], opts, function (err, code) { - t.notOk(code, "exited OK") - t.notOk(err, "no error output") - var config = fs.readFileSync(outfile, "utf8") - t.like(config, /:always-auth=false/, "always-auth is scoped and false (by default)") + t.notOk(code, 'exited OK') + t.notOk(err, 'no error output') + var config = fs.readFileSync(outfile, 'utf8') + t.like(config, /:always-auth=false/, 'always-auth is scoped and false (by default)') s.close() rimraf(outfile, function (err) { - t.ifError(err, "removed config file OK") + t.ifError(err, 'removed config file OK') t.end() }) }) - var o = "", e = "", remaining = Object.keys(responses).length - runner.stdout.on("data", function (chunk) { + var o = '' + var e = '' + var remaining = Object.keys(responses).length + runner.stdout.on('data', function (chunk) { remaining-- o += chunk - var label = chunk.toString("utf8").split(":")[0] + var label = chunk.toString('utf8').split(':')[0] runner.stdin.write(responses[label]) if (remaining === 0) runner.stdin.end() }) - runner.stderr.on("data", function (chunk) { e += chunk }) + runner.stderr.on('data', function (chunk) { e += chunk }) }) }) -test("npm login --always-auth", function (t) { - mr({port : common.port, plugin : mocks}, function (er, s) { +test('npm login --always-auth', function (t) { + mr({ port: common.port, plugin: mocks }, function (er, s) { var runner = common.npm( [ - "login", - "--registry", common.registry, - "--loglevel", "silent", - "--userconfig", outfile, - "--always-auth" + 'login', + '--registry', common.registry, + '--loglevel', 'silent', + '--userconfig', outfile, + '--always-auth' ], opts, function (err, code) { - t.notOk(code, "exited OK") - t.notOk(err, "no error output") - var config = fs.readFileSync(outfile, "utf8") - t.like(config, /:always-auth=true/, "always-auth is scoped and true") + t.notOk(code, 'exited OK') + t.notOk(err, 'no error output') + var config = fs.readFileSync(outfile, 'utf8') + t.like(config, /:always-auth=true/, 'always-auth is scoped and true') s.close() rimraf(outfile, function (err) { - t.ifError(err, "removed config file OK") + t.ifError(err, 'removed config file OK') t.end() }) }) - var o = "", e = "", remaining = Object.keys(responses).length - runner.stdout.on("data", function (chunk) { + var o = '' + var e = '' + var remaining = Object.keys(responses).length + runner.stdout.on('data', function (chunk) { remaining-- o += chunk - var label = chunk.toString("utf8").split(":")[0] + var label = chunk.toString('utf8').split(':')[0] runner.stdin.write(responses[label]) if (remaining === 0) runner.stdin.end() }) - runner.stderr.on("data", function (chunk) { e += chunk }) + runner.stderr.on('data', function (chunk) { e += chunk }) }) }) -test("npm login --no-always-auth", function (t) { - mr({port : common.port, plugin : mocks}, function (er, s) { +test('npm login --no-always-auth', function (t) { + mr({ port: common.port, plugin: mocks }, function (er, s) { var runner = common.npm( [ - "login", - "--registry", common.registry, - "--loglevel", "silent", - "--userconfig", outfile, - "--no-always-auth" + 'login', + '--registry', common.registry, + '--loglevel', 'silent', + '--userconfig', outfile, + '--no-always-auth' ], opts, function (err, code) { - t.notOk(code, "exited OK") - t.notOk(err, "no error output") - var config = fs.readFileSync(outfile, "utf8") - t.like(config, /:always-auth=false/, "always-auth is scoped and false") + t.notOk(code, 'exited OK') + t.notOk(err, 'no error output') + var config = fs.readFileSync(outfile, 'utf8') + t.like(config, /:always-auth=false/, 'always-auth is scoped and false') s.close() rimraf(outfile, function (err) { - t.ifError(err, "removed config file OK") + t.ifError(err, 'removed config file OK') t.end() }) }) - var o = "", e = "", remaining = Object.keys(responses).length - runner.stdout.on("data", function (chunk) { + var o = '' + var e = '' + var remaining = Object.keys(responses).length + runner.stdout.on('data', function (chunk) { remaining-- o += chunk - var label = chunk.toString("utf8").split(":")[0] + var label = chunk.toString('utf8').split(':')[0] runner.stdin.write(responses[label]) if (remaining === 0) runner.stdin.end() }) - runner.stderr.on("data", function (chunk) { e += chunk }) + runner.stderr.on('data', function (chunk) { e += chunk }) }) }) - -test("cleanup", function (t) { +test('cleanup', function (t) { rimraf.sync(outfile) - t.pass("cleaned up") + t.pass('cleaned up') t.end() }) diff --git a/deps/npm/test/tap/adduser-legacy-auth.js b/deps/npm/test/tap/adduser-legacy-auth.js index f9829c618ac7e8af9844b86ce03b2d0ad12c3cf6..885a685b9db87b551cfbeebceccb16f0dca97059 100644 --- a/deps/npm/test/tap/adduser-legacy-auth.js +++ b/deps/npm/test/tap/adduser-legacy-auth.js @@ -73,7 +73,9 @@ test('npm login', function (t) { }) }) - var o = '', e = '', remaining = Object.keys(responses).length + var o = '' + var e = '' + var remaining = Object.keys(responses).length runner.stdout.on('data', function (chunk) { remaining-- o += chunk diff --git a/deps/npm/test/tap/bin.js b/deps/npm/test/tap/bin.js index ee4e1ff28c4827be5b8a9f44201ecb3c7fd483d2..33320bc21f59a131ee3c1dde1e4533188b696403 100644 --- a/deps/npm/test/tap/bin.js +++ b/deps/npm/test/tap/bin.js @@ -1,17 +1,23 @@ -var path = require("path") -var test = require("tap").test -var common = require("../common-tap.js") +var path = require('path') +var test = require('tap').test +var rimraf = require('rimraf') +var common = require('../common-tap.js') var opts = { cwd: __dirname } -var binDir = "../../node_modules/.bin" +var binDir = '../../node_modules/.bin' var fixture = path.resolve(__dirname, binDir) +test('setup', function (t) { + rimraf.sync(path.join(__dirname, 'node_modules')) + t.end() +}) + test('npm bin', function (t) { - common.npm(["bin"], opts, function (err, code, stdout, stderr) { - t.ifError(err, "bin ran without issue") - t.notOk(stderr, "should have no stderr") - t.equal(code, 0, "exit ok") + common.npm(['bin'], opts, function (err, code, stdout, stderr) { + t.ifError(err, 'bin ran without issue') + t.notOk(stderr, 'should have no stderr') + t.equal(code, 0, 'exit ok') var res = path.resolve(stdout) - t.equal(res, fixture + "\n") + t.equal(res, fixture + '\n') t.end() }) }) diff --git a/deps/npm/test/tap/bitbucket-https-url-with-creds.js b/deps/npm/test/tap/bitbucket-https-url-with-creds.js index 3f39e3be45a3b58e49854c3d1172e253d3c3f841..4e9d14d7e01a174ecaa25e5b319390e213109a96 100644 --- a/deps/npm/test/tap/bitbucket-https-url-with-creds.js +++ b/deps/npm/test/tap/bitbucket-https-url-with-creds.js @@ -38,7 +38,7 @@ test('bitbucket-https-url-with-creds', function (t) { } else { t.fail('too many attempts to clone') } - cb(new Error()) + cb(new Error('execFile mock fails on purpose')) }) } } diff --git a/deps/npm/test/tap/bitbucket-shortcut-package.js b/deps/npm/test/tap/bitbucket-shortcut-package.js index bc38bd02fe571c82c8d0cd4b045b63918d2a0da9..69cfe6c205920359c4470b892ebe6d3529006200 100644 --- a/deps/npm/test/tap/bitbucket-shortcut-package.js +++ b/deps/npm/test/tap/bitbucket-shortcut-package.js @@ -27,8 +27,8 @@ test('setup', function (t) { test('bitbucket-shortcut', function (t) { var cloneUrls = [ - ['git@bitbucket.org:foo/private.git', 'Bitbucket shortcuts try SSH first'], - ['https://bitbucket.org/foo/private.git', 'Bitbucket shortcuts try HTTPS URLs second'] + ['https://bitbucket.org/foo/private.git', 'Bitbucket shortcuts try HTTPS URLs first'], + ['git@bitbucket.org:foo/private.git', 'Bitbucket shortcuts try SSH second'] ] var npm = requireInject.installGlobally('../../lib/npm.js', { diff --git a/deps/npm/test/tap/bitbucket-shortcut.js b/deps/npm/test/tap/bitbucket-shortcut.js index 51afe19926d9474a4ea2d6439493c6f02f10870a..a9b60f8b56818a15183f653fc0a0d7afdaf742c3 100644 --- a/deps/npm/test/tap/bitbucket-shortcut.js +++ b/deps/npm/test/tap/bitbucket-shortcut.js @@ -24,8 +24,8 @@ test('setup', function (t) { test('bitbucket-shortcut', function (t) { var cloneUrls = [ - ['git@bitbucket.org:foo/private.git', 'Bitbucket shortcuts try SSH first'], - ['https://bitbucket.org/foo/private.git', 'Bitbucket shortcuts try HTTPS URLs second'] + ['https://bitbucket.org/foo/private.git', 'Bitbucket shortcuts try HTTPS URLs first'], + ['git@bitbucket.org:foo/private.git', 'Bitbucket shortcuts try SSH second'] ] var npm = requireInject.installGlobally('../../lib/npm.js', { @@ -39,7 +39,7 @@ test('bitbucket-shortcut', function (t) { } else { t.fail('too many attempts to clone') } - cb(new Error()) + cb(new Error('execFile mock fails on purpose')) }) } } diff --git a/deps/npm/test/tap/bugs.js b/deps/npm/test/tap/bugs.js index 51ba5d3fe1efbb3bd9f7837cc2abbc409216e5dd..a0a3be1b8dfec57959902f9af0e63804d3b9b13f 100644 --- a/deps/npm/test/tap/bugs.js +++ b/deps/npm/test/tap/bugs.js @@ -1,151 +1,151 @@ -if (process.platform === "win32") { - console.error("skipping test, because windows and shebangs") - return +if (process.platform === 'win32') { + console.error('skipping test, because windows and shebangs') + process.exit(0) } -var common = require("../common-tap.js") -var mr = require("npm-registry-mock") +var common = require('../common-tap.js') +var mr = require('npm-registry-mock') -var test = require("tap").test -var rimraf = require("rimraf") -var fs = require("fs") -var path = require("path") +var test = require('tap').test +var rimraf = require('rimraf') +var fs = require('fs') +var path = require('path') var join = path.join -var outFile = path.join(__dirname, "/_output") +var outFile = path.join(__dirname, '/_output') var opts = { cwd: __dirname } -test("setup", function (t) { - var s = "#!/usr/bin/env bash\n" + - "echo \"$@\" > " + JSON.stringify(__dirname) + "/_output\n" - fs.writeFileSync(join(__dirname, "/_script.sh"), s, "ascii") - fs.chmodSync(join(__dirname, "/_script.sh"), "0755") - t.pass("made script") +test('setup', function (t) { + var s = '#!/usr/bin/env bash\n' + + 'echo \"$@\" > ' + JSON.stringify(__dirname) + '/_output\n' + fs.writeFileSync(join(__dirname, '/_script.sh'), s, 'ascii') + fs.chmodSync(join(__dirname, '/_script.sh'), '0755') + t.pass('made script') t.end() }) -test("npm bugs underscore", function (t) { - mr({port : common.port}, function (er, s) { +test('npm bugs underscore', function (t) { + mr({ port: common.port }, function (er, s) { common.npm([ - "bugs", "underscore", - "--registry=" + common.registry, - "--loglevel=silent", - "--browser=" + join(__dirname, "/_script.sh") + 'bugs', 'underscore', + '--registry=' + common.registry, + '--loglevel=silent', + '--browser=' + join(__dirname, '/_script.sh') ], opts, function (err, code, stdout, stderr) { - t.ifError(err, "bugs ran without issue") - t.notOk(stderr, "should have no stderr") - t.equal(code, 0, "exit ok") - var res = fs.readFileSync(outFile, "ascii") + t.ifError(err, 'bugs ran without issue') + t.notOk(stderr, 'should have no stderr') + t.equal(code, 0, 'exit ok') + var res = fs.readFileSync(outFile, 'ascii') s.close() - t.equal(res, "https://github.com/jashkenas/underscore/issues\n") + t.equal(res, 'https://github.com/jashkenas/underscore/issues\n') rimraf.sync(outFile) t.end() }) }) }) -test("npm bugs optimist - github (https://)", function (t) { - mr({port : common.port}, function (er, s) { +test('npm bugs optimist - github (https://)', function (t) { + mr({ port: common.port }, function (er, s) { common.npm([ - "bugs", "optimist", - "--registry=" + common.registry, - "--loglevel=silent", - "--browser=" + join(__dirname, "/_script.sh") + 'bugs', 'optimist', + '--registry=' + common.registry, + '--loglevel=silent', + '--browser=' + join(__dirname, '/_script.sh') ], opts, function (err, code, stdout, stderr) { - t.ifError(err, "bugs ran without issue") - t.notOk(stderr, "should have no stderr") - t.equal(code, 0, "exit ok") - var res = fs.readFileSync(outFile, "ascii") + t.ifError(err, 'bugs ran without issue') + t.notOk(stderr, 'should have no stderr') + t.equal(code, 0, 'exit ok') + var res = fs.readFileSync(outFile, 'ascii') s.close() - t.equal(res, "https://github.com/substack/node-optimist/issues\n") + t.equal(res, 'https://github.com/substack/node-optimist/issues\n') rimraf.sync(outFile) t.end() }) }) }) -test("npm bugs npm-test-peer-deps - no repo", function (t) { - mr({port : common.port}, function (er, s) { +test('npm bugs npm-test-peer-deps - no repo', function (t) { + mr({ port: common.port }, function (er, s) { common.npm([ - "bugs", "npm-test-peer-deps", - "--registry=" + common.registry, - "--loglevel=silent", - "--browser=" + join(__dirname, "/_script.sh") + 'bugs', 'npm-test-peer-deps', + '--registry=' + common.registry, + '--loglevel=silent', + '--browser=' + join(__dirname, '/_script.sh') ], opts, function (err, code, stdout, stderr) { - t.ifError(err, "bugs ran without issue") - t.notOk(stderr, "should have no stderr") - t.equal(code, 0, "exit ok") - var res = fs.readFileSync(outFile, "ascii") + t.ifError(err, 'bugs ran without issue') + t.notOk(stderr, 'should have no stderr') + t.equal(code, 0, 'exit ok') + var res = fs.readFileSync(outFile, 'ascii') s.close() - t.equal(res, "https://www.npmjs.org/package/npm-test-peer-deps\n") + t.equal(res, 'https://www.npmjs.org/package/npm-test-peer-deps\n') rimraf.sync(outFile) t.end() }) }) }) -test("npm bugs test-repo-url-http - non-github (http://)", function (t) { - mr({port : common.port}, function (er, s) { +test('npm bugs test-repo-url-http - non-github (http://)', function (t) { + mr({ port: common.port }, function (er, s) { common.npm([ - "bugs", "test-repo-url-http", - "--registry=" + common.registry, - "--loglevel=silent", - "--browser=" + join(__dirname, "/_script.sh") + 'bugs', 'test-repo-url-http', + '--registry=' + common.registry, + '--loglevel=silent', + '--browser=' + join(__dirname, '/_script.sh') ], opts, function (err, code, stdout, stderr) { - t.ifError(err, "bugs ran without issue") - t.notOk(stderr, "should have no stderr") - t.equal(code, 0, "exit ok") - var res = fs.readFileSync(outFile, "ascii") + t.ifError(err, 'bugs ran without issue') + t.notOk(stderr, 'should have no stderr') + t.equal(code, 0, 'exit ok') + var res = fs.readFileSync(outFile, 'ascii') s.close() - t.equal(res, "https://www.npmjs.org/package/test-repo-url-http\n") + t.equal(res, 'https://www.npmjs.org/package/test-repo-url-http\n') rimraf.sync(outFile) t.end() }) }) }) -test("npm bugs test-repo-url-https - non-github (https://)", function (t) { - mr({port : common.port}, function (er, s) { +test('npm bugs test-repo-url-https - non-github (https://)', function (t) { + mr({ port: common.port }, function (er, s) { common.npm([ - "bugs", "test-repo-url-https", - "--registry=" + common.registry, - "--loglevel=silent", - "--browser=" + join(__dirname, "/_script.sh") + 'bugs', 'test-repo-url-https', + '--registry=' + common.registry, + '--loglevel=silent', + '--browser=' + join(__dirname, '/_script.sh') ], opts, function (err, code, stdout, stderr) { - t.ifError(err, "bugs ran without issue") - t.notOk(stderr, "should have no stderr") - t.equal(code, 0, "exit ok") - var res = fs.readFileSync(outFile, "ascii") + t.ifError(err, 'bugs ran without issue') + t.notOk(stderr, 'should have no stderr') + t.equal(code, 0, 'exit ok') + var res = fs.readFileSync(outFile, 'ascii') s.close() - t.equal(res, "https://www.npmjs.org/package/test-repo-url-https\n") + t.equal(res, 'https://www.npmjs.org/package/test-repo-url-https\n') rimraf.sync(outFile) t.end() }) }) }) -test("npm bugs test-repo-url-ssh - non-github (ssh://)", function (t) { - mr({port : common.port}, function (er, s) { +test('npm bugs test-repo-url-ssh - non-github (ssh://)', function (t) { + mr({ port: common.port }, function (er, s) { common.npm([ - "bugs", "test-repo-url-ssh", - "--registry=" + common.registry, - "--loglevel=silent", - "--browser=" + join(__dirname, "/_script.sh") + 'bugs', 'test-repo-url-ssh', + '--registry=' + common.registry, + '--loglevel=silent', + '--browser=' + join(__dirname, '/_script.sh') ], opts, function (err, code, stdout, stderr) { - t.ifError(err, "bugs ran without issue") - t.notOk(stderr, "should have no stderr") - t.equal(code, 0, "exit ok") - var res = fs.readFileSync(outFile, "ascii") + t.ifError(err, 'bugs ran without issue') + t.notOk(stderr, 'should have no stderr') + t.equal(code, 0, 'exit ok') + var res = fs.readFileSync(outFile, 'ascii') s.close() - t.equal(res, "https://www.npmjs.org/package/test-repo-url-ssh\n") + t.equal(res, 'https://www.npmjs.org/package/test-repo-url-ssh\n') rimraf.sync(outFile) t.end() }) }) }) -test("cleanup", function (t) { - fs.unlinkSync(join(__dirname, "/_script.sh")) - t.pass("cleaned up") +test('cleanup', function (t) { + fs.unlinkSync(join(__dirname, '/_script.sh')) + t.pass('cleaned up') t.end() }) diff --git a/deps/npm/test/tap/build-already-built.js b/deps/npm/test/tap/build-already-built.js index 8e5546fe4dd2b9495c8995019f2db3c1a6f167c0..45aa1ba1c97d429de66af08a539f944642829159 100644 --- a/deps/npm/test/tap/build-already-built.js +++ b/deps/npm/test/tap/build-already-built.js @@ -1,64 +1,64 @@ // if "npm rebuild" is run with bundled dependencies, // message "already built" should not be error -var test = require("tap").test -var path = require("path") -var osenv = require("osenv") -var rimraf = require("rimraf") -var npmlog = require("npmlog") -var mkdirp = require("mkdirp") -var requireInject = require("require-inject") +var test = require('tap').test +var path = require('path') +var osenv = require('osenv') +var rimraf = require('rimraf') +var npmlog = require('npmlog') +var mkdirp = require('mkdirp') +var requireInject = require('require-inject') -var npm = require("../../lib/npm.js") +var npm = require('../../lib/npm.js') -var PKG_DIR = path.resolve(__dirname, "build-already-built") -var fakePkg = "foo" +var PKG_DIR = path.resolve(__dirname, 'build-already-built') +var fakePkg = 'foo' -test("setup", function (t) { +test('setup', function (t) { cleanup() t.end() }) test("issue #6735 build 'already built' message", function (t) { - npm.load({loglevel : "warn"}, function () { + npm.load({ loglevel: 'warn' }, function () { // capture log messages with level - var log = "" - npmlog.on("log", function (chunk) { - log += chunk.level + " " + chunk.message + "\n" + var log = '' + npmlog.on('log', function (chunk) { + log += chunk.level + ' ' + chunk.message + '\n' }) mkdirp.sync(fakePkg) var folder = path.resolve(fakePkg) - var global = npm.config.get("global") + var global = npm.config.get('global') - var build = requireInject("../../lib/build", { + var build = requireInject('../../lib/build', { }) - t.test("pin previous behavior", function (t) { + t.test('pin previous behavior', function (t) { build([fakePkg], global, false, false, function (err) { - t.ok(err, "build failed as expected") - t.similar(err.message, /package.json/, "missing package.json as expected") - t.notSimilar(log, /already built/, "no already built message written") + t.ok(err, 'build failed as expected') + t.similar(err.message, /package.json/, 'missing package.json as expected') + t.notSimilar(log, /already built/, 'no already built message written') t.end() }) }) - t.test("simulate rebuild of bundledDependency", function (t) { + t.test('simulate rebuild of bundledDependency', function (t) { - log = "" + log = '' build._didBuild[folder] = true build([fakePkg], global, false, false, function (err) { - t.ok(err, "build failed as expected") - t.similar(err.message, /package.json/, "missing package.json as expected") + t.ok(err, 'build failed as expected') + t.similar(err.message, /package.json/, 'missing package.json as expected') - t.similar(log, /already built/, "already built message written") - t.notSimilar(log, /ERR! already built/, "already built message written is not error") - t.similar(log, /info already built/, "already built message written is info") + t.similar(log, /already built/, 'already built message written') + t.notSimilar(log, /ERR! already built/, 'already built message written is not error') + t.similar(log, /info already built/, 'already built message written is info') t.end() }) @@ -68,8 +68,7 @@ test("issue #6735 build 'already built' message", function (t) { }) }) - -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() t.end() diff --git a/deps/npm/test/tap/builtin-config.js b/deps/npm/test/tap/builtin-config.js index d92551ed6ea227d3a0ff3b40a991c6f7d07dfded..333282e685509a81323f76147cbd26028c6e7e62 100644 --- a/deps/npm/test/tap/builtin-config.js +++ b/deps/npm/test/tap/builtin-config.js @@ -1,59 +1,58 @@ -var fs = require("fs") +var fs = require('fs') -if (process.argv[2] === "write-builtin") { +if (process.argv[2] === 'write-builtin') { var pid = process.argv[3] - fs.writeFileSync("npmrc", "foo=bar\npid=" + pid + "\n") - return + fs.writeFileSync('npmrc', 'foo=bar\npid=' + pid + '\n') + process.exit(0) } -var rcdata = "foo=bar\npid=" + process.pid + "\n" -var common = require("../common-tap.js") -var path = require("path") -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") -var folder = path.resolve(__dirname, "builtin-config") -var test = require("tap").test -var npm = path.resolve(__dirname, "../..") -var spawn = require("child_process").spawn +var common = require('../common-tap.js') +var path = require('path') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var folder = path.resolve(__dirname, 'builtin-config') +var test = require('tap').test +var npm = path.resolve(__dirname, '../..') +var spawn = require('child_process').spawn var node = process.execPath -test("setup", function (t) { +test('setup', function (t) { + t.plan(1) rimraf.sync(folder) - mkdirp.sync(folder + "/first") - mkdirp.sync(folder + "/second") - mkdirp.sync(folder + "/cache") - mkdirp.sync(folder + "/tmp") + mkdirp.sync(folder + '/first') + mkdirp.sync(folder + '/second') + mkdirp.sync(folder + '/cache') + mkdirp.sync(folder + '/tmp') - t.pass("finished setup") + t.pass('finished setup') t.end() }) - -test("install npm into first folder", function (t) { - var args = ["install", npm, "-g", - "--prefix=" + folder + "/first", - "--ignore-scripts", - "--cache=" + folder + "/cache", - "--no-spin", - "--loglevel=silent", - "--tmp=" + folder + "/tmp"] - common.npm(args, {stdio: "inherit"}, function (er, code) { +test('install npm into first folder', function (t) { + t.plan(1) + var args = ['install', npm, '-g', + '--prefix=' + folder + '/first', + '--ignore-scripts', + '--cache=' + folder + '/cache', + '--loglevel=silent', + '--tmp=' + folder + '/tmp'] + common.npm(args, {stdio: 'inherit'}, function (er, code) { if (er) throw er t.equal(code, 0) t.end() }) }) -test("write npmrc file", function (t) { - common.npm(["explore", "npm", "-g", - "--prefix=" + folder + "/first", - "--cache=" + folder + "/cache", - "--tmp=" + folder + "/tmp", - "--no-spin", - "--", - node, __filename, "write-builtin", process.pid +test('write npmrc file', function (t) { + t.plan(1) + common.npm(['explore', 'npm', '-g', + '--prefix=' + folder + '/first', + '--cache=' + folder + '/cache', + '--tmp=' + folder + '/tmp', + '--', + node, __filename, 'write-builtin', process.pid ], - {"stdio": "inherit"}, + {'stdio': 'inherit'}, function (er, code) { if (er) throw er t.equal(code, 0) @@ -61,66 +60,73 @@ test("write npmrc file", function (t) { }) }) -test("use first npm to install second npm", function (t) { +test('use first npm to install second npm', function (t) { + t.plan(3) // get the root location - common.npm([ "root", "-g", - "--prefix=" + folder + "/first", - "--cache=" + folder + "/cache", - "--tmp=" + folder + "/tmp", - "--no-spin" - ], {}, function (er, code, so) { - if (er) throw er - t.equal(code, 0) - var root = so.trim() - t.ok(fs.statSync(root).isDirectory()) + common.npm( + [ + 'root', '-g', + '--prefix=' + folder + '/first', + '--cache=' + folder + '/cache', + '--tmp=' + folder + '/tmp' + ], + {}, + function (er, code, so) { + if (er) throw er + t.equal(code, 0) + var root = so.trim() + t.ok(fs.statSync(root).isDirectory()) - var bin = path.resolve(root, "npm/bin/npm-cli.js") - spawn( node - , [ bin - , "install", npm - , "-g" - , "--prefix=" + folder + "/second" - , "--cache=" + folder + "/cache" - , "--tmp=" + folder + "/tmp" - , "--no-spin" - ]) - .on("error", function (er) { throw er }) - .on("close", function (code) { - t.equal(code, 0, "code is zero") - t.end() - }) - }) + var bin = path.resolve(root, 'npm/bin/npm-cli.js') + spawn( + node, + [ + bin, + 'install', npm, + '-g', + '--prefix=' + folder + '/second', + '--cache=' + folder + '/cache', + '--tmp=' + folder + '/tmp' + ] + ) + .on('error', function (er) { throw er }) + .on('close', function (code) { + t.equal(code, 0, 'code is zero') + t.end() + }) + } + ) }) -test("verify that the builtin config matches", function (t) { - common.npm([ "root", "-g", - "--prefix=" + folder + "/first", - "--cache=" + folder + "/cache", - "--tmp=" + folder + "/tmp" +test('verify that the builtin config matches', function (t) { + t.plan(3) + common.npm([ 'root', '-g', + '--prefix=' + folder + '/first', + '--cache=' + folder + '/cache', + '--tmp=' + folder + '/tmp' ], {}, function (er, code, so) { if (er) throw er t.equal(code, 0) var firstRoot = so.trim() - common.npm([ "root", "-g", - "--prefix=" + folder + "/second", - "--cache=" + folder + "/cache", - "--tmp=" + folder + "/tmp" + common.npm([ 'root', '-g', + '--prefix=' + folder + '/second', + '--cache=' + folder + '/cache', + '--tmp=' + folder + '/tmp' ], {}, function (er, code, so) { if (er) throw er t.equal(code, 0) var secondRoot = so.trim() - var firstRc = path.resolve(firstRoot, "npm", "npmrc") - var secondRc = path.resolve(secondRoot, "npm", "npmrc") - var firstData = fs.readFileSync(firstRc, "utf8") - var secondData = fs.readFileSync(secondRc, "utf8") + var firstRc = path.resolve(firstRoot, 'npm', 'npmrc') + var secondRc = path.resolve(secondRoot, 'npm', 'npmrc') + var firstData = fs.readFileSync(firstRc, 'utf8') + var secondData = fs.readFileSync(secondRc, 'utf8') t.equal(firstData, secondData) t.end() }) }) }) - -test("clean", function (t) { +test('clean', function (t) { rimraf.sync(folder) t.end() }) diff --git a/deps/npm/test/tap/bundled-dependencies-nonarray.js b/deps/npm/test/tap/bundled-dependencies-nonarray.js index bff0522d03122e01105c6625718c28a6e4434923..2a082720084ab72b3ba061f1096d6938713a9a86 100644 --- a/deps/npm/test/tap/bundled-dependencies-nonarray.js +++ b/deps/npm/test/tap/bundled-dependencies-nonarray.js @@ -1,12 +1,10 @@ var fs = require('graceful-fs') var path = require('path') -var osenv = require('osenv') var mkdirp = require('mkdirp') var rimraf = require('rimraf') var test = require('tap').test -var npm = require('../../lib/npm.js') var common = require('../common-tap.js') var dir = path.resolve(__dirname, 'bundleddependencies') @@ -36,24 +34,19 @@ test('setup', function (t) { test('errors on non-array bundleddependencies', function (t) { t.plan(6) - process.chdir(pkg) - npm.load({}, - function () { - common.npm(['install'], { cwd: pkg }, function (err, code, stdout, stderr) { - t.ifError(err, 'npm install ran without issue') - t.notOk(code, 'exited with a non-error code') - t.notOk(stderr, 'no error output') + common.npm(['install'], { cwd: pkg }, function (err, code, stdout, stderr) { + t.ifError(err, 'npm install ran without issue') + t.is(code, 0, 'exited with a non-error code') + t.is(stderr, '', 'no error output') - common.npm(['install', './pkg-with-bundled'], { cwd: dir }, - function (err, code, stdout, stderr) { - t.ifError(err, 'npm install ran without issue') - t.ok(code, 'exited with a error code') - t.ok(stderr.indexOf('be an array') > -1, 'nice error output') - } - ) - }) - } - ) + common.npm(['install', './pkg-with-bundled'], { cwd: dir }, + function (err, code, stdout, stderr) { + t.ifError(err, 'npm install ran without issue') + t.notEqual(code, 0, 'exited with a error code') + t.like(stderr, /be an array/, 'nice error output') + } + ) + }) }) test('cleanup', function (t) { @@ -62,7 +55,9 @@ test('cleanup', function (t) { }) function bootstrap () { + cleanup() mkdirp.sync(dir) + mkdirp.sync(path.join(dir, 'node_modules')) mkdirp.sync(pkg) fs.writeFileSync(path.resolve(pkg, 'package.json'), pj) @@ -72,6 +67,5 @@ function bootstrap () { } function cleanup () { - process.chdir(osenv.tmpdir()) rimraf.sync(dir) } diff --git a/deps/npm/test/tap/cache-add-localdir-fallback.js b/deps/npm/test/tap/cache-add-localdir-fallback.js index facd95c3ad483bfc84d0ae8c537e698db8bf5d07..ca8696d2231c93fd38c9a63c17876491f284d138 100644 --- a/deps/npm/test/tap/cache-add-localdir-fallback.js +++ b/deps/npm/test/tap/cache-add-localdir-fallback.js @@ -1,84 +1,84 @@ -var path = require("path") -var test = require("tap").test -var npm = require("../../lib/npm.js") -var requireInject = require("require-inject") +var path = require('path') +var test = require('tap').test +var npm = require('../../lib/npm.js') +var requireInject = require('require-inject') -var realizePackageSpecifier = requireInject("realize-package-specifier", { - "fs": { +var realizePackageSpecifier = requireInject('realize-package-specifier', { + 'fs': { stat: function (file, cb) { process.nextTick(function () { switch (file) { - case path.resolve("named"): - cb(new Error("ENOENT")) + case path.resolve('named'): + cb(new Error('ENOENT')) break - case path.resolve("file.tgz"): + case path.resolve('file.tgz'): cb(null, { isDirectory: function () { return false } }) break - case path.resolve("dir-no-package"): + case path.resolve('dir-no-package'): cb(null, { isDirectory: function () { return true } }) break - case path.resolve("dir-no-package/package.json"): - cb(new Error("ENOENT")) + case path.resolve('dir-no-package/package.json'): + cb(new Error('ENOENT')) break - case path.resolve("dir-with-package"): + case path.resolve('dir-with-package'): cb(null, { isDirectory: function () { return true } }) break - case path.resolve("dir-with-package/package.json"): + case path.resolve('dir-with-package/package.json'): cb(null, {}) break - case path.resolve(__dirname, "dir-with-package"): + case path.resolve(__dirname, 'dir-with-package'): cb(null, { isDirectory: function () { return true } }) break - case path.join(__dirname, "dir-with-package", "package.json"): + case path.join(__dirname, 'dir-with-package', 'package.json'): cb(null, {}) break - case path.resolve(__dirname, "file.tgz"): + case path.resolve(__dirname, 'file.tgz'): cb(null, { isDirectory: function () { return false } }) break default: - throw new Error("Unknown test file passed to stat: " + file) + throw new Error('Unknown test file passed to stat: ' + file) } }) } } }) -npm.load({loglevel : "silent"}, function () { - var cache = requireInject("../../lib/cache.js", { - "realize-package-specifier": realizePackageSpecifier, - "../../lib/cache/add-named.js": function addNamed (name, version, data, cb) { - cb(null, "addNamed") +npm.load({ loglevel: 'silent' }, function () { + var cache = requireInject('../../lib/cache.js', { + 'realize-package-specifier': realizePackageSpecifier, + '../../lib/cache/add-named.js': function addNamed (name, version, data, cb) { + cb(null, 'addNamed') }, - "../../lib/cache/add-local.js": function addLocal (name, data, cb) { - cb(null, "addLocal") + '../../lib/cache/add-local.js': function addLocal (name, data, cb) { + cb(null, 'addLocal') } }) - test("npm install localdir fallback", function (t) { + test('npm install localdir fallback', function (t) { t.plan(12) - cache.add("named", null, null, false, function (er, which) { - t.ifError(er, "named was cached") - t.is(which, "addNamed", "registry package name") + cache.add('named', null, null, false, function (er, which) { + t.ifError(er, 'named was cached') + t.is(which, 'addNamed', 'registry package name') }) - cache.add("file.tgz", null, null, false, function (er, which) { - t.ifError(er, "file.tgz was cached") - t.is(which, "addLocal", "local file") + cache.add('file.tgz', null, null, false, function (er, which) { + t.ifError(er, 'file.tgz was cached') + t.is(which, 'addLocal', 'local file') }) - cache.add("dir-no-package", null, null, false, function (er, which) { - t.ifError(er, "local directory was cached") - t.is(which, "addNamed", "local directory w/o package.json") + cache.add('dir-no-package', null, null, false, function (er, which) { + t.ifError(er, 'local directory was cached') + t.is(which, 'addNamed', 'local directory w/o package.json') }) - cache.add("dir-with-package", null, null, false, function (er, which) { - t.ifError(er, "local directory with package was cached") - t.is(which,"addLocal", "local directory with package.json") + cache.add('dir-with-package', null, null, false, function (er, which) { + t.ifError(er, 'local directory with package was cached') + t.is(which, 'addLocal', 'local directory with package.json') }) - cache.add("file:./dir-with-package", null, __dirname, false, function (er, which) { - t.ifError(er, "local directory (as URI) with package was cached") - t.is(which, "addLocal", "file: URI to local directory with package.json") + cache.add('file:./dir-with-package', null, __dirname, false, function (er, which) { + t.ifError(er, 'local directory (as URI) with package was cached') + t.is(which, 'addLocal', 'file: URI to local directory with package.json') }) - cache.add("file:./file.tgz", null, __dirname, false, function (er, which) { - t.ifError(er, "local file (as URI) with package was cached") - t.is(which, "addLocal", "file: URI to local file with package.json") + cache.add('file:./file.tgz', null, __dirname, false, function (er, which) { + t.ifError(er, 'local file (as URI) with package was cached') + t.is(which, 'addLocal', 'file: URI to local file with package.json') }) }) }) diff --git a/deps/npm/test/tap/cache-add-unpublished.js b/deps/npm/test/tap/cache-add-unpublished.js index fe26929fce23ff238e1521692eb31f3e3d3b0a11..fe6807f19f987c1191b988e30e30e5b682606921 100644 --- a/deps/npm/test/tap/cache-add-unpublished.js +++ b/deps/npm/test/tap/cache-add-unpublished.js @@ -1,22 +1,21 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var mr = require("npm-registry-mock") +var common = require('../common-tap.js') +var test = require('tap').test -test("cache add", function (t) { +test('cache add', function (t) { setup(function (er, s) { if (er) { throw er } common.npm([ - "cache", - "add", - "superfoo", - "--registry=http://localhost:1337/" + 'cache', + 'add', + 'superfoo', + '--registry=http://localhost:1337/' ], {}, function (er, c, so, se) { if (er) throw er - t.ok(c, "got non-zero exit code") - t.equal(so, "", "nothing printed to stdout") - t.similar(se, /404 Not Found: superfoo/, "got expected error") + t.ok(c, 'got non-zero exit code') + t.equal(so, '', 'nothing printed to stdout') + t.similar(se, /404 Not Found: superfoo/, 'got expected error') s.close() t.end() }) @@ -24,9 +23,9 @@ test("cache add", function (t) { }) function setup (cb) { - var s = require("http").createServer(function (req, res) { + var s = require('http').createServer(function (req, res) { res.statusCode = 404 - res.end("{\"error\":\"not_found\"}\n") + res.end('{\"error\":\"not_found\"}\n') }) s.listen(1337, function () { cb(null, s) diff --git a/deps/npm/test/tap/cache-shasum-fork.js b/deps/npm/test/tap/cache-shasum-fork.js index f16404cb213392eefef8ce4ad343fa71351f2a52..01c2f68fb7df833532a5021ff3263de41e54848e 100644 --- a/deps/npm/test/tap/cache-shasum-fork.js +++ b/deps/npm/test/tap/cache-shasum-fork.js @@ -18,6 +18,9 @@ var pkg = path.resolve(__dirname, 'cache-shasum-fork') var cache = path.join(pkg, 'cache') var server +var installed_output = path.join(__dirname, 'cache-shasum-fork') + + '\n`-- underscore@1.5.1 \n\n' + test('setup', function (t) { setup() t.comment('test for https://github.com/npm/npm/issues/3265') @@ -44,7 +47,7 @@ test('npm cache - install from fork', function (t) { t.notOk(stderr, 'Should not get data on stderr: ' + stderr) t.equal(code, 0, 'install finished successfully') - t.equal(stdout, 'underscore@1.5.1 node_modules/underscore\n') + t.equal(stdout, installed_output) var index = fs.readFileSync( path.join(pkg, 'node_modules', 'underscore', 'index.js'), 'utf8' @@ -72,7 +75,7 @@ test('npm cache - install from origin', function (t) { t.ifErr(err, 'install finished without error') t.equal(code, 0, 'install finished successfully') t.notOk(stderr, 'Should not get data on stderr: ' + stderr) - t.equal(stdout, 'underscore@1.5.1 node_modules/underscore\n') + t.equal(stdout, installed_output) var index = fs.readFileSync( path.join(pkg, 'node_modules', 'underscore', 'index.js'), 'utf8' diff --git a/deps/npm/test/tap/cache-shasum.js b/deps/npm/test/tap/cache-shasum.js index f86037cc80cd4b21e7db2e3f02c9e11289994b48..90915ed850a7c3e1b0547b6726a5075f70e1be74 100644 --- a/deps/npm/test/tap/cache-shasum.js +++ b/deps/npm/test/tap/cache-shasum.js @@ -1,58 +1,57 @@ -var npm = require.resolve("../../") -var test = require("tap").test -var path = require("path") -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") -var mr = require("npm-registry-mock") -var common = require("../common-tap.js") -var cache = path.resolve(__dirname, "cache-shasum") -var spawn = require("child_process").spawn -var sha = require("sha") +var npm = require.resolve('../../') +var test = require('tap').test +var path = require('path') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var mr = require('npm-registry-mock') +var common = require('../common-tap.js') +var cache = path.resolve(__dirname, 'cache-shasum') +var spawn = require('child_process').spawn +var sha = require('sha') var server -test("mock reg", function (t) { +test('mock reg', function (t) { rimraf.sync(cache) mkdirp.sync(cache) - mr({port : common.port}, function (er, s) { + mr({ port: common.port }, function (er, s) { server = s - t.pass("ok") + t.pass('ok') t.end() }) }) -test("npm cache add request", function (t) { +test('npm cache add request', function (t) { var c = spawn(process.execPath, [ - npm, "cache", "add", "request@2.27.0", - "--cache=" + cache, - "--registry=" + common.registry, - "--loglevel=quiet" + npm, 'cache', 'add', 'request@2.27.0', + '--cache=' + cache, + '--registry=' + common.registry, + '--loglevel=quiet' ]) c.stderr.pipe(process.stderr) - c.stdout.on("data", function (d) { - t.fail("Should not get data on stdout: " + d) + c.stdout.on('data', function (d) { + t.fail('Should not get data on stdout: ' + d) }) - c.on("close", function (code) { - t.notOk(code, "exit ok") + c.on('close', function (code) { + t.notOk(code, 'exit ok') t.end() }) }) -test("compare", function (t) { - var d = path.resolve(__dirname, "cache-shasum/request") - var p = path.resolve(d, "2.27.0/package.tgz") - var r = require("./cache-shasum/localhost_1337/request/.cache.json") - var rshasum = r.versions["2.27.0"].dist.shasum +test('compare', function (t) { + var d = path.resolve(__dirname, 'cache-shasum/request') + var p = path.resolve(d, '2.27.0/package.tgz') + var r = require('./cache-shasum/localhost_1337/request/.cache.json') + var rshasum = r.versions['2.27.0'].dist.shasum sha.get(p, function (er, pshasum) { - if (er) - throw er + if (er) throw er t.equal(pshasum, rshasum) t.end() }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { server.close() rimraf.sync(cache) t.end() diff --git a/deps/npm/test/tap/check-cpu-reqs.js b/deps/npm/test/tap/check-cpu-reqs.js new file mode 100644 index 0000000000000000000000000000000000000000..4d8c3dc6551c4b41467b5b4e5ec4372051e7842d --- /dev/null +++ b/deps/npm/test/tap/check-cpu-reqs.js @@ -0,0 +1,63 @@ +'use strict' +var path = require('path') +var fs = require('fs') +var test = require('tap').test +var osenv = require('osenv') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var common = require('../common-tap.js') + +var base = path.join(__dirname, path.basename(__filename, '.js')) +var installFrom = path.join(base, 'from') +var installIn = path.join(base, 'in') + +var json = { + name: 'check-cpu-reqs', + version: '0.0.1', + description: 'fixture', + cpu: ['fake-cpu'] +} + +test('setup', function (t) { + setup() + t.end() +}) + +var INSTALL_OPTS = ['--loglevel', 'silly'] +var EXEC_OPTS = {cwd: installIn} + +test('install bad cpu', function (t) { + common.npm(['install', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { + t.ifError(err, 'npm ran without issue') + t.is(code, 1, 'npm install refused to install a package in itself') + t.end() + }) +}) +test('force install bad cpu', function (t) { + common.npm(['install', '--force', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { + t.ifError(err, 'npm ran without issue') + t.is(code, 0, 'npm install happily installed a package in itself with --force') + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(base) +} + +function setup () { + cleanup() + mkdirp.sync(path.resolve(installFrom, 'node_modules')) + fs.writeFileSync( + path.join(installFrom, 'package.json'), + JSON.stringify(json, null, 2) + ) + mkdirp.sync(path.resolve(installIn, 'node_modules')) + process.chdir(base) +} diff --git a/deps/npm/test/tap/check-engine-reqs.js b/deps/npm/test/tap/check-engine-reqs.js new file mode 100644 index 0000000000000000000000000000000000000000..8dd9b8231fb5edb77b7422e18bb8270f665b9d09 --- /dev/null +++ b/deps/npm/test/tap/check-engine-reqs.js @@ -0,0 +1,65 @@ +'use strict' +var path = require('path') +var fs = require('fs') +var test = require('tap').test +var osenv = require('osenv') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var common = require('../common-tap.js') + +var base = path.join(__dirname, path.basename(__filename, '.js')) +var installFrom = path.join(base, 'from') +var installIn = path.join(base, 'in') + +var json = { + name: 'check-engine-reqs', + version: '0.0.1', + description: 'fixture', + engines: { + node: '1.0.0-not-a-real-version' + } +} + +test('setup', function (t) { + setup() + t.end() +}) + +var INSTALL_OPTS = ['--loglevel', 'silly'] +var EXEC_OPTS = {cwd: installIn} + +test('install bad engine', function (t) { + common.npm(['install', '--engine-strict', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { + t.ifError(err, 'npm ran without issue') + t.is(code, 1, 'npm install refused to install a package in itself') + t.end() + }) +}) +test('force install bad engine', function (t) { + common.npm(['install', '--engine-strict', '--force', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { + t.ifError(err, 'npm ran without issue') + t.is(code, 0, 'npm install happily installed a package in itself with --force') + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(base) +} + +function setup () { + cleanup() + mkdirp.sync(path.resolve(installFrom, 'node_modules')) + fs.writeFileSync( + path.join(installFrom, 'package.json'), + JSON.stringify(json, null, 2) + ) + mkdirp.sync(path.resolve(installIn, 'node_modules')) + process.chdir(base) +} diff --git a/deps/npm/test/tap/check-install-self.js b/deps/npm/test/tap/check-install-self.js new file mode 100644 index 0000000000000000000000000000000000000000..821d8eb4d4994c4278967c0a85faab4161f5d669 --- /dev/null +++ b/deps/npm/test/tap/check-install-self.js @@ -0,0 +1,66 @@ +'use strict' +var path = require('path') +var fs = require('fs') +var test = require('tap').test +var osenv = require('osenv') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var common = require('../common-tap.js') + +var base = path.join(__dirname, path.basename(__filename, '.js')) +var installFrom = path.join(base, 'from') +var installIn = path.join(base, 'in') + +var json = { + name: 'check-install-self', + version: '0.0.1', + description: 'fixture' +} + +test('setup', function (t) { + setup() + t.end() +}) + +var INSTALL_OPTS = ['--loglevel', 'silent'] +var EXEC_OPTS = {cwd: installIn} + +test('install self', function (t) { + common.npm(['install', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { + t.ifError(err, 'npm ran without issue') + t.is(code, 1, 'npm install refused to install a package in itself') + t.end() + }) +}) +test('force install self', function (t) { + common.npm(['install', '--force', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { + t.ifError(err, 'npm ran without issue') + t.is(code, 0, 'npm install happily installed a package in itself with --force') + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(base) +} + +function setup () { + cleanup() + mkdirp.sync(path.resolve(installFrom, 'node_modules')) + fs.writeFileSync( + path.join(installFrom, 'package.json'), + JSON.stringify(json, null, 2) + ) + mkdirp.sync(path.resolve(installIn, 'node_modules')) + fs.writeFileSync( + path.join(installIn, 'package.json'), + JSON.stringify(json, null, 2) + ) + process.chdir(base) +} diff --git a/deps/npm/test/tap/check-os-reqs.js b/deps/npm/test/tap/check-os-reqs.js new file mode 100644 index 0000000000000000000000000000000000000000..5d0c1ecf78b07c3c04d97635f60474dae04eacfb --- /dev/null +++ b/deps/npm/test/tap/check-os-reqs.js @@ -0,0 +1,63 @@ +'use strict' +var path = require('path') +var fs = require('fs') +var test = require('tap').test +var osenv = require('osenv') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var common = require('../common-tap.js') + +var base = path.join(__dirname, path.basename(__filename, '.js')) +var installFrom = path.join(base, 'from') +var installIn = path.join(base, 'in') + +var json = { + name: 'check-os-reqs', + version: '0.0.1', + description: 'fixture', + os: ['fake-os'] +} + +test('setup', function (t) { + setup() + t.end() +}) + +var INSTALL_OPTS = ['--loglevel', 'silly'] +var EXEC_OPTS = {cwd: installIn} + +test('install bad os', function (t) { + common.npm(['install', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { + t.ifError(err, 'npm ran without issue') + t.is(code, 1, 'npm install refused to install a package in itself') + t.end() + }) +}) +test('force install bad os', function (t) { + common.npm(['install', '--force', installFrom].concat(INSTALL_OPTS), EXEC_OPTS, function (err, code) { + t.ifError(err, 'npm ran without issue') + t.is(code, 0, 'npm install happily installed a package in itself with --force') + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(base) +} + +function setup () { + cleanup() + mkdirp.sync(path.resolve(installFrom, 'node_modules')) + fs.writeFileSync( + path.join(installFrom, 'package.json'), + JSON.stringify(json, null, 2) + ) + mkdirp.sync(path.resolve(installIn, 'node_modules')) + process.chdir(base) +} diff --git a/deps/npm/test/tap/check-permissions.js b/deps/npm/test/tap/check-permissions.js new file mode 100644 index 0000000000000000000000000000000000000000..d3c0c6da25032fc42d920a3e2ae227ef75645b89 --- /dev/null +++ b/deps/npm/test/tap/check-permissions.js @@ -0,0 +1,88 @@ +'use strict' +var fs = require('fs') +var path = require('path') +var test = require('tap').test +var rimraf = require('rimraf') +var writable = require('../../lib/install/writable.js').fsAccessImplementation +var writableFallback = require('../../lib/install/writable.js').fsOpenImplementation +var exists = require('../../lib/install/exists.js').fsAccessImplementation +var existsFallback = require('../../lib/install/exists.js').fsStatImplementation + +var testBase = path.resolve(__dirname, 'check-permissions') +var existingDir = path.resolve(testBase, 'exists') +var nonExistingDir = path.resolve(testBase, 'does-not-exist') +var writableDir = path.resolve(testBase, 'writable') +var nonWritableDir = path.resolve(testBase, 'non-writable') + +test('setup', function (t) { + cleanup() + setup() + t.end() +}) + +test('exists', function (t) { + t.plan(2) + // fs.access first introduced in node 0.12 / io.js + if (fs.access) { + existsTests(t, exists) + } else { + t.pass('# skip fs.access not available in this version') + t.pass('# skip fs.access not available in this version') + } +}) + +test('exists-fallback', function (t) { + t.plan(2) + existsTests(t, existsFallback) +}) + +test('writable', function (t) { + t.plan(2) + // fs.access first introduced in node 0.12 / io.js + if (fs.access) { + writableTests(t, writable) + } else { + t.pass('# skip fs.access not available in this version') + t.pass('# skip fs.access not available in this version') + } +}) + +test('writable-fallback', function (t) { + t.plan(2) + writableTests(t, writableFallback) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function setup () { + fs.mkdirSync(testBase) + fs.mkdirSync(existingDir) + fs.mkdirSync(writableDir) + fs.mkdirSync(nonWritableDir) + fs.chmodSync(nonWritableDir, '555') +} + +function existsTests (t, exists) { + exists(existingDir, function (er) { + t.error(er, 'exists dir is exists') + }) + exists(nonExistingDir, function (er) { + t.ok(er, 'non-existing dir resulted in an error') + }) +} + +function writableTests (t, writable) { + writable(writableDir, function (er) { + t.error(er, 'writable dir is writable') + }) + writable(nonWritableDir, function (er) { + t.ok(er, 'non-writable dir resulted in an error') + }) +} + +function cleanup () { + rimraf.sync(testBase) +} diff --git a/deps/npm/test/tap/circular-dep.js b/deps/npm/test/tap/circular-dep.js index 002b30cd7856d3659306d4657e1de7470b83ce17..d7f66eacef1ac97799798ff50903183af6df7268 100644 --- a/deps/npm/test/tap/circular-dep.js +++ b/deps/npm/test/tap/circular-dep.js @@ -61,7 +61,10 @@ test('installing a package that depends on the current package', function (t) { t.ok(existsSync(path.resolve( minimist, - 'node_modules', 'optimist', + 'node_modules', 'optimist' + )), 'optimist in place') + t.ok(existsSync(path.resolve( + minimist, 'node_modules', 'minimist' )), 'circular dependency uncircled') t.end() diff --git a/deps/npm/test/tap/config-basic.js b/deps/npm/test/tap/config-basic.js index d5a950a8e5a00a58e0857e0a50fe07f6e87230fa..82fa8ab5856d7e88196330d17d9fc998882944cb 100644 --- a/deps/npm/test/tap/config-basic.js +++ b/deps/npm/test/tap/config-basic.js @@ -1,57 +1,58 @@ -var test = require("tap").test -var npmconf = require("../../lib/config/core.js") -var common = require("./00-config-setup.js") -var path = require("path") +var test = require('tap').test +var npmconf = require('../../lib/config/core.js') +var common = require('./00-config-setup.js') +var path = require('path') var projectData = { - "save-prefix": "~", - "proprietary-attribs": false + 'save-prefix': '~', + 'proprietary-attribs': false } var ucData = common.ucData var envData = common.envData var envDataFix = common.envDataFix -var gcData = { "package-config:foo": "boo" } +var gcData = { 'package-config:foo': 'boo' } var biData = {} -var cli = { foo: "bar", umask: 022 } +var cli = { foo: 'bar', umask: parseInt('022', 8) } -var expectList = -[ cli, +var expectList = [ + cli, envDataFix, projectData, ucData, gcData, - biData ] + biData +] var expectSources = { cli: { data: cli }, env: { data: envDataFix, source: envData, - prefix: "" + prefix: '' }, project: { - path: path.resolve(__dirname, "..", "..", ".npmrc"), - type: "ini", + path: path.resolve(__dirname, '..', '..', '.npmrc'), + type: 'ini', data: projectData }, user: { path: common.userconfig, - type: "ini", + type: 'ini', data: ucData }, global: { path: common.globalconfig, - type: "ini", + type: 'ini', data: gcData }, builtin: { data: biData } } -test("no builtin", function (t) { +test('no builtin', function (t) { npmconf.load(cli, function (er, conf) { if (er) throw er t.same(conf.list, expectList) @@ -59,8 +60,8 @@ test("no builtin", function (t) { t.same(npmconf.rootConf.list, []) t.equal(npmconf.rootConf.root, npmconf.defs.defaults) t.equal(conf.root, npmconf.defs.defaults) - t.equal(conf.get("umask"), 022) - t.equal(conf.get("heading"), "npm") + t.equal(conf.get('umask'), parseInt('022', 8)) + t.equal(conf.get('heading'), 'npm') t.end() }) }) diff --git a/deps/npm/test/tap/config-builtin.js b/deps/npm/test/tap/config-builtin.js index 5a1589ff6a224bbef1ab2c8f68a02efcd016aec1..708eb305657923db738aa36d61e6b8b71c4a9d8b 100644 --- a/deps/npm/test/tap/config-builtin.js +++ b/deps/npm/test/tap/config-builtin.js @@ -1,22 +1,22 @@ -var test = require("tap").test -var npmconf = require("../../lib/config/core.js") -var common = require("./00-config-setup.js") -var path = require("path") +var test = require('tap').test +var npmconf = require('../../lib/config/core.js') +var common = require('./00-config-setup.js') +var path = require('path') var ucData = common.ucData var envData = common.envData var envDataFix = common.envDataFix -var gcData = { "package-config:foo": "boo" } +var gcData = { 'package-config:foo': 'boo' } -var biData = { "builtin-config": true } +var biData = { 'builtin-config': true } -var cli = { foo: "bar", heading: "foo", "git-tag-version": false } +var cli = { foo: 'bar', heading: 'foo', 'git-tag-version': false } var projectData = { - "save-prefix": "~", - "proprietary-attribs": false + 'save-prefix': '~', + 'proprietary-attribs': false } var expectList = [ @@ -33,27 +33,27 @@ var expectSources = { env: { data: envDataFix, source: envData, - prefix: "" + prefix: '' }, project: { - path: path.resolve(__dirname, "..", "..", ".npmrc"), - type: "ini", + path: path.resolve(__dirname, '..', '..', '.npmrc'), + type: 'ini', data: projectData }, user: { path: common.userconfig, - type: "ini", + type: 'ini', data: ucData }, global: { path: common.globalconfig, - type: "ini", + type: 'ini', data: gcData }, builtin: { data: biData } } -test("with builtin", function (t) { +test('with builtin', function (t) { npmconf.load(cli, common.builtin, function (er, conf) { if (er) throw er t.same(conf.list, expectList) @@ -61,8 +61,8 @@ test("with builtin", function (t) { t.same(npmconf.rootConf.list, []) t.equal(npmconf.rootConf.root, npmconf.defs.defaults) t.equal(conf.root, npmconf.defs.defaults) - t.equal(conf.get("heading"), "foo") - t.equal(conf.get("git-tag-version"), false) + t.equal(conf.get('heading'), 'foo') + t.equal(conf.get('git-tag-version'), false) t.end() }) }) diff --git a/deps/npm/test/tap/config-certfile.js b/deps/npm/test/tap/config-certfile.js index 25de9963a9fc960d0d21e7d0ca5cafd12281a9dd..223ff34196f5eb81d7df6faa7b2a885c3648b8b2 100644 --- a/deps/npm/test/tap/config-certfile.js +++ b/deps/npm/test/tap/config-certfile.js @@ -1,18 +1,18 @@ -require("./00-config-setup.js") +require('./00-config-setup.js') -var path = require("path") -var fs = require("fs") -var test = require("tap").test -var npmconf = require("../../lib/config/core.js") +var path = require('path') +var fs = require('fs') +var test = require('tap').test +var npmconf = require('../../lib/config/core.js') -test("cafile loads as ca", function (t) { - var cafile = path.join(__dirname, "..", "fixtures", "config", "multi-ca") +test('cafile loads as ca', function (t) { + var cafile = path.join(__dirname, '..', 'fixtures', 'config', 'multi-ca') npmconf.load({cafile: cafile}, function (er, conf) { if (er) throw er - t.same(conf.get("cafile"), cafile) - t.same(conf.get("ca").join("\n"), fs.readFileSync(cafile, "utf8").trim()) + t.same(conf.get('cafile'), cafile) + t.same(conf.get('ca').join('\n'), fs.readFileSync(cafile, 'utf8').trim()) t.end() }) }) diff --git a/deps/npm/test/tap/config-credentials.js b/deps/npm/test/tap/config-credentials.js index 1cb2a7eb410c5970da55be0963670ac886a0a011..c1b981d0a51312769ff8e0eb006b0d22941f415d 100644 --- a/deps/npm/test/tap/config-credentials.js +++ b/deps/npm/test/tap/config-credentials.js @@ -1,350 +1,350 @@ -var test = require("tap").test +var test = require('tap').test -var npmconf = require("../../lib/config/core.js") -var common = require("./00-config-setup.js") +var npmconf = require('../../lib/config/core.js') +var common = require('./00-config-setup.js') -var URI = "https://registry.lvh.me:8661/" +var URI = 'https://registry.lvh.me:8661/' -test("getting scope with no credentials set", function (t) { +test('getting scope with no credentials set', function (t) { npmconf.load({}, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') var basic = conf.getCredentialsByURI(URI) - t.equal(basic.scope, "//registry.lvh.me:8661/", "nerfed URL extracted") + t.equal(basic.scope, '//registry.lvh.me:8661/', 'nerfed URL extracted') t.end() }) }) -test("trying to set credentials with no URI", function (t) { +test('trying to set credentials with no URI', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') t.throws(function () { conf.setCredentialsByURI() - }, "enforced missing URI") + }, 'enforced missing URI') t.end() }) }) -test("trying to clear credentials with no URI", function (t) { +test('trying to clear credentials with no URI', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') t.throws(function () { conf.clearCredentialsByURI() - }, "enforced missing URI") + }, 'enforced missing URI') t.end() }) }) -test("set with missing credentials object", function (t) { +test('set with missing credentials object', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') t.throws(function () { conf.setCredentialsByURI(URI) - }, "enforced missing credentials") + }, 'enforced missing credentials') t.end() }) }) -test("set with empty credentials object", function (t) { +test('set with empty credentials object', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') t.throws(function () { conf.setCredentialsByURI(URI, {}) - }, "enforced missing credentials") + }, 'enforced missing credentials') t.end() }) }) -test("set with token", function (t) { +test('set with token', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') t.doesNotThrow(function () { - conf.setCredentialsByURI(URI, {token : "simple-token"}) - }, "needs only token") + conf.setCredentialsByURI(URI, { token: 'simple-token' }) + }, 'needs only token') var expected = { - scope : "//registry.lvh.me:8661/", - token : "simple-token", - username : undefined, - password : undefined, - email : undefined, - auth : undefined, - alwaysAuth : undefined + scope: '//registry.lvh.me:8661/', + token: 'simple-token', + username: undefined, + password: undefined, + email: undefined, + auth: undefined, + alwaysAuth: undefined } - t.same(conf.getCredentialsByURI(URI), expected, "got bearer token and scope") + t.same(conf.getCredentialsByURI(URI), expected, 'got bearer token and scope') t.end() }) }) -test("clear with token", function (t) { +test('clear with token', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') t.doesNotThrow(function () { - conf.setCredentialsByURI(URI, {token : "simple-token"}) - }, "needs only token") + conf.setCredentialsByURI(URI, { token: 'simple-token' }) + }, 'needs only token') t.doesNotThrow(function () { conf.clearCredentialsByURI(URI) - }, "needs only URI") + }, 'needs only URI') - t.notOk(conf.getCredentialsByURI(URI).token, "token all gone") + t.notOk(conf.getCredentialsByURI(URI).token, 'token all gone') t.end() }) }) -test("set with missing username", function (t) { +test('set with missing username', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') var credentials = { - password : "password", - email : "ogd@aoaioxxysz.net" + password: 'password', + email: 'ogd@aoaioxxysz.net' } t.throws(function () { conf.setCredentialsByURI(URI, credentials) - }, "enforced missing email") + }, 'enforced missing email') t.end() }) }) -test("set with missing password", function (t) { +test('set with missing password', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') var credentials = { - username : "username", - email : "ogd@aoaioxxysz.net" + username: 'username', + email: 'ogd@aoaioxxysz.net' } t.throws(function () { conf.setCredentialsByURI(URI, credentials) - }, "enforced missing email") + }, 'enforced missing email') t.end() }) }) -test("set with missing email", function (t) { +test('set with missing email', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') var credentials = { - username : "username", - password : "password" + username: 'username', + password: 'password' } t.throws(function () { conf.setCredentialsByURI(URI, credentials) - }, "enforced missing email") + }, 'enforced missing email') t.end() }) }) -test("set with old-style credentials", function (t) { +test('set with old-style credentials', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') var credentials = { - username : "username", - password : "password", - email : "ogd@aoaioxxysz.net" + username: 'username', + password: 'password', + email: 'ogd@aoaioxxysz.net' } t.doesNotThrow(function () { conf.setCredentialsByURI(URI, credentials) - }, "requires all of username, password, and email") + }, 'requires all of username, password, and email') var expected = { - scope : "//registry.lvh.me:8661/", - token : undefined, - username : "username", - password : "password", - email : "ogd@aoaioxxysz.net", - auth : "dXNlcm5hbWU6cGFzc3dvcmQ=", - alwaysAuth : false + scope: '//registry.lvh.me:8661/', + token: undefined, + username: 'username', + password: 'password', + email: 'ogd@aoaioxxysz.net', + auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', + alwaysAuth: false } - t.same(conf.getCredentialsByURI(URI), expected, "got credentials") + t.same(conf.getCredentialsByURI(URI), expected, 'got credentials') t.end() }) }) -test("clear with old-style credentials", function (t) { +test('clear with old-style credentials', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') var credentials = { - username : "username", - password : "password", - email : "ogd@aoaioxxysz.net" + username: 'username', + password: 'password', + email: 'ogd@aoaioxxysz.net' } t.doesNotThrow(function () { conf.setCredentialsByURI(URI, credentials) - }, "requires all of username, password, and email") + }, 'requires all of username, password, and email') t.doesNotThrow(function () { conf.clearCredentialsByURI(URI) - }, "clearing only required URI") + }, 'clearing only required URI') - t.notOk(conf.getCredentialsByURI(URI).username, "username cleared") - t.notOk(conf.getCredentialsByURI(URI).password, "password cleared") + t.notOk(conf.getCredentialsByURI(URI).username, 'username cleared') + t.notOk(conf.getCredentialsByURI(URI).password, 'password cleared') t.end() }) }) -test("get old-style credentials for default registry", function (t) { +test('get old-style credentials for default registry', function (t) { npmconf.load(common.builtin, function (er, conf) { - var actual = conf.getCredentialsByURI(conf.get("registry")) + var actual = conf.getCredentialsByURI(conf.get('registry')) var expected = { - scope : "//registry.npmjs.org/", - token : undefined, - password : "password", - username : "username", - email : "i@izs.me", - auth : "dXNlcm5hbWU6cGFzc3dvcmQ=", - alwaysAuth : false + scope: '//registry.npmjs.org/', + token: undefined, + password: 'password', + username: 'username', + email: 'i@izs.me', + auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', + alwaysAuth: false } t.same(actual, expected) t.end() }) }) -test("set with always-auth enabled", function (t) { +test('set with always-auth enabled', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') var credentials = { - username : "username", - password : "password", - email : "ogd@aoaioxxysz.net", - alwaysAuth : true + username: 'username', + password: 'password', + email: 'ogd@aoaioxxysz.net', + alwaysAuth: true } conf.setCredentialsByURI(URI, credentials) var expected = { - scope : "//registry.lvh.me:8661/", - token : undefined, - username : "username", - password : "password", - email : "ogd@aoaioxxysz.net", - auth : "dXNlcm5hbWU6cGFzc3dvcmQ=", - alwaysAuth : true + scope: '//registry.lvh.me:8661/', + token: undefined, + username: 'username', + password: 'password', + email: 'ogd@aoaioxxysz.net', + auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', + alwaysAuth: true } - t.same(conf.getCredentialsByURI(URI), expected, "got credentials") + t.same(conf.getCredentialsByURI(URI), expected, 'got credentials') t.end() }) }) -test("set with always-auth disabled", function (t) { +test('set with always-auth disabled', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") + t.ifError(er, 'configuration loaded') var credentials = { - username : "username", - password : "password", - email : "ogd@aoaioxxysz.net", - alwaysAuth : false + username: 'username', + password: 'password', + email: 'ogd@aoaioxxysz.net', + alwaysAuth: false } conf.setCredentialsByURI(URI, credentials) var expected = { - scope : "//registry.lvh.me:8661/", - token : undefined, - username : "username", - password : "password", - email : "ogd@aoaioxxysz.net", - auth : "dXNlcm5hbWU6cGFzc3dvcmQ=", - alwaysAuth : false + scope: '//registry.lvh.me:8661/', + token: undefined, + username: 'username', + password: 'password', + email: 'ogd@aoaioxxysz.net', + auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', + alwaysAuth: false } - t.same(conf.getCredentialsByURI(URI), expected, "got credentials") + t.same(conf.getCredentialsByURI(URI), expected, 'got credentials') t.end() }) }) -test("set with global always-auth enabled", function (t) { +test('set with global always-auth enabled', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") - var original = conf.get("always-auth") - conf.set("always-auth", true) + t.ifError(er, 'configuration loaded') + var original = conf.get('always-auth') + conf.set('always-auth', true) var credentials = { - username : "username", - password : "password", - email : "ogd@aoaioxxysz.net" + username: 'username', + password: 'password', + email: 'ogd@aoaioxxysz.net' } conf.setCredentialsByURI(URI, credentials) var expected = { - scope : "//registry.lvh.me:8661/", - token : undefined, - username : "username", - password : "password", - email : "ogd@aoaioxxysz.net", - auth : "dXNlcm5hbWU6cGFzc3dvcmQ=", - alwaysAuth : true + scope: '//registry.lvh.me:8661/', + token: undefined, + username: 'username', + password: 'password', + email: 'ogd@aoaioxxysz.net', + auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', + alwaysAuth: true } - t.same(conf.getCredentialsByURI(URI), expected, "got credentials") + t.same(conf.getCredentialsByURI(URI), expected, 'got credentials') - conf.set("always-auth", original) + conf.set('always-auth', original) t.end() }) }) -test("set with global always-auth disabled", function (t) { +test('set with global always-auth disabled', function (t) { npmconf.load(common.builtin, function (er, conf) { - t.ifError(er, "configuration loaded") - var original = conf.get("always-auth") - conf.set("always-auth", false) + t.ifError(er, 'configuration loaded') + var original = conf.get('always-auth') + conf.set('always-auth', false) var credentials = { - username : "username", - password : "password", - email : "ogd@aoaioxxysz.net" + username: 'username', + password: 'password', + email: 'ogd@aoaioxxysz.net' } conf.setCredentialsByURI(URI, credentials) var expected = { - scope : "//registry.lvh.me:8661/", - token : undefined, - username : "username", - password : "password", - email : "ogd@aoaioxxysz.net", - auth : "dXNlcm5hbWU6cGFzc3dvcmQ=", - alwaysAuth : false + scope: '//registry.lvh.me:8661/', + token: undefined, + username: 'username', + password: 'password', + email: 'ogd@aoaioxxysz.net', + auth: 'dXNlcm5hbWU6cGFzc3dvcmQ=', + alwaysAuth: false } - t.same(conf.getCredentialsByURI(URI), expected, "got credentials") + t.same(conf.getCredentialsByURI(URI), expected, 'got credentials') - conf.set("always-auth", original) + conf.set('always-auth', original) t.end() }) }) diff --git a/deps/npm/test/tap/config-edit.js b/deps/npm/test/tap/config-edit.js index 97a54d2ece58da339059589ddb47d2828d83a63c..f9e09aba3a74a333d79f64f39be5e80264ab083a 100644 --- a/deps/npm/test/tap/config-edit.js +++ b/deps/npm/test/tap/config-edit.js @@ -1,39 +1,39 @@ -var fs = require("fs") -var path = require("path") +var fs = require('fs') +var path = require('path') -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var test = require("tap").test -var common = require("../common-tap.js") +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var test = require('tap').test +var common = require('../common-tap.js') -var pkg = path.resolve(__dirname, "npm-global-edit") +var pkg = path.resolve(__dirname, 'npm-global-edit') var editorSrc = function () {/* #!/usr/bin/env node -var fs = require("fs") +var fs = require('fs') if (fs.existsSync(process.argv[2])) { - console.log("success") + console.log('success') } else { - console.log("error") + console.log('error') process.exit(1) } -*/}.toString().split("\n").slice(1, -1).join("\n") -var editorPath = path.join(pkg, "editor") +*/}.toString().split('\n').slice(1, -1).join('\n') +var editorPath = path.join(pkg, 'editor') -test("setup", function (t) { +test('setup', function (t) { cleanup(function (er) { - t.ifError(er, "old directory removed") + t.ifError(er, 'old directory removed') - mkdirp(pkg, "0777", function (er) { + mkdirp(pkg, '0777', function (er) { fs.writeFileSync(editorPath, editorSrc) - fs.chmodSync(editorPath, "0777") - t.ifError(er, "created package directory correctly") + fs.chmodSync(editorPath, '0777') + t.ifError(er, 'created package directory correctly') t.end() }) }) }) -test("saving configs", function (t) { +test('saving configs', function (t) { var opts = { cwd: pkg, env: { @@ -43,26 +43,26 @@ test("saving configs", function (t) { } common.npm( [ - "config", - "--prefix", pkg, - "--global", - "edit" + 'config', + '--prefix', pkg, + '--global', + 'edit' ], opts, function (err, code, stdout, stderr) { - t.ifError(err, "command ran without issue") + t.ifError(err, 'command ran without issue') - t.equal(stderr, "", "got nothing on stderr") - t.equal(code, 0, "exit ok") - t.equal(stdout, "success\n", "got success message") + t.equal(stderr, '', 'got nothing on stderr') + t.equal(code, 0, 'exit ok') + t.equal(stdout, 'success\n', 'got success message') t.end() } ) }) -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup(function (er) { - t.ifError(er, "test directory removed OK") + t.ifError(er, 'test directory removed OK') t.end() }) }) diff --git a/deps/npm/test/tap/config-malformed.js b/deps/npm/test/tap/config-malformed.js index 0450221462193fbdd0fc7f140652adeadb5be3b9..4f74ea5387e59c96af7d282822e92514ce9acec9 100644 --- a/deps/npm/test/tap/config-malformed.js +++ b/deps/npm/test/tap/config-malformed.js @@ -1,7 +1,7 @@ var test = require('tap').test -var npmconf = require("../../lib/config/core.js") -var common = require("./00-config-setup.js") +var npmconf = require('../../lib/config/core.js') +var common = require('./00-config-setup.js') test('with malformed', function (t) { npmconf.load({}, common.malformed, function (er, conf) { diff --git a/deps/npm/test/tap/config-meta.js b/deps/npm/test/tap/config-meta.js index 3da27a872b3183b0a80456246820aeaf02129287..bb40e2038d6555dd3024794998a022dd5f35f393 100644 --- a/deps/npm/test/tap/config-meta.js +++ b/deps/npm/test/tap/config-meta.js @@ -4,34 +4,34 @@ // b) Documented // c) Defined in the `npmconf` package. -var test = require("tap").test -var fs = require("fs") -var path = require("path") -var root = path.resolve(__dirname, "..", "..") -var lib = path.resolve(root, "lib") -var nm = path.resolve(root, "node_modules") -var doc = path.resolve(root, "doc/misc/npm-config.md") +var test = require('tap').test +var fs = require('fs') +var path = require('path') +var root = path.resolve(__dirname, '..', '..') +var lib = path.resolve(root, 'lib') +var nm = path.resolve(root, 'node_modules') +var doc = path.resolve(root, 'doc/misc/npm-config.md') var FILES = [] var CONFS = {} var DOC = {} var exceptions = [ - path.resolve(lib, "adduser.js"), - path.resolve(lib, "config.js"), - path.resolve(lib, "publish.js"), - path.resolve(lib, "utils", "lifecycle.js"), - path.resolve(lib, "utils", "map-to-registry.js"), - path.resolve(nm, "npm-registry-client", "lib", "publish.js"), - path.resolve(nm, "npm-registry-client", "lib", "request.js") + path.resolve(lib, 'adduser.js'), + path.resolve(lib, 'config.js'), + path.resolve(lib, 'publish.js'), + path.resolve(lib, 'utils', 'lifecycle.js'), + path.resolve(lib, 'utils', 'map-to-registry.js'), + path.resolve(nm, 'npm-registry-client', 'lib', 'publish.js'), + path.resolve(nm, 'npm-registry-client', 'lib', 'request.js') ] -test("get files", function (t) { +test('get files', function (t) { walk(nm) walk(lib) - t.pass("got files") + t.pass('got files') t.end() - function walk(lib) { + function walk (lib) { var files = fs.readdirSync(lib).map(function (f) { return path.resolve(lib, f) }) @@ -41,86 +41,89 @@ test("get files", function (t) { } catch (er) { return } - if (s.isDirectory()) + if (s.isDirectory()) { walk(f) - else if (f.match(/\.js$/)) + } else if (f.match(/\.js$/)) { FILES.push(f) + } }) } }) -test("get lines", function (t) { +test('get lines', function (t) { FILES.forEach(function (f) { - var lines = fs.readFileSync(f, "utf8").split(/\r|\n/) + var lines = fs.readFileSync(f, 'utf8').split(/\r|\n/) lines.forEach(function (l, i) { var matches = l.split(/conf(?:ig)?\.get\(/g) matches.shift() matches.forEach(function (m) { - m = m.split(")").shift() - var literal = m.match(/^['"].+?['"]/) + m = m.split(')').shift() + var literal = m.match(/^[''].+?['']/) if (literal) { m = literal[0].slice(1, -1) - if (!m.match(/^\_/) && m !== "argv") + if (!m.match(/^\_/) && m !== 'argv') { CONFS[m] = { file: f, line: i } + } } else if (exceptions.indexOf(f) === -1) { - t.fail("non-string-literal config used in " + f + ":" + i) + t.fail('non-string-literal config used in ' + f + ':' + i) } }) }) }) - t.pass("got lines") + t.pass('got lines') t.end() }) -test("get docs", function (t) { - var d = fs.readFileSync(doc, "utf8").split(/\r|\n/) - // walk down until the "## Config Settings" section - for (var i = 0; i < d.length && d[i] !== "## Config Settings"; i++); +test('get docs', function (t) { + var d = fs.readFileSync(doc, 'utf8').split(/\r|\n/) + // walk down until the '## Config Settings' section + for (var i = 0; i < d.length && d[i] !== '## Config Settings'; i++); i++ // now gather up all the ^###\s lines until the next ^##\s for (; i < d.length && !d[i].match(/^## /); i++) { - if (d[i].match(/^### /)) - DOC[ d[i].replace(/^### /, "").trim() ] = true + if (d[i].match(/^### /)) { + DOC[ d[i].replace(/^### /, '').trim() ] = true + } } - t.pass("read the docs") + t.pass('read the docs') t.end() }) -test("check configs", function (t) { - var defs = require("../../lib/config/defaults.js") +test('check configs', function (t) { + var defs = require('../../lib/config/defaults.js') var types = Object.keys(defs.types) var defaults = Object.keys(defs.defaults) for (var c1 in CONFS) { if (CONFS[c1].file.indexOf(lib) === 0) { - t.ok(DOC[c1], "should be documented " + c1 + " " - + CONFS[c1].file + ":" + CONFS[c1].line) - t.ok(types.indexOf(c1) !== -1, "should be defined in npmconf " + c1) - t.ok(defaults.indexOf(c1) !== -1, "should have default in npmconf " + c1) + t.ok(DOC[c1], 'should be documented ' + c1 + ' ' + + CONFS[c1].file + ':' + CONFS[c1].line) + t.ok(types.indexOf(c1) !== -1, 'should be defined in npmconf ' + c1) + t.ok(defaults.indexOf(c1) !== -1, 'should have default in npmconf ' + c1) } } for (var c2 in DOC) { - if (c2 !== "versions" && c2 !== "version" && c2 !== "init.version") { - t.ok(CONFS[c2], "config in doc should be used somewhere " + c2) - t.ok(types.indexOf(c2) !== -1, "should be defined in npmconf " + c2) - t.ok(defaults.indexOf(c2) !== -1, "should have default in npmconf " + c2) + if (c2 !== 'versions' && c2 !== 'version' && c2 !== 'init.version') { + t.ok(CONFS[c2], 'config in doc should be used somewhere ' + c2) + t.ok(types.indexOf(c2) !== -1, 'should be defined in npmconf ' + c2) + t.ok(defaults.indexOf(c2) !== -1, 'should have default in npmconf ' + c2) } } types.forEach(function (c) { - if (!c.match(/^\_/) && c !== "argv" && !c.match(/^versions?$/)) { - t.ok(DOC[c], "defined type should be documented " + c) - t.ok(CONFS[c], "defined type should be used " + c) + if (!c.match(/^\_/) && c !== 'argv' && !c.match(/^versions?$/)) { + t.ok(DOC[c], 'defined type should be documented ' + c) + t.ok(CONFS[c], 'defined type should be used ' + c) } }) defaults.forEach(function (c) { - if (!c.match(/^\_/) && c !== "argv" && !c.match(/^versions?$/)) { - t.ok(DOC[c], "defaulted type should be documented " + c) - t.ok(CONFS[c], "defaulted type should be used " + c) + if (!c.match(/^\_/) && c !== 'argv' && !c.match(/^versions?$/)) { + t.ok(DOC[c], 'defaulted type should be documented ' + c) + t.ok(CONFS[c], 'defaulted type should be used ' + c) } }) diff --git a/deps/npm/test/tap/config-private.js b/deps/npm/test/tap/config-private.js index 37e283eec321e4c0a6a4eb61384641e2c43e8fac..97c6a73f14e27c3438aa1a9efc121c05a02edc43 100644 --- a/deps/npm/test/tap/config-private.js +++ b/deps/npm/test/tap/config-private.js @@ -1,81 +1,81 @@ -var fs = require("fs") -var path = require("path") -var test = require("tap").test -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") -var common = require("../common-tap.js") +var fs = require('fs') +var path = require('path') +var test = require('tap').test +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var common = require('../common-tap.js') -var pkg = path.resolve(__dirname, "config-private") +var pkg = path.resolve(__dirname, 'config-private') var opts = { cwd: pkg } -test("setup", function (t) { +test('setup', function (t) { rimraf.sync(pkg) mkdirp.sync(pkg) t.end() }) -test("config get private var (old auth)", function (t) { +test('config get private var (old auth)', function (t) { common.npm([ - "config", - "get", - "_auth" + 'config', + 'get', + '_auth' ], opts, function (err, code, stdout, stderr) { t.ifError(err) - t.similar(stderr, /sekretz/, "password blocked on stderr") - t.equal(stdout, "", "no output") + t.similar(stderr, /sekretz/, 'password blocked on stderr') + t.equal(stdout, '', 'no output') t.end() } ) }) -test("config get private var (new auth)", function (t) { +test('config get private var (new auth)', function (t) { common.npm([ - "config", - "get", - "//registry.npmjs.org/:_password" + 'config', + 'get', + '//registry.npmjs.org/:_password' ], opts, function (err, code, stdout, stderr) { t.ifError(err) - t.similar(stderr, /sekretz/, "password blocked on stderr") - t.equal(stdout, "", "no output") + t.similar(stderr, /sekretz/, 'password blocked on stderr') + t.equal(stdout, '', 'no output') t.end() } ) }) -test("config get public var (new username)", function (t) { - var FIXTURE_PATH = path.resolve(pkg, "fixture_npmrc") - var s = "//registry.lvh.me/:username = wombat\n" + - "//registry.lvh.me/:_password = YmFkIHBhc3N3b3Jk\n" + - "//registry.lvh.me/:email = lindsay@wdu.org.au\n" - fs.writeFileSync(FIXTURE_PATH, s, "ascii") - fs.chmodSync(FIXTURE_PATH, "0444") +test('config get public var (new username)', function (t) { + var FIXTURE_PATH = path.resolve(pkg, 'fixture_npmrc') + var s = '//registry.lvh.me/:username = wombat\n' + + '//registry.lvh.me/:_password = YmFkIHBhc3N3b3Jk\n' + + '//registry.lvh.me/:email = lindsay@wdu.org.au\n' + fs.writeFileSync(FIXTURE_PATH, s, 'ascii') + fs.chmodSync(FIXTURE_PATH, '0444') common.npm( [ - "config", - "get", - "//registry.lvh.me/:username", - "--userconfig=" + FIXTURE_PATH, - "--registry=http://registry.lvh.me/" + 'config', + 'get', + '//registry.lvh.me/:username', + '--userconfig=' + FIXTURE_PATH, + '--registry=http://registry.lvh.me/' ], opts, function (err, code, stdout, stderr) { t.ifError(err) - t.equal(stderr, "", "stderr is empty") - t.equal(stdout, "wombat\n", "got usename is output") + t.equal(stderr, '', 'stderr is empty') + t.equal(stdout, 'wombat\n', 'got usename is output') t.end() } ) }) -test("clean", function (t) { +test('clean', function (t) { rimraf.sync(pkg) t.end() }) diff --git a/deps/npm/test/tap/config-project.js b/deps/npm/test/tap/config-project.js index 337355bf286c164f9270e2cf7fb84c728f7b1d41..b9e8b7ac04a2ef3b4727f2ac8b78bbd2cdd95d14 100644 --- a/deps/npm/test/tap/config-project.js +++ b/deps/npm/test/tap/config-project.js @@ -1,21 +1,21 @@ -var test = require("tap").test -var path = require("path") -var fix = path.resolve(__dirname, "..", "fixtures", "config") -var projectRc = path.resolve(fix, ".npmrc") -var npmconf = require("../../lib/config/core.js") -var common = require("./00-config-setup.js") +var test = require('tap').test +var path = require('path') +var fix = path.resolve(__dirname, '..', 'fixtures', 'config') +var projectRc = path.resolve(fix, '.npmrc') +var npmconf = require('../../lib/config/core.js') +var common = require('./00-config-setup.js') -var projectData = { just: "testing" } +var projectData = { just: 'testing' } var ucData = common.ucData var envData = common.envData var envDataFix = common.envDataFix -var gcData = { "package-config:foo": "boo" } +var gcData = { 'package-config:foo': 'boo' } var biData = {} -var cli = { foo: "bar", umask: 022, prefix: fix } +var cli = { foo: 'bar', umask: parseInt('022', 8), prefix: fix } var expectList = [ cli, @@ -31,27 +31,27 @@ var expectSources = { env: { data: envDataFix, source: envData, - prefix: "" + prefix: '' }, project: { path: projectRc, - type: "ini", + type: 'ini', data: projectData }, user: { path: common.userconfig, - type: "ini", + type: 'ini', data: ucData }, global: { path: common.globalconfig, - type: "ini", + type: 'ini', data: gcData }, builtin: { data: biData } } -test("no builtin", function (t) { +test('no builtin', function (t) { npmconf.load(cli, function (er, conf) { if (er) throw er t.same(conf.list, expectList) @@ -59,8 +59,8 @@ test("no builtin", function (t) { t.same(npmconf.rootConf.list, []) t.equal(npmconf.rootConf.root, npmconf.defs.defaults) t.equal(conf.root, npmconf.defs.defaults) - t.equal(conf.get("umask"), 022) - t.equal(conf.get("heading"), "npm") + t.equal(conf.get('umask'), parseInt('022', 8)) + t.equal(conf.get('heading'), 'npm') t.end() }) }) diff --git a/deps/npm/test/tap/config-save.js b/deps/npm/test/tap/config-save.js index 88526a38af8b87a8bccdb11048240c6e8c8dfda0..903bac7ae3a4a2fddee288a6c9919719c764f684 100644 --- a/deps/npm/test/tap/config-save.js +++ b/deps/npm/test/tap/config-save.js @@ -1,88 +1,87 @@ -var fs = require("fs") -var ini = require("ini") -var test = require("tap").test -var npmconf = require("../../lib/config/core.js") -var common = require("./00-config-setup.js") +var fs = require('fs') +var ini = require('ini') +var test = require('tap').test +var npmconf = require('../../lib/config/core.js') +var common = require('./00-config-setup.js') var expectConf = [ - "globalconfig = " + common.globalconfig, - "email = i@izs.me", - "env-thing = asdf", - "init.author.name = Isaac Z. Schlueter", - "init.author.email = i@izs.me", - "init.author.url = http://blog.izs.me/", - "init.version = 1.2.3", - "proprietary-attribs = false", - "npm:publishtest = true", - "_npmjs.org:couch = https://admin:password@localhost:5984/registry", - "npm-www:nocache = 1", - "sign-git-tag = false", - "message = v%s", - "strict-ssl = false", - "_auth = dXNlcm5hbWU6cGFzc3dvcmQ=", - "", - "[_token]", - "AuthSession = yabba-dabba-doodle", - "version = 1", - "expires = 1345001053415", - "path = /", - "httponly = true", - "" -].join("\n") + 'globalconfig = ' + common.globalconfig, + 'email = i@izs.me', + 'env-thing = asdf', + 'init.author.name = Isaac Z. Schlueter', + 'init.author.email = i@izs.me', + 'init.author.url = http://blog.izs.me/', + 'init.version = 1.2.3', + 'proprietary-attribs = false', + 'npm:publishtest = true', + '_npmjs.org:couch = https://admin:password@localhost:5984/registry', + 'npm-www:nocache = 1', + 'sign-git-tag = false', + 'message = v%s', + 'strict-ssl = false', + '_auth = dXNlcm5hbWU6cGFzc3dvcmQ=', + '', + '[_token]', + 'AuthSession = yabba-dabba-doodle', + 'version = 1', + 'expires = 1345001053415', + 'path = /', + 'httponly = true', + '' +].join('\n') var expectFile = [ - "globalconfig = " + common.globalconfig, - "email = i@izs.me", - "env-thing = asdf", - "init.author.name = Isaac Z. Schlueter", - "init.author.email = i@izs.me", - "init.author.url = http://blog.izs.me/", - "init.version = 1.2.3", - "proprietary-attribs = false", - "npm:publishtest = true", - "_npmjs.org:couch = https://admin:password@localhost:5984/registry", - "npm-www:nocache = 1", - "sign-git-tag = false", - "message = v%s", - "strict-ssl = false", - "_auth = dXNlcm5hbWU6cGFzc3dvcmQ=", - "", - "[_token]", - "AuthSession = yabba-dabba-doodle", - "version = 1", - "expires = 1345001053415", - "path = /", - "httponly = true", - "" -].join("\n") + 'globalconfig = ' + common.globalconfig, + 'email = i@izs.me', + 'env-thing = asdf', + 'init.author.name = Isaac Z. Schlueter', + 'init.author.email = i@izs.me', + 'init.author.url = http://blog.izs.me/', + 'init.version = 1.2.3', + 'proprietary-attribs = false', + 'npm:publishtest = true', + '_npmjs.org:couch = https://admin:password@localhost:5984/registry', + 'npm-www:nocache = 1', + 'sign-git-tag = false', + 'message = v%s', + 'strict-ssl = false', + '_auth = dXNlcm5hbWU6cGFzc3dvcmQ=', + '', + '[_token]', + 'AuthSession = yabba-dabba-doodle', + 'version = 1', + 'expires = 1345001053415', + 'path = /', + 'httponly = true', + '' +].join('\n') -test("saving configs", function (t) { +test('saving configs', function (t) { npmconf.load(function (er, conf) { - if (er) - throw er - conf.set("sign-git-tag", false, "user") - conf.del("nodedir") - conf.del("tmp") + if (er) throw er + + conf.set('sign-git-tag', false, 'user') + conf.del('nodedir') + conf.del('tmp') var foundConf = ini.stringify(conf.sources.user.data) t.same(ini.parse(foundConf), ini.parse(expectConf)) fs.unlinkSync(common.userconfig) - conf.save("user", function (er) { - if (er) - throw er - var uc = fs.readFileSync(conf.get("userconfig"), "utf8") + conf.save('user', function (er) { + if (er) throw er + + var uc = fs.readFileSync(conf.get('userconfig'), 'utf8') t.same(ini.parse(uc), ini.parse(expectFile)) t.end() }) }) }) -test("setting prefix", function (t) { +test('setting prefix', function (t) { npmconf.load(function (er, conf) { - if (er) - throw er + if (er) throw er - conf.prefix = "newvalue" - t.same(conf.prefix, "newvalue") + conf.prefix = 'newvalue' + t.same(conf.prefix, 'newvalue') t.end() }) }) diff --git a/deps/npm/test/tap/cruft-test.js b/deps/npm/test/tap/cruft-test.js new file mode 100644 index 0000000000000000000000000000000000000000..0cbcc6f56c61d62de9a4658f9f6636b7c18a28f0 --- /dev/null +++ b/deps/npm/test/tap/cruft-test.js @@ -0,0 +1,43 @@ +'use strict' +var fs = require('graceful-fs') +var path = require('path') +var mkdirpSync = require('mkdirp').sync +var rimraf = require('rimraf') +var test = require('tap').test +var common = require('../common-tap.js') + +var base = path.join(__dirname, path.basename(__filename, '.js')) +var cruft = path.join(base, 'node_modules', 'cruuuft') +var pkg = { + name: 'example', + version: '1.0.0', + dependencies: {} +} + +function setup () { + mkdirpSync(path.dirname(cruft)) + fs.writeFileSync(cruft, 'this is some cruft for sure') + fs.writeFileSync(path.join(base, 'package.json'), JSON.stringify(pkg)) +} + +function cleanup () { + rimraf.sync(base) +} + +test('setup', function (t) { + cleanup() + setup() + t.done() +}) + +test('cruft', function (t) { + common.npm(['ls'], {cwd: base}, function (er, code, stdout, stderr) { + t.is(stderr, '', 'no warnings or errors from ls') + t.done() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.done() +}) diff --git a/deps/npm/test/tap/dedupe-scoped.js b/deps/npm/test/tap/dedupe-scoped.js index a093e1f8c064bf7ba9a1b3c52c4b7ee764281238..bc352356d43d043afbb1a805f6d361c72d09e3c0 100644 --- a/deps/npm/test/tap/dedupe-scoped.js +++ b/deps/npm/test/tap/dedupe-scoped.js @@ -11,12 +11,11 @@ var modules = join(pkg, 'node_modules') var EXEC_OPTS = { cwd: pkg } -var prolog = 'dedupe@0.0.0 ' + pkg var body = function () {/* -├─┬ first@1.0.0 -│ └── @scope/shared@2.1.6 -└─┬ second@2.0.0 - └── @scope/shared@2.1.6 +@scope/shared@2.1.6 node_modules/first/node_modules/@scope/shared -> node_modules/@scope/shared +firstUnique@0.6.0 node_modules/first/node_modules/firstUnique -> node_modules/firstUnique +secondUnique@1.2.0 node_modules/second/node_modules/secondUnique -> node_modules/secondUnique +- @scope/shared@2.1.6 node_modules/second/node_modules/@scope/shared */}.toString().split('\n').slice(1, -1) var deduper = { @@ -61,7 +60,6 @@ var secondUnique = { 'version': '1.2.0' } - test('setup', function (t) { setup() t.end() @@ -82,7 +80,7 @@ test('dedupe finds the common scoped modules and moves it up one level', functio t.notOk(stderr, 'npm printed no errors') t.same( stdout.trim().split('\n').map(ltrimm), - [prolog].concat(body).map(ltrimm), + body.map(ltrimm), 'got expected output' ) diff --git a/deps/npm/test/tap/dedupe.js b/deps/npm/test/tap/dedupe.js index 7b80102b33458c8b733d2c52a481725ac740c0be..4c342481891b676b0e053d852ec5d9cd1e43daed 100644 --- a/deps/npm/test/tap/dedupe.js +++ b/deps/npm/test/tap/dedupe.js @@ -24,6 +24,32 @@ var json = { } } +var shrinkwrap = { + name: 'dedupe', + version: '0.0.0', + dependencies: { + clean: { + version: '2.1.6', + dependencies: { + checker: { + version: '0.5.2', + dependencies: { + async: { version: '0.2.10' } + } + }, + minimist: { version: '0.0.5' } + } + }, + optimist: { + version: '0.6.0', + dependencies: { + wordwrap: { version: '0.0.2' }, + minimist: { version: '0.0.5' } + } + } + } +} + test('setup', function (t) { t.comment('test for https://github.com/npm/npm/issues/4675') setup(function () { @@ -50,9 +76,15 @@ test('dedupe finds the common module and moves it up one level', function (t) { t.ifError(err, 'successfully deduped against previous install') t.notOk(code, 'npm dedupe exited with code') - t.ok(existsSync(path.join(pkg, 'node_modules', 'minimist'))) - t.notOk(existsSync(path.join(pkg, 'node_modules', 'checker'))) - + t.ok(existsSync(path.join(pkg, 'node_modules', 'minimist')), 'minimist module exists') + t.notOk( + existsSync(path.join(pkg, 'node_modules', 'clean', 'node_modules', 'minimist')), + 'no clean/minimist' + ) + t.notOk( + existsSync(path.join(pkg, 'node_modules', 'optimist', 'node_modules', 'minimist')), + 'no optmist/minimist' + ) t.end() } ) @@ -72,11 +104,15 @@ function cleanup () { function setup (cb) { cleanup() - mkdirp.sync(path.join(pkg, 'node_modules')) + mkdirp.sync(pkg) fs.writeFileSync( path.join(pkg, 'package.json'), JSON.stringify(json, null, 2) ) + fs.writeFileSync( + path.join(pkg, 'npm-shrinkwrap.json'), + JSON.stringify(shrinkwrap, null, 2) + ) process.chdir(pkg) mr({ port: common.port }, function (er, s) { diff --git a/deps/npm/test/tap/deprecate.js b/deps/npm/test/tap/deprecate.js index 0c46453559609dbd4550b479a5aec1afe7fabc33..1d9a867cd7488f3499d44b89a57c99ecea88d9eb 100644 --- a/deps/npm/test/tap/deprecate.js +++ b/deps/npm/test/tap/deprecate.js @@ -1,14 +1,8 @@ -var fs = require('fs') -var path = require('path') -var mkdirp = require('mkdirp') -var rimraf = require('rimraf') var mr = require('npm-registry-mock') -var semver = require('semver') var test = require('tap').test var common = require('../common-tap.js') -var pkg = path.resolve(__dirname, 'deprecate') var server var cache = { diff --git a/deps/npm/test/tap/dist-tag.js b/deps/npm/test/tap/dist-tag.js index 08a5ca438c6e402f7430929d30896d3d7f8bfb19..62ecab2c0a53013663cd91dfa152242032c78d75 100644 --- a/deps/npm/test/tap/dist-tag.js +++ b/deps/npm/test/tap/dist-tag.js @@ -1,62 +1,62 @@ -var fs = require("fs") -var path = require("path") -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var mr = require("npm-registry-mock") +var fs = require('fs') +var path = require('path') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var mr = require('npm-registry-mock') -var test = require("tap").test -var common = require("../common-tap.js") +var test = require('tap').test +var common = require('../common-tap.js') -var pkg = path.resolve(__dirname, "dist-tag") +var pkg = path.resolve(__dirname, 'dist-tag') var server var scoped = { - name : "@scoped/pkg", - version : "1.1.1" + name: '@scoped/pkg', + version: '1.1.1' } function mocks (server) { // ls current package - server.get("/-/package/@scoped%2fpkg/dist-tags") - .reply(200, { latest : "1.0.0", a : "0.0.1", b : "0.5.0" }) + server.get('/-/package/@scoped%2fpkg/dist-tags') + .reply(200, { latest: '1.0.0', a: '0.0.1', b: '0.5.0' }) // ls named package - server.get("/-/package/@scoped%2fanother/dist-tags") - .reply(200, { latest : "2.0.0", a : "0.0.2", b : "0.6.0" }) + server.get('/-/package/@scoped%2fanother/dist-tags') + .reply(200, { latest: '2.0.0', a: '0.0.2', b: '0.6.0' }) // add c - server.get("/-/package/@scoped%2fanother/dist-tags") - .reply(200, { latest : "2.0.0", a : "0.0.2", b : "0.6.0" }) - server.put("/-/package/@scoped%2fanother/dist-tags/c", "\"7.7.7\"") - .reply(200, { latest : "7.7.7", a : "0.0.2", b : "0.6.0", c : "7.7.7" }) + server.get('/-/package/@scoped%2fanother/dist-tags') + .reply(200, { latest: '2.0.0', a: '0.0.2', b: '0.6.0' }) + server.put('/-/package/@scoped%2fanother/dist-tags/c', '\"7.7.7\"') + .reply(200, { latest: '7.7.7', a: '0.0.2', b: '0.6.0', c: '7.7.7' }) // set same version - server.get("/-/package/@scoped%2fanother/dist-tags") - .reply(200, { latest : "2.0.0", b : "0.6.0" }) + server.get('/-/package/@scoped%2fanother/dist-tags') + .reply(200, { latest: '2.0.0', b: '0.6.0' }) // rm - server.get("/-/package/@scoped%2fanother/dist-tags") - .reply(200, { latest : "2.0.0", a : "0.0.2", b : "0.6.0", c : "7.7.7" }) - server.delete("/-/package/@scoped%2fanother/dist-tags/c") - .reply(200, { c : "7.7.7" }) + server.get('/-/package/@scoped%2fanother/dist-tags') + .reply(200, { latest: '2.0.0', a: '0.0.2', b: '0.6.0', c: '7.7.7' }) + server.delete('/-/package/@scoped%2fanother/dist-tags/c') + .reply(200, { c: '7.7.7' }) // rm - server.get("/-/package/@scoped%2fanother/dist-tags") - .reply(200, { latest : "4.0.0" }) + server.get('/-/package/@scoped%2fanother/dist-tags') + .reply(200, { latest: '4.0.0' }) } -test("setup", function (t) { +test('setup', function (t) { mkdirp(pkg, function (er) { - t.ifError(er, pkg + " made successfully") + t.ifError(er, pkg + ' made successfully') - mr({port : common.port, plugin : mocks}, function (er, s) { + mr({ port: common.port, plugin: mocks }, function (er, s) { server = s fs.writeFile( - path.join(pkg, "package.json"), + path.join(pkg, 'package.json'), JSON.stringify(scoped), function (er) { - t.ifError(er, "wrote package.json") + t.ifError(er, 'wrote package.json') t.end() } ) @@ -64,131 +64,131 @@ test("setup", function (t) { }) }) -test("npm dist-tags ls in current package", function (t) { +test('npm dist-tags ls in current package', function (t) { common.npm( [ - "dist-tags", "ls", - "--registry", common.registry, - "--loglevel", "silent" + 'dist-tags', 'ls', + '--registry', common.registry, + '--loglevel', 'silent' ], - { cwd : pkg }, + { cwd: pkg }, function (er, code, stdout, stderr) { - t.ifError(er, "npm access") - t.notOk(code, "exited OK") - t.notOk(stderr, "no error output") - t.equal(stdout, "a: 0.0.1\nb: 0.5.0\nlatest: 1.0.0\n") + t.ifError(er, 'npm access') + t.notOk(code, 'exited OK') + t.notOk(stderr, 'no error output') + t.equal(stdout, 'a: 0.0.1\nb: 0.5.0\nlatest: 1.0.0\n') t.end() } ) }) -test("npm dist-tags ls on named package", function (t) { +test('npm dist-tags ls on named package', function (t) { common.npm( [ - "dist-tags", - "ls", "@scoped/another", - "--registry", common.registry, - "--loglevel", "silent" + 'dist-tags', + 'ls', '@scoped/another', + '--registry', common.registry, + '--loglevel', 'silent' ], - { cwd : pkg }, + { cwd: pkg }, function (er, code, stdout, stderr) { - t.ifError(er, "npm access") - t.notOk(code, "exited OK") - t.notOk(stderr, "no error output") - t.equal(stdout, "a: 0.0.2\nb: 0.6.0\nlatest: 2.0.0\n") + t.ifError(er, 'npm access') + t.notOk(code, 'exited OK') + t.notOk(stderr, 'no error output') + t.equal(stdout, 'a: 0.0.2\nb: 0.6.0\nlatest: 2.0.0\n') t.end() } ) }) -test("npm dist-tags add @scoped/another@7.7.7 c", function (t) { +test('npm dist-tags add @scoped/another@7.7.7 c', function (t) { common.npm( [ - "dist-tags", - "add", "@scoped/another@7.7.7", "c", - "--registry", common.registry, - "--loglevel", "silent" + 'dist-tags', + 'add', '@scoped/another@7.7.7', 'c', + '--registry', common.registry, + '--loglevel', 'silent' ], - { cwd : pkg }, + { cwd: pkg }, function (er, code, stdout, stderr) { - t.ifError(er, "npm access") - t.notOk(code, "exited OK") - t.notOk(stderr, "no error output") - t.equal(stdout, "+c: @scoped/another@7.7.7\n") + t.ifError(er, 'npm access') + t.notOk(code, 'exited OK') + t.notOk(stderr, 'no error output') + t.equal(stdout, '+c: @scoped/another@7.7.7\n') t.end() } ) }) -test("npm dist-tags set same version", function (t) { +test('npm dist-tags set same version', function (t) { common.npm( [ - "dist-tag", - "set", "@scoped/another@0.6.0", "b", - "--registry", common.registry, - "--loglevel", "warn" + 'dist-tag', + 'set', '@scoped/another@0.6.0', 'b', + '--registry', common.registry, + '--loglevel', 'warn' ], - { cwd : pkg }, + { cwd: pkg }, function (er, code, stdout, stderr) { - t.ifError(er, "npm access") - t.notOk(code, "exited OK") + t.ifError(er, 'npm access') + t.notOk(code, 'exited OK') t.equal( stderr, - "npm WARN dist-tag add b is already set to version 0.6.0\n", - "warned about setting same version" + 'npm WARN dist-tag add b is already set to version 0.6.0\n', + 'warned about setting same version' ) - t.notOk(stdout, "only expecting warning message") + t.notOk(stdout, 'only expecting warning message') t.end() } ) }) -test("npm dist-tags rm @scoped/another c", function (t) { +test('npm dist-tags rm @scoped/another c', function (t) { common.npm( [ - "dist-tags", - "rm", "@scoped/another", "c", - "--registry", common.registry, - "--loglevel", "silent" + 'dist-tags', + 'rm', '@scoped/another', 'c', + '--registry', common.registry, + '--loglevel', 'silent' ], - { cwd : pkg }, + { cwd: pkg }, function (er, code, stdout, stderr) { - t.ifError(er, "npm access") - t.notOk(code, "exited OK") - t.notOk(stderr, "no error output") - t.equal(stdout, "-c: @scoped/another@7.7.7\n") + t.ifError(er, 'npm access') + t.notOk(code, 'exited OK') + t.notOk(stderr, 'no error output') + t.equal(stdout, '-c: @scoped/another@7.7.7\n') t.end() } ) }) -test("npm dist-tags rm @scoped/another nonexistent", function (t) { +test('npm dist-tags rm @scoped/another nonexistent', function (t) { common.npm( [ - "dist-tags", - "rm", "@scoped/another", "nonexistent", - "--registry", common.registry, - "--loglevel", "silent" + 'dist-tags', + 'rm', '@scoped/another', 'nonexistent', + '--registry', common.registry, + '--loglevel', 'silent' ], - { cwd : pkg }, + { cwd: pkg }, function (er, code, stdout, stderr) { - t.ifError(er, "npm dist-tag") - t.ok(code, "expecting nonzero exit code") - t.notOk(stderr, "no error output") - t.notOk(stdout, "not expecting output") + t.ifError(er, 'npm dist-tag') + t.ok(code, 'expecting nonzero exit code') + t.notOk(stderr, 'no error output') + t.notOk(stdout, 'not expecting output') t.end() } ) }) -test("cleanup", function (t) { - t.pass("cleaned up") +test('cleanup', function (t) { + t.pass('cleaned up') rimraf.sync(pkg) server.close() t.end() diff --git a/deps/npm/test/tap/do-not-remove-other-bins.js b/deps/npm/test/tap/do-not-remove-other-bins.js new file mode 100644 index 0000000000000000000000000000000000000000..af6de62305469bfe498f41601b6e19b204945bd1 --- /dev/null +++ b/deps/npm/test/tap/do-not-remove-other-bins.js @@ -0,0 +1,131 @@ +'use strict' +var fs = require('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') + +var base = path.resolve(__dirname, path.basename(__filename, '.js')) +var installPath = path.resolve(base, 'install') +var installBin = path.resolve(installPath, 'node_modules', '.bin') +var packageApath = path.resolve(base, 'packageA') +var packageBpath = path.resolve(base, 'packageB') + +var packageA = { + name: 'a', + version: '1.0.0', + description: 'x', + repository: 'x', + license: 'MIT', + bin: { + testbin: './testbin.js' + } +} +var packageB = { + name: 'b', + version: '1.0.0', + description: 'x', + repository: 'x', + license: 'MIT', + bin: { + testbin: './testbin.js' + } +} + +var EXEC_OPTS = { + cwd: installPath +} + +test('setup', function (t) { + cleanup() + mkdirp.sync(path.join(installPath, 'node_modules')) + mkdirp.sync(packageApath) + fs.writeFileSync( + path.join(packageApath, 'package.json'), + JSON.stringify(packageA, null, 2) + ) + fs.writeFileSync( + path.join(packageApath, packageA.bin.testbin), + '' + ) + mkdirp.sync(packageBpath) + fs.writeFileSync( + path.join(packageBpath, 'package.json'), + JSON.stringify(packageB, null, 2) + ) + fs.writeFileSync( + path.join(packageBpath, packageB.bin.testbin), + '' + ) + t.end() +}) + +test('npm install A', function (t) { + process.chdir(installPath) + common.npm([ + 'install', packageApath + ], EXEC_OPTS, function (err, code, stdout, stderr) { + console.log(stdout, stderr) + t.ifErr(err, 'install finished successfully') + t.notOk(code, 'exit ok') + t.notOk(stderr, 'Should not get data on stderr: ' + stderr) + t.end() + }) +}) + +test('npm install B', function (t) { + process.chdir(installPath) + common.npm([ + 'install', packageBpath + ], EXEC_OPTS, function (err, code, stdout, stderr) { + t.ifErr(err, 'install finished successfully') + t.notOk(code, 'exit ok') + t.notOk(stderr, 'Should not get data on stderr: ' + stderr) + t.end() + }) +}) + +test('verify bins', function (t) { + var bin = path.dirname( + path.resolve( + installBin, + fs.readlinkSync(path.join(installBin, 'testbin')))) + t.is(bin, path.join(installPath, 'node_modules', 'b')) + t.end() +}) + +test('rm install A', function (t) { + process.chdir(installPath) + common.npm([ + 'rm', packageApath + ], EXEC_OPTS, function (err, code, stdout, stderr) { + t.ifErr(err, 'install finished successfully') + t.notOk(code, 'exit ok') + t.notOk(stderr, 'Should not get data on stderr: ' + stderr) + t.end() + }) +}) + +test('verify postremoval bins', function (t) { + var bin = path.dirname( + path.resolve( + installBin, + fs.readlinkSync(path.join(installBin, 'testbin')))) + t.is(bin, path.join(installPath, 'node_modules', 'b')) + t.end() +}) + +test('cleanup', function (t) { + cleanup() + t.pass('cleaned up') + t.end() +}) + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(base) +} diff --git a/deps/npm/test/tap/extraneous-dep-cycle-ls-ok.js b/deps/npm/test/tap/extraneous-dep-cycle-ls-ok.js new file mode 100644 index 0000000000000000000000000000000000000000..23b75193613152cbcdaabc2ff318b325fa19a711 --- /dev/null +++ b/deps/npm/test/tap/extraneous-dep-cycle-ls-ok.js @@ -0,0 +1,70 @@ +'use strict' +var fs = require('fs') +var path = require('path') + +var test = require('tap').test +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') + +var common = require('../common-tap') + +var pkg = path.resolve(__dirname, path.basename(__filename, '.js')) +var pathModA = path.join(pkg, 'node_modules', 'moduleA') +var pathModB = path.join(pkg, 'node_modules', 'moduleB') + +var modA = { + name: 'moduleA', + version: '1.0.0', + _requiredBy: [ '#USER', '/moduleB' ], + dependencies: { + moduleB: '1.0.0' + } +} +var modB = { + name: 'moduleB', + version: '1.0.0', + _requiredBy: [ '/moduleA' ], + dependencies: { + moduleA: '1.0.0' + } +} + +function setup () { + mkdirp.sync(pathModA) + fs.writeFileSync( + path.join(pathModA, 'package.json'), + JSON.stringify(modA, null, 2) + ) + mkdirp.sync(pathModB) + fs.writeFileSync( + path.join(pathModB, 'package.json'), + JSON.stringify(modB, null, 2) + ) +} + +function cleanup () { + rimraf.sync(pkg) +} + +test('setup', function (t) { + cleanup() + setup() + t.end() +}) + +var expected = pkg + '\n' + + '└─┬ moduleA@1.0.0\n' + + ' └── moduleB@1.0.0\n\n' + +test('extraneous-dep-cycle', function (t) { + common.npm(['ls'], {cwd: pkg}, function (er, code, stdout, stderr) { + t.ifErr(er, 'install finished successfully') + t.is(stdout, expected, 'ls output shows module') + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) diff --git a/deps/npm/test/tap/false-name.js b/deps/npm/test/tap/false-name.js index c98a5103b272bfc9f96a69bfd291b2a100e1a561..1e2a4d43ddbb93575e3f196a03c1f2d9995a192d 100644 --- a/deps/npm/test/tap/false-name.js +++ b/deps/npm/test/tap/false-name.js @@ -54,11 +54,14 @@ test('not every pkg.name can be required', function (t) { function (err, code) { t.ifErr(err, 'install finished without error') t.equal(code, 0, 'install exited ok') - t.ok(existsSync(path.join( - pkg, - 'node_modules/test-package-with-one-dep', - 'node_modules/test-package' - )), 'package installed OK') + t.ok( + existsSync(path.join(pkg, 'node_modules', 'test-package-with-one-dep')), + 'test-package-with-one-dep installed OK' + ) + t.ok( + existsSync(path.join(pkg, 'node_modules', 'test-package')), + 'test-pacakge subdep installed OK' + ) t.end() } ) diff --git a/deps/npm/test/tap/gently-rm-cmdshims.js b/deps/npm/test/tap/gently-rm-cmdshims.js new file mode 100644 index 0000000000000000000000000000000000000000..ebe0b7d7a71a7fa3f3755fe97fbaa4b8998f615c --- /dev/null +++ b/deps/npm/test/tap/gently-rm-cmdshims.js @@ -0,0 +1,157 @@ +'use strict' +var path = require('path') +var fs = require('graceful-fs') +var test = require('tap').test +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var npm = require('../../lib/npm.js') + +var work = path.join(__dirname, path.basename(__filename, '.js')) +var doremove = path.join(work, 'doremove') +var dontremove = path.join(work, 'dontremove') +var example_json = { + name: 'example', + version: '1.0.0', + bin: { + 'example': 'example.js' + } +} +var example_bin = + '#!/usr/bin/env node\n' + + 'true\n' + +// NOTE: if this were actually produced on windows it would be \ not / of +// course, buuut, path.resolve doesn't understand \ outside of windows =/ +var do_example_cmd = + '@IF EXIST "%~dp0\\node.exe" (\n' + + ' "%~dp0\\node.exe" "%~dp0\\../example/example.js" %*\n' + + ') ELSE (\n' + + ' @SETLOCAL\n' + + ' @SET PATHEXT=%PATHEXT:;.JS;=;%\n' + + ' node "%~dp0\\../example/example.js" %*\n' + + ')\n' + +var do_example_cygwin = + '#!/bin/sh\n' + + 'basedir=`dirname "$0"`\n' + + '\n' + + 'case `uname` in\n' + + ' *CYGWIN*) basedir=`cygpath -w "$basedir"`;;\n' + + 'esac\n' + + '\n' + + 'if [ -x "$basedir/node" ]; then\n' + + ' "$basedir/node" "$basedir/../example/example.js" "$@"\n' + + ' ret=$?\n' + + 'else\n' + + ' node "$basedir/../example/example.js" "$@"\n' + + ' ret=$?\n' + + 'fi\n' + + 'exit $ret\n' + +var dont_example_cmd = + '@IF EXIST "%~dp0\\node.exe" (\n' + + ' "%~dp0\\node.exe" "%~dp0\\../example-other/example.js" %*\n' + + ') ELSE (\n' + + ' @SETLOCAL\n' + + ' @SET PATHEXT=%PATHEXT:;.JS;=;%\n' + + ' node "%~dp0\\../example-other/example.js" %*\n' + + ')\n' + +var dont_example_cygwin = + '#!/bin/sh\n' + + 'basedir=`dirname "$0"`\n' + + '\n' + + 'case `uname` in\n' + + ' *CYGWIN*) basedir=`cygpath -w "$basedir"`;;\n' + + 'esac\n' + + '\n' + + 'if [ -x "$basedir/node" ]; then\n' + + ' "$basedir/node" "$basedir/../example-other/example.js" "$@"\n' + + ' ret=$?\n' + + 'else\n' + + ' node "$basedir/../example-other/example.js" "$@"\n' + + ' ret=$?\n' + + 'fi\n' + + 'exit $ret\n' + +function cleanup () { + rimraf.sync(work) +} + +var doremove_module = path.join(doremove, 'node_modules', 'example') +var doremove_example_cmd = path.join(doremove, 'node_modules', '.bin', 'example.cmd') +var doremove_example_cygwin = path.join(doremove, 'node_modules', '.bin', 'example') +var dontremove_module = path.join(dontremove, 'node_modules', 'example') +var dontremove_example_cmd = path.join(dontremove, 'node_modules', '.bin', 'example.cmd') +var dontremove_example_cygwin = path.join(dontremove, 'node_modules', '.bin', 'example') + +function setup () { + mkdirp.sync(doremove_module) + mkdirp.sync(path.join(doremove, 'node_modules', '.bin')) + fs.writeFileSync(path.join(doremove, 'node_modules', 'example', 'package.json'), JSON.stringify(example_json)) + fs.writeFileSync(path.join(doremove, 'node_modules', 'example', 'example.js'), JSON.stringify(example_bin)) + fs.writeFileSync(doremove_example_cmd, do_example_cmd) + fs.writeFileSync(doremove_example_cygwin, do_example_cygwin) + + mkdirp.sync(dontremove_module) + mkdirp.sync(path.join(dontremove, 'node_modules', '.bin')) + fs.writeFileSync(path.join(dontremove, 'node_modules', 'example', 'package.json'), JSON.stringify(example_json)) + fs.writeFileSync(path.join(dontremove, 'node_modules', 'example', 'example.js'), JSON.stringify(example_bin)) + fs.writeFileSync(dontremove_example_cmd, dont_example_cmd) + fs.writeFileSync(dontremove_example_cygwin, dont_example_cygwin) +} + +test('setup', function (t) { + cleanup() + setup() + npm.load({}, function () { + t.done() + }) +}) + +// Like slide.chain, but runs all commands even if they have errors, also +// throws away results. +function runAll (cmds, done) { + runNext() + function runNext () { + if (cmds.length === 0) return done() + var cmdline = cmds.shift() + var cmd = cmdline.shift() + cmdline.push(runNext) + cmd.apply(null, cmdline) + } +} + +test('remove-cmd-shims', function (t) { + t.plan(2) + + var gentlyRm = require('../../lib/utils/gently-rm.js') + runAll([ [gentlyRm, doremove_example_cmd, true, doremove_module], + [gentlyRm, doremove_example_cygwin, true, doremove_module] ], function () { + fs.stat(doremove_example_cmd, function (er) { + t.is(er && er.code, 'ENOENT', 'cmd-shim was removed') + }) + fs.stat(doremove_example_cygwin, function (er) { + t.is(er && er.code, 'ENOENT', 'cmd-shim cygwin script was removed') + }) + }) +}) + +test('dont-remove-cmd-shims', function (t) { + t.plan(2) + var gentlyRm = require('../../lib/utils/gently-rm.js') + runAll([ [gentlyRm, dontremove_example_cmd, true, dontremove_module], + [gentlyRm, dontremove_example_cygwin, true, dontremove_module] ], function () { + fs.stat(dontremove_example_cmd, function (er) { + t.is(er, null, 'cmd-shim was not removed') + }) + fs.stat(dontremove_example_cygwin, function (er) { + t.is(er, null, 'cmd-shim cygwin script was not removed') + }) + }) +}) + +test('cleanup', function (t) { + cleanup() + t.done() +}) diff --git a/deps/npm/test/tap/gently-rm-overeager.js b/deps/npm/test/tap/gently-rm-overeager.js index 35f46cc21952801d0c518410c7be82a47667040d..c266f1c4dc1202b5fdf13d9df72b1cd8fdc37976 100644 --- a/deps/npm/test/tap/gently-rm-overeager.js +++ b/deps/npm/test/tap/gently-rm-overeager.js @@ -1,53 +1,50 @@ -var resolve = require("path").resolve -var fs = require("graceful-fs") -var test = require("tap").test -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") +var resolve = require('path').resolve +var fs = require('graceful-fs') +var test = require('tap').test +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') -var common = require("../common-tap.js") +var common = require('../common-tap.js') -var pkg = resolve(__dirname, "gently-rm-overeager") -var dep = resolve(__dirname, "test-whoops") +var pkg = resolve(__dirname, 'gently-rm-overeager') +var dep = resolve(__dirname, 'test-whoops') -var EXEC_OPTS = { - cwd : pkg -} +var EXEC_OPTS = { cwd: pkg } var fixture = { - name: "@test/whoops", - version: "1.0.0", + name: '@test/whoops', + version: '1.0.0', scripts: { - postinstall: "echo \"nope\" && exit 1" + postinstall: 'echo \'nope\' && exit 1' } } -test("setup", function (t) { +test('setup', function (t) { cleanup() setup() t.end() }) -test("cache add", function (t) { - common.npm(["install", "../test-whoops"], EXEC_OPTS, function (er, c) { +test('cache add', function (t) { + common.npm(['install', '../test-whoops'], EXEC_OPTS, function (er, c) { t.ifError(er, "test-whoops install didn't explode") - t.ok(c, "test-whoops install also failed") + t.ok(c, 'test-whoops install also failed') fs.readdir(pkg, function (er, files) { - t.ifError(er, "package directory is still there") - t.deepEqual(files, ["npm-debug.log"], "only debug log remains") + t.ifError(er, 'package directory is still there') + t.deepEqual(files, ['npm-debug.log'], 'only debug log remains') t.end() }) }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() t.end() }) - function cleanup () { rimraf.sync(pkg) rimraf.sync(dep) @@ -56,7 +53,7 @@ function cleanup () { function setup () { mkdirp.sync(pkg) // so it doesn't try to install into npm's own node_modules - mkdirp.sync(resolve(pkg, "node_modules")) + mkdirp.sync(resolve(pkg, 'node_modules')) mkdirp.sync(dep) - fs.writeFileSync(resolve(dep, "package.json"), JSON.stringify(fixture)) + fs.writeFileSync(resolve(dep, 'package.json'), JSON.stringify(fixture)) } diff --git a/deps/npm/test/tap/gently-rm-symlink.js b/deps/npm/test/tap/gently-rm-symlink.js index d69b62e5b271bd388bcbeee519f55577eb38a681..93ed3edaa45899e152fc2a051e997eb64f20ae2a 100644 --- a/deps/npm/test/tap/gently-rm-symlink.js +++ b/deps/npm/test/tap/gently-rm-symlink.js @@ -1,73 +1,70 @@ -var resolve = require("path").resolve -var fs = require("graceful-fs") -var test = require("tap").test -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") +var resolve = require('path').resolve +var fs = require('graceful-fs') +var test = require('tap').test +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') -var common = require("../common-tap.js") +var common = require('../common-tap.js') -var pkg = resolve(__dirname, "gently-rm-linked") -var dep = resolve(__dirname, "test-linked") -var glb = resolve(__dirname, "test-global") -var lnk = resolve(__dirname, "test-global-link") - -var EXEC_OPTS = { - cwd : pkg -} +var pkg = resolve(__dirname, 'gently-rm-linked') +var dep = resolve(__dirname, 'test-linked') +var glb = resolve(__dirname, 'test-global') +var lnk = resolve(__dirname, 'test-global-link') +var EXEC_OPTS = { cwd: pkg } var index = "module.exports = function () { console.log('whoop whoop') }" var fixture = { - name: "@test/linked", - version: "1.0.0", + name: '@test/linked', + version: '1.0.0', bin: { - linked: "./index.js" + linked: './index.js' } } -test("setup", function (t) { +test('setup', function (t) { cleanup() setup() t.end() }) -test("install and link", function (t) { +test('install and link', function (t) { common.npm( [ - "--global", - "--prefix", lnk, - "--loglevel", "silent", - "install", "../test-linked" + '--global', + '--prefix', lnk, + '--loglevel', 'silent', + 'install', '../test-linked' ], EXEC_OPTS, function (er, code, stdout, stderr) { t.ifError(er, "test-linked install didn't explode") - t.notOk(code, "test-linked install also failed") - t.notOk(stderr, "no log output") + t.notOk(code, 'test-linked install also failed') + t.notOk(stderr, 'no log output') verify(t, stdout) // again, to make sure unlinking works properlyt common.npm( [ - "--global", - "--prefix", lnk, - "--loglevel", "silent", - "install", "../test-linked" + '--global', + '--prefix', lnk, + '--loglevel', 'silent', + 'install', '../test-linked' ], EXEC_OPTS, function (er, code, stdout, stderr) { t.ifError(er, "test-linked install didn't explode") - t.notOk(code, "test-linked install also failed") - t.notOk(stderr, "no log output") + t.notOk(code, 'test-linked install also failed') + t.notOk(stderr, 'no log output') verify(t, stdout) fs.readdir(pkg, function (er, files) { - t.ifError(er, "package directory is still there") - t.deepEqual(files, ["node_modules"], "only stub modules dir remains") + t.ifError(er, 'package directory is still there') + t.deepEqual(files, ['node_modules'], 'only stub modules dir remains') t.end() }) @@ -77,20 +74,27 @@ test("install and link", function (t) { ) }) -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() t.end() }) +function removeBlank (line) { + return line !== '' +} + function verify (t, stdout) { - var binPath = resolve(lnk, "bin", "linked") - var pkgPath = resolve(lnk, "lib", "node_modules", "@test", "linked") - var trgPath = resolve(pkgPath, "index.js") - t.equal( - stdout, - binPath+" -> "+trgPath+"\n@test/linked@1.0.0 "+pkgPath+"\n", - "got expected install output" + var binPath = resolve(lnk, 'bin', 'linked') + var pkgPath = resolve(lnk, 'lib', 'node_modules', '@test', 'linked') + var trgPath = resolve(pkgPath, 'index.js') + t.deepEqual( + stdout.split('\n').filter(removeBlank), + [ binPath + ' -> ' + trgPath, + resolve(lnk, 'lib'), + '└── @test/linked@1.0.0 ' + ], + 'got expected install output' ) } @@ -106,8 +110,8 @@ function setup () { mkdirp.sync(glb) fs.symlinkSync(glb, lnk) // so it doesn't try to install into npm's own node_modules - mkdirp.sync(resolve(pkg, "node_modules")) + mkdirp.sync(resolve(pkg, 'node_modules')) mkdirp.sync(dep) - fs.writeFileSync(resolve(dep, "package.json"), JSON.stringify(fixture)) - fs.writeFileSync(resolve(dep, "index.js"), index) + fs.writeFileSync(resolve(dep, 'package.json'), JSON.stringify(fixture)) + fs.writeFileSync(resolve(dep, 'index.js'), index) } diff --git a/deps/npm/test/tap/get.js b/deps/npm/test/tap/get.js index 983243025b274dc2254b160415feb29f15af5f0e..62bb05fda7622eaec03b4a7fac97e95b0d5f94c3 100644 --- a/deps/npm/test/tap/get.js +++ b/deps/npm/test/tap/get.js @@ -1,52 +1,50 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var cacheFile = require("npm-cache-filename") -var npm = require("../../") -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var path = require("path") -var mr = require("npm-registry-mock") -var fs = require("graceful-fs") +var common = require('../common-tap.js') +var test = require('tap').test +var cacheFile = require('npm-cache-filename') +var npm = require('../../') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var path = require('path') +var mr = require('npm-registry-mock') +var fs = require('graceful-fs') function nop () {} -var URI = "https://npm.registry:8043/rewrite" -var TIMEOUT = 3600 -var FOLLOW = false +var URI = 'https://npm.registry:8043/rewrite' +var TIMEOUT = 3600 +var FOLLOW = false var STALE_OK = true -var TOKEN = "lolbutts" -var AUTH = { - token : TOKEN +var TOKEN = 'lolbutts' +var AUTH = { token: TOKEN } +var PARAMS = { + timeout: TIMEOUT, + follow: FOLLOW, + staleOk: STALE_OK, + auth: AUTH } -var PARAMS = { - timeout : TIMEOUT, - follow : FOLLOW, - staleOk : STALE_OK, - auth : AUTH -} -var PKG_DIR = path.resolve(__dirname, "get-basic") -var CACHE_DIR = path.resolve(PKG_DIR, "cache") +var PKG_DIR = path.resolve(__dirname, 'get-basic') +var CACHE_DIR = path.resolve(PKG_DIR, 'cache') var BIGCO_SAMPLE = { - name : "@bigco/sample", - version : "1.2.3" + name: '@bigco/sample', + version: '1.2.3' } // mock server reference var server var mocks = { - "get": { - "/@bigco%2fsample/1.2.3" : [200, BIGCO_SAMPLE] + 'get': { + '/@bigco%2fsample/1.2.3': [200, BIGCO_SAMPLE] } } var mapper = cacheFile(CACHE_DIR) function getCachePath (uri) { - return path.join(mapper(uri), ".cache.json") + return path.join(mapper(uri), '.cache.json') } -test("setup", function (t) { +test('setup', function (t) { mkdirp.sync(CACHE_DIR) mr({port: common.port, mocks: mocks}, function (er, s) { @@ -59,66 +57,66 @@ test("setup", function (t) { }) }) -test("get call contract", function (t) { +test('get call contract', function (t) { t.throws(function () { npm.registry.get(undefined, PARAMS, nop) - }, "requires a URI") + }, 'requires a URI') t.throws(function () { npm.registry.get([], PARAMS, nop) - }, "requires URI to be a string") + }, 'requires URI to be a string') t.throws(function () { npm.registry.get(URI, undefined, nop) - }, "requires params object") + }, 'requires params object') t.throws(function () { - npm.registry.get(URI, "", nop) - }, "params must be object") + npm.registry.get(URI, '', nop) + }, 'params must be object') t.throws(function () { npm.registry.get(URI, PARAMS, undefined) - }, "requires callback") + }, 'requires callback') t.throws(function () { - npm.registry.get(URI, PARAMS, "callback") - }, "callback must be function") + npm.registry.get(URI, PARAMS, 'callback') + }, 'callback must be function') t.end() }) -test("basic request", function (t) { +test('basic request', function (t) { t.plan(9) - var versioned = common.registry + "/underscore/1.3.3" + var versioned = common.registry + '/underscore/1.3.3' npm.registry.get(versioned, PARAMS, function (er, data) { - t.ifError(er, "loaded specified version underscore data") - t.equal(data.version, "1.3.3") + t.ifError(er, 'loaded specified version underscore data') + t.equal(data.version, '1.3.3') fs.stat(getCachePath(versioned), function (er) { - t.ifError(er, "underscore 1.3.3 cache data written") + t.ifError(er, 'underscore 1.3.3 cache data written') }) }) - var rollup = common.registry + "/underscore" + var rollup = common.registry + '/underscore' npm.registry.get(rollup, PARAMS, function (er, data) { - t.ifError(er, "loaded all metadata") - t.deepEqual(data.name, "underscore") + t.ifError(er, 'loaded all metadata') + t.deepEqual(data.name, 'underscore') fs.stat(getCachePath(rollup), function (er) { - t.ifError(er, "underscore rollup cache data written") + t.ifError(er, 'underscore rollup cache data written') }) }) - var scoped = common.registry + "/@bigco%2fsample/1.2.3" + var scoped = common.registry + '/@bigco%2fsample/1.2.3' npm.registry.get(scoped, PARAMS, function (er, data) { - t.ifError(er, "loaded all metadata") - t.equal(data.name, "@bigco/sample") + t.ifError(er, 'loaded all metadata') + t.equal(data.name, '@bigco/sample') fs.stat(getCachePath(scoped), function (er) { - t.ifError(er, "scoped cache data written") + t.ifError(er, 'scoped cache data written') }) }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { server.close() rimraf.sync(PKG_DIR) diff --git a/deps/npm/test/tap/gist-short-shortcut.js b/deps/npm/test/tap/gist-short-shortcut.js index 57f2006b7a3f51adefcb0ab53fdf013dca331cd2..58dcf78e8d2229aa49744713d35c374c321d602f 100644 --- a/deps/npm/test/tap/gist-short-shortcut.js +++ b/deps/npm/test/tap/gist-short-shortcut.js @@ -39,7 +39,7 @@ test('gist-shortcut', function (t) { } else { t.fail('too many attempts to clone') } - cb(new Error()) + cb(new Error('execFile mock fails on purpose')) }) } } diff --git a/deps/npm/test/tap/git-cache-no-hooks.js b/deps/npm/test/tap/git-cache-no-hooks.js index 32731fa1b0164f1827c22820da98e0f0e169d1bd..e5d862919a80717a3a8e71abdc8dc563ac5d76e5 100644 --- a/deps/npm/test/tap/git-cache-no-hooks.js +++ b/deps/npm/test/tap/git-cache-no-hooks.js @@ -1,63 +1,63 @@ -var test = require("tap").test - , fs = require("fs") - , path = require("path") - , rimraf = require("rimraf") - , mkdirp = require("mkdirp") - , spawn = require("child_process").spawn - , npmCli = require.resolve("../../bin/npm-cli.js") - , node = process.execPath - , pkg = path.resolve(__dirname, "git-cache-no-hooks") - , tmp = path.join(pkg, "tmp") - , cache = path.join(pkg, "cache") - - -test("setup", function (t) { +var test = require('tap').test +var fs = require('fs') +var path = require('path') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var spawn = require('child_process').spawn +var npmCli = require.resolve('../../bin/npm-cli.js') +var node = process.execPath +var pkg = path.resolve(__dirname, 'git-cache-no-hooks') +var tmp = path.join(pkg, 'tmp') +var cache = path.join(pkg, 'cache') + +test('setup', function (t) { rimraf.sync(pkg) mkdirp.sync(pkg) mkdirp.sync(cache) mkdirp.sync(tmp) - mkdirp.sync(path.resolve(pkg, "node_modules")) + mkdirp.sync(path.resolve(pkg, 'node_modules')) t.end() }) -test("git-cache-no-hooks: install a git dependency", function (t) { +test('git-cache-no-hooks: install a git dependency', function (t) { // disable git integration tests on Travis. if (process.env.TRAVIS) return t.end() - var command = [ npmCli - , "install" - , "git://github.com/nigelzor/npm-4503-a.git" - ] + var command = [ + npmCli, + 'install', + 'git://github.com/nigelzor/npm-4503-a.git' + ] var child = spawn(node, command, { cwd: pkg, env: { - "npm_config_cache" : cache, - "npm_config_tmp" : tmp, - "npm_config_prefix" : pkg, - "npm_config_global" : "false", - "npm_config_umask" : "00", - HOME : process.env.HOME, - Path : process.env.PATH, - PATH : process.env.PATH + 'npm_config_cache': cache, + 'npm_config_tmp': tmp, + 'npm_config_prefix': pkg, + 'npm_config_global': 'false', + 'npm_config_umask': '00', + HOME: process.env.HOME, + Path: process.env.PATH, + PATH: process.env.PATH }, - stdio: "inherit" + stdio: 'inherit' }) - child.on("close", function (code) { - t.equal(code, 0, "npm install should succeed") + child.on('close', function (code) { + t.equal(code, 0, 'npm install should succeed') // verify permissions on git hooks - var repoDir = "git-github-com-nigelzor-npm-4503-a-git-40c5cb24" - var hooksPath = path.join(cache, "_git-remotes", repoDir, "hooks") + var repoDir = 'git-github-com-nigelzor-npm-4503-a-git-40c5cb24' + var hooksPath = path.join(cache, '_git-remotes', repoDir, 'hooks') fs.readdir(hooksPath, function (err) { - t.equal(err && err.code, "ENOENT", "hooks are not brought along with repo") + t.equal(err && err.code, 'ENOENT', 'hooks are not brought along with repo') t.end() }) }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { rimraf.sync(pkg) t.end() }) diff --git a/deps/npm/test/tap/git-dependency-install-link.js b/deps/npm/test/tap/git-dependency-install-link.js index cbb256d983d0f0d26a0937ff9b01bd9cc40cb98a..1eba7ff85573ce722f7f6867dffefd0ff22bc85e 100644 --- a/deps/npm/test/tap/git-dependency-install-link.js +++ b/deps/npm/test/tap/git-dependency-install-link.js @@ -39,7 +39,6 @@ var pjChild = JSON.stringify({ version: '1.0.3' }, null, 2) + '\n' - test('setup', function (t) { bootstrap() setup(function (er, r) { diff --git a/deps/npm/test/tap/git-npmignore.js b/deps/npm/test/tap/git-npmignore.js index 5e915a706faea7bcb924440a25455172dfddbd83..4cd98987225f4b19d575262244fd5fbf59fdf9de 100644 --- a/deps/npm/test/tap/git-npmignore.js +++ b/deps/npm/test/tap/git-npmignore.js @@ -1,62 +1,59 @@ -var cat = require("graceful-fs").writeFileSync -var exec = require("child_process").exec -var readdir = require("graceful-fs").readdirSync -var resolve = require("path").resolve - -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var test = require("tap").test -var tmpdir = require("osenv").tmpdir -var which = require("which") - -var common = require("../common-tap.js") - -var pkg = resolve(__dirname, "git-npmignore") -var dep = resolve(pkg, "deps", "gitch") -var packname = "gitch-1.0.0.tgz" +var cat = require('graceful-fs').writeFileSync +var exec = require('child_process').exec +var readdir = require('graceful-fs').readdirSync +var resolve = require('path').resolve + +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var test = require('tap').test +var tmpdir = require('osenv').tmpdir +var which = require('which') + +var common = require('../common-tap.js') + +var pkg = resolve(__dirname, 'git-npmignore') +var dep = resolve(pkg, 'deps', 'gitch') +var packname = 'gitch-1.0.0.tgz' var packed = resolve(pkg, packname) -var modules = resolve(pkg, "node_modules") -var installed = resolve(modules, "gitch") +var modules = resolve(pkg, 'node_modules') +var installed = resolve(modules, 'gitch') var expected = [ - "a.js", - "package.json", - ".npmignore" + 'a.js', + 'package.json', + '.npmignore' ].sort() -var EXEC_OPTS = { - cwd : pkg -} +var EXEC_OPTS = { cwd: pkg } -var gitignore = "node_modules/\n" -var npmignore = "t.js\n" +var gitignore = 'node_modules/\n' +var npmignore = 't.js\n' var a = "console.log('hi');" var t = "require('tap').test(function (t) { t.pass('I am a test!'); t.end(); });" var fixture = { - "name" : "gitch", - "version" : "1.0.0", - "private" : true, - "main" : "a.js" + 'name': 'gitch', + 'version': '1.0.0', + 'private': true, + 'main': 'a.js' } - -test("setup", function (t) { +test('setup', function (t) { setup(function (er) { - t.ifError(er, "setup ran OK") + t.ifError(er, 'setup ran OK') t.end() }) }) -test("npm pack directly from directory", function (t) { +test('npm pack directly from directory', function (t) { packInstallTest(dep, t) }) -test("npm pack via git", function (t) { - packInstallTest("git+file://"+dep, t) +test('npm pack via git', function (t) { + packInstallTest('git+file://' + dep, t) }) -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() t.end() @@ -65,29 +62,29 @@ test("cleanup", function (t) { function packInstallTest (spec, t) { common.npm( [ - "--loglevel", "silent", - "pack", spec + '--loglevel', 'silent', + 'pack', spec ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, "npm pack ran without error") - t.notOk(code, "npm pack exited cleanly") - t.notOk(stderr, "npm pack ran silently") - t.equal(stdout.trim(), packname, "got expected package name") + t.ifError(err, 'npm pack ran without error') + t.notOk(code, 'npm pack exited cleanly') + t.notOk(stderr, 'npm pack ran silently') + t.equal(stdout.trim(), packname, 'got expected package name') common.npm( [ - "--loglevel", "silent", - "install", packed + '--loglevel', 'silent', + 'install', packed ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, "npm install ran without error") - t.notOk(code, "npm install exited cleanly") - t.notOk(stderr, "npm install ran silently") + t.ifError(err, 'npm install ran without error') + t.notOk(code, 'npm install exited cleanly') + t.notOk(stderr, 'npm install ran silently') var actual = readdir(installed).sort() - t.same(actual, expected, "no unexpected files in packed directory") + t.same(actual, expected, 'no unexpected files in packed directory') rimraf(packed, function () { t.end() @@ -111,59 +108,59 @@ function setup (cb) { process.chdir(dep) - cat(resolve(dep, ".npmignore"), npmignore) - cat(resolve(dep, ".gitignore"), gitignore) - cat(resolve(dep, "a.js"), a) - cat(resolve(dep, "t.js"), t) - cat(resolve(dep, "package.json"), JSON.stringify(fixture)) + cat(resolve(dep, '.npmignore'), npmignore) + cat(resolve(dep, '.gitignore'), gitignore) + cat(resolve(dep, 'a.js'), a) + cat(resolve(dep, 't.js'), t) + cat(resolve(dep, 'package.json'), JSON.stringify(fixture)) common.npm( [ - "--loglevel", "silent", - "cache", "clean" + '--loglevel', 'silent', + 'cache', 'clean' ], EXEC_OPTS, function (er, code, _, stderr) { if (er) return cb(er) - if (code) return cb(new Error("npm cache nonzero exit: "+code)) - if (stderr) return cb(new Error("npm cache clean error: "+stderr)) + if (code) return cb(new Error('npm cache nonzero exit: ' + code)) + if (stderr) return cb(new Error('npm cache clean error: ' + stderr)) - which("git", function found (er, git) { + which('git', function found (er, git) { if (er) return cb(er) - exec(git+" init", init) + exec(git + ' init', init) function init (er, _, stderr) { if (er) return cb(er) - if (stderr) return cb(new Error("git init error: "+stderr)) + if (stderr) return cb(new Error('git init error: ' + stderr)) - exec(git+" config user.name 'Phantom Faker'", user) + exec(git + " config user.name 'Phantom Faker'", user) } function user (er, _, stderr) { if (er) return cb(er) - if (stderr) return cb(new Error("git config error: "+stderr)) + if (stderr) return cb(new Error('git config error: ' + stderr)) - exec(git+" config user.email nope@not.real", email) + exec(git + ' config user.email nope@not.real', email) } function email (er, _, stderr) { if (er) return cb(er) - if (stderr) return cb(new Error("git config error: "+stderr)) + if (stderr) return cb(new Error('git config error: ' + stderr)) - exec(git+" add .", addAll) + exec(git + ' add .', addAll) } function addAll (er, _, stderr) { if (er) return cb(er) - if (stderr) return cb(new Error("git add . error: "+stderr)) + if (stderr) return cb(new Error('git add . error: ' + stderr)) - exec(git+" commit -m boot", commit) + exec(git + ' commit -m boot', commit) } function commit (er, _, stderr) { if (er) return cb(er) - if (stderr) return cb(new Error("git commit error: "+stderr)) + if (stderr) return cb(new Error('git commit error: ' + stderr)) cb() } diff --git a/deps/npm/test/tap/github-shortcut.js b/deps/npm/test/tap/github-shortcut.js index 598aa686446c9b40235b4daec4996e6086604cf4..1b01de4cff1db9d91c93838c52299f001e75c449 100644 --- a/deps/npm/test/tap/github-shortcut.js +++ b/deps/npm/test/tap/github-shortcut.js @@ -25,8 +25,8 @@ test('setup', function (t) { test('github-shortcut', function (t) { var cloneUrls = [ ['git://github.com/foo/private.git', 'GitHub shortcuts try git URLs first'], - ['https://github.com/foo/private.git', 'GitHub shortcuts try HTTPS URLs third'], - ['git@github.com:foo/private.git', 'GitHub shortcuts try SSH second'] + ['https://github.com/foo/private.git', 'GitHub shortcuts try HTTPS URLs second'], + ['git@github.com:foo/private.git', 'GitHub shortcuts try SSH third'] ] var npm = requireInject.installGlobally('../../lib/npm.js', { 'child_process': { @@ -39,7 +39,7 @@ test('github-shortcut', function (t) { } else { t.fail('too many attempts to clone') } - cb(new Error()) + cb(new Error('execFile mock fails on purpose')) }) } } @@ -51,10 +51,10 @@ test('github-shortcut', function (t) { registry: common.registry, loglevel: 'silent' } + t.plan(1 + cloneUrls.length) npm.load(opts, function (er) { t.ifError(er, 'npm loaded without error') npm.commands.install(['foo/private'], function (er, result) { - t.ok(er, 'mocked install failed as expected') t.end() }) }) diff --git a/deps/npm/test/tap/gitlab-shortcut-package.js b/deps/npm/test/tap/gitlab-shortcut-package.js index 657808447174cf468e4abacc1b0823988c1e7a4c..76cd7f911bb277017242ca3ba9fa905f715f4553 100644 --- a/deps/npm/test/tap/gitlab-shortcut-package.js +++ b/deps/npm/test/tap/gitlab-shortcut-package.js @@ -27,8 +27,8 @@ test('setup', function (t) { test('gitlab-shortcut-package', function (t) { var cloneUrls = [ - ['git@gitlab.com:foo/private.git', 'GitLab shortcuts try SSH first'], - ['https://gitlab.com/foo/private.git', 'GitLab shortcuts try HTTPS URLs second'] + ['https://gitlab.com/foo/private.git', 'GitLab shortcuts try HTTPS URLs second'], + ['git@gitlab.com:foo/private.git', 'GitLab shortcuts try SSH first'] ] var npm = requireInject.installGlobally('../../lib/npm.js', { 'child_process': { diff --git a/deps/npm/test/tap/gitlab-shortcut.js b/deps/npm/test/tap/gitlab-shortcut.js index 4a1e2b0bb17144c8d26eb229d58e68e7ac621eaf..96da268ee03c05494b84da58cc4f475d8616a9b2 100644 --- a/deps/npm/test/tap/gitlab-shortcut.js +++ b/deps/npm/test/tap/gitlab-shortcut.js @@ -24,8 +24,8 @@ test('setup', function (t) { test('gitlab-shortcut', function (t) { var cloneUrls = [ - ['git@gitlab.com:foo/private.git', 'GitLab shortcuts try SSH first'], - ['https://gitlab.com/foo/private.git', 'GitLab shortcuts try HTTPS URLs second'] + ['https://gitlab.com/foo/private.git', 'GitLab shortcuts try HTTPS URLs second'], + ['git@gitlab.com:foo/private.git', 'GitLab shortcuts try SSH first'] ] var npm = requireInject.installGlobally('../../lib/npm.js', { 'child_process': { @@ -38,7 +38,7 @@ test('gitlab-shortcut', function (t) { } else { t.fail('too many attempts to clone') } - cb(new Error()) + cb(new Error('execFile mock fails on purpose')) }) } } diff --git a/deps/npm/test/tap/global-prefix-set-in-userconfig.js b/deps/npm/test/tap/global-prefix-set-in-userconfig.js index f820a27727d8efbfb7479dda6b938f00d5497395..422bcb2477ec6315f81cbea82351209990db106a 100644 --- a/deps/npm/test/tap/global-prefix-set-in-userconfig.js +++ b/deps/npm/test/tap/global-prefix-set-in-userconfig.js @@ -1,36 +1,36 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var rimraf = require("rimraf") -var prefix = __filename.replace(/\.js$/, "") -var rcfile = __filename.replace(/\.js$/, ".npmrc") -var fs = require("fs") -var conf = "prefix = " + prefix + "\n" +var common = require('../common-tap.js') +var test = require('tap').test +var rimraf = require('rimraf') +var prefix = __filename.replace(/\.js$/, '') +var rcfile = __filename.replace(/\.js$/, '.npmrc') +var fs = require('fs') +var conf = 'prefix = ' + prefix + '\n' -test("setup", function (t) { +test('setup', function (t) { rimraf.sync(prefix) fs.writeFileSync(rcfile, conf) - t.pass("ready") + t.pass('ready') t.end() }) -test("run command", function (t) { - var args = ["prefix", "-g", "--userconfig=" + rcfile] +test('run command', function (t) { + var args = ['prefix', '-g', '--userconfig=' + rcfile] common.npm(args, {env: {}}, function (er, code, so) { if (er) throw er - t.notOk(code, "npm prefix exited with code 0") + t.notOk(code, 'npm prefix exited with code 0') t.equal(so.trim(), prefix) t.end() }) }) -test("made dir", function (t) { +test('made dir', function (t) { t.ok(fs.statSync(prefix).isDirectory()) t.end() }) -test("cleanup", function (t) { +test('cleanup', function (t) { rimraf.sync(prefix) rimraf.sync(rcfile) - t.pass("clean") + t.pass('clean') t.end() }) diff --git a/deps/npm/test/tap/graceful-restart.js b/deps/npm/test/tap/graceful-restart.js index 532647480565071558fef9238604b20290613e54..21da0d99042d5ea2809396bb2895d240162f6c22 100644 --- a/deps/npm/test/tap/graceful-restart.js +++ b/deps/npm/test/tap/graceful-restart.js @@ -107,8 +107,9 @@ function createChild (args, cb) { 'npm_config_loglevel': 'silent' } - if (process.platform === 'win32') + if (process.platform === 'win32') { env.npm_config_cache = '%APPDATA%\\npm-cache' + } return common.npm(args, { cwd: pkg, diff --git a/deps/npm/test/tap/ignore-install-link.js b/deps/npm/test/tap/ignore-install-link.js index 45db51d30f7bbfe15dd0153f370a98f8c48ea191..684c6a05b24c09696bd4fe86869f6ca46d3a3679 100644 --- a/deps/npm/test/tap/ignore-install-link.js +++ b/deps/npm/test/tap/ignore-install-link.js @@ -1,68 +1,73 @@ -if (process.platform === "win32") { - console.log("ok - symlinks are weird on windows, skip this test") - return +if (process.platform === 'win32') { + console.log('ok - symlinks are weird on windows, skip this test') + process.exit(0) } -var common = require("../common-tap.js") -var test = require("tap").test -var path = require("path") -var fs = require("fs") -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") +var common = require('../common-tap.js') +var test = require('tap').test +var path = require('path') +var fs = require('fs') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') -var root = path.resolve(__dirname, "ignore-install-link") -var pkg = path.resolve(root, "pkg") -var dep = path.resolve(root, "dep") -var target = path.resolve(pkg, "node_modules", "dep") -var cache = path.resolve(root, "cache") -var globalPath = path.resolve(root, "global") +var root = path.resolve(__dirname, 'ignore-install-link') +var pkg = path.resolve(root, 'pkg') +var dep = path.resolve(root, 'dep') +var target = path.resolve(pkg, 'node_modules', 'dep') +var cache = path.resolve(root, 'cache') +var globalPath = path.resolve(root, 'global') -var pkgj = { "name":"pkg", "version": "1.2.3" - , "dependencies": { "dep": "1.2.3" } } -var depj = { "name": "dep", "version": "1.2.3" } +var pkgj = { + 'name': 'pkg', + 'version': '1.2.3', + 'dependencies': { + 'dep': '1.2.3' + } +} +var depj = { 'name': 'dep', 'version': '1.2.3' } -var myreg = require("http").createServer(function (q, s) { +var myreg = require('http').createServer(function (q, s) { s.statusCode = 403 - s.end(JSON.stringify({"error":"forbidden"}) + "\n") + s.end(JSON.stringify({'error': 'forbidden'}) + '\n') }).listen(common.port) -test("setup", function (t) { +test('setup', function (t) { rimraf.sync(root) mkdirp.sync(root) - mkdirp.sync(path.resolve(pkg, "node_modules")) + mkdirp.sync(path.resolve(pkg, 'node_modules')) mkdirp.sync(dep) mkdirp.sync(cache) mkdirp.sync(globalPath) - fs.writeFileSync(path.resolve(pkg, "package.json"), JSON.stringify(pkgj)) - fs.writeFileSync(path.resolve(dep, "package.json"), JSON.stringify(depj)) - fs.symlinkSync(dep, target, "dir") + fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify(pkgj)) + fs.writeFileSync(path.resolve(dep, 'package.json'), JSON.stringify(depj)) + fs.symlinkSync(dep, target, 'dir') t.end() }) -test("ignore install if package is linked", function (t) { - common.npm(["install"], { +test('ignore install if package is linked', function (t) { + common.npm(['install'], { cwd: pkg, env: { PATH: process.env.PATH || process.env.Path, HOME: process.env.HOME, - "npm_config_prefix": globalPath, - "npm_config_cache": cache, - "npm_config_registry": common.registry, - "npm_config_loglevel": "silent" + 'npm_config_prefix': globalPath, + 'npm_config_cache': cache, + 'npm_config_registry': common.registry, + 'npm_config_loglevel': 'silent' }, - stdio: "inherit" + stdio: 'inherit' }, function (er, code) { if (er) throw er - t.equal(code, 0, "npm install exited with code") + t.equal(code, 0, 'npm install exited with code') t.end() }) }) -test("still a symlink", function (t) { +test('still a symlink', function (t) { t.equal(true, fs.lstatSync(target).isSymbolicLink()) t.end() }) -test("cleanup", function (t) { +test('cleanup', function (t) { rimraf.sync(root) myreg.close() t.end() diff --git a/deps/npm/test/tap/init-interrupt.js b/deps/npm/test/tap/init-interrupt.js index 962ab72444747b33e0dae2bb5f151ed832978af3..2e85a5d1b98a68cc44598815d594bf0eb5f9e31e 100644 --- a/deps/npm/test/tap/init-interrupt.js +++ b/deps/npm/test/tap/init-interrupt.js @@ -1,52 +1,52 @@ -// if "npm init" is interrupted with ^C, don't report -// "init written successfully" -var test = require("tap").test -var path = require("path") -var osenv = require("osenv") -var rimraf = require("rimraf") -var npmlog = require("npmlog") -var requireInject = require("require-inject") +// if 'npm init' is interrupted with ^C, don't report +// 'init written successfully' +var test = require('tap').test +var path = require('path') +var osenv = require('osenv') +var rimraf = require('rimraf') +var npmlog = require('npmlog') +var requireInject = require('require-inject') -var npm = require("../../lib/npm.js") +var npm = require('../../lib/npm.js') -var PKG_DIR = path.resolve(__dirname, "init-interrupt") +var PKG_DIR = path.resolve(__dirname, 'init-interrupt') -test("setup", function (t) { +test('setup', function (t) { cleanup() t.end() }) -test("issue #6684 remove confusing message", function (t) { +test('issue #6684 remove confusing message', function (t) { var initJsonMock = function (dir, input, config, cb) { process.nextTick(function () { - cb({message : "canceled"}) + cb({ message: 'canceled' }) }) } initJsonMock.yes = function () { return true } - npm.load({loglevel : "silent"}, function () { - var log = "" - var init = requireInject("../../lib/init", { - "init-package-json": initJsonMock + npm.load({ loglevel: 'silent' }, function () { + var log = '' + var init = requireInject('../../lib/init', { + 'init-package-json': initJsonMock }) // capture log messages - npmlog.on("log", function (chunk) { log += chunk.message + "\n" } ) + npmlog.on('log', function (chunk) { log += chunk.message + '\n' }) init([], function (err, code) { - t.ifError(err, "init ran successfully") - t.notOk(code, "exited without issue") - t.notSimilar(log, /written successfully/, "no success message written") - t.similar(log, /canceled/, "alerted that init was canceled") + t.ifError(err, 'init ran successfully') + t.notOk(code, 'exited without issue') + t.notSimilar(log, /written successfully/, 'no success message written') + t.similar(log, /canceled/, 'alerted that init was canceled') t.end() }) }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() t.end() diff --git a/deps/npm/test/tap/install-actions.js b/deps/npm/test/tap/install-actions.js new file mode 100644 index 0000000000000000000000000000000000000000..c71b0044e1d603ed9eca5cc720b0a9340c96dd55 --- /dev/null +++ b/deps/npm/test/tap/install-actions.js @@ -0,0 +1,108 @@ +'use strict' +var npm = require('../../lib/npm.js') +var log = require('npmlog') +var test = require('tap').test + +var mockLog = { + finish: function () {}, + silly: function () {} +} + +var actions +test('setup', function (t) { + npm.load(function () { + log.disableProgress() + actions = require('../../lib/install/actions.js').actions + t.end() + }) +}) + +test('->optdep:a->dep:b', function (t) { + var moduleA = { + name: 'a', + path: '/', + package: { + scripts: { + postinstall: 'false' + }, + dependencies: { + b: '*' + } + } + } + var moduleB = { + name: 'b', + path: '/', + package: {}, + requires: [], + requiredBy: [moduleA] + } + moduleA.requires = [moduleB] + + var tree = { + path: '/', + package: { + optionalDependencies: { + a: '*' + } + }, + children: [moduleA, moduleB], + requires: [moduleA] + } + moduleA.requiredBy = [tree] + + t.plan(3) + actions.postinstall('/', '/', moduleA, mockLog, function (er) { + t.ok(er && er.code === 'ELIFECYCLE', 'Lifecycle failed') + t.ok(moduleA.failed, 'moduleA (optional dep) is marked failed') + t.ok(moduleB.failed, 'moduleB (direct dep of moduleA) is marked as failed') + t.end() + }) +}) + +test('->dep:b,->optdep:a->dep:b', function (t) { + var moduleA = { + name: 'a', + path: '/', + package: { + scripts: { + postinstall: 'false' + }, + dependencies: { + b: '*' + } + } + } + var moduleB = { + name: 'b', + path: '/', + package: {}, + requires: [], + requiredBy: [moduleA] + } + moduleA.requires = [moduleB] + + var tree = { + path: '/', + package: { + dependencies: { + b: '*' + }, + optionalDependencies: { + a: '*' + } + }, + children: [moduleA, moduleB], + requires: [moduleA, moduleB] + } + moduleA.requiredBy = [tree] + moduleB.requiredBy.push(tree) + + t.plan(3) + actions.postinstall('/', '/', moduleA, mockLog, function (er) { + t.ok(er && er.code === 'ELIFECYCLE', 'Lifecycle failed') + t.ok(moduleA.failed, 'moduleA (optional dep) is marked failed') + t.ok(!moduleB.failed, 'moduleB (direct dep of moduleA) is marked as failed') + t.end() + }) +}) diff --git a/deps/npm/test/tap/install-at-locally.js b/deps/npm/test/tap/install-at-locally.js index 9c5d85980cb32598d32901f7d7268209bef749b9..8745c4d60ecfe8f68ad3b7c3f00d1f1cb5a8e8e3 100644 --- a/deps/npm/test/tap/install-at-locally.js +++ b/deps/npm/test/tap/install-at-locally.js @@ -13,7 +13,7 @@ var pkg = path.join(__dirname, 'install-at-locally') var EXEC_OPTS = { cwd: pkg } var json = { - name: 'install-at-locally', + name: 'install-at-locally-mock', version: '0.0.0' } @@ -25,8 +25,8 @@ test('setup', function (t) { test('\'npm install ./package@1.2.3\' should install local pkg', function (t) { var target = './package@1.2.3' setup(target) - common.npm(['install', target], EXEC_OPTS, function (err, code) { - var p = path.resolve(pkg, 'node_modules/install-at-locally/package.json') + common.npm(['install', '--loglevel=silent', target], EXEC_OPTS, function (err, code) { + var p = path.resolve(pkg, 'node_modules/install-at-locally-mock/package.json') t.ifError(err, 'install local package successful') t.equal(code, 0, 'npm install exited with code') t.ok(JSON.parse(fs.readFileSync(p, 'utf8'))) @@ -38,7 +38,7 @@ test('\'npm install install/at/locally@./package@1.2.3\' should install local pk var target = 'install/at/locally@./package@1.2.3' setup(target) common.npm(['install', target], EXEC_OPTS, function (err, code) { - var p = path.resolve(pkg, 'node_modules/install-at-locally/package.json') + var p = path.resolve(pkg, 'node_modules/install-at-locally-mock/package.json') t.ifError(err, 'install local package in explicit directory successful') t.equal(code, 0, 'npm install exited with code') t.ok(JSON.parse(fs.readFileSync(p, 'utf8'))) diff --git a/deps/npm/test/tap/install-bad-dep-format.js b/deps/npm/test/tap/install-bad-dep-format.js new file mode 100644 index 0000000000000000000000000000000000000000..01d253c9e53e521226b0401bd6bcdb1d53ac88b9 --- /dev/null +++ b/deps/npm/test/tap/install-bad-dep-format.js @@ -0,0 +1,58 @@ +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 json = { + author: 'John Foo', + name: 'bad-dep-format', + version: '0.0.0', + dependencies: { + 'not-legit': 'npm:not-legit@1.0' + } +} + +test('invalid url format returns appropriate error', function (t) { + setup(json) + common.npm(['install'], {}, function (err, code, stdout, stderr) { + t.ifError(err, 'install ran without error') + t.equals(code, 1, 'inall exited with code 1') + t.match(stderr, + /ERR.*Unsupported URL Type/, + 'Error should report that invalid url-style formats are used') + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function setup (json) { + cleanup() + process.chdir(mkPkg(json)) +} + +function cleanup () { + process.chdir(osenv.tmpdir()) + var pkgs = [json] + pkgs.forEach(function (json) { + rimraf.sync(path.resolve(__dirname, json.name)) + }) +} + +function mkPkg (json) { + var pkgPath = path.resolve(__dirname, json.name) + mkdirp.sync(pkgPath) + fs.writeFileSync( + path.join(pkgPath, 'package.json'), + JSON.stringify(json, null, 2) + ) + return pkgPath +} diff --git a/deps/npm/test/tap/install-bad-man.js b/deps/npm/test/tap/install-bad-man.js index 9ec8a84734b75522cc390b5abb8d7c6218f6c1fd..756b4a5902c151e941668fca0ccf65377ba52bb5 100644 --- a/deps/npm/test/tap/install-bad-man.js +++ b/deps/npm/test/tap/install-bad-man.js @@ -1,53 +1,52 @@ -var fs = require("fs") -var resolve = require("path").resolve +var fs = require('fs') +var resolve = require('path').resolve -var osenv = require("osenv") -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var test = require("tap").test +var osenv = require('osenv') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var test = require('tap').test -var common = require("../common-tap.js") +var common = require('../common-tap.js') -var pkg = resolve(__dirname, "install-bad-man") -var target = resolve(__dirname, "install-bad-man-target") +var pkg = resolve(__dirname, 'install-bad-man') +var target = resolve(__dirname, 'install-bad-man-target') var EXEC_OPTS = { cwd: target } var json = { - name : "install-bad-man", - version : "1.2.3", - man : [ "./install-bad-man.1.lol" ] + name: 'install-bad-man', + version: '1.2.3', + man: [ './install-bad-man.1.lol' ] } - -test("setup", function (t) { +test('setup', function (t) { setup() - t.pass("setup ran") + t.pass('setup ran') t.end() }) test("install from repo on 'OS X'", function (t) { common.npm( [ - "install", - "--prefix", target, - "--global", + 'install', + '--prefix', target, + '--global', pkg ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, "npm command ran from test") - t.equals(code, 1, "install exited with failure (1)") - t.notOk(stdout, "no output indicating success") + t.ifError(err, 'npm command ran from test') + t.equals(code, 1, 'install exited with failure (1)') + t.notOk(stdout, 'no output indicating success') t.notOk( stderr.match(/Cannot read property '1' of null/), - "no longer has cryptic error output" + 'no longer has cryptic error output' ) t.ok( stderr.match(/install-bad-man\.1\.lol is not a valid name/), - "got expected error output" + 'got expected error output' ) t.end() @@ -55,9 +54,9 @@ test("install from repo on 'OS X'", function (t) { ) }) -test("clean", function (t) { +test('clean', function (t) { cleanup() - t.pass("cleaned up") + t.pass('cleaned up') t.end() }) @@ -65,12 +64,12 @@ function setup () { cleanup() mkdirp.sync(pkg) // make sure it installs locally - mkdirp.sync(resolve(target, "node_modules")) + mkdirp.sync(resolve(target, 'node_modules')) fs.writeFileSync( - resolve(pkg, "package.json"), - JSON.stringify(json, null, 2)+"\n" + resolve(pkg, 'package.json'), + JSON.stringify(json, null, 2) + '\n' ) - fs.writeFileSync(resolve(pkg, "install-bad-man.1.lol"), "lol\n") + fs.writeFileSync(resolve(pkg, 'install-bad-man.1.lol'), 'lol\n') } function cleanup () { diff --git a/deps/npm/test/tap/install-cli-only-development.js b/deps/npm/test/tap/install-cli-only-development.js new file mode 100644 index 0000000000000000000000000000000000000000..21c30378e4ce4745af2f12e4843e970f76e97b2a --- /dev/null +++ b/deps/npm/test/tap/install-cli-only-development.js @@ -0,0 +1,85 @@ +var fs = require('graceful-fs') +var path = require('path') +var existsSync = fs.existsSync || path.existsSync + +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-cli-development') + +var EXEC_OPTS = { cwd: pkg } + +var json = { + name: 'install-cli-development', + description: 'fixture', + version: '0.0.0', + dependencies: { + dependency: 'file:./dependency' + }, + devDependencies: { + 'dev-dependency': 'file:./dev-dependency' + } +} + +var dependency = { + name: 'dependency', + description: 'fixture', + version: '0.0.0' +} + +var devDependency = { + name: 'dev-dependency', + description: 'fixture', + version: '0.0.0' +} + +test('setup', function (t) { + mkdirp.sync(path.join(pkg, 'dependency')) + fs.writeFileSync( + path.join(pkg, 'dependency', 'package.json'), + JSON.stringify(dependency, null, 2) + ) + + mkdirp.sync(path.join(pkg, 'dev-dependency')) + fs.writeFileSync( + path.join(pkg, 'dev-dependency', 'package.json'), + JSON.stringify(devDependency, null, 2) + ) + + mkdirp.sync(path.join(pkg, 'node_modules')) + fs.writeFileSync( + path.join(pkg, 'package.json'), + JSON.stringify(json, null, 2) + ) + + process.chdir(pkg) + t.end() +}) + +test('\'npm install --only=development\' should only install devDependencies', function (t) { + common.npm(['install', '--only=development'], EXEC_OPTS, function (err, code) { + t.ifError(err, 'install development successful') + t.equal(code, 0, 'npm install did not raise error code') + t.ok( + JSON.parse(fs.readFileSync( + path.resolve(pkg, 'node_modules/dev-dependency/package.json'), 'utf8') + ), + 'devDependency was installed' + ) + t.notOk( + existsSync(path.resolve(pkg, 'node_modules/dependency/package.json')), + 'dependency was NOT installed' + ) + t.end() + }) +}) + +test('cleanup', function (t) { + process.chdir(osenv.tmpdir()) + rimraf.sync(pkg) + t.end() +}) diff --git a/deps/npm/test/tap/install-cli-only-production.js b/deps/npm/test/tap/install-cli-only-production.js new file mode 100644 index 0000000000000000000000000000000000000000..7f46a23e15df89fb005ccf1d15f433a1b8cd4b20 --- /dev/null +++ b/deps/npm/test/tap/install-cli-only-production.js @@ -0,0 +1,88 @@ +var fs = require('graceful-fs') +var path = require('path') +var existsSync = fs.existsSync || path.existsSync + +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-cli-only-production') + +var EXEC_OPTS = { cwd: pkg } + +var json = { + name: 'install-cli-only-production', + description: 'fixture', + version: '0.0.0', + scripts: { + prepublish: 'exit 123' + }, + dependencies: { + dependency: 'file:./dependency' + }, + devDependencies: { + 'dev-dependency': 'file:./dev-dependency' + } +} + +var dependency = { + name: 'dependency', + description: 'fixture', + version: '0.0.0' +} + +var devDependency = { + name: 'dev-dependency', + description: 'fixture', + version: '0.0.0' +} + +test('setup', function (t) { + mkdirp.sync(path.join(pkg, 'dependency')) + fs.writeFileSync( + path.join(pkg, 'dependency', 'package.json'), + JSON.stringify(dependency, null, 2) + ) + + mkdirp.sync(path.join(pkg, 'devDependency')) + fs.writeFileSync( + path.join(pkg, 'devDependency', 'package.json'), + JSON.stringify(devDependency, null, 2) + ) + + mkdirp.sync(path.join(pkg, 'node_modules')) + fs.writeFileSync( + path.join(pkg, 'package.json'), + JSON.stringify(json, null, 2) + ) + + process.chdir(pkg) + t.end() +}) + +test('\'npm install --only=production\' should only install dependencies', function (t) { + common.npm(['install', '--only=production'], EXEC_OPTS, function (err, code) { + t.ifError(err, 'install production successful') + t.equal(code, 0, 'npm install did not raise error code') + t.ok( + JSON.parse(fs.readFileSync( + path.resolve(pkg, 'node_modules/dependency/package.json'), 'utf8') + ), + 'dependency was installed' + ) + t.notOk( + existsSync(path.resolve(pkg, 'node_modules/dev-dependency/package.json')), + 'devDependency was NOT installed' + ) + t.end() + }) +}) + +test('cleanup', function (t) { + process.chdir(osenv.tmpdir()) + rimraf.sync(pkg) + t.end() +}) diff --git a/deps/npm/test/tap/install-cli-production.js b/deps/npm/test/tap/install-cli-production.js index fbaf23afb481950363ddd4e5d08ffae9e6f3e3d8..a1fdac6e880d5aaf412a0e72708cfdc2a6d5df73 100644 --- a/deps/npm/test/tap/install-cli-production.js +++ b/deps/npm/test/tap/install-cli-production.js @@ -47,9 +47,9 @@ test('setup', function (t) { JSON.stringify(dependency, null, 2) ) - mkdirp.sync(path.join(pkg, 'devDependency')) + mkdirp.sync(path.join(pkg, 'dev-dependency')) fs.writeFileSync( - path.join(pkg, 'devDependency', 'package.json'), + path.join(pkg, 'dev-dependency', 'package.json'), JSON.stringify(devDependency, null, 2) ) diff --git a/deps/npm/test/tap/install-into-likenamed-folder.js b/deps/npm/test/tap/install-into-likenamed-folder.js new file mode 100644 index 0000000000000000000000000000000000000000..187d5fbf11bca97b0c9dc37d4219fda7b366ac54 --- /dev/null +++ b/deps/npm/test/tap/install-into-likenamed-folder.js @@ -0,0 +1,44 @@ +'use strict' +var path = require('path') +var fs = require('graceful-fs') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var test = require('tap').test +var common = require('../common-tap.js') + +var base = path.join(__dirname, path.basename(__filename, '.js')) +var moduleDir = path.join(base, 'example-src') +var destDir = path.join(base, 'example') +var moduleJson = { + name: 'example', + version: '1.0.0' +} + +function setup () { + cleanup() + mkdirp.sync(moduleDir) + mkdirp.sync(path.join(destDir, 'node_modules')) + fs.writeFileSync(path.join(moduleDir, 'package.json'), JSON.stringify(moduleJson)) +} + +function cleanup () { + rimraf.sync(base) +} + +test('setup', function (t) { + setup() + t.end() +}) + +test('like-named', function (t) { + common.npm(['install', '../example-src'], {cwd: destDir}, function (er, code, stdout, stderr) { + t.is(code, 0, 'no error code') + t.is(stderr, '', 'no error output') + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) diff --git a/deps/npm/test/tap/install-local-dep-cycle.js b/deps/npm/test/tap/install-local-dep-cycle.js new file mode 100644 index 0000000000000000000000000000000000000000..1f76ad9598a2d0d8ad5354c751de4dba0bdb30f5 --- /dev/null +++ b/deps/npm/test/tap/install-local-dep-cycle.js @@ -0,0 +1,79 @@ +'use strict' +var path = require('path') +var fs = require('graceful-fs') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var test = require('tap').test +var common = require('../common-tap.js') + +var base = path.join(__dirname, path.basename(__filename, '.js')) + +var baseJSON = { + name: 'base', + version: '1.0.0', + dependencies: { + a: 'file:a/', + b: 'file:b/' + } +} + +var aPath = path.join(base, 'a') +var aJSON = { + name: 'a', + version: '1.0.0', + dependencies: { + b: 'file:../b', + c: 'file:../c' + } +} + +var bPath = path.join(base, 'b') +var bJSON = { + name: 'b', + version: '1.0.0' +} + +var cPath = path.join(base, 'c') +var cJSON = { + name: 'c', + version: '1.0.0', + dependencies: { + b: 'file:../b' + } +} + +test('setup', function (t) { + cleanup() + setup() + t.end() +}) + +test('install', function (t) { + common.npm(['install'], {cwd: base}, function (er, code, stdout, stderr) { + t.ifError(er, 'npm config ran without issue') + t.is(code, 0, 'exited with a non-error code') + t.is(stderr, '', 'Ran without errors') + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function saveJson (pkgPath, json) { + mkdirp.sync(pkgPath) + fs.writeFileSync(path.join(pkgPath, 'package.json'), JSON.stringify(json, null, 2)) +} + +function setup () { + saveJson(base, baseJSON) + saveJson(aPath, aJSON) + saveJson(bPath, bJSON) + saveJson(cPath, cJSON) +} + +function cleanup () { + rimraf.sync(base) +} diff --git a/deps/npm/test/tap/install-man.js b/deps/npm/test/tap/install-man.js index ebba5d87b011002eba4cfb82a35671623ca770d1..d309788b25515eaeb120b41ea7ea0d6357f79901 100644 --- a/deps/npm/test/tap/install-man.js +++ b/deps/npm/test/tap/install-man.js @@ -1,48 +1,48 @@ -var fs = require("fs") -var resolve = require("path").resolve +var fs = require('fs') +var resolve = require('path').resolve -var osenv = require("osenv") -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var test = require("tap").test +var osenv = require('osenv') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var test = require('tap').test -var common = require("../common-tap.js") +var common = require('../common-tap.js') -var pkg = resolve(__dirname, "install-man") -var target = resolve(__dirname, "install-man-target") +var pkg = resolve(__dirname, 'install-man') +var target = resolve(__dirname, 'install-man-target') var EXEC_OPTS = { cwd: target } var json = { - name : "install-man", - version : "1.2.3", - man : [ "./install-man.1" ] + name: 'install-man', + version: '1.2.3', + man: [ './install-man.1' ] } -test("setup", function (t) { +test('setup', function (t) { setup() - t.pass("setup ran") + t.pass('setup ran') t.end() }) -test("install man page", function (t) { +test('install man page', function (t) { common.npm( [ - "install", - "--prefix", target, - "--global", + 'install', + '--prefix', target, + '--global', pkg ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, "npm command ran from test") - t.equals(code, 0, "install exited with success (0)") - t.ok(stdout, "output indicating success") + t.ifError(err, 'npm command ran from test') + t.equals(code, 0, 'install exited with success (0)') + t.ok(stdout, 'output indicating success') t.ok( - fs.existsSync(resolve(target, "share", "man", "man1", "install-man.1")), - "man page link was created" + fs.existsSync(resolve(target, 'share', 'man', 'man1', 'install-man.1')), + 'man page link was created' ) t.end() @@ -50,9 +50,9 @@ test("install man page", function (t) { ) }) -test("clean", function (t) { +test('clean', function (t) { cleanup() - t.pass("cleaned up") + t.pass('cleaned up') t.end() }) @@ -60,12 +60,12 @@ function setup () { cleanup() mkdirp.sync(pkg) // make sure it installs locally - mkdirp.sync(resolve(target, "node_modules")) + mkdirp.sync(resolve(target, 'node_modules')) fs.writeFileSync( - resolve(pkg, "package.json"), - JSON.stringify(json, null, 2)+"\n" + resolve(pkg, 'package.json'), + JSON.stringify(json, null, 2) + '\n' ) - fs.writeFileSync(resolve(pkg, "install-man.1"), "THIS IS A MANPAGE\n") + fs.writeFileSync(resolve(pkg, 'install-man.1'), 'THIS IS A MANPAGE\n') } function cleanup () { diff --git a/deps/npm/test/tap/install-order.js b/deps/npm/test/tap/install-order.js new file mode 100644 index 0000000000000000000000000000000000000000..c1c4e9dca61f9f0eea0a5e0af88aef5049cfe6d4 --- /dev/null +++ b/deps/npm/test/tap/install-order.js @@ -0,0 +1,37 @@ +'use strict' +var test = require('tap').test +var sortActions = require('../../lib/install/diff-trees.js').sortActions + +var a = { + package: {_location: '/a', _requiredBy: []} +} +var b = { + package: {_location: '/b', _requiredBy: []} +} +var c = { + package: {_location: '/c', _requiredBy: ['/a', '/b']} +} + +test('install-order when installing deps', function (t) { + var plain = [ + ['add', a], + ['add', b], + ['add', c]] + var sorted = [ + ['add', c], + ['add', a], + ['add', b]] + t.isDeeply(sortActions(plain), sorted) + t.end() +}) + +test('install-order when not installing deps', function (t) { + var plain = [ + ['add', a], + ['add', b]] + var sorted = [ + ['add', a], + ['add', b]] + t.isDeeply(sortActions(plain), sorted) + t.end() +}) diff --git a/deps/npm/test/tap/install-save-local.js b/deps/npm/test/tap/install-save-local.js index 33a1c613f19412a6bb9d6abf144411c4578c5654..a9de5ba1941823be4dd10edb31ddeb72b616e7c5 100644 --- a/deps/npm/test/tap/install-save-local.js +++ b/deps/npm/test/tap/install-save-local.js @@ -51,9 +51,9 @@ test('\'npm install --save ../local/path\' should save to package.json', functio t.ok(JSON.parse(fs.readFileSync(dependencyPackageJson, 'utf8'))) var pkgJson = JSON.parse(fs.readFileSync(pkg + '/package.json', 'utf8')) - t.deepEqual( - pkgJson.dependencies, - { 'package-local-dependency': 'file:../package-local-dependency' }, + t.is(Object.keys(pkgJson.dependencies).length, 1, 'only one dep') + t.ok( + /file:.*?[/]package-local-dependency$/.test(pkgJson.dependencies['package-local-dependency']), 'local package saved correctly' ) t.end() @@ -80,9 +80,9 @@ test('\'npm install --save-dev ../local/path\' should save to package.json', fun t.ok(JSON.parse(fs.readFileSync(dependencyPackageJson, 'utf8'))) var pkgJson = JSON.parse(fs.readFileSync(pkg + '/package.json', 'utf8')) - t.deepEqual( - pkgJson.devDependencies, - { 'package-local-dev-dependency': 'file:../package-local-dev-dependency' }, + t.is(Object.keys(pkgJson.devDependencies).length, 1, 'only one dep') + t.ok( + /file:.*?[/]package-local-dev-dependency$/.test(pkgJson.devDependencies['package-local-dev-dependency']), 'local package saved correctly' ) diff --git a/deps/npm/test/tap/install-scoped-already-installed.js b/deps/npm/test/tap/install-scoped-already-installed.js index 1446897d442261d45d728098c814e1b9db38f416..f3c191ddb00dd829ee01c418279db558bfd005a0 100644 --- a/deps/npm/test/tap/install-scoped-already-installed.js +++ b/deps/npm/test/tap/install-scoped-already-installed.js @@ -31,7 +31,7 @@ var localDependency = { } var scopedDependency = { - name: '@scoped/package', + name: '@scoped/package-scoped-dependency', version: '0.0.0', description: 'Test for local installs' } @@ -64,6 +64,7 @@ test('installing already installed local scoped package', function (t) { common.npm( [ '--loglevel', 'silent', + '--parseable', 'install' ], EXEC_OPTS, @@ -71,14 +72,13 @@ test('installing already installed local scoped package', function (t) { var installed = parseNpmInstallOutput(stdout) t.ifError(err, 'install ran to completion without error') t.notOk(code, 'npm install exited with code 0') - t.ok( - existsSync(path.join(modules, '@scoped', 'package', 'package.json')), + existsSync(path.join(modules, '@scoped', 'package-scoped-dependency', 'package.json')), 'package installed' ) t.ok( - contains(installed, 'node_modules/@scoped/package'), - 'installed @scoped/package' + contains(installed, 'node_modules/@scoped/package-scoped-dependency'), + 'installed @scoped/package-scoped-dependency' ) t.ok( contains(installed, 'node_modules/package-local-dependency'), @@ -88,6 +88,7 @@ test('installing already installed local scoped package', function (t) { common.npm( [ '--loglevel', 'silent', + '--parseable', 'install' ], EXEC_OPTS, @@ -98,13 +99,13 @@ test('installing already installed local scoped package', function (t) { installed = parseNpmInstallOutput(stdout) t.ok( - existsSync(path.join(modules, '@scoped', 'package', 'package.json')), + existsSync(path.join(modules, '@scoped', 'package-scoped-dependency', 'package.json')), 'package installed' ) t.notOk( - contains(installed, 'node_modules/@scoped/package'), - 'did not reinstall @scoped/package' + contains(installed, 'node_modules/@scoped/package-scoped-dependency'), + 'did not reinstall @scoped/package-scoped-dependency' ) t.notOk( contains(installed, 'node_modules/package-local-dependency'), @@ -124,8 +125,9 @@ test('cleanup', function (t) { }) function contains (list, element) { + var matcher = new RegExp(element + '$') for (var i = 0; i < list.length; ++i) { - if (list[i] === element) { + if (matcher.test(list[i])) { return true } } diff --git a/deps/npm/test/tap/install-scoped-with-peer-dependency.js b/deps/npm/test/tap/install-scoped-with-peer-dependency.js index 3a54b9a11f2dafe63312282457a753f35bc02ebc..da571ae5496923e7b675ec25aa6e78bba80c5004 100644 --- a/deps/npm/test/tap/install-scoped-with-peer-dependency.js +++ b/deps/npm/test/tap/install-scoped-with-peer-dependency.js @@ -27,13 +27,12 @@ test('setup', function (t) { }) test('it should install peerDependencies in same tree level as the parent package', function (t) { - common.npm(['install', './package'], EXEC_OPTS, function (err, code, stdout, stderr) { + common.npm(['install', '--loglevel=warn', './package'], EXEC_OPTS, function (err, code, stdout, stderr) { t.ifError(err, 'install local package successful') t.equal(code, 0, 'npm install exited with code') - t.notOk(stderr, 'npm install exited without any error output') + t.match(stderr, /npm WARN EPEERINVALID @scope[/]package@0[.]0[.]0 requires a peer of underscore@[*] but none was installed[.]\n/, + 'npm install warned about unresolved peer dep') - var p = path.resolve(pkg, 'node_modules/underscore/package.json') - t.ok(JSON.parse(fs.readFileSync(p, 'utf8'))) t.end() }) }) diff --git a/deps/npm/test/tap/install-with-dev-dep-duplicate.js b/deps/npm/test/tap/install-with-dev-dep-duplicate.js index 19ad0c2bf47da6736af91dc33fa73f79a786eca4..41eb8233114962b05803b9f91cdc88507ddd64d5 100644 --- a/deps/npm/test/tap/install-with-dev-dep-duplicate.js +++ b/deps/npm/test/tap/install-with-dev-dep-duplicate.js @@ -31,7 +31,8 @@ var expected = { underscore: { version: '1.5.1', from: 'underscore@1.5.1', - resolved: common.registry + '/underscore/-/underscore-1.5.1.tgz' + resolved: common.registry + '/underscore/-/underscore-1.5.1.tgz', + invalid: true } } } @@ -49,6 +50,10 @@ test('prefers version from dependencies over devDependencies', function (t) { npm.commands.ls([], true, function (err, _, results) { if (err) return t.fail(err) + // these contain full paths so we can't do an exact match + // with them + delete results.problems + delete results.dependencies.underscore.problems t.deepEqual(results, expected) s.close() t.end() diff --git a/deps/npm/test/tap/invalid-cmd-exit-code.js b/deps/npm/test/tap/invalid-cmd-exit-code.js index c9918e5a79d8b683943b6d9b94274daca811210b..f4bb444a1796902c464483444ca22d4eb379c653 100644 --- a/deps/npm/test/tap/invalid-cmd-exit-code.js +++ b/deps/npm/test/tap/invalid-cmd-exit-code.js @@ -1,28 +1,28 @@ -var test = require("tap").test -var common = require("../common-tap.js") +var test = require('tap').test +var common = require('../common-tap.js') var opts = { cwd: process.cwd() } -test("npm asdf should return exit code 1", function (t) { - common.npm(["asdf"], opts, function (er, c) { +test('npm asdf should return exit code 1', function (t) { + common.npm(['asdf'], opts, function (er, c) { if (er) throw er - t.ok(c, "exit code should not be zero") + t.ok(c, 'exit code should not be zero') t.end() }) }) -test("npm help should return exit code 0", function (t) { - common.npm(["help"], opts, function (er, c) { +test('npm help should return exit code 0', function (t) { + common.npm(['help'], opts, function (er, c) { if (er) throw er - t.equal(c, 0, "exit code should be 0") + t.equal(c, 0, 'exit code should be 0') t.end() }) }) -test("npm help fadf should return exit code 0", function (t) { - common.npm(["help", "fadf"], opts, function (er, c) { +test('npm help fadf should return exit code 0', function (t) { + common.npm(['help', 'fadf'], opts, function (er, c) { if (er) throw er - t.equal(c, 0, "exit code should be 0") + t.equal(c, 0, 'exit code should be 0') t.end() }) }) diff --git a/deps/npm/test/tap/is-fs-access-available.js b/deps/npm/test/tap/is-fs-access-available.js new file mode 100644 index 0000000000000000000000000000000000000000..7374e40223267aef99687959c79e45bd876bbb64 --- /dev/null +++ b/deps/npm/test/tap/is-fs-access-available.js @@ -0,0 +1,54 @@ +'use strict' +var test = require('tap').test +var requireInject = require('require-inject') +var semver = require('semver') + +var globalProcess = global.process + +function loadIsFsAccessAvailable (newProcess, fs) { + global.process = newProcess + var mocks = {fs: fs} + var isFsAccessAvailable = requireInject('../../lib/install/is-fs-access-available.js', mocks) + global.process = globalProcess + return isFsAccessAvailable +} + +var fsWithAccess = {access: function () {}} +var fsWithoutAccess = {} + +if (semver.lt(process.version, '0.12.0')) { + test('skipping', function (t) { + t.pass('skipping all tests on < 0.12.0 due to process not being injectable') + t.end() + }) +} else { + test('mac + !fs.access', function (t) { + var isFsAccessAvailable = loadIsFsAccessAvailable({platform: 'darwin'}, fsWithoutAccess) + t.is(isFsAccessAvailable, false, 'not available') + t.end() + }) + + test('mac + fs.access', function (t) { + var isFsAccessAvailable = loadIsFsAccessAvailable({platform: 'darwin'}, fsWithAccess) + t.is(isFsAccessAvailable, true, 'available') + t.end() + }) + + test('windows + !fs.access', function (t) { + var isFsAccessAvailable = loadIsFsAccessAvailable({platform: 'win32'}, fsWithoutAccess) + t.is(isFsAccessAvailable, false, 'not available') + t.end() + }) + + test('windows + fs.access + node 0.12.7', function (t) { + var isFsAccessAvailable = loadIsFsAccessAvailable({platform: 'win32', version: '0.12.7'}, fsWithAccess) + t.is(isFsAccessAvailable, false, 'not available') + t.end() + }) + + test('windows + fs.access + node 2.4.0', function (t) { + var isFsAccessAvailable = loadIsFsAccessAvailable({platform: 'win32', version: '2.4.0'}, fsWithAccess) + t.is(isFsAccessAvailable, true, 'available') + t.end() + }) +} diff --git a/deps/npm/test/tap/lifecycle.js b/deps/npm/test/tap/lifecycle.js index aa0efc52669f2c164c30c14fc93a0a862a9458f5..1bd77c383bfaaff72996c3b0ca1e7b33d11fbb4a 100644 --- a/deps/npm/test/tap/lifecycle.js +++ b/deps/npm/test/tap/lifecycle.js @@ -1,12 +1,12 @@ -var test = require("tap").test -var npm = require("../../") -var lifecycle = require("../../lib/utils/lifecycle") +var test = require('tap').test +var npm = require('../../') +var lifecycle = require('../../lib/utils/lifecycle') -test("lifecycle: make env correctly", function (t) { +test('lifecycle: make env correctly', function (t) { npm.load({enteente: Infinity}, function () { var env = lifecycle.makeEnv({}, null, process.env) - t.equal("Infinity", env.npm_config_enteente) + t.equal('Infinity', env.npm_config_enteente) t.end() }) }) diff --git a/deps/npm/test/tap/link.js b/deps/npm/test/tap/link.js index ea47e8296a15c5ff14ccda4bb89b2bd912191ade..869364c29b5e7e64b2b6886a624e6ff58284e174 100644 --- a/deps/npm/test/tap/link.js +++ b/deps/npm/test/tap/link.js @@ -8,6 +8,7 @@ var writeFileSync = require('fs').writeFileSync var common = require('../common-tap.js') var link = path.join(__dirname, 'link') +var linkScoped = path.join(__dirname, 'link-scoped') var linkInstall = path.join(__dirname, 'link-install') var linkRoot = path.join(__dirname, 'link-root') @@ -32,6 +33,18 @@ var readJSON = { license: 'ISC' } +var readScopedJSON = { + name: '@scope/foo', + version: '1.0.0', + description: '', + main: 'index.js', + scripts: { + test: 'echo \"Error: no test specified\" && exit 1' + }, + author: '', + license: 'ISC' +} + var installJSON = { name: 'bar', version: '1.0.0', @@ -44,7 +57,6 @@ var installJSON = { license: 'ISC' } - test('setup', function (t) { setup() common.npm(['ls', '-g', '--depth=0'], OPTS, function (err, c, out) { @@ -55,7 +67,7 @@ test('setup', function (t) { }) }) -test('creates global link', function (t) { +test('create global link', function (t) { process.chdir(link) common.npm(['link'], OPTS, function (err, c, out) { t.ifError(err, 'link has no error') @@ -69,6 +81,20 @@ test('creates global link', function (t) { }) }) +test('create scoped global link', function (t) { + process.chdir(linkScoped) + common.npm(['link'], OPTS, function (err, c, out) { + t.ifError(err, 'link has no error') + common.npm(['ls', '-g'], OPTS, function (err, c, out, stderr) { + t.ifError(err) + t.equal(c, 0) + t.equal(stderr, '', 'got expected stderr') + t.has(out, /@scope[/]foo@1.0.0/, 'creates global link ok') + t.end() + }) + }) +}) + test('link-install the package', function (t) { process.chdir(linkInstall) common.npm(['link', 'foo'], OPTS, function (err) { @@ -82,6 +108,19 @@ test('link-install the package', function (t) { }) }) +test('link-install the scoped package', function (t) { + process.chdir(linkInstall) + common.npm(['link', linkScoped], OPTS, function (err) { + t.ifError(err, 'link-install has no error') + common.npm(['ls'], OPTS, function (err, c, out) { + t.ifError(err) + t.equal(c, 1) + t.has(out, /@scope[/]foo@1.0.0/, 'link-install ok') + t.end() + }) + }) +}) + test('cleanup', function (t) { process.chdir(osenv.tmpdir()) common.npm(['rm', 'foo'], OPTS, function (err, code) { @@ -100,6 +139,7 @@ test('cleanup', function (t) { function cleanup () { rimraf.sync(linkRoot) rimraf.sync(link) + rimraf.sync(linkScoped) rimraf.sync(linkInstall) } @@ -111,6 +151,11 @@ function setup () { path.join(link, 'package.json'), JSON.stringify(readJSON, null, 2) ) + mkdirp.sync(linkScoped) + writeFileSync( + path.join(linkScoped, 'package.json'), + JSON.stringify(readScopedJSON, null, 2) + ) mkdirp.sync(linkInstall) writeFileSync( path.join(linkInstall, 'package.json'), diff --git a/deps/npm/test/tap/locker.js b/deps/npm/test/tap/locker.js index bc43c30e95e6532c8a4aa7c80f138072602d4d87..8c548095f7f54a6803ce8317f89b26d0372b443b 100644 --- a/deps/npm/test/tap/locker.js +++ b/deps/npm/test/tap/locker.js @@ -1,54 +1,54 @@ -var test = require("tap").test - , path = require("path") - , fs = require("graceful-fs") - , crypto = require("crypto") - , rimraf = require("rimraf") - , osenv = require("osenv") - , mkdirp = require("mkdirp") - , npm = require("../../") - , locker = require("../../lib/utils/locker.js") - , lock = locker.lock - , unlock = locker.unlock +var test = require('tap').test +var path = require('path') +var fs = require('graceful-fs') +var crypto = require('crypto') +var rimraf = require('rimraf') +var osenv = require('osenv') +var mkdirp = require('mkdirp') +var npm = require('../../') +var locker = require('../../lib/utils/locker.js') +var lock = locker.lock +var unlock = locker.unlock -var pkg = path.join(__dirname, "/locker") - , cache = path.join(pkg, "/cache") - , tmp = path.join(pkg, "/tmp") - , nm = path.join(pkg, "/node_modules") +var pkg = path.join(__dirname, '/locker') +var cache = path.join(pkg, '/cache') +var tmp = path.join(pkg, '/tmp') +var nm = path.join(pkg, '/node_modules') function cleanup () { process.chdir(osenv.tmpdir()) rimraf.sync(pkg) } -test("setup", function (t) { +test('setup', function (t) { cleanup() mkdirp.sync(cache) mkdirp.sync(tmp) t.end() }) -test("locking file puts lock in correct place", function (t) { +test('locking file puts lock in correct place', function (t) { npm.load({cache: cache, tmpdir: tmp}, function (er) { - t.ifError(er, "npm bootstrapped OK") + t.ifError(er, 'npm bootstrapped OK') - var n = "correct" - , c = n.replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-+|-+$/g, "") - , p = path.resolve(nm, n) - , h = crypto.createHash("sha1").update(p).digest("hex") - , l = c.substr(0, 24)+"-"+h.substr(0, 16)+".lock" - , v = path.join(cache, "_locks", l) + var n = 'correct' + var c = n.replace(/[^a-zA-Z0-9]+/g, '-').replace(/^-+|-+$/g, '') + var p = path.resolve(nm, n) + var h = crypto.createHash('sha1').update(p).digest('hex') + var l = c.substr(0, 24) + '-' + h.substr(0, 16) + '.lock' + var v = path.join(cache, '_locks', l) lock(nm, n, function (er) { - t.ifError(er, "locked path") + t.ifError(er, 'locked path') fs.exists(v, function (found) { - t.ok(found, "lock found OK") + t.ok(found, 'lock found OK') unlock(nm, n, function (er) { - t.ifError(er, "unlocked path") + t.ifError(er, 'unlocked path') fs.exists(v, function (found) { - t.notOk(found, "lock deleted OK") + t.notOk(found, 'lock deleted OK') t.end() }) }) @@ -57,33 +57,33 @@ test("locking file puts lock in correct place", function (t) { }) }) -test("unlocking out of order errors out", function (t) { +test('unlocking out of order errors out', function (t) { npm.load({cache: cache, tmpdir: tmp}, function (er) { - t.ifError(er, "npm bootstrapped OK") + t.ifError(er, 'npm bootstrapped OK') - var n = "busted" - , c = n.replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-+|-+$/g, "") - , p = path.resolve(nm, n) - , h = crypto.createHash("sha1").update(p).digest("hex") - , l = c.substr(0, 24)+"-"+h.substr(0, 16)+".lock" - , v = path.join(cache, "_locks", l) + var n = 'busted' + var c = n.replace(/[^a-zA-Z0-9]+/g, '-').replace(/^-+|-+$/g, '') + var p = path.resolve(nm, n) + var h = crypto.createHash('sha1').update(p).digest('hex') + var l = c.substr(0, 24) + '-' + h.substr(0, 16) + '.lock' + var v = path.join(cache, '_locks', l) fs.exists(v, function (found) { - t.notOk(found, "no lock to unlock") + t.notOk(found, 'no lock to unlock') t.throws(function () { unlock(nm, n, function () { t.fail("shouldn't get here") t.end() }) - }, "blew up as expected") + }, 'blew up as expected') t.end() }) }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() t.end() }) diff --git a/deps/npm/test/tap/logout.js b/deps/npm/test/tap/logout.js index 1d9392ad16ae65f0287dd497f88afca6b199965d..3a62cc2737b2c1a1081701e41b2304b9f20b8cfe 100644 --- a/deps/npm/test/tap/logout.js +++ b/deps/npm/test/tap/logout.js @@ -1,58 +1,58 @@ -var fs = require("fs") -var path = require("path") +var fs = require('fs') +var path = require('path') -var mkdirp = require("mkdirp") -var mr = require("npm-registry-mock") -var rimraf = require("rimraf") -var test = require("tap").test +var mkdirp = require('mkdirp') +var mr = require('npm-registry-mock') +var rimraf = require('rimraf') +var test = require('tap').test -var common = require("../common-tap.js") +var common = require('../common-tap.js') -var pkg = path.resolve(__dirname, "logout") -var outfile = path.join(pkg, "_npmrc") +var pkg = path.resolve(__dirname, 'logout') +var outfile = path.join(pkg, '_npmrc') var opts = { cwd: pkg } var contents = function () {/* foo=boo //localhost:1337/:_authToken=glarb -*/}.toString().split("\n").slice(1, -1).join("\n") +*/}.toString().split('\n').slice(1, -1).join('\n') function mocks (server) { - server.delete("/-/user/token/glarb") + server.delete('/-/user/token/glarb') .reply(200, {}) } -test("setup", function (t) { +test('setup', function (t) { cleanup() setup() t.end() }) -test("npm logout", function (t) { +test('npm logout', function (t) { mr({ port: common.port, plugin: mocks }, function (err, s) { if (err) throw err common.npm( [ - "logout", - "--registry", common.registry, - "--loglevel", "silent", - "--userconfig", outfile + 'logout', + '--registry', common.registry, + '--loglevel', 'silent', + '--userconfig', outfile ], opts, function (err, code) { - t.ifError(err, "no error output") - t.notOk(code, "exited OK") + t.ifError(err, 'no error output') + t.notOk(code, 'exited OK') - var config = fs.readFileSync(outfile, "utf8") - t.equal(config, "foo=boo\n", "creds gone") + var config = fs.readFileSync(outfile, 'utf8') + t.equal(config, 'foo=boo\n', 'creds gone') s.close() t.end() }) }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() t.end() }) diff --git a/deps/npm/test/tap/ls-env.js b/deps/npm/test/tap/ls-env.js index 30039b5b30819fffca0ca9261a9d91d3a5971cd8..29058d9245836f7e58024796155838b7ae00e65c 100644 --- a/deps/npm/test/tap/ls-env.js +++ b/deps/npm/test/tap/ls-env.js @@ -54,6 +54,24 @@ test('npm ls --dev', function (t) { }) }) +test('npm ls --only=development', function (t) { + common.npm(['ls', '--only=development'], EXEC_OPTS, function (er, code, stdout) { + t.ifError(er, 'ls --only=development ran without issue') + t.equal(code, 0) + t.has(stdout, /(empty)/, 'output contains (empty)') + t.end() + }) +}) + +test('npm ls --only=dev', function (t) { + common.npm(['ls', '--only=dev'], EXEC_OPTS, function (er, code, stdout) { + t.ifError(er, 'ls --only=dev ran without issue') + t.equal(code, 0) + t.has(stdout, /(empty)/, 'output contains (empty)') + t.end() + }) +}) + test('npm ls --production', function (t) { common.npm(['ls', '--production'], EXEC_OPTS, function (er, code, stdout) { t.ifError(er, 'ls --production ran without issue') @@ -80,6 +98,32 @@ test('npm ls --prod', function (t) { }) }) +test('npm ls --only=production', function (t) { + common.npm(['ls', '--only=production'], EXEC_OPTS, function (er, code, stdout) { + t.ifError(er, 'ls --only=production ran without issue') + t.notOk(code, 'npm exited ok') + t.has( + stdout, + /test-package-with-one-dep@0\.0\.0/, + 'output contains test-package-with-one-dep@0.0.0' + ) + t.end() + }) +}) + +test('npm ls --only=prod', function (t) { + common.npm(['ls', '--only=prod'], EXEC_OPTS, function (er, code, stdout) { + t.ifError(er, 'ls --only=prod ran without issue') + t.notOk(code, 'npm exited ok') + t.has( + stdout, + /test-package-with-one-dep@0\.0\.0/, + 'output contains test-package-with-one-dep@0.0.0' + ) + t.end() + }) +}) + test('cleanup', function (t) { cleanup() t.end() diff --git a/deps/npm/test/tap/ls-l-depth-0.js b/deps/npm/test/tap/ls-l-depth-0.js index 3b5ae4d20234cd5f9c467c45634867f045b58baf..24fa0629087829832e1413fd0801f106a34cec43 100644 --- a/deps/npm/test/tap/ls-l-depth-0.js +++ b/deps/npm/test/tap/ls-l-depth-0.js @@ -62,7 +62,9 @@ test('#6311: npm ll --depth=0 duplicates listing', function (t) { t.notOk(stderr, 'npm install ran silently') t.equal( stdout.trim(), - 'glock@1.8.7 node_modules/glock\n└── underscore@1.5.1', + resolve(__dirname, 'ls-l-depth-0') + + '\n└─┬ glock@1.8.7 ' + + '\n └── underscore@1.5.1', 'got expected install output' ) @@ -75,7 +77,7 @@ test('#6311: npm ll --depth=0 duplicates listing', function (t) { EXEC_OPTS, function (err, code, stdout, stderr) { t.ifError(err, 'npm ll ran without error') - t.notOk(code, 'npm ll exited cleanly') + t.is(code, 0, 'npm ll exited cleanly') t.notOk(stderr, 'npm ll ran silently') t.equal( stdout, diff --git a/deps/npm/test/tap/ls-no-results.js b/deps/npm/test/tap/ls-no-results.js index 10f3ce00145c352c42540aff4a27f61269a29c4c..9792774c69b2965b93b90b85a82a14e1d896d781 100644 --- a/deps/npm/test/tap/ls-no-results.js +++ b/deps/npm/test/tap/ls-no-results.js @@ -1,11 +1,11 @@ -var test = require("tap").test -var spawn = require("child_process").spawn +var test = require('tap').test +var spawn = require('child_process').spawn var node = process.execPath -var npm = require.resolve("../../") -var args = [ npm, "ls", "ceci n’est pas une package" ] -test("ls exits non-zero when nothing found", function (t) { +var npm = require.resolve('../../') +var args = [ npm, 'ls', 'ceci n’est pas une package' ] +test('ls exits non-zero when nothing found', function (t) { var child = spawn(node, args) - child.on("exit", function (code) { + child.on('exit', function (code) { t.notEqual(code, 0) t.end() }) diff --git a/deps/npm/test/tap/ls-top-errors.js b/deps/npm/test/tap/ls-top-errors.js new file mode 100644 index 0000000000000000000000000000000000000000..69b8b299c817105f2efffabb8f7039355b1854fb --- /dev/null +++ b/deps/npm/test/tap/ls-top-errors.js @@ -0,0 +1,71 @@ +'use strict' +var fs = require('fs') +var path = require('path') + +var test = require('tap').test +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') + +var common = require('../common-tap') + +var pkg = path.resolve(__dirname, path.basename(__filename, '.js')) +var pathModA = path.join(pkg, 'node_modules', 'moduleA') +var pathModB = path.join(pkg, 'node_modules', 'moduleB') + +var modA = { + name: 'moduleA', + version: '1.0.0', + _requiredBy: [ '#USER', '/moduleB' ], + dependencies: { + moduleB: '1.0.0' + } +} +var modB = { + name: 'moduleB', + version: '1.0.0', + _requiredBy: [ '/moduleA' ], + dependencies: { + moduleA: '1.0.0' + } +} + +function setup () { + mkdirp.sync(pkg) + fs.writeFileSync( + path.join(pkg, 'package.json'), + '{broken json' + ) + mkdirp.sync(pathModA) + fs.writeFileSync( + path.join(pathModA, 'package.json'), + JSON.stringify(modA, null, 2) + ) + mkdirp.sync(pathModB) + fs.writeFileSync( + path.join(pathModB, 'package.json'), + JSON.stringify(modB, null, 2) + ) +} + +function cleanup () { + rimraf.sync(pkg) +} + +test('setup', function (t) { + cleanup() + setup() + t.end() +}) + +test('ls-top-errors', function (t) { + common.npm(['ls'], {cwd: pkg}, function (er, code, stdout, stderr) { + t.ifErr(er, 'install finished successfully') + t.match(stderr, /Failed to parse json/) + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) diff --git a/deps/npm/test/tap/nerf-dart.js b/deps/npm/test/tap/nerf-dart.js index 157f6c7dfe4b5d9829c6914e8987ff12ff5f4677..a6df7272c304afa717ccb81e44e4183feca28c7a 100644 --- a/deps/npm/test/tap/nerf-dart.js +++ b/deps/npm/test/tap/nerf-dart.js @@ -1,32 +1,32 @@ // taken from https://raw.githubusercontent.com/indexzero/npm/bd3cad01fbd3ab481d2f5da441b9eead16029123/test/tap/config-nerf-dart.js // originally written by Charlie Robbins, https://github.com/indexzero -var test = require("tap").test -var toNerfDart = require("../../lib/config/nerf-dart.js") +var test = require('tap').test +var toNerfDart = require('../../lib/config/nerf-dart.js') function validNerfDart (uri, valid) { - if (!valid) valid = "//registry.npmjs.org/" + if (!valid) valid = '//registry.npmjs.org/' test(uri, function (t) { t.equal(toNerfDart(uri), valid) t.end() }) } -validNerfDart("http://registry.npmjs.org") -validNerfDart("http://registry.npmjs.org/some-package") -validNerfDart("http://registry.npmjs.org/some-package?write=true") -validNerfDart("http://user:pass@registry.npmjs.org/some-package?write=true") -validNerfDart("http://registry.npmjs.org/#random-hash") -validNerfDart("http://registry.npmjs.org/some-package#random-hash") +validNerfDart('http://registry.npmjs.org') +validNerfDart('http://registry.npmjs.org/some-package') +validNerfDart('http://registry.npmjs.org/some-package?write=true') +validNerfDart('http://user:pass@registry.npmjs.org/some-package?write=true') +validNerfDart('http://registry.npmjs.org/#random-hash') +validNerfDart('http://registry.npmjs.org/some-package#random-hash') validNerfDart( - "http://relative.couchapp.npm/design/-/rewrite/", - "//relative.couchapp.npm/design/-/rewrite/" + 'http://relative.couchapp.npm/design/-/rewrite/', + '//relative.couchapp.npm/design/-/rewrite/' ) validNerfDart( - "http://relative.couchapp.npm:8080/design/-/rewrite/", - "//relative.couchapp.npm:8080/design/-/rewrite/" + 'http://relative.couchapp.npm:8080/design/-/rewrite/', + '//relative.couchapp.npm:8080/design/-/rewrite/' ) validNerfDart( - "http://relative.couchapp.npm:8080/design/-/rewrite/some-package", - "//relative.couchapp.npm:8080/design/-/rewrite/" + 'http://relative.couchapp.npm:8080/design/-/rewrite/some-package', + '//relative.couchapp.npm:8080/design/-/rewrite/' ) diff --git a/deps/npm/test/tap/nested-extraneous.js b/deps/npm/test/tap/nested-extraneous.js index fcba0418e6869bcdd75048e6781dfa1391e959c0..99d4bea5b9b1c58465ecd1d734da693551185ae6 100644 --- a/deps/npm/test/tap/nested-extraneous.js +++ b/deps/npm/test/tap/nested-extraneous.js @@ -1,42 +1,42 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var mkdirp = require("mkdirp") -var fs = require("fs") -var rimraf = require("rimraf") -var path = require("path") +var common = require('../common-tap.js') +var test = require('tap').test +var mkdirp = require('mkdirp') +var fs = require('fs') +var rimraf = require('rimraf') +var path = require('path') -var pkg = path.resolve(__dirname, "nested-extraneous") +var pkg = path.resolve(__dirname, 'nested-extraneous') var pj = { - name: "nested-extraneous", - version: "1.2.3" + name: 'nested-extraneous', + version: '1.2.3' } -var dep = path.resolve(pkg, "node_modules", "dep") +var dep = path.resolve(pkg, 'node_modules', 'dep') var deppj = { - name: "nested-extraneous-dep", - version: "1.2.3", + name: 'nested-extraneous-dep', + version: '1.2.3', dependencies: { - "nested-extra-depdep": "*" + 'nested-extra-depdep': '*' } } -var depdep = path.resolve(dep, "node_modules", "depdep") +var depdep = path.resolve(dep, 'node_modules', 'depdep') var depdeppj = { - name: "nested-extra-depdep", - version: "1.2.3" + name: 'nested-extra-depdep', + version: '1.2.3' } -test("setup", function (t) { +test('setup', function (t) { rimraf.sync(pkg) mkdirp.sync(depdep) - fs.writeFileSync(path.resolve(pkg, "package.json"), JSON.stringify(pj)) - fs.writeFileSync(path.resolve(dep, "package.json"), JSON.stringify(deppj)) - fs.writeFileSync(path.resolve(depdep, "package.json"), JSON.stringify(depdeppj)) + fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify(pj)) + fs.writeFileSync(path.resolve(dep, 'package.json'), JSON.stringify(deppj)) + fs.writeFileSync(path.resolve(depdep, 'package.json'), JSON.stringify(depdeppj)) t.end() }) -test("test", function (t) { - common.npm(["ls"], { +test('test', function (t) { + common.npm(['ls'], { cwd: pkg }, function (er, code, sto, ste) { if (er) throw er @@ -47,7 +47,7 @@ test("test", function (t) { }) }) -test("clean", function (t) { +test('clean', function (t) { rimraf.sync(pkg) t.end() }) diff --git a/deps/npm/test/tap/no-global-warns.js b/deps/npm/test/tap/no-global-warns.js new file mode 100644 index 0000000000000000000000000000000000000000..439388fe19c480cec68731275530106dcbe5c2f2 --- /dev/null +++ b/deps/npm/test/tap/no-global-warns.js @@ -0,0 +1,67 @@ +'use strict' +var path = require('path') +var test = require('tap').test +var mkdirp = require('mkdirp') +var osenv = require('osenv') +var rimraf = require('rimraf') +var writeFileSync = require('fs').writeFileSync +var common = require('../common-tap.js') + +var base = path.join(__dirname, path.basename(__filename, '.js')) +var mockGlobal = path.join(base, 'global') +var toInstall = path.join(base, 'to-install') + +var config = 'prefix = ' + base +var configPath = path.join(base, '_npmrc') + +var OPTS = { + env: { + 'npm_config_userconfig': configPath + } +} + +var installJSON = { + name: 'to-install', + version: '1.0.0', + description: '', + main: 'index.js', + scripts: { + test: 'echo \"Error: no test specified\" && exit 1' + }, + author: '', + license: 'ISC' +} + +test('setup', function (t) { + setup() + t.end() +}) + +test('no-global-warns', function (t) { + common.npm(['install', '-g', toInstall], OPTS, function (err, code, stdout, stderr) { + t.ifError(err, 'installed w/o error') + t.is(stderr, '', 'no warnings printed to stderr') + t.end() + }) +}) + +test('cleanup', function (t) { + process.chdir(osenv.tmpdir()) + cleanup() + t.end() +}) + +function cleanup () { + rimraf.sync(base) +} + +function setup () { + cleanup() + mkdirp.sync(mockGlobal) + mkdirp.sync(toInstall) + writeFileSync( + path.join(toInstall, 'package.json'), + JSON.stringify(installJSON, null, 2) + ) + writeFileSync(configPath, config) +} diff --git a/deps/npm/test/tap/no-scan-full-global-dir.js b/deps/npm/test/tap/no-scan-full-global-dir.js new file mode 100644 index 0000000000000000000000000000000000000000..b2863c88199acec1a0065c04040eeac12672e915 --- /dev/null +++ b/deps/npm/test/tap/no-scan-full-global-dir.js @@ -0,0 +1,100 @@ +'use strict' +var path = require('path') +var test = require('tap').test +var requireInject = require('require-inject') +var osenv = require('osenv') +var inherits = require('inherits') +var npm = require('../../lib/npm.js') + +var packages = { + test: {package: {name: 'test'}, path: __dirname, children: ['abc', 'def', 'ghi', 'jkl']}, + abc: {package: {name: 'abc'}, path: path.join(__dirname, 'node_modules', 'abc')}, + def: {package: {name: 'def'}, path: path.join(__dirname, 'node_modules', 'def')}, + ghi: {package: {name: 'ghi'}, path: path.join(__dirname, 'node_modules', 'ghi')}, + jkl: {package: {name: 'jkl'}, path: path.join(__dirname, 'node_modules', 'jkl')} +} +var dirs = {} +var files = {} +Object.keys(packages).forEach(function (name) { + dirs[path.join(packages[name].path, 'node_modules')] = packages[name].children || [] + files[path.join(packages[name].path, 'package.json')] = packages[name].package +}) + +process.chdir(osenv.tmpdir()) + +var mockReaddir = function (name, cb) { + if (dirs[name]) return cb(null, dirs[name]) + var er = new Error('No such mock: ' + name) + er.code = 'ENOENT' + cb(er) +} +var mockReadPackageJson = function (file, cb) { + if (files[file]) return cb(null, files[file]) + var er = new Error('No such mock: ' + file) + er.code = 'ENOENT' + cb(er) +} +var mockFs = { + realpath: function (dir, cb) { + return cb(null, dir) + } +} + +test('setup', function (t) { + npm.load(function () { + t.pass('npm loaded') + t.end() + }) +}) + +function loadArgMetadata (cb) { + this.args = this.args.map(function (arg) { return {name: arg} }) + cb() +} + +test('installer', function (t) { + t.plan(1) + var installer = requireInject('../../lib/install.js', { + 'fs': mockFs, + 'readdir-scoped-modules': mockReaddir, + 'read-package-json': mockReadPackageJson + }) + + var Installer = installer.Installer + var TestInstaller = function () { + Installer.apply(this, arguments) + this.global = true + } + inherits(TestInstaller, Installer) + TestInstaller.prototype.loadArgMetadata = loadArgMetadata + + var inst = new TestInstaller(__dirname, false, ['def', 'abc']) + inst.loadCurrentTree(function () { + var kids = inst.currentTree.children.map(function (child) { return child.package.name }) + t.isDeeply(kids, ['abc', 'def']) + t.end() + }) +}) + +test('uninstaller', function (t) { + t.plan(1) + var uninstaller = requireInject('../../lib/uninstall.js', { + 'fs': mockFs, + 'readdir-scoped-modules': mockReaddir, + 'read-package-json': mockReadPackageJson + }) + + var Uninstaller = uninstaller.Uninstaller + var TestUninstaller = function () { + Uninstaller.apply(this, arguments) + this.global = true + } + inherits(TestUninstaller, Uninstaller) + + var uninst = new TestUninstaller(__dirname, false, ['ghi', 'jkl']) + uninst.loadCurrentTree(function () { + var kids = uninst.currentTree.children.map(function (child) { return child.package.name }) + t.isDeeply(kids, ['ghi', 'jkl']) + t.end() + }) +}) diff --git a/deps/npm/test/tap/noargs-install-config-save.js b/deps/npm/test/tap/noargs-install-config-save.js index b6900b431740d239527d5c743746fcc1339212a8..7b13f3bdc458134b3dcd8ac73c69c5f02f2826b3 100644 --- a/deps/npm/test/tap/noargs-install-config-save.js +++ b/deps/npm/test/tap/noargs-install-config-save.js @@ -1,46 +1,47 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var npm = require.resolve("../../bin/npm-cli.js") -var path = require("path") -var fs = require("fs") -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") +var common = require('../common-tap.js') +var test = require('tap').test +var npm = require.resolve('../../bin/npm-cli.js') +var path = require('path') +var fs = require('fs') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') -var mr = require("npm-registry-mock") +var mr = require('npm-registry-mock') -var spawn = require("child_process").spawn +var spawn = require('child_process').spawn var node = process.execPath -var pkg = path.resolve(process.env.npm_config_tmp || "/tmp", - "noargs-install-config-save") +var pkg = path.resolve(process.env.npm_config_tmp || '/tmp', + 'noargs-install-config-save') -function writePackageJson() { +function writePackageJson () { rimraf.sync(pkg) mkdirp.sync(pkg) - mkdirp.sync(pkg + "/cache") + mkdirp.sync(pkg + '/cache') - fs.writeFileSync(pkg + "/package.json", JSON.stringify({ - "author": "Rocko Artischocko", - "name": "noargs", - "version": "0.0.0", - "devDependencies": { - "underscore": "1.3.1" + fs.writeFileSync(pkg + '/package.json', JSON.stringify({ + 'author': 'Rocko Artischocko', + 'name': 'noargs', + 'version': '0.0.0', + 'devDependencies': { + 'underscore': '1.3.1' } - }), "utf8") + }), 'utf8') } function createChild (args) { var env = { - "npm_config_save": true, - "npm_config_registry": common.registry, - "npm_config_cache": pkg + "/cache", + 'npm_config_save': true, + 'npm_config_registry': common.registry, + 'npm_config_cache': pkg + '/cache', HOME: process.env.HOME, Path: process.env.PATH, PATH: process.env.PATH } - if (process.platform === "win32") - env.npm_config_cache = "%APPDATA%\\npm-cache" + if (process.platform === 'win32') { + env.npm_config_cache = '%APPDATA%\\npm-cache' + } return spawn(node, args, { cwd: pkg, @@ -48,35 +49,35 @@ function createChild (args) { }) } -test("does not update the package.json with empty arguments", function (t) { +test('does not update the package.json with empty arguments', function (t) { writePackageJson() t.plan(1) - mr({port : common.port}, function (er, s) { - var child = createChild([npm, "install"]) - child.on("close", function () { - var text = JSON.stringify(fs.readFileSync(pkg + "/package.json", "utf8")) + mr({ port: common.port }, function (er, s) { + var child = createChild([npm, 'install']) + child.on('close', function () { + var text = JSON.stringify(fs.readFileSync(pkg + '/package.json', 'utf8')) s.close() - t.ok(text.indexOf("\"dependencies") === -1) + t.equal(text.indexOf('"dependencies'), -1, 'dependencies do not exist in file') }) }) }) -test("updates the package.json (adds dependencies) with an argument", function (t) { +test('updates the package.json (adds dependencies) with an argument', function (t) { writePackageJson() t.plan(1) - mr({port : common.port}, function (er, s) { - var child = createChild([npm, "install", "underscore"]) - child.on("close", function () { + mr({ port: common.port }, function (er, s) { + var child = createChild([npm, 'install', 'underscore']) + child.on('close', function () { s.close() - var text = JSON.stringify(fs.readFileSync(pkg + "/package.json", "utf8")) - t.ok(text.indexOf("\"dependencies") !== -1) + var text = JSON.stringify(fs.readFileSync(pkg + '/package.json', 'utf8')) + t.notEqual(text.indexOf('"dependencies'), -1, 'dependencies exist in file') }) }) }) -test("cleanup", function (t) { - rimraf.sync(pkg + "/cache") +test('cleanup', function (t) { + rimraf.sync(pkg + '/cache') t.end() }) diff --git a/deps/npm/test/tap/normalize-package-explode.js b/deps/npm/test/tap/normalize-package-explode.js new file mode 100644 index 0000000000000000000000000000000000000000..57faec8b60250d4d0dbc840cac1d6746fe6454ef --- /dev/null +++ b/deps/npm/test/tap/normalize-package-explode.js @@ -0,0 +1,26 @@ +'use strict' +var test = require('tap').test +var log = require('npmlog') +var npm = require('../../lib/npm.js') + +var idealTree = { + package: { + name: 'a b c', + version: '3.what' + }, + children: [], + warnings: [] +} + +test('setup', function (t) { + npm.load({}, t.end) +}) + +test('validate-tree', function (t) { + log.disableProgress() + var validateTree = require('../../lib/install/validate-tree.js') + validateTree(idealTree, log.newGroup('validate'), function (er) { + t.pass("we didn't crash") + t.end() + }) +}) diff --git a/deps/npm/test/tap/npm-api-not-loaded-error.js b/deps/npm/test/tap/npm-api-not-loaded-error.js index afedfbcd076f50df860231952fa55dcc791cf649..48b71e5213a7c8e8de81eac1d0e168b3cad72953 100644 --- a/deps/npm/test/tap/npm-api-not-loaded-error.js +++ b/deps/npm/test/tap/npm-api-not-loaded-error.js @@ -1,47 +1,47 @@ -var test = require("tap").test -var npm = require("../..") -var path = require("path") -var rimraf = require("rimraf") -var npmrc = path.join(__dirname, "npmrc") -var fs = require("fs") +var test = require('tap').test +var npm = require('../..') +var path = require('path') +var rimraf = require('rimraf') +var npmrc = path.join(__dirname, 'npmrc') +var fs = require('fs') -test("setup", function (t) { - fs.writeFileSync(npmrc, "foo = bar\n", "ascii") +test('setup', function (t) { + fs.writeFileSync(npmrc, 'foo = bar\n', 'ascii') t.end() }) -test("calling set/get on config pre-load should throw", function (t) { +test('calling set/get on config pre-load should throw', function (t) { var threw = true try { - npm.config.get("foo") + npm.config.get('foo') threw = false } catch (er) { - t.equal(er.message, "npm.load() required") + t.equal(er.message, 'npm.load() required') } finally { - t.ok(threw, "get before load should throw") + t.ok(threw, 'get before load should throw') } threw = true try { - npm.config.set("foo", "bar") + npm.config.set('foo', 'bar') threw = false } catch (er) { - t.equal(er.message, "npm.load() required") + t.equal(er.message, 'npm.load() required') } finally { - t.ok(threw, "set before load should throw") + t.ok(threw, 'set before load should throw') } npm.load({ userconfig: npmrc }, function (er) { - if (er) - throw er - t.equal(npm.config.get("foo"), "bar") - npm.config.set("foo", "baz") - t.equal(npm.config.get("foo"), "baz") + if (er) throw er + + t.equal(npm.config.get('foo'), 'bar') + npm.config.set('foo', 'baz') + t.equal(npm.config.get('foo'), 'baz') t.end() }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { rimraf.sync(npmrc) t.end() }) diff --git a/deps/npm/test/tap/optional-metadep-rollback-collision.js b/deps/npm/test/tap/optional-metadep-rollback-collision.js index 4b21f965ed12fcd80a6a63c34a9efb0efbbccc45..d5116f30fc32cf18cf8d538b8c70217e74d19815 100644 --- a/deps/npm/test/tap/optional-metadep-rollback-collision.js +++ b/deps/npm/test/tap/optional-metadep-rollback-collision.js @@ -10,7 +10,7 @@ var common = require('../common-tap.js') var pkg = path.resolve(__dirname, 'optional-metadep-rollback-collision') var deps = path.resolve(pkg, 'deps') -var nm = path.resolve(pkg, 'node_modules') +var opdep = path.resolve(pkg, 'node_modules', 'opdep') var cache = path.resolve(pkg, 'cache') var pidfile = path.resolve(pkg, 'child.pid') @@ -49,7 +49,7 @@ var d2 = { } } -var opdep = { +var opdep_json = { name: 'opdep', version: '1.0.0', description: 'To explode, of course!', @@ -63,7 +63,6 @@ var opdep = { } } - var badServer = function () {/* var createServer = require('http').createServer var spawn = require('child_process').spawn @@ -179,7 +178,7 @@ test('setup', function (t) { mkdirp.sync(path.join(deps, 'opdep')) fs.writeFileSync( path.join(deps, 'opdep', 'package.json'), - JSON.stringify(opdep, null, 2) + JSON.stringify(opdep_json, null, 2) ) fs.writeFileSync(path.join(deps, 'opdep', 'bad-server.js'), badServer) @@ -205,9 +204,12 @@ test('go go test racer', function (t) { }, function (er, code, stdout, stderr) { t.ifError(er, 'install ran to completion without error') - t.notOk(code, 'npm install exited with code 0') + t.is(code, 0, 'npm install exited with code 0') + t.is(stderr, '') - t.equal(stdout, 'ok\nok\n') + // stdout should be empty, because we only have one, optional, dep and + // if it fails we shouldn't try installing anything + t.equal(stdout, '') t.notOk(/not ok/.test(stdout), 'should not contain the string \'not ok\'') t.end() } @@ -216,7 +218,7 @@ test('go go test racer', function (t) { test('verify results', function (t) { t.throws(function () { - fs.statSync(nm) + fs.statSync(opdep) }) t.end() }) diff --git a/deps/npm/test/tap/outdated-depth-deep.js b/deps/npm/test/tap/outdated-depth-deep.js index c208669b377877b6d73a178289d8147dee7803ca..c39e029aaec2f62e2e921b7212e16268ea887efe 100644 --- a/deps/npm/test/tap/outdated-depth-deep.js +++ b/deps/npm/test/tap/outdated-depth-deep.js @@ -1,26 +1,26 @@ -var common = require("../common-tap") - , path = require("path") - , test = require("tap").test - , rimraf = require("rimraf") - , npm = require("../../") - , mr = require("npm-registry-mock") - , pkg = path.resolve(__dirname, "outdated-depth-deep") - , cache = path.resolve(pkg, "cache") +var common = require('../common-tap') +var path = require('path') +var test = require('tap').test +var rimraf = require('rimraf') +var npm = require('../../') +var mr = require('npm-registry-mock') +var pkg = path.resolve(__dirname, 'outdated-depth-deep') +var cache = path.resolve(pkg, 'cache') -var osenv = require("osenv") -var mkdirp = require("mkdirp") -var fs = require("fs") +var osenv = require('osenv') +var mkdirp = require('mkdirp') +var fs = require('fs') var pj = JSON.stringify({ - "name": "whatever", - "description": "yeah idk", - "version": "1.2.3", - "main": "index.js", - "dependencies": { - "underscore": "1.3.1", - "npm-test-peer-deps": "0.0.0" + 'name': 'whatever', + 'description': 'yeah idk', + 'version': '1.2.3', + 'main': 'index.js', + 'dependencies': { + 'underscore': '1.3.1', + 'npm-test-peer-deps': '0.0.0' }, - "repository": "git://github.com/luk-/whatever" + 'repository': 'git://github.com/luk-/whatever' }, null, 2) function cleanup () { @@ -31,33 +31,35 @@ function cleanup () { function setup () { mkdirp.sync(pkg) process.chdir(pkg) - fs.writeFileSync(path.resolve(pkg, "package.json"), pj) + fs.writeFileSync(path.resolve(pkg, 'package.json'), pj) } -test("setup", function (t) { +test('setup', function (t) { cleanup() setup() t.end() }) -test("outdated depth deep (9999)", function (t) { - var underscoreOutdated = ["underscore", "1.3.1", "1.3.1", "1.5.1", "1.3.1"] - var childPkg = path.resolve(pkg, "node_modules", "npm-test-peer-deps") +test('outdated depth deep (9999)', function (t) { + var underscoreOutdated = ['underscore', '1.3.1', '1.3.1', '1.5.1', '1.3.1'] + var childPkg = path.resolve(pkg, 'node_modules', 'npm-test-peer-deps') - var expected = [ [pkg].concat(underscoreOutdated), - [childPkg].concat(underscoreOutdated) ] + var expected = [ [childPkg].concat(underscoreOutdated).concat([null]), + [pkg].concat(underscoreOutdated).concat([null]) ] process.chdir(pkg) - mr({port : common.port}, function (er, s) { + mr({ port: common.port }, function (er, s) { npm.load({ - cache: cache - , loglevel: "silent" - , registry: common.registry - , depth: 9999 - } - , function () { - npm.install(".", function (er) { + cache: cache, + loglevel: 'silent', + registry: common.registry, + depth: 9999 + }, + function () { + npm.install('.', function (er) { + if (er) throw new Error(er) + npm.explore('npm-test-peer-deps', 'npm', 'install', 'underscore', function (er) { if (er) throw new Error(er) npm.outdated(function (err, d) { if (err) throw new Error(err) @@ -66,13 +68,12 @@ test("outdated depth deep (9999)", function (t) { t.end() }) }) - } - ) + }) + }) }) }) - -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() t.end() }) diff --git a/deps/npm/test/tap/outdated-depth-integer.js b/deps/npm/test/tap/outdated-depth-integer.js index 485e84e30f263155ec9e1b10dacddc134f6aa740..ddd2dd7c35f7bb37e534bb9a16f1862d02e76a43 100644 --- a/deps/npm/test/tap/outdated-depth-integer.js +++ b/deps/npm/test/tap/outdated-depth-integer.js @@ -1,24 +1,24 @@ var common = require('../common-tap') - , test = require('tap').test - , rimraf = require('rimraf') - , npm = require('../../') - , mr = require('npm-registry-mock') - , pkg = __dirname + '/outdated-depth-integer' +var test = require('tap').test +var rimraf = require('rimraf') +var npm = require('../../') +var mr = require('npm-registry-mock') +var pkg = __dirname + '/outdated-depth-integer' -var osenv = require("osenv") -var mkdirp = require("mkdirp") -var fs = require("fs") +var osenv = require('osenv') +var mkdirp = require('mkdirp') +var fs = require('fs') var pj = JSON.stringify({ - "name": "whatever", - "description": "yeah idk", - "version": "1.2.3", - "main": "index.js", - "dependencies": { - "underscore": "1.3.1" + 'name': 'whatever', + 'description': 'yeah idk', + 'version': '1.2.3', + 'main': 'index.js', + 'dependencies': { + 'underscore': '1.3.1' }, - "repository": "git://github.com/luk-/whatever" -}, null, 2); + 'repository': 'git://github.com/luk-/whatever' +}, null, 2) function cleanup () { process.chdir(osenv.tmpdir()) @@ -28,10 +28,10 @@ function cleanup () { function setup () { mkdirp.sync(pkg) process.chdir(pkg) - fs.writeFileSync("package.json", pj) + fs.writeFileSync('package.json', pj) } -test("setup", function (t) { +test('setup', function (t) { cleanup() setup() t.end() @@ -46,15 +46,16 @@ test('outdated depth integer', function (t) { undefined, // no version installed '1.3.1', // wanted '1.5.1', // latest - '1.3.1' + '1.3.1', + null ]] - mr({port : common.port}, function (er, s) { + mr({ port: common.port }, function (er, s) { npm.load({ - cache: pkg + '/cache' - , loglevel: 'silent' - , registry: common.registry - , depth: 5 + cache: pkg + '/cache', + loglevel: 'silent', + registry: common.registry, + depth: 5 } , function () { npm.install('request@0.9.0', function (er) { @@ -71,7 +72,7 @@ test('outdated depth integer', function (t) { }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() t.end() }) diff --git a/deps/npm/test/tap/outdated-depth.js b/deps/npm/test/tap/outdated-depth.js index 2f06127917446df5b8b077bfe4e28d358b6c3882..13220dfa7bf6cbace577bc5f3a896056b9c27ae9 100644 --- a/deps/npm/test/tap/outdated-depth.js +++ b/deps/npm/test/tap/outdated-depth.js @@ -40,7 +40,8 @@ test('outdated depth zero', function (t) { '1.3.1', '1.3.1', '1.5.1', - '1.3.1' + '1.3.1', + null ] mr({ port: common.port }, function (er, s) { diff --git a/deps/npm/test/tap/outdated-git.js b/deps/npm/test/tap/outdated-git.js index 2162c743c142eb9da9e0c8f498485027d81e8e5c..1a61a0c4d2719f322469cbd7710d8e66875b76dd 100644 --- a/deps/npm/test/tap/outdated-git.js +++ b/deps/npm/test/tap/outdated-git.js @@ -2,7 +2,7 @@ var path = require('path') var test = require('tap').test var mkdirp = require('mkdirp') -var fs = require("graceful-fs") +var fs = require('graceful-fs') var rimraf = require('rimraf') var common = require('../common-tap.js') diff --git a/deps/npm/test/tap/outdated-local.js b/deps/npm/test/tap/outdated-local.js index f9b8af4420f861ef47ec057985111dd39f81d0d1..067696ca903510c576767452ad40be486802dcfd 100644 --- a/deps/npm/test/tap/outdated-local.js +++ b/deps/npm/test/tap/outdated-local.js @@ -65,7 +65,6 @@ var pjLocalOptimistBumped = JSON.stringify({ version: '0.5.0' }, null, 2) + '\n' - function mocks (server) { server.get('/local-module') .reply(404) diff --git a/deps/npm/test/tap/outdated-notarget.js b/deps/npm/test/tap/outdated-notarget.js index 6058ddee422fccabf0e9acde25c95eaff2554bb7..5fd2b0634d2d21a5128cee9cba67762b7cff0908 100644 --- a/deps/npm/test/tap/outdated-notarget.js +++ b/deps/npm/test/tap/outdated-notarget.js @@ -1,23 +1,23 @@ // Fixes Issue #1770 -var common = require("../common-tap.js") -var test = require("tap").test -var npm = require("../../") -var osenv = require("osenv") -var path = require("path") -var fs = require("fs") -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") -var pkg = path.resolve(__dirname, "outdated-notarget") -var cache = path.resolve(pkg, "cache") -var mr = require("npm-registry-mock") +var common = require('../common-tap.js') +var test = require('tap').test +var npm = require('../../') +var osenv = require('osenv') +var path = require('path') +var fs = require('fs') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var pkg = path.resolve(__dirname, 'outdated-notarget') +var cache = path.resolve(pkg, 'cache') +var mr = require('npm-registry-mock') -test("outdated-target: if no viable version is found, show error", function (t) { +test('outdated-target: if no viable version is found, show error', function (t) { t.plan(1) setup() - mr({port : common.port}, function (er, s) { + mr({ port: common.port }, function (er, s) { npm.load({ cache: cache, registry: common.registry}, function () { npm.commands.update(function (er) { - t.equal(er.code, "ETARGET") + t.equal(er.code, 'ETARGET') s.close() t.end() }) @@ -25,23 +25,23 @@ test("outdated-target: if no viable version is found, show error", function (t) }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { process.chdir(osenv.tmpdir()) rimraf.sync(pkg) t.end() }) -function setup() { +function setup () { mkdirp.sync(pkg) mkdirp.sync(cache) - fs.writeFileSync(path.resolve(pkg, "package.json"), JSON.stringify({ - author: "Evan Lucas", - name: "outdated-notarget", - version: "0.0.0", - description: "Test for outdated-target", + fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ + author: 'Evan Lucas', + name: 'outdated-notarget', + version: '0.0.0', + description: 'Test for outdated-target', dependencies: { - underscore: "~199.7.1" + underscore: '~199.7.1' } - }), "utf8") + }), 'utf8') process.chdir(pkg) } diff --git a/deps/npm/test/tap/outdated-private.js b/deps/npm/test/tap/outdated-private.js index 882d7d9479cf4c14f21abdd6206d96c71461ff3b..1d5e460c6eab6c4fef3f597b45145a9c57ee6540 100644 --- a/deps/npm/test/tap/outdated-private.js +++ b/deps/npm/test/tap/outdated-private.js @@ -1,79 +1,80 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var npm = require("../../") -var rimraf = require("rimraf") -var path = require("path") -var mr = require("npm-registry-mock") -var osenv = require("osenv") -var mkdirp = require("mkdirp") -var fs = require("graceful-fs") +var common = require('../common-tap.js') +var test = require('tap').test +var npm = require('../../') +var rimraf = require('rimraf') +var path = require('path') +var mr = require('npm-registry-mock') +var osenv = require('osenv') +var mkdirp = require('mkdirp') +var fs = require('graceful-fs') -var pkg = path.resolve(__dirname, "outdated-private") -var pkgLocalPrivate = path.resolve(pkg, "local-private") -var pkgScopedLocalPrivate = path.resolve(pkg, "another-local-private") -var pkgLocalUnderscore = path.resolve(pkg, "underscore") +var pkg = path.resolve(__dirname, 'outdated-private') +var pkgLocalPrivate = path.resolve(pkg, 'local-private') +var pkgScopedLocalPrivate = path.resolve(pkg, 'another-local-private') +var pkgLocalUnderscore = path.resolve(pkg, 'underscore') var pjParent = JSON.stringify({ - name : "outdated-private", - version : "1.0.0", - dependencies : { - "local-private" : "file:local-private", - "@scoped/another-local-private" : "file:another-local-private", - "underscore" : "file:underscore" + name: 'outdated-private', + version: '1.0.0', + dependencies: { + 'local-private': 'file:local-private', + '@scoped/another-local-private': 'file:another-local-private', + 'underscore': 'file:underscore' } -}, null, 2) + "\n" +}, null, 2) + '\n' var pjLocalPrivate = JSON.stringify({ - name : "local-private", - version : "1.0.0", - private : true -}, null, 2) + "\n" + name: 'local-private', + version: '1.0.0', + 'private': true +}, null, 2) + '\n' var pjLocalPrivateBumped = JSON.stringify({ - name : "local-private", - version : "1.1.0", - private : true -}, null, 2) + "\n" + name: 'local-private', + version: '1.1.0', + 'private': true +}, null, 2) + '\n' var pjScopedLocalPrivate = JSON.stringify({ - name : "@scoped/another-local-private", - version : "1.0.0", - private : true -}, null, 2) + "\n" + name: '@scoped/another-local-private', + version: '1.0.0', + 'private': true +}, null, 2) + '\n' var pjLocalUnderscore = JSON.stringify({ - name : "underscore", - version : "1.3.1" -}, null, 2) + "\n" + name: 'underscore', + version: '1.3.1' +}, null, 2) + '\n' -test("setup", function (t) { +test('setup', function (t) { bootstrap() t.end() }) -test("outdated ignores private modules", function (t) { +test('outdated ignores private modules', function (t) { t.plan(3) process.chdir(pkg) - mr({ port : common.port }, function (err, s) { + mr({ port: common.port }, function (er, s) { npm.load( { - loglevel : "silent", - parseable : true, - registry : common.registry + loglevel: 'silent', + parseable: true, + registry: common.registry }, function () { - npm.install(".", function (err) { - t.ifError(err, "install success") + npm.install('.', function (err) { + t.ifError(err, 'install success') bumpLocalPrivate() npm.outdated(function (er, d) { - t.ifError(er, "outdated success") + t.ifError(er, 'outdated success') t.deepEqual(d, [[ - path.resolve(__dirname, "outdated-private"), - "underscore", - "1.3.1", - "1.5.1", - "1.5.1", - "underscore@1.5.1" + path.resolve(__dirname, 'outdated-private'), + 'underscore', + '1.3.1', + '1.5.1', + '1.5.1', + 'underscore@1.5.1', + null ]]) s.close() }) @@ -83,27 +84,27 @@ test("outdated ignores private modules", function (t) { }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() t.end() }) function bootstrap () { mkdirp.sync(pkg) - fs.writeFileSync(path.resolve(pkg, "package.json"), pjParent) + fs.writeFileSync(path.resolve(pkg, 'package.json'), pjParent) mkdirp.sync(pkgLocalPrivate) - fs.writeFileSync(path.resolve(pkgLocalPrivate, "package.json"), pjLocalPrivate) + fs.writeFileSync(path.resolve(pkgLocalPrivate, 'package.json'), pjLocalPrivate) mkdirp.sync(pkgScopedLocalPrivate) - fs.writeFileSync(path.resolve(pkgScopedLocalPrivate, "package.json"), pjScopedLocalPrivate) + fs.writeFileSync(path.resolve(pkgScopedLocalPrivate, 'package.json'), pjScopedLocalPrivate) mkdirp.sync(pkgLocalUnderscore) - fs.writeFileSync(path.resolve(pkgLocalUnderscore, "package.json"), pjLocalUnderscore) + fs.writeFileSync(path.resolve(pkgLocalUnderscore, 'package.json'), pjLocalUnderscore) } function bumpLocalPrivate () { - fs.writeFileSync(path.resolve(pkgLocalPrivate, "package.json"), pjLocalPrivateBumped) + fs.writeFileSync(path.resolve(pkgLocalPrivate, 'package.json'), pjLocalPrivateBumped) } function cleanup () { diff --git a/deps/npm/test/tap/outdated.js b/deps/npm/test/tap/outdated.js index 146c2007a373309d81c9b1a37c355f65fac63d9a..c5ce8d182f476d10baea2a49ef231cc7b994abeb 100644 --- a/deps/npm/test/tap/outdated.js +++ b/deps/npm/test/tap/outdated.js @@ -64,7 +64,8 @@ test('it should not throw', function (t) { '0.2.9', '0.2.9', '0.2.10', - '0.2.9' + '0.2.9', + null ], [ pkg, @@ -72,7 +73,8 @@ test('it should not throw', function (t) { '0.5.1', '0.5.1', '0.5.2', - '0.5.1' + '0.5.1', + null ], [ pkg, @@ -80,7 +82,8 @@ test('it should not throw', function (t) { '1.3.1', '1.3.1', '1.5.1', - '1.3.1' + '1.3.1', + null ] ] diff --git a/deps/npm/test/tap/owner.js b/deps/npm/test/tap/owner.js index 938c2166572c394ef12ee7fba7e7f02332f38a80..4bef1a0d87b2596066b73bcad15579ba9a43a2ad 100644 --- a/deps/npm/test/tap/owner.js +++ b/deps/npm/test/tap/owner.js @@ -1,79 +1,79 @@ -var mr = require("npm-registry-mock") -var test = require("tap").test +var mr = require('npm-registry-mock') +var test = require('tap').test -var common = require("../common-tap.js") +var common = require('../common-tap.js') var server var EXEC_OPTS = {} var jashkenas = { - name : "jashkenas", - email : "jashkenas@gmail.com" + name: 'jashkenas', + email: 'jashkenas@gmail.com' } var othiym23 = { - name : "othiym23", - email : "forrest@npmjs.com" + name: 'othiym23', + email: 'forrest@npmjs.com' } var bcoe = { - name : "bcoe", - email : "ben@npmjs.com" + name: 'bcoe', + email: 'ben@npmjs.com' } function shrt (user) { - return user.name+" <"+user.email+">\n" + return user.name + ' <' + user.email + '>\n' } function mocks (server) { - server.get("/-/user/org.couchdb.user:othiym23") + server.get('/-/user/org.couchdb.user:othiym23') .many().reply(200, othiym23) // test 1 - server.get("/underscore") - .reply(200, {_id:"underscore",_rev:1,maintainers:[jashkenas]}) + server.get('/underscore') + .reply(200, { _id: 'underscore', _rev: 1, maintainers: [jashkenas] }) server.put( - "/underscore/-rev/1", - {_id:"underscore",_rev:1,maintainers:[jashkenas,othiym23]}, + '/underscore/-rev/1', + { _id: 'underscore', _rev: 1, maintainers: [jashkenas, othiym23] }, {} - ).reply(200, {_id:"underscore",_rev:2,maintainers:[jashkenas,othiym23]}) + ).reply(200, { _id: 'underscore', _rev: 2, maintainers: [jashkenas, othiym23] }) // test 2 - server.get("/@xxx%2fscoped") - .reply(200, {_id:"@xxx/scoped",_rev:1,maintainers:[bcoe]}) + server.get('/@xxx%2fscoped') + .reply(200, { _id: '@xxx/scoped', _rev: 1, maintainers: [bcoe] }) server.put( - "/@xxx%2fscoped/-rev/1", - {_id:"@xxx/scoped",_rev:1,maintainers:[bcoe,othiym23]}, + '/@xxx%2fscoped/-rev/1', + { _id: '@xxx/scoped', _rev: 1, maintainers: [bcoe, othiym23] }, {} - ).reply(200, {_id:"@xxx/scoped",_rev:2,maintainers:[bcoe,othiym23]}) + ).reply(200, { _id: '@xxx/scoped', _rev: 2, maintainers: [bcoe, othiym23] }) // test 3 - server.get("/underscore") - .reply(200, {_id:"underscore",_rev:2,maintainers:[jashkenas,othiym23]}) + server.get('/underscore') + .reply(200, { _id: 'underscore', _rev: 2, maintainers: [jashkenas, othiym23] }) // test 4 - server.get("/underscore") - .reply(200, {_id:"underscore",_rev:2,maintainers:[jashkenas,othiym23]}) + server.get('/underscore') + .reply(200, { _id: 'underscore', _rev: 2, maintainers: [jashkenas, othiym23] }) server.put( - "/underscore/-rev/2", - {_id:"underscore",_rev:2,maintainers:[jashkenas]}, + '/underscore/-rev/2', + { _id: 'underscore', _rev: 2, maintainers: [jashkenas] }, {} - ).reply(200, {_id:"underscore",_rev:3,maintainers:[jashkenas]}) + ).reply(200, { _id: 'underscore', _rev: 3, maintainers: [jashkenas] }) } -test("setup", function (t) { +test('setup', function (t) { common.npm( [ - "--loglevel", "silent", - "cache", "clean" + '--loglevel', 'silent', + 'cache', 'clean' ], EXEC_OPTS, function (err, code) { - t.ifError(err, "npm cache clean ran without error") - t.notOk(code, "npm cache clean exited cleanly") + t.ifError(err, 'npm cache clean ran without error') + t.notOk(code, 'npm cache clean exited cleanly') - mr({ port : common.port, plugin : mocks }, function (err, s) { + mr({ port: common.port, plugin: mocks }, function (er, s) { server = s t.end() }) @@ -81,83 +81,83 @@ test("setup", function (t) { ) }) -test("npm owner add", function (t) { +test('npm owner add', function (t) { common.npm( [ - "--loglevel", "silent", - "--registry", common.registry, - "owner", "add", "othiym23", "underscore" + '--loglevel', 'silent', + '--registry', common.registry, + 'owner', 'add', 'othiym23', 'underscore' ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, "npm owner add ran without error") - t.notOk(code, "npm owner add exited cleanly") - t.notOk(stderr, "npm owner add ran silently") - t.equal(stdout, "+ othiym23 (underscore)\n", "got expected add output") + t.ifError(err, 'npm owner add ran without error') + t.notOk(code, 'npm owner add exited cleanly') + t.notOk(stderr, 'npm owner add ran silently') + t.equal(stdout, '+ othiym23 (underscore)\n', 'got expected add output') t.end() } ) }) -test("npm owner add (scoped)", function (t) { +test('npm owner add (scoped)', function (t) { common.npm( [ - "--loglevel", "silent", - "--registry", common.registry, - "owner", "add", "othiym23", "@xxx/scoped" + '--loglevel', 'silent', + '--registry', common.registry, + 'owner', 'add', 'othiym23', '@xxx/scoped' ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, "npm owner add (scoped) ran without error") - t.notOk(code, "npm owner add (scoped) exited cleanly") - t.notOk(stderr, "npm owner add (scoped) ran silently") - t.equal(stdout, "+ othiym23 (@xxx/scoped)\n", "got expected scoped add output") + t.ifError(err, 'npm owner add (scoped) ran without error') + t.notOk(code, 'npm owner add (scoped) exited cleanly') + t.notOk(stderr, 'npm owner add (scoped) ran silently') + t.equal(stdout, '+ othiym23 (@xxx/scoped)\n', 'got expected scoped add output') t.end() } ) }) -test("npm owner ls", function (t) { +test('npm owner ls', function (t) { common.npm( [ - "--loglevel", "silent", - "--registry", common.registry, - "owner", "ls", "underscore" + '--loglevel', 'silent', + '--registry', common.registry, + 'owner', 'ls', 'underscore' ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, "npm owner ls ran without error") - t.notOk(code, "npm owner ls exited cleanly") - t.notOk(stderr, "npm owner ls ran silently") - t.equal(stdout, shrt(jashkenas)+shrt(othiym23), "got expected ls output") + t.ifError(err, 'npm owner ls ran without error') + t.notOk(code, 'npm owner ls exited cleanly') + t.notOk(stderr, 'npm owner ls ran silently') + t.equal(stdout, shrt(jashkenas) + shrt(othiym23), 'got expected ls output') t.end() } ) }) -test("npm owner rm", function (t) { +test('npm owner rm', function (t) { common.npm( [ - "--loglevel", "silent", - "--registry", common.registry, - "owner", "rm", "othiym23", "underscore" + '--loglevel', 'silent', + '--registry', common.registry, + 'owner', 'rm', 'othiym23', 'underscore' ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, "npm owner rm ran without error") - t.notOk(code, "npm owner rm exited cleanly") - t.notOk(stderr, "npm owner rm ran silently") - t.equal(stdout, "- othiym23 (underscore)\n", "got expected rm output") + t.ifError(err, 'npm owner rm ran without error') + t.notOk(code, 'npm owner rm exited cleanly') + t.notOk(stderr, 'npm owner rm ran silently') + t.equal(stdout, '- othiym23 (underscore)\n', 'got expected rm output') t.end() } ) }) -test("cleanup", function (t) { +test('cleanup', function (t) { server.close() t.end() }) diff --git a/deps/npm/test/tap/pack-scoped.js b/deps/npm/test/tap/pack-scoped.js index 5c351339cb61c693bbdfa8978e8f36192bb2ca01..05b9d12a8331927886b5873039c8139c16a66134 100644 --- a/deps/npm/test/tap/pack-scoped.js +++ b/deps/npm/test/tap/pack-scoped.js @@ -1,29 +1,29 @@ // verify that prepublish runs on pack and publish -var test = require("tap").test -var common = require("../common-tap") -var fs = require("graceful-fs") -var join = require("path").join -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") +var test = require('tap').test +var common = require('../common-tap') +var fs = require('graceful-fs') +var join = require('path').join +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') -var pkg = join(__dirname, "scoped_package") -var manifest = join(pkg, "package.json") -var tmp = join(pkg, "tmp") -var cache = join(pkg, "cache") +var pkg = join(__dirname, 'scoped_package') +var manifest = join(pkg, 'package.json') +var tmp = join(pkg, 'tmp') +var cache = join(pkg, 'cache') var data = { - name : "@scope/generic-package", - version : "90000.100001.5" + name: '@scope/generic-package', + version: '90000.100001.5' } -test("setup", function (t) { +test('setup', function (t) { var n = 0 rimraf.sync(pkg) - mkdirp(pkg, then()) + mkdirp(pkg, then()) mkdirp(cache, then()) - mkdirp(tmp, then()) + mkdirp(tmp, then()) function then () { n++ @@ -34,23 +34,23 @@ test("setup", function (t) { } function next () { - fs.writeFile(manifest, JSON.stringify(data), "ascii", done) + fs.writeFile(manifest, JSON.stringify(data), 'ascii', done) } function done (er) { t.ifError(er) - t.pass("setup done") + t.pass('setup done') t.end() } }) -test("test", function (t) { +test('test', function (t) { var env = { - "npm_config_cache" : cache, - "npm_config_tmp" : tmp, - "npm_config_prefix" : pkg, - "npm_config_global" : "false" + 'npm_config_cache': cache, + 'npm_config_tmp': tmp, + 'npm_config_prefix': pkg, + 'npm_config_global': 'false' } for (var i in process.env) { @@ -58,24 +58,24 @@ test("test", function (t) { } common.npm([ - "pack", - "--loglevel", "warn" + 'pack', + '--loglevel', 'warn' ], { cwd: pkg, env: env - }, function(err, code, stdout, stderr) { - t.ifErr(err, "npm pack finished without error") - t.equal(code, 0, "npm pack exited ok") - t.notOk(stderr, "got stderr data: " + JSON.stringify("" + stderr)) + }, function (err, code, stdout, stderr) { + t.ifErr(err, 'npm pack finished without error') + t.equal(code, 0, 'npm pack exited ok') + t.notOk(stderr, 'got stderr data: ' + JSON.stringify('' + stderr)) stdout = stdout.trim() - var regex = new RegExp("scope-generic-package-90000.100001.5.tgz", "ig") - t.ok(stdout.match(regex), "found package") + var regex = new RegExp('scope-generic-package-90000.100001.5.tgz', 'ig') + t.ok(stdout.match(regex), 'found package') t.end() }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { rimraf.sync(pkg) - t.pass("cleaned up") + t.pass('cleaned up') t.end() }) diff --git a/deps/npm/test/tap/peer-deps-invalid.js b/deps/npm/test/tap/peer-deps-invalid.js index 453f9617f38e343783e1cb314115bbbca9ab5234..39ad612e5a9bef51c0ce21290cfa9c4601ade4ef 100644 --- a/deps/npm/test/tap/peer-deps-invalid.js +++ b/deps/npm/test/tap/peer-deps-invalid.js @@ -69,25 +69,23 @@ test('installing dependencies that have conflicting peerDependencies', function '/invalid.js': [200, path.join(pkg, 'file-fail.js')] } } - mr({port: common.port, mocks: customMocks}, function (err, s) { // create mock registry. + mr({port: common.port, mocks: customMocks}, function (err, s) { t.ifError(err, 'mock registry started') - npm.load({ - cache: pkg + "/cache", - registry: common.registry - }, function () { - npm.commands.install([], function (err) { - if (!err) { - t.fail("No error!") - } else { - t.equal(err.code, "EPEERINVALID") - t.equal(err.packageName, "underscore") - t.equal(err.packageVersion, "1.3.3") - t.equal(err.message, "The package underscore@1.3.3 does not satisfy its siblings' peerDependencies requirements!") - } - s.close() // shutdown mock registry. - t.end() - }) - }) + npm.load( + { + cache: cache, + registry: common.registry + }, + function () { + npm.commands.install([], function (err, additions, tree) { + t.error(err) + var invalid = tree.warnings.filter(function (warning) { return warning.code === 'EPEERINVALID' }) + t.is(invalid.length, 2) + s.close() + t.end() + }) + } + ) }) }) diff --git a/deps/npm/test/tap/peer-deps-toplevel.js b/deps/npm/test/tap/peer-deps-toplevel.js index 5b5e29b06ea99119edc69af238f7de7e72940971..61c3ecb0d747b313b067e43f54139c5da280511a 100644 --- a/deps/npm/test/tap/peer-deps-toplevel.js +++ b/deps/npm/test/tap/peer-deps-toplevel.js @@ -15,6 +15,10 @@ var pkg = path.resolve(__dirname, 'peer-deps-toplevel') var expected = { name: 'npm-test-peer-deps-toplevel', version: '0.0.0', + problems: [ + 'peer dep missing: mkdirp@*, required by npm-test-peer-deps-toplevel@0.0.0', + 'peer dep missing: request@0.9.x, required by npm-test-peer-deps@0.0.0' + ], dependencies: { 'npm-test-peer-deps': { version: '0.0.0', @@ -29,14 +33,28 @@ var expected = { } }, mkdirp: { - version: '0.3.5', - from: 'mkdirp@*', - resolved: common.registry + '/mkdirp/-/mkdirp-0.3.5.tgz' + peerMissing: true, + required: { + _id: 'mkdirp@*', + name: 'mkdirp', + version: '*', + peerMissing: [ + {requiredBy: 'npm-test-peer-deps-toplevel@0.0.0', requires: 'mkdirp@*'} + ], + dependencies: {} + } }, request: { - version: '0.9.5', - from: 'request@>=0.9.0 <0.10.0', - resolved: common.registry + '/request/-/request-0.9.5.tgz' + peerMissing: true, + required: { + _id: 'request@0.9.x', + dependencies: {}, + name: 'request', + peerMissing: [ + {requiredBy: 'npm-test-peer-deps@0.0.0', requires: 'request@0.9.x'} + ], + version: '0.9.x' + } } } } diff --git a/deps/npm/test/tap/peer-deps-without-package-json.js b/deps/npm/test/tap/peer-deps-without-package-json.js index 08322eefaa503501f5ce2c4333d072b79f068f53..ad863e9f974f31b0fb34668164f996f227bfb312 100644 --- a/deps/npm/test/tap/peer-deps-without-package-json.js +++ b/deps/npm/test/tap/peer-deps-without-package-json.js @@ -51,17 +51,15 @@ test('installing a peerDeps-using package without package.json', function (t) { registry: common.registry, cache: cache }, function () { - npm.install(common.registry + '/ok.js', function (err) { + npm.install(common.registry + '/ok.js', function (err, additions, result) { t.ifError(err, 'installed ok.js') t.ok( fs.existsSync(path.join(nodeModules, 'npm-test-peer-deps-file')), 'passive peer dep installed' ) - t.ok( - fs.existsSync(path.join(nodeModules, 'underscore')), - 'underscore installed' - ) + var invalid = result.warnings.filter(function (warning) { return warning.code === 'EPEERINVALID' }) + t.is(invalid.length, 1, 'got a warning for a missing/invalid peer dep') t.end() s.close() // shutdown mock registry. diff --git a/deps/npm/test/tap/peer-deps.js b/deps/npm/test/tap/peer-deps.js index 48023d7ac77ccab2894320fad7617f2586a1a711..7116e428b49b785cf8143b63e7bbafcf8686beef 100644 --- a/deps/npm/test/tap/peer-deps.js +++ b/deps/npm/test/tap/peer-deps.js @@ -12,29 +12,7 @@ var npm = npm = require('../../') var pkg = path.resolve(__dirname, 'peer-deps') -var expected = { - name: 'npm-test-peer-deps-installer', - version: '0.0.0', - dependencies: { - 'npm-test-peer-deps': { - version: '0.0.0', - from: 'npm-test-peer-deps@*', - resolved: common.registry + '/npm-test-peer-deps/-/npm-test-peer-deps-0.0.0.tgz', - dependencies: { - underscore: { - version: '1.3.1', - from: 'underscore@1.3.1', - resolved: common.registry + '/underscore/-/underscore-1.3.1.tgz' - } - } - }, - request: { - version: '0.9.5', - from: 'request@>=0.9.0 <0.10.0', - resolved: common.registry + '/request/-/request-0.9.5.tgz' - } - } -} +var expected = [ 'peer dep missing: request@0.9.x, required by npm-test-peer-deps@0.0.0' ] var json = { author: 'Domenic Denicola', @@ -56,7 +34,7 @@ test('installs the peer dependency directory structure', function (t) { npm.commands.ls([], true, function (err, _, results) { if (err) return t.fail(err) - t.deepEqual(results, expected) + t.deepEqual(results.problems, expected) s.close() t.end() }) diff --git a/deps/npm/test/tap/prepublish.js b/deps/npm/test/tap/prepublish.js index 36391beeb340facceaec4b63506eb7bc8d9cf94d..f065a656a9c167df78df2bbc54e05259b7dc5f90 100644 --- a/deps/npm/test/tap/prepublish.js +++ b/deps/npm/test/tap/prepublish.js @@ -1,16 +1,16 @@ // verify that prepublish runs on pack and publish -var common = require("../common-tap") -var test = require("tap").test -var fs = require("graceful-fs") -var join = require("path").join -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") +var common = require('../common-tap') +var test = require('tap').test +var fs = require('graceful-fs') +var join = require('path').join +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') -var pkg = join(__dirname, "prepublish_package") -var tmp = join(pkg, "tmp") -var cache = join(pkg, "cache") +var pkg = join(__dirname, 'prepublish_package') +var tmp = join(pkg, 'tmp') +var cache = join(pkg, 'cache') -test("setup", function (t) { +test('setup', function (t) { var n = 0 cleanup() mkdirp(pkg, then()) @@ -25,58 +25,60 @@ test("setup", function (t) { } function next () { - fs.writeFile(join(pkg, "package.json"), JSON.stringify({ - name: "npm-test-prepublish", - version: "1.2.5", - scripts: { prepublish: "echo ok" } - }), "ascii", function (er) { + fs.writeFile(join(pkg, 'package.json'), JSON.stringify({ + name: 'npm-test-prepublish', + version: '1.2.5', + scripts: { prepublish: 'echo ok' } + }), 'ascii', function (er) { if (er) throw er - t.pass("setup done") + t.pass('setup done') t.end() }) } }) -test("test", function (t) { +test('test', function (t) { var env = { - "npm_config_cache" : cache, - "npm_config_tmp" : tmp, - "npm_config_prefix" : pkg, - "npm_config_global" : "false" + 'npm_config_cache': cache, + 'npm_config_tmp': tmp, + 'npm_config_prefix': pkg, + 'npm_config_global': 'false' } + for (var i in process.env) { - if (!/^npm_config_/.test(i)) + if (!/^npm_config_/.test(i)) { env[i] = process.env[i] + } } common.npm([ - "pack", - "--loglevel", "warn" - ], { cwd: pkg, env: env }, function(err, code, stdout, stderr) { - t.equal(code, 0, "pack finished successfully") - t.ifErr(err, "pack finished successfully") + 'pack', + '--loglevel', 'warn' + ], { cwd: pkg, env: env }, function (err, code, stdout, stderr) { + t.equal(code, 0, 'pack finished successfully') + t.ifErr(err, 'pack finished successfully') - t.notOk(stderr, "got stderr data:" + JSON.stringify("" + stderr)) + t.notOk(stderr, 'got stderr data:' + JSON.stringify('' + stderr)) var c = stdout.trim() - var regex = new RegExp("" + - "> npm-test-prepublish@1.2.5 prepublish [^\\r\\n]+\\r?\\n" + - "> echo ok\\r?\\n" + - "\\r?\\n" + - "ok\\r?\\n" + - "npm-test-prepublish-1.2.5.tgz", "ig") + var regex = new RegExp('' + + '> npm-test-prepublish@1.2.5 prepublish [^\\r\\n]+\\r?\\n' + + '> echo ok\\r?\\n' + + '\\r?\\n' + + 'ok\\r?\\n' + + 'npm-test-prepublish-1.2.5.tgz', 'ig') t.ok(c.match(regex)) t.end() }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() - t.pass("cleaned up") + t.pass('cleaned up') t.end() }) -function cleanup() { +function cleanup () { rimraf.sync(pkg) } diff --git a/deps/npm/test/tap/progress-config.js b/deps/npm/test/tap/progress-config.js new file mode 100644 index 0000000000000000000000000000000000000000..4b6f806dd3fccb4ae19517cd9221ce26276f36fa --- /dev/null +++ b/deps/npm/test/tap/progress-config.js @@ -0,0 +1,56 @@ +'use strict' +var test = require('tap').test +var log = require('npmlog') + +// We use requireInject to get a fresh copy of +// the npm singleton each time we require it. +// If we didn't, we'd have shared state between +// these various tests. +var requireInject = require('require-inject') + +// Make sure existing environment vars don't muck up the test +process.env = {} + +test('disabled', function (t) { + t.plan(1) + var npm = requireInject('../../lib/npm.js', {}) + npm.load({progress: false}, function () { + t.is(log.progressEnabled, false, 'should be disabled') + }) +}) + +test('enabled', function (t) { + t.plan(1) + var npm = requireInject('../../lib/npm.js', {}) + npm.load({progress: true}, function () { + t.is(log.progressEnabled, true, 'should be enabled') + }) +}) + +test('default', function (t) { + t.plan(1) + var npm = requireInject('../../lib/npm.js', {}) + npm.load({}, function () { + t.is(log.progressEnabled, true, 'should be enabled') + }) +}) + +test('default-travis', function (t) { + t.plan(1) + global.process.env.TRAVIS = 'true' + var npm = requireInject('../../lib/npm.js', {}) + npm.load({}, function () { + t.is(log.progressEnabled, false, 'should be disabled') + delete global.process.env.TRAVIS + }) +}) + +test('default-ci', function (t) { + t.plan(1) + global.process.env.CI = 'true' + var npm = requireInject('../../lib/npm.js', {}) + npm.load({}, function () { + t.is(log.progressEnabled, false, 'should be disabled') + delete global.process.env.CI + }) +}) diff --git a/deps/npm/test/tap/publish-access-scoped.js b/deps/npm/test/tap/publish-access-scoped.js index e734ebfd78319319203511e71b452121ca359225..adc67a48e3a6829dc60eb3461c82b6143349e2dc 100644 --- a/deps/npm/test/tap/publish-access-scoped.js +++ b/deps/npm/test/tap/publish-access-scoped.js @@ -1,15 +1,15 @@ -var fs = require("fs") -var path = require("path") +var fs = require('fs') +var path = require('path') -var test = require("tap").test -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var nock = require("nock") +var test = require('tap').test +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var nock = require('nock') -var npm = require("../../") -var common = require("../common-tap.js") +var npm = require('../../') +var common = require('../common-tap.js') -var pkg = path.join(__dirname, "publish-access") +var pkg = path.join(__dirname, 'publish-access') // TODO: nock uses setImmediate, breaks 0.8: replace with mockRegistry if (!global.setImmediate) { @@ -19,46 +19,46 @@ if (!global.setImmediate) { } } -test("setup", function (t) { - mkdirp(path.join(pkg, "cache"), function () { +test('setup', function (t) { + mkdirp(path.join(pkg, 'cache'), function () { var configuration = { - cache : path.join(pkg, "cache"), - loglevel : "silent", - registry : common.registry + cache: path.join(pkg, 'cache'), + loglevel: 'silent', + registry: common.registry } npm.load(configuration, next) }) function next (er) { - t.ifError(er, "npm loaded successfully") + t.ifError(er, 'npm loaded successfully') process.chdir(pkg) fs.writeFile( - path.join(pkg, "package.json"), + path.join(pkg, 'package.json'), JSON.stringify({ - name: "@bigco/publish-access", - version: "1.2.5" + name: '@bigco/publish-access', + version: '1.2.5' }), - "ascii", + 'ascii', function (er) { t.ifError(er) - t.pass("setup done") + t.pass('setup done') t.end() } ) } }) -test("scoped packages pass public access if set", function (t) { +test('scoped packages pass public access if set', function (t) { var put = nock(common.registry) - .put("/@bigco%2fpublish-access") + .put('/@bigco%2fpublish-access') .reply(201, verify) - npm.config.set("access", "public") + npm.config.set('access', 'public') npm.commands.publish([], false, function (er) { - t.ifError(er, "published without error") + t.ifError(er, 'published without error') put.done() t.end() @@ -67,14 +67,14 @@ test("scoped packages pass public access if set", function (t) { function verify (_, body) { t.doesNotThrow(function () { var parsed = JSON.parse(body) - t.equal(parsed.access, "public", "access level is correct") - }, "converted body back into object") + t.equal(parsed.access, 'public', 'access level is correct') + }, 'converted body back into object') return {ok: true} } }) -test("cleanup", function (t) { +test('cleanup', function (t) { process.chdir(__dirname) rimraf(pkg, function (er) { t.ifError(er) diff --git a/deps/npm/test/tap/publish-access-unscoped-restricted-fails.js b/deps/npm/test/tap/publish-access-unscoped-restricted-fails.js index 4d39b00b16702de5179b0bdee323ed4071969591..b9753993840c3c24d27e5df4b8e56ddd0db5c2ad 100644 --- a/deps/npm/test/tap/publish-access-unscoped-restricted-fails.js +++ b/deps/npm/test/tap/publish-access-unscoped-restricted-fails.js @@ -1,14 +1,14 @@ -var fs = require("fs") -var path = require("path") +var fs = require('fs') +var path = require('path') -var test = require("tap").test -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") +var test = require('tap').test +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') -var npm = require("../../") -var common = require("../common-tap.js") +var npm = require('../../') +var common = require('../common-tap.js') -var pkg = path.join(__dirname, "publish-access-unscoped") +var pkg = path.join(__dirname, 'publish-access-unscoped') // TODO: nock uses setImmediate, breaks 0.8: replace with mockRegistry if (!global.setImmediate) { @@ -18,49 +18,49 @@ if (!global.setImmediate) { } } -test("setup", function (t) { - mkdirp(path.join(pkg, "cache"), function () { +test('setup', function (t) { + mkdirp(path.join(pkg, 'cache'), function () { var configuration = { - cache : path.join(pkg, "cache"), - loglevel : "silent", - registry : common.registry + cache: path.join(pkg, 'cache'), + loglevel: 'silent', + registry: common.registry } npm.load(configuration, next) }) function next (er) { - t.ifError(er, "npm loaded successfully") + t.ifError(er, 'npm loaded successfully') process.chdir(pkg) fs.writeFile( - path.join(pkg, "package.json"), + path.join(pkg, 'package.json'), JSON.stringify({ - name: "publish-access", - version: "1.2.5" + name: 'publish-access', + version: '1.2.5' }), - "ascii", + 'ascii', function (er) { t.ifError(er) - t.pass("setup done") + t.pass('setup done') t.end() } ) } }) -test("unscoped packages cannot be restricted", function (t) { - npm.config.set("access", "restricted") +test('unscoped packages cannot be restricted', function (t) { + npm.config.set('access', 'restricted') npm.commands.publish([], false, function (er) { - t.ok(er, "got an error back") + t.ok(er, 'got an error back') t.equal(er.message, "Can't restrict access to unscoped packages.") t.end() }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { process.chdir(__dirname) rimraf(pkg, function (er) { t.ifError(er) diff --git a/deps/npm/test/tap/publish-access-unscoped.js b/deps/npm/test/tap/publish-access-unscoped.js index 023bfba5f2dd825df518bc53d6f3cfbfc3b9e618..48b12ed521ebd678d00f1f383e636652b795308b 100644 --- a/deps/npm/test/tap/publish-access-unscoped.js +++ b/deps/npm/test/tap/publish-access-unscoped.js @@ -1,15 +1,15 @@ -var fs = require("fs") -var path = require("path") +var fs = require('fs') +var path = require('path') -var test = require("tap").test -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var nock = require("nock") +var test = require('tap').test +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var nock = require('nock') -var npm = require("../../") -var common = require("../common-tap.js") +var npm = require('../../') +var common = require('../common-tap.js') -var pkg = path.join(__dirname, "publish-access-unscoped") +var pkg = path.join(__dirname, 'publish-access-unscoped') // TODO: nock uses setImmediate, breaks 0.8: replace with mockRegistry if (!global.setImmediate) { @@ -19,46 +19,46 @@ if (!global.setImmediate) { } } -test("setup", function (t) { - mkdirp(path.join(pkg, "cache"), function () { +test('setup', function (t) { + mkdirp(path.join(pkg, 'cache'), function () { var configuration = { - cache : path.join(pkg, "cache"), - loglevel : "silent", - registry : common.registry + cache: path.join(pkg, 'cache'), + loglevel: 'silent', + registry: common.registry } npm.load(configuration, next) }) function next (er) { - t.ifError(er, "npm loaded successfully") + t.ifError(er, 'npm loaded successfully') process.chdir(pkg) fs.writeFile( - path.join(pkg, "package.json"), + path.join(pkg, 'package.json'), JSON.stringify({ - name: "publish-access", - version: "1.2.5" + name: 'publish-access', + version: '1.2.5' }), - "ascii", + 'ascii', function (er) { t.ifError(er) - t.pass("setup done") + t.pass('setup done') t.end() } ) } }) -test("unscoped packages can be explicitly set as public", function (t) { +test('unscoped packages can be explicitly set as public', function (t) { var put = nock(common.registry) - .put("/publish-access") + .put('/publish-access') .reply(201, verify) - npm.config.set("access", "public") + npm.config.set('access', 'public') npm.commands.publish([], false, function (er) { - t.ifError(er, "published without error") + t.ifError(er, 'published without error') put.done() t.end() @@ -67,14 +67,14 @@ test("unscoped packages can be explicitly set as public", function (t) { function verify (_, body) { t.doesNotThrow(function () { var parsed = JSON.parse(body) - t.equal(parsed.access, "public", "access level is correct") - }, "converted body back into object") + t.equal(parsed.access, 'public', 'access level is correct') + }, 'converted body back into object') return {ok: true} } }) -test("cleanup", function (t) { +test('cleanup', function (t) { process.chdir(__dirname) rimraf(pkg, function (er) { t.ifError(er) diff --git a/deps/npm/test/tap/publish-config.js b/deps/npm/test/tap/publish-config.js index 1d063535b84987edb63c841d33530eb3f1c7d82e..57070f78ba4c59fd19404853de64d03fde815644 100644 --- a/deps/npm/test/tap/publish-config.js +++ b/deps/npm/test/tap/publish-config.js @@ -1,37 +1,37 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var fs = require("fs") -var osenv = require("osenv") -var pkg = process.env.npm_config_tmp || "/tmp" -pkg += "/npm-test-publish-config" +var common = require('../common-tap.js') +var test = require('tap').test +var fs = require('fs') +var osenv = require('osenv') +var pkg = process.env.npm_config_tmp || '/tmp' +pkg += '/npm-test-publish-config' -require("mkdirp").sync(pkg) +require('mkdirp').sync(pkg) -fs.writeFileSync(pkg + "/package.json", JSON.stringify({ - name: "npm-test-publish-config", - version: "1.2.3", +fs.writeFileSync(pkg + '/package.json', JSON.stringify({ + name: 'npm-test-publish-config', + version: '1.2.3', publishConfig: { registry: common.registry } -}), "utf8") +}), 'utf8') -fs.writeFileSync(pkg + "/fixture_npmrc", - "//localhost:1337/:email = fancy@feast.net\n" + - "//localhost:1337/:username = fancy\n" + - "//localhost:1337/:_password = " + new Buffer("feast").toString("base64") + "\n" + - "registry = http://localhost:1337/") +fs.writeFileSync(pkg + '/fixture_npmrc', + '//localhost:1337/:email = fancy@feast.net\n' + + '//localhost:1337/:username = fancy\n' + + '//localhost:1337/:_password = ' + new Buffer('feast').toString('base64') + '\n' + + 'registry = http://localhost:1337/') test(function (t) { var child t.plan(4) - require("http").createServer(function (req, res) { - t.pass("got request on the fakey fake registry") + require('http').createServer(function (req, res) { + t.pass('got request on the fakey fake registry') this.close() res.statusCode = 500 res.end(JSON.stringify({ - error: "sshhh. naptime nao. \\^O^/ <(YAWWWWN!)" + error: 'sshhh. naptime nao. \\^O^/ <(YAWWWWN!)' })) child.kill('SIGHUP') }).listen(common.port, function () { - t.pass("server is listening") + t.pass('server is listening') // don't much care about listening to the child's results // just wanna make sure it hits the server we just set up. @@ -40,20 +40,20 @@ test(function (t) { // itself functions normally. // // Make sure that we don't sit around waiting for lock files - child = common.npm(["publish", "--userconfig=" + pkg + "/fixture_npmrc"], { + child = common.npm(['publish', '--userconfig=' + pkg + '/fixture_npmrc'], { cwd: pkg, - stdio: "inherit", + stdio: 'inherit', env: { - "npm_config_cache_lock_stale": 1000, - "npm_config_cache_lock_wait": 1000, + 'npm_config_cache_lock_stale': 1000, + 'npm_config_cache_lock_wait': 1000, HOME: process.env.HOME, Path: process.env.PATH, PATH: process.env.PATH, USERPROFILE: osenv.home() } }, function (err, code) { - t.ifError(err, "publish command finished successfully") - t.notOk(code, "npm install exited with code 0") + t.ifError(err, 'publish command finished successfully') + t.notOk(code, 'npm install exited with code 0') }) }) }) diff --git a/deps/npm/test/tap/publish-scoped.js b/deps/npm/test/tap/publish-scoped.js index f74ca2e6160f60c26ae49e5abedd8d88ce72640b..eb14ae5049d611fbe6e54e4193708517cd28005c 100644 --- a/deps/npm/test/tap/publish-scoped.js +++ b/deps/npm/test/tap/publish-scoped.js @@ -1,60 +1,60 @@ -var fs = require("fs") -var path = require("path") +var fs = require('fs') +var path = require('path') -var test = require("tap").test -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var nock = require("nock") +var test = require('tap').test +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var nock = require('nock') -var npm = require("../../") -var common = require("../common-tap.js") +var npm = require('../../') +var common = require('../common-tap.js') -var pkg = path.join(__dirname, "prepublish_package") +var pkg = path.join(__dirname, 'prepublish_package') -test("setup", function (t) { - mkdirp(path.join(pkg, "cache"), next) +test('setup', function (t) { + mkdirp(path.join(pkg, 'cache'), next) function next () { process.chdir(pkg) fs.writeFile( - path.join(pkg, "package.json"), + path.join(pkg, 'package.json'), JSON.stringify({ - name: "@bigco/publish-organized", - version: "1.2.5" + name: '@bigco/publish-organized', + version: '1.2.5' }), - "ascii", + 'ascii', function (er) { t.ifError(er) - t.pass("setup done") + t.pass('setup done') t.end() } ) } }) -test("npm publish should honor scoping", function (t) { +test('npm publish should honor scoping', function (t) { var put = nock(common.registry) - .put("/@bigco%2fpublish-organized") + .put('/@bigco%2fpublish-organized') .reply(201, verify) var configuration = { - cache : path.join(pkg, "cache"), - loglevel : "silent", - registry : "http://nonexistent.lvh.me", - "//localhost:1337/:username" : "username", - "//localhost:1337/:_password" : new Buffer("password").toString("base64"), - "//localhost:1337/:email" : "ogd@aoaioxxysz.net" + cache: path.join(pkg, 'cache'), + loglevel: 'silent', + registry: 'http://nonexistent.lvh.me', + '//localhost:1337/:username': 'username', + '//localhost:1337/:_password': new Buffer('password').toString('base64'), + '//localhost:1337/:email': 'ogd@aoaioxxysz.net' } npm.load(configuration, onload) function onload (er) { - t.ifError(er, "npm bootstrapped successfully") + t.ifError(er, 'npm bootstrapped successfully') - npm.config.set("@bigco:registry", common.registry) + npm.config.set('@bigco:registry', common.registry) npm.commands.publish([], false, function (er) { - t.ifError(er, "published without error") + t.ifError(er, 'published without error') put.done() @@ -65,25 +65,25 @@ test("npm publish should honor scoping", function (t) { function verify (_, body) { t.doesNotThrow(function () { var parsed = JSON.parse(body) - var current = parsed.versions["1.2.5"] + var current = parsed.versions['1.2.5'] t.equal( current._npmVersion, - require(path.resolve(__dirname, "../../package.json")).version, - "npm version is correct" + require(path.resolve(__dirname, '../../package.json')).version, + 'npm version is correct' ) t.equal( current._nodeVersion, process.versions.node, - "node version is correct" + 'node version is correct' ) - }, "converted body back into object") + }, 'converted body back into object') return {ok: true} } }) -test("cleanup", function (t) { +test('cleanup', function (t) { process.chdir(__dirname) rimraf(pkg, function (er) { t.ifError(er) diff --git a/deps/npm/test/tap/pwd-prefix.js b/deps/npm/test/tap/pwd-prefix.js index 237096e0a2c2a6ba4325dd1cecbdd867fb29cecb..1b59f5c838cc8558fb12bffeb1a34a8b062eb06f 100644 --- a/deps/npm/test/tap/pwd-prefix.js +++ b/deps/npm/test/tap/pwd-prefix.js @@ -2,31 +2,31 @@ // thing when the cwd is where package.json is, and when // the package.json is one level up. -var test = require("tap").test -var common = require("../common-tap.js") -var path = require("path") -var root = path.resolve(__dirname, "../..") -var lib = path.resolve(root, "lib") -var commands = ["run", "version"] +var test = require('tap').test +var common = require('../common-tap.js') +var path = require('path') +var root = path.resolve(__dirname, '../..') +var lib = path.resolve(root, 'lib') +var commands = ['run', 'version'] commands.forEach(function (cmd) { // Should get the same stdout and stderr each time var stdout, stderr - test(cmd + " in root", function (t) { + test(cmd + ' in root', function (t) { common.npm([cmd], {cwd: root}, function (er, code, so, se) { if (er) throw er - t.notOk(code, "npm " + cmd + " exited with code 0") + t.notOk(code, 'npm ' + cmd + ' exited with code 0') stdout = so stderr = se t.end() }) }) - test(cmd + " in lib", function (t) { + test(cmd + ' in lib', function (t) { common.npm([cmd], {cwd: lib}, function (er, code, so, se) { if (er) throw er - t.notOk(code, "npm " + cmd + " exited with code 0") + t.notOk(code, 'npm ' + cmd + ' exited with code 0') t.equal(so, stdout) t.equal(se, stderr) t.end() diff --git a/deps/npm/test/tap/referer.js b/deps/npm/test/tap/referer.js index c1b173d9765969a8010df5fafbbf9f574dd8242d..8c3dbed72c319db89ad45d08d00c8daa69d21ba9 100644 --- a/deps/npm/test/tap/referer.js +++ b/deps/npm/test/tap/referer.js @@ -1,16 +1,16 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var http = require("http") +var common = require('../common-tap.js') +var test = require('tap').test +var http = require('http') -test("should send referer http header", function (t) { +test('should send referer http header', function (t) { http.createServer(function (q, s) { - t.equal(q.headers.referer, "install foo") + t.equal(q.headers.referer, 'install foo') s.statusCode = 404 - s.end(JSON.stringify({error: "whatever"})) + s.end(JSON.stringify({error: 'whatever'})) this.close() }).listen(common.port, function () { - var reg = "http://localhost:" + common.port - var args = [ "install", "foo", "--registry", reg ] + var reg = 'http://localhost:' + common.port + var args = [ 'install', 'foo', '--registry', reg ] common.npm(args, {}, function (er, code) { if (er) { throw er diff --git a/deps/npm/test/tap/registry.js b/deps/npm/test/tap/registry.js index 060d9b67b67fccfc7d445b0492a92f31423de72f..7ff4075bf23bf090104017c4671ab2aea0455c82 100644 --- a/deps/npm/test/tap/registry.js +++ b/deps/npm/test/tap/registry.js @@ -1,34 +1,31 @@ // Run all the tests in the `npm-registry-couchapp` suite // This verifies that the server-side stuff still works. -var common = require("../common-tap") -var test = require("tap").test +var common = require('../common-tap') +var test = require('tap').test -var npmExec = require.resolve("../../bin/npm-cli.js") -var path = require("path") -var ca = path.resolve(__dirname, "../../node_modules/npm-registry-couchapp") +var npmExec = require.resolve('../../bin/npm-cli.js') +var path = require('path') +var ca = path.resolve(__dirname, '../../node_modules/npm-registry-couchapp') -var which = require("which") +var which = require('which') -var v = process.versions.node.split(".").map(function (n) { return parseInt(n, 10) }) +var v = process.versions.node.split('.').map(function (n) { return parseInt(n, 10) }) if (v[0] === 0 && v[1] < 10) { console.error( - "WARNING: need a recent Node for npm-registry-couchapp tests to run, have", + 'WARNING: need a recent Node for npm-registry-couchapp tests to run, have', process.versions.node ) -} -else { - which("couchdb", function (er) { +} else { + which('couchdb', function (er) { if (er) { - console.error("WARNING: need couch to run test: " + er.message) - } - else { + console.error('WARNING: need couch to run test: ' + er.message) + } else { runTests() } }) } - function runTests () { var env = { TAP: 1 } for (var i in process.env) env[i] = process.env[i] @@ -36,13 +33,13 @@ function runTests () { var opts = { cwd: ca, - stdio: "inherit" + stdio: 'inherit' } - common.npm(["install"], opts, function (err, code) { + common.npm(['install'], opts, function (err, code) { if (err) { throw err } if (code) { - return test("need install to work", function (t) { - t.fail("install failed with: " + code) + return test('need install to work', function (t) { + t.fail('install failed with: ' + code) t.end() }) @@ -50,22 +47,22 @@ function runTests () { opts = { cwd: ca, env: env, - stdio: "inherit" + stdio: 'inherit' } - common.npm(["test", "--", "-Rtap"], opts, function (err, code) { + common.npm(['test', '--', '-Rtap'], opts, function (err, code) { if (err) { throw err } if (code) { - return test("need test to work", function (t) { - t.fail("test failed with: " + code) + return test('need test to work', function (t) { + t.fail('test failed with: ' + code) t.end() }) } opts = { cwd: ca, env: env, - stdio: "inherit" + stdio: 'inherit' } - common.npm(["prune", "--production"], opts, function (err, code) { + common.npm(['prune', '--production'], opts, function (err, code) { if (err) { throw err } process.exit(code || 0) }) diff --git a/deps/npm/test/tap/repo.js b/deps/npm/test/tap/repo.js index 565842b9a61625d7b5e4921beb5f287dfafbb324..292415705ef4f2fa261c1cc4903f86dc5eb8b57e 100644 --- a/deps/npm/test/tap/repo.js +++ b/deps/npm/test/tap/repo.js @@ -1,76 +1,75 @@ -if (process.platform === "win32") { - console.error("skipping test, because windows and shebangs") - return +if (process.platform === 'win32') { + console.error('skipping test, because windows and shebangs') + process.exit(0) } -var common = require("../common-tap.js") -var mr = require("npm-registry-mock") +var common = require('../common-tap.js') +var mr = require('npm-registry-mock') -var test = require("tap").test -var npm = require.resolve("../../bin/npm-cli.js") -var node = process.execPath -var rimraf = require("rimraf") -var spawn = require("child_process").spawn -var fs = require("fs") +var test = require('tap').test +var rimraf = require('rimraf') +var fs = require('fs') var path = require('path') var outFile = path.join(__dirname, '/_output') var opts = { cwd: __dirname } -test("setup", function (t) { - var s = "#!/usr/bin/env bash\n" + - "echo \"$@\" > " + JSON.stringify(__dirname) + "/_output\n" - fs.writeFileSync(__dirname + "/_script.sh", s, "ascii") - fs.chmodSync(__dirname + "/_script.sh", "0755") - t.pass("made script") +test('setup', function (t) { + var s = '#!/usr/bin/env bash\n' + + 'echo \"$@\" > ' + JSON.stringify(__dirname) + '/_output\n' + fs.writeFileSync(__dirname + '/_script.sh', s, 'ascii') + fs.chmodSync(__dirname + '/_script.sh', '0755') + t.pass('made script') t.end() }) -test("npm repo underscore", function (t) { - mr({port : common.port}, function (er, s) { +test('npm repo underscore', function (t) { + mr({ port: common.port }, function (er, s) { common.npm([ 'repo', 'underscore', '--registry=' + common.registry, '--loglevel=silent', '--browser=' + __dirname + '/_script.sh' ], opts, function (err, code, stdout, stderr) { + t.ifError(err, 'repo command ran without error') t.equal(code, 0, 'exit ok') var res = fs.readFileSync(outFile, 'ascii') s.close() - t.equal(res, "https://github.com/jashkenas/underscore\n") + t.equal(res, 'https://github.com/jashkenas/underscore\n') rimraf.sync(outFile) t.end() }) }) }) - test('npm repo optimist - github (https://)', function (t) { - mr({port : common.port}, function (er, s) { + mr({ port: common.port }, function (er, s) { common.npm([ 'repo', 'optimist', '--registry=' + common.registry, '--loglevel=silent', '--browser=' + __dirname + '/_script.sh' ], opts, function (err, code, stdout, stderr) { + t.ifError(err, 'repo command ran without error') t.equal(code, 0, 'exit ok') var res = fs.readFileSync(outFile, 'ascii') s.close() - t.equal(res, "https://github.com/substack/node-optimist\n") + t.equal(res, 'https://github.com/substack/node-optimist\n') rimraf.sync(outFile) t.end() }) }) }) -test("npm repo npm-test-peer-deps - no repo", function (t) { - mr({port : common.port}, function (er, s) { +test('npm repo npm-test-peer-deps - no repo', function (t) { + mr({ port: common.port }, function (er, s) { common.npm([ 'repo', 'npm-test-peer-deps', '--registry=' + common.registry, '--loglevel=silent', '--browser=' + __dirname + '/_script.sh' ], opts, function (err, code, stdout, stderr) { + t.ifError(err, 'repo command ran without error') t.equal(code, 1, 'exit not ok') s.close() t.end() @@ -78,62 +77,65 @@ test("npm repo npm-test-peer-deps - no repo", function (t) { }) }) -test("npm repo test-repo-url-http - non-github (http://)", function (t) { - mr({port : common.port}, function (er, s) { +test('npm repo test-repo-url-http - non-github (http://)', function (t) { + mr({ port: common.port }, function (er, s) { common.npm([ 'repo', 'test-repo-url-http', '--registry=' + common.registry, '--loglevel=silent', '--browser=' + __dirname + '/_script.sh' ], opts, function (err, code, stdout, stderr) { + t.ifError(err, 'repo command ran without error') t.equal(code, 0, 'exit ok') var res = fs.readFileSync(outFile, 'ascii') s.close() - t.equal(res, "http://gitlab.com/evanlucas/test-repo-url-http\n") + t.equal(res, 'http://gitlab.com/evanlucas/test-repo-url-http\n') rimraf.sync(outFile) t.end() }) }) }) -test("npm repo test-repo-url-https - non-github (https://)", function (t) { - mr({port : common.port}, function (er, s) { +test('npm repo test-repo-url-https - non-github (https://)', function (t) { + mr({ port: common.port }, function (er, s) { common.npm([ 'repo', 'test-repo-url-https', '--registry=' + common.registry, '--loglevel=silent', '--browser=' + __dirname + '/_script.sh' ], opts, function (err, code, stdout, stderr) { + t.ifError(err, 'repo command ran without error') t.equal(code, 0, 'exit ok') var res = fs.readFileSync(outFile, 'ascii') s.close() - t.equal(res, "https://gitlab.com/evanlucas/test-repo-url-https\n") + t.equal(res, 'https://gitlab.com/evanlucas/test-repo-url-https\n') rimraf.sync(outFile) t.end() }) }) }) -test("npm repo test-repo-url-ssh - non-github (ssh://)", function (t) { - mr({port : common.port}, function (er, s) { +test('npm repo test-repo-url-ssh - non-github (ssh://)', function (t) { + mr({ port: common.port }, function (er, s) { common.npm([ 'repo', 'test-repo-url-ssh', '--registry=' + common.registry, '--loglevel=silent', '--browser=' + __dirname + '/_script.sh' ], opts, function (err, code, stdout, stderr) { + t.ifError(err, 'repo command ran without error') t.equal(code, 0, 'exit ok') var res = fs.readFileSync(outFile, 'ascii') s.close() - t.equal(res, "http://gitlab.com/evanlucas/test-repo-url-ssh\n") + t.equal(res, 'https://gitlab.com/evanlucas/test-repo-url-ssh\n') rimraf.sync(outFile) t.end() }) }) }) -test("cleanup", function (t) { - fs.unlinkSync(__dirname + "/_script.sh") - t.pass("cleaned up") +test('cleanup', function (t) { + fs.unlinkSync(__dirname + '/_script.sh') + t.pass('cleaned up') t.end() }) diff --git a/deps/npm/test/tap/rm-linked.js b/deps/npm/test/tap/rm-linked.js new file mode 100644 index 0000000000000000000000000000000000000000..cd46c013adf13ddcc6cdcd27c84d0f199b4c38ea --- /dev/null +++ b/deps/npm/test/tap/rm-linked.js @@ -0,0 +1,136 @@ +var mkdirp = require('mkdirp') +var osenv = require('osenv') +var path = require('path') +var rimraf = require('rimraf') +var test = require('tap').test +var writeFileSync = require('fs').writeFileSync + +var common = require('../common-tap.js') + +var link = path.join(__dirname, 'rmlinked') +var linkDep = path.join(link, 'node_modules', 'baz') +var linkInstall = path.join(__dirname, 'rmlinked-install') +var linkRoot = path.join(__dirname, 'rmlinked-root') + +var config = 'prefix = ' + linkRoot +var configPath = path.join(link, '_npmrc') + +var OPTS = { + env: { + 'npm_config_userconfig': configPath + } +} + +var linkedJSON = { + name: 'foo', + version: '1.0.0', + description: '', + main: 'index.js', + scripts: { + test: 'echo \"Error: no test specified\" && exit 1' + }, + dependencies: { + 'baz': '1.0.0' + }, + author: '', + license: 'ISC' +} + +var linkedDepJSON = { + name: 'baz', + version: '1.0.0', + description: '', + main: 'index.js', + scripts: { + test: 'echo \"Error: no test specified\" && exit 1' + }, + author: '', + license: 'ISC' +} + +var installJSON = { + name: 'bar', + version: '1.0.0', + description: '', + main: 'index.js', + scripts: { + test: 'echo \"Error: no test specified\" && exit 1' + }, + dependencies: { + 'foo': '1.0.0' + }, + author: '', + license: 'ISC' +} + +test('setup', function (t) { + setup() + common.npm(['ls', '-g', '--depth=0'], OPTS, function (err, c, out) { + t.ifError(err) + t.equal(c, 0, 'set up ok') + t.notOk(out.match(/UNMET DEPENDENCY foo@/), "foo isn't in global") + t.end() + }) +}) + +test('creates global link', function (t) { + process.chdir(link) + common.npm(['link'], OPTS, function (err, c, out) { + t.ifError(err, 'link has no error') + common.npm(['ls', '-g'], OPTS, function (err, c, out, stderr) { + t.ifError(err) + t.equal(c, 0) + t.equal(stderr, '', 'got expected stderr') + t.has(out, /foo@1.0.0/, 'creates global link ok') + t.end() + }) + }) +}) + +test('uninstall the global linked package', function (t) { + process.chdir(osenv.tmpdir()) + common.npm(['uninstall', '-g', 'foo'], OPTS, function (err) { + t.ifError(err, 'uninstall has no error') + process.chdir(link) + common.npm(['ls'], OPTS, function (err, c, out) { + t.ifError(err) + t.equal(c, 0) + t.has(out, /baz@1.0.0/, "uninstall didn't remove dep") + t.end() + }) + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function cleanup () { + process.chdir(osenv.tmpdir()) + try { rimraf.sync(linkRoot) } catch (e) { } + try { rimraf.sync(linkDep) } catch (e) { } + try { rimraf.sync(link) } catch (e) { } + try { rimraf.sync(linkInstall) } catch (e) { } +} + +function setup () { + cleanup() + mkdirp.sync(linkRoot) + mkdirp.sync(link) + writeFileSync( + path.join(link, 'package.json'), + JSON.stringify(linkedJSON, null, 2) + ) + mkdirp.sync(linkDep) + writeFileSync( + path.join(linkDep, 'package.json'), + JSON.stringify(linkedDepJSON, null, 2) + ) + mkdirp.sync(linkInstall) + writeFileSync( + path.join(linkInstall, 'package.json'), + JSON.stringify(installJSON, null, 2) + ) + writeFileSync(configPath, config) +} diff --git a/deps/npm/test/tap/run-script.js b/deps/npm/test/tap/run-script.js index 5d414d8e9249f90d4b2fc619757186fa2725a32d..d7087693df7c442c02c940a7137abf10ab2e4943 100644 --- a/deps/npm/test/tap/run-script.js +++ b/deps/npm/test/tap/run-script.js @@ -62,15 +62,14 @@ var preversionOnly = { } } - function testOutput (t, command, er, code, stdout, stderr) { var lines - if (er) - throw er + if (er) throw er - if (stderr) + if (stderr) { throw new Error('npm ' + command + ' stderr: ' + stderr.toString()) + } lines = stdout.trim().split('\n') stdout = lines.filter(function (line) { diff --git a/deps/npm/test/tap/semver-doc.js b/deps/npm/test/tap/semver-doc.js index 963cace101fbdd673987af7b15bdeb63eac522ed..31c75fffd8ad7bc742f76b7234ebf7642c83f867 100644 --- a/deps/npm/test/tap/semver-doc.js +++ b/deps/npm/test/tap/semver-doc.js @@ -1,12 +1,12 @@ -var test = require("tap").test +var test = require('tap').test -test("semver doc is up to date", function (t) { - var path = require("path") - var moddoc = path.join(__dirname, "../../node_modules/semver/README.md") - var mydoc = path.join(__dirname, "../../doc/misc/semver.md") - var fs = require("fs") - var mod = fs.readFileSync(moddoc, "utf8").replace(/semver\(1\)/, "semver(7)") - var my = fs.readFileSync(mydoc, "utf8") +test('semver doc is up to date', function (t) { + var path = require('path') + var moddoc = path.join(__dirname, '../../node_modules/semver/README.md') + var mydoc = path.join(__dirname, '../../doc/misc/semver.md') + var fs = require('fs') + var mod = fs.readFileSync(moddoc, 'utf8').replace(/semver\(1\)/, 'semver(7)') + var my = fs.readFileSync(mydoc, 'utf8') t.equal(my, mod) t.end() }) diff --git a/deps/npm/test/tap/semver-tag.js b/deps/npm/test/tap/semver-tag.js index 03dcdf85b6466ffbb6a3fc8e027c62fa4323ec44..b4feb75176c4acdaf8335437e095c10fcc71640f 100644 --- a/deps/npm/test/tap/semver-tag.js +++ b/deps/npm/test/tap/semver-tag.js @@ -1,11 +1,11 @@ // should not allow tagging with a valid semver range -var common = require("../common-tap.js") -var test = require("tap").test +var common = require('../common-tap.js') +var test = require('tap').test -test("try to tag with semver range as tag name", function (t) { - var cmd = ["tag", "zzzz@1.2.3", "v2.x", "--registry=http://localhost"] +test('try to tag with semver range as tag name', function (t) { + var cmd = ['tag', 'zzzz@1.2.3', 'v2.x', '--registry=http://localhost'] common.npm(cmd, { - stdio: "pipe" + stdio: 'pipe' }, function (er, code, so, se) { if (er) throw er t.similar(se, /Tag name must not be a valid SemVer range: v2.x\n/) diff --git a/deps/npm/test/tap/shrinkwrap-dev-dependency.js b/deps/npm/test/tap/shrinkwrap-dev-dependency.js index a124c2b7fe6ba6be4b553ba7fd7080fc03352679..0a239e97ce43afa4f7c6f2832ececc4e794678db 100644 --- a/deps/npm/test/tap/shrinkwrap-dev-dependency.js +++ b/deps/npm/test/tap/shrinkwrap-dev-dependency.js @@ -77,9 +77,7 @@ function setup (cb) { var opts = { cache: path.resolve(pkg, 'cache'), - registry: common.registry, - // important to make sure devDependencies don't get stripped - dev: true + registry: common.registry } npm.load(opts, cb) } diff --git a/deps/npm/test/tap/shrinkwrap-empty-deps.js b/deps/npm/test/tap/shrinkwrap-empty-deps.js index 32cbd5eb40d21e4f8b56198caad42e9509ede09d..cf7e9a6e80427a1297beeba1b9f5b967ab9c5af9 100644 --- a/deps/npm/test/tap/shrinkwrap-empty-deps.js +++ b/deps/npm/test/tap/shrinkwrap-empty-deps.js @@ -51,8 +51,7 @@ test('returns a list of removed items', function (t) { t.same( { 'name': 'shrinkwrap-empty-deps', - 'version': '0.0.0', - 'dependencies': {} + 'version': '0.0.0' }, JSON.parse(desired), 'shrinkwrap handled empty deps without exploding' diff --git a/deps/npm/test/tap/shrinkwrap-local-dependency.js b/deps/npm/test/tap/shrinkwrap-local-dependency.js index ffbde6574ee86a5337fde2dd9091cb4a00e7869f..8d7c0712f9ae58f50802fd6fa662934c1fd70631 100644 --- a/deps/npm/test/tap/shrinkwrap-local-dependency.js +++ b/deps/npm/test/tap/shrinkwrap-local-dependency.js @@ -1,63 +1,62 @@ -var test = require("tap").test -var path = require("path") -var fs = require("fs") -var osenv = require("osenv") -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") -var common = require("../common-tap.js") - -var PKG_DIR = path.resolve(__dirname, "shrinkwrap-local-dependency") -var CACHE_DIR = path.resolve(PKG_DIR, "cache") -var DEP_DIR = path.resolve(PKG_DIR, "dep") +var test = require('tap').test +var path = require('path') +var fs = require('fs') +var osenv = require('osenv') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var common = require('../common-tap.js') + +var PKG_DIR = path.resolve(__dirname, 'shrinkwrap-local-dependency') +var CACHE_DIR = path.resolve(PKG_DIR, 'cache') +var DEP_DIR = path.resolve(PKG_DIR, 'dep') var desired = { - "name": "npm-test-shrinkwrap-local-dependency", - "version": "0.0.0", - "dependencies": { - "npm-test-shrinkwrap-local-dependency-dep": { - "version": "0.0.0", - "from": "dep", - "resolved": "file:dep" + 'name': 'npm-test-shrinkwrap-local-dependency', + 'version': '0.0.0', + 'dependencies': { + 'npm-test-shrinkwrap-local-dependency-dep': { + 'version': '0.0.0', + 'from': 'dep', + 'resolved': 'file:dep' } } } var root = { - "author": "Thomas Torp", - "name": "npm-test-shrinkwrap-local-dependency", - "version": "0.0.0", - "dependencies": { - "npm-test-shrinkwrap-local-dependency-dep": "file:./dep" + 'author': 'Thomas Torp', + 'name': 'npm-test-shrinkwrap-local-dependency', + 'version': '0.0.0', + 'dependencies': { + 'npm-test-shrinkwrap-local-dependency-dep': 'file:./dep' } } var dependency = { - "author": "Thomas Torp", - "name": "npm-test-shrinkwrap-local-dependency-dep", - "version": "0.0.0" + 'author': 'Thomas Torp', + 'name': 'npm-test-shrinkwrap-local-dependency-dep', + 'version': '0.0.0' } - -test("shrinkwrap uses resolved with file: on local deps", function(t) { +test('shrinkwrap uses resolved with file: on local deps', function (t) { setup() common.npm( - ["--cache="+CACHE_DIR, "--loglevel=silent", "install", "."], + ['--cache=' + CACHE_DIR, '--loglevel=silent', 'install', '.'], {}, function (err, code) { - t.ifError(err, "npm install worked") - t.equal(code, 0, "npm exited normally") + t.ifError(err, 'npm install worked') + t.equal(code, 0, 'npm exited normally') common.npm( - ["--cache="+CACHE_DIR, "--loglevel=silent", "shrinkwrap"], + ['--cache=' + CACHE_DIR, '--loglevel=silent', 'shrinkwrap'], {}, function (err, code) { - t.ifError(err, "npm shrinkwrap worked") - t.equal(code, 0, "npm exited normally") + t.ifError(err, 'npm shrinkwrap worked') + t.equal(code, 0, 'npm exited normally') - fs.readFile("npm-shrinkwrap.json", { encoding : "utf8" }, function (err, data) { - t.ifError(err, "read file correctly") - t.deepEqual(JSON.parse(data), desired, "shrinkwrap looks correct") + fs.readFile('npm-shrinkwrap.json', { encoding: 'utf8' }, function (err, data) { + t.ifError(err, 'read file correctly') + t.deepEqual(JSON.parse(data), desired, 'shrinkwrap looks correct') t.end() }) @@ -67,22 +66,22 @@ test("shrinkwrap uses resolved with file: on local deps", function(t) { ) }) -test('"npm install" should install local packages from shrinkwrap', function (t) { +test("'npm install' should install local packages from shrinkwrap", function (t) { cleanNodeModules() common.npm( - ["--cache="+CACHE_DIR, "--loglevel=silent", "install", "."], + ['--cache=' + CACHE_DIR, '--loglevel=silent', 'install', '.'], {}, function (err, code) { - t.ifError(err, "install ran correctly") - t.notOk(code, "npm install exited with code 0") + t.ifError(err, 'install ran correctly') + t.notOk(code, 'npm install exited with code 0') var dependencyPackageJson = path.resolve( PKG_DIR, - "node_modules/npm-test-shrinkwrap-local-dependency-dep/package.json" + 'node_modules/npm-test-shrinkwrap-local-dependency-dep/package.json' ) t.ok( - JSON.parse(fs.readFileSync(dependencyPackageJson, "utf8")), - "package with local dependency installed from shrinkwrap" + JSON.parse(fs.readFileSync(dependencyPackageJson, 'utf8')), + 'package with local dependency installed from shrinkwrap' ) t.end() @@ -90,32 +89,32 @@ test('"npm install" should install local packages from shrinkwrap', function (t) ) }) -test("cleanup", function(t) { +test('cleanup', function (t) { cleanup() t.end() }) -function setup() { +function setup () { cleanup() mkdirp.sync(PKG_DIR) mkdirp.sync(CACHE_DIR) mkdirp.sync(DEP_DIR) fs.writeFileSync( - path.resolve(PKG_DIR, "package.json"), + path.resolve(PKG_DIR, 'package.json'), JSON.stringify(root, null, 2) ) fs.writeFileSync( - path.resolve(DEP_DIR, "package.json"), + path.resolve(DEP_DIR, 'package.json'), JSON.stringify(dependency, null, 2) ) process.chdir(PKG_DIR) } -function cleanNodeModules() { - rimraf.sync(path.resolve(PKG_DIR, "node_modules")) +function cleanNodeModules () { + rimraf.sync(path.resolve(PKG_DIR, 'node_modules')) } -function cleanup() { +function cleanup () { process.chdir(osenv.tmpdir()) cleanNodeModules() rimraf.sync(PKG_DIR) diff --git a/deps/npm/test/tap/shrinkwrap-prod-dependency-also.js b/deps/npm/test/tap/shrinkwrap-prod-dependency-also.js new file mode 100644 index 0000000000000000000000000000000000000000..5bcae6d2f58d1dcbe2bfb07bedfc5ef45ba4e06d --- /dev/null +++ b/deps/npm/test/tap/shrinkwrap-prod-dependency-also.js @@ -0,0 +1,93 @@ +var fs = require('fs') +var path = require('path') + +var mkdirp = require('mkdirp') +var mr = require('npm-registry-mock') +var osenv = require('osenv') +var rimraf = require('rimraf') +var test = require('tap').test + +var npm = npm = require('../../') + +var common = require('../common-tap.js') +var pkg = path.resolve(__dirname, 'shrinkwrap-prod-dependency') + +test("shrinkwrap --also=development doesn't strip out prod dependencies", function (t) { + t.plan(1) + + mr({port: common.port}, function (er, s) { + setup({}, function (err) { + if (err) return t.fail(err) + + npm.install('.', function (err) { + if (err) return t.fail(err) + + npm.config.set('also', 'development') + npm.commands.shrinkwrap([], true, function (err, results) { + if (err) return t.fail(err) + + t.deepEqual(results, desired) + s.close() + t.end() + }) + }) + }) + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +var desired = { + name: 'npm-test-shrinkwrap-prod-dependency', + version: '0.0.0', + dependencies: { + request: { + version: '0.9.0', + from: 'request@0.9.0', + resolved: common.registry + '/request/-/request-0.9.0.tgz' + }, + underscore: { + version: '1.5.1', + from: 'underscore@1.5.1', + resolved: common.registry + '/underscore/-/underscore-1.5.1.tgz' + } + } +} + +var json = { + author: 'Domenic Denicola', + name: 'npm-test-shrinkwrap-prod-dependency', + version: '0.0.0', + dependencies: { + request: '0.9.0' + }, + devDependencies: { + underscore: '1.5.1' + } +} + +function setup (opts, cb) { + cleanup() + mkdirp.sync(pkg) + fs.writeFileSync(path.join(pkg, 'package.json'), JSON.stringify(json, null, 2)) + process.chdir(pkg) + + var allOpts = { + cache: path.resolve(pkg, 'cache'), + registry: common.registry + } + + for (var key in opts) { + allOpts[key] = opts[key] + } + + npm.load(allOpts, cb) +} + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(pkg) +} diff --git a/deps/npm/test/tap/shrinkwrap-scoped-auth.js b/deps/npm/test/tap/shrinkwrap-scoped-auth.js index 79414ccd22b93726e218bbdadc6c0d7153cb4cae..8fe0d1e23e28161303c8babfd0f36a1f294a3c4d 100644 --- a/deps/npm/test/tap/shrinkwrap-scoped-auth.js +++ b/deps/npm/test/tap/shrinkwrap-scoped-auth.js @@ -1,92 +1,102 @@ -var resolve = require("path").resolve -var writeFileSync = require("graceful-fs").writeFileSync - -var mkdirp = require("mkdirp") -var mr = require("npm-registry-mock") -var osenv = require("osenv") -var rimraf = require("rimraf") -var test = require("tap").test - -var common = require("../common-tap.js") -var toNerfDart = require("../../lib/config/nerf-dart.js") - -var pkg = resolve(__dirname, "shrinkwrap-scoped-auth") -var outfile = resolve(pkg, "_npmrc") -var modules = resolve(pkg, "node_modules") -var tarballPath = "/scoped-underscore/-/scoped-underscore-1.3.1.tgz" +var resolve = require('path').resolve +var writeFileSync = require('graceful-fs').writeFileSync + +var mkdirp = require('mkdirp') +var mr = require('npm-registry-mock') +var osenv = require('osenv') +var rimraf = require('rimraf') +var test = require('tap').test + +var common = require('../common-tap.js') +var toNerfDart = require('../../lib/config/nerf-dart.js') + +var pkg = resolve(__dirname, 'shrinkwrap-scoped-auth') +var outfile = resolve(pkg, '_npmrc') +var modules = resolve(pkg, 'node_modules') +var tarballPath = '/scoped-underscore/-/scoped-underscore-1.3.1.tgz' var tarballURL = common.registry + tarballPath -var tarball = resolve(__dirname, "../fixtures/scoped-underscore-1.3.1.tgz") +var tarball = resolve(__dirname, '../fixtures/scoped-underscore-1.3.1.tgz') var server -var EXEC_OPTS = { - cwd : pkg -} +var EXEC_OPTS = { cwd: pkg } function mocks (server) { - var auth = "Bearer 0xabad1dea" - server.get(tarballPath, { authorization : auth }).replyWithFile(200, tarball) + var auth = 'Bearer 0xabad1dea' + server.get(tarballPath, { authorization: auth }).replyWithFile(200, tarball) server.get(tarballPath).reply(401, { - error : "unauthorized", - reason : "You are not authorized to access this db." + error: 'unauthorized', + reason: 'You are not authorized to access this db.' }) } -test("setup", function (t) { - mr({ port : common.port, plugin : mocks }, function (err, s) { +test('setup', function (t) { + mr({ port: common.port, plugin: mocks }, function (er, s) { server = s - t.ok(s, "set up mock registry") + t.ok(s, 'set up mock registry') setup() t.end() }) }) -test("authed npm install with shrinkwrapped scoped package", function (t) { +test('authed npm install with shrinkwrapped scoped package', function (t) { common.npm( [ - "install", - "--loglevel", "silent", - "--fetch-retries", 0, - "--userconfig", outfile + 'install', + '--loglevel', 'silent', + '--json', + '--fetch-retries', 0, + '--userconfig', outfile ], EXEC_OPTS, function (err, code, stdout, stderr) { - t.ifError(err, "test runner executed without error") - t.equal(code, 0, "npm install exited OK") - t.notOk(stderr, "no output on stderr") - t.equal( - stdout, - "@scoped/underscore@1.3.1 node_modules/@scoped/underscore\n", - "module installed where expected" - ) + console.error(stderr) + t.ifError(err, 'test runner executed without error') + t.equal(code, 0, 'npm install exited OK') + t.notOk(stderr, 'no output on stderr') + try { + var results = JSON.parse(stdout) + } catch (ex) { + console.error('#', ex) + t.ifError(ex, 'stdout was valid JSON') + } + + if (results) { + var installedversion = { + 'version': '1.3.1', + 'from': '>=1.3.1 <2', + 'resolved': 'http://localhost:1337/scoped-underscore/-/scoped-underscore-1.3.1.tgz' + } + t.isDeeply(results.dependencies['@scoped/underscore'], installedversion, '@scoped/underscore installed') + } t.end() } ) }) -test("cleanup", function (t) { +test('cleanup', function (t) { server.close() cleanup() t.end() }) -var contents = "@scoped:registry="+common.registry+"\n" + - toNerfDart(common.registry)+":_authToken=0xabad1dea\n" +var contents = '@scoped:registry=' + common.registry + '\n' + + toNerfDart(common.registry) + ':_authToken=0xabad1dea\n' var json = { - name : "test-package-install", - version : "1.0.0" + name: 'test-package-install', + version: '1.0.0' } var shrinkwrap = { - name : "test-package-install", - version : "1.0.0", - dependencies : { - "@scoped/underscore" : { - resolved : tarballURL, - from : ">=1.3.1 <2", - version : "1.3.1" + name: 'test-package-install', + version: '1.0.0', + dependencies: { + '@scoped/underscore': { + resolved: tarballURL, + from: '>=1.3.1 <2', + version: '1.3.1' } } } @@ -94,15 +104,15 @@ var shrinkwrap = { function setup () { cleanup() mkdirp.sync(modules) - writeFileSync(resolve(pkg, "package.json"), JSON.stringify(json, null, 2)+"\n") + writeFileSync(resolve(pkg, 'package.json'), JSON.stringify(json, null, 2) + '\n') writeFileSync(outfile, contents) writeFileSync( - resolve(pkg, "npm-shrinkwrap.json"), - JSON.stringify(shrinkwrap, null, 2)+"\n" + resolve(pkg, 'npm-shrinkwrap.json'), + JSON.stringify(shrinkwrap, null, 2) + '\n' ) } -function cleanup() { +function cleanup () { process.chdir(osenv.tmpdir()) rimraf.sync(pkg) } diff --git a/deps/npm/test/tap/sorted-package-json.js b/deps/npm/test/tap/sorted-package-json.js index 6853cf3020637da90e2366f1cc85f357367fb100..9b2e935926b0662d58ba4ed294e73aff4c229801 100644 --- a/deps/npm/test/tap/sorted-package-json.js +++ b/deps/npm/test/tap/sorted-package-json.js @@ -1,21 +1,20 @@ -var test = require("tap").test - , path = require("path") - , rimraf = require("rimraf") - , mkdirp = require("mkdirp") - , spawn = require("child_process").spawn - , npm = require.resolve("../../bin/npm-cli.js") - , node = process.execPath - , pkg = path.resolve(__dirname, "sorted-package-json") - , tmp = path.join(pkg, "tmp") - , cache = path.join(pkg, "cache") - , fs = require("fs") - , common = require("../common-tap.js") - , mr = require("npm-registry-mock") - , osenv = require("osenv") +var test = require('tap').test +var path = require('path') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var spawn = require('child_process').spawn +var npm = require.resolve('../../bin/npm-cli.js') +var node = process.execPath +var pkg = path.resolve(__dirname, 'sorted-package-json') +var tmp = path.join(pkg, 'tmp') +var cache = path.join(pkg, 'cache') +var fs = require('fs') +var common = require('../common-tap.js') +var mr = require('npm-registry-mock') +var osenv = require('osenv') - -test("sorting dependencies", function (t) { - var packageJson = path.resolve(pkg, "package.json") +test('sorting dependencies', function (t) { + var packageJson = path.resolve(pkg, 'package.json') cleanup() mkdirp.sync(cache) @@ -24,27 +23,27 @@ test("sorting dependencies", function (t) { var before = JSON.parse(fs.readFileSync(packageJson).toString()) - mr({port : common.port}, function (er, s) { + mr({ port: common.port }, function (er, s) { // underscore is already in the package.json, // but --save will trigger a rewrite with sort - var child = spawn(node, [npm, "install", "--save", "underscore@1.3.3"], { + var child = spawn(node, [npm, 'install', '--save', 'underscore@1.3.3'], { cwd: pkg, env: { - "npm_config_registry": common.registry, - "npm_config_cache": cache, - "npm_config_tmp": tmp, - "npm_config_prefix": pkg, - "npm_config_global": "false", + 'npm_config_registry': common.registry, + 'npm_config_cache': cache, + 'npm_config_tmp': tmp, + 'npm_config_prefix': pkg, + 'npm_config_global': 'false', HOME: process.env.HOME, Path: process.env.PATH, PATH: process.env.PATH } }) - child.on("close", function (code) { - t.equal(code, 0, "npm install exited with code") + child.on('close', function (code) { + t.equal(code, 0, 'npm install exited with code') var result = fs.readFileSync(packageJson).toString() - , resultAsJson = JSON.parse(result) + var resultAsJson = JSON.parse(result) s.close() @@ -61,33 +60,33 @@ test("sorting dependencies", function (t) { }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { cleanup() - t.pass("cleaned up") + t.pass('cleaned up') t.end() }) -function setup() { +function setup () { mkdirp.sync(pkg) - fs.writeFileSync(path.resolve(pkg, "package.json"), JSON.stringify({ - "name": "sorted-package-json", - "version": "0.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ + 'name': 'sorted-package-json', + 'version': '0.0.0', + 'description': '', + 'main': 'index.js', + 'scripts': { + 'test': 'echo \'Error: no test specified\' && exit 1' }, - "author": "Rocko Artischocko", - "license": "ISC", - "dependencies": { - "underscore": "^1.3.3", - "request": "^0.9.0" + 'author': 'Rocko Artischocko', + 'license': 'ISC', + 'dependencies': { + 'underscore': '^1.3.3', + 'request': '^0.9.0' } - }, null, 2), "utf8") + }, null, 2), 'utf8') } -function cleanup() { +function cleanup () { process.chdir(osenv.tmpdir()) rimraf.sync(cache) rimraf.sync(pkg) diff --git a/deps/npm/test/tap/spawn-enoent-help.js b/deps/npm/test/tap/spawn-enoent-help.js index 70fb078faf77e8d4abe59e4994476001fa06fc01..716f6ebd1537fe29f0fb0decc0613f08e51f190e 100644 --- a/deps/npm/test/tap/spawn-enoent-help.js +++ b/deps/npm/test/tap/spawn-enoent-help.js @@ -1,25 +1,25 @@ -var path = require("path") -var test = require("tap").test -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") -var common = require("../common-tap.js") +var path = require('path') +var test = require('tap').test +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var common = require('../common-tap.js') -var pkg = path.resolve(__dirname, "spawn-enoent-help") +var pkg = path.resolve(__dirname, 'spawn-enoent-help') -test("setup", function (t) { +test('setup', function (t) { rimraf.sync(pkg) mkdirp.sync(pkg) t.end() }) -test("enoent help", function (t) { - common.npm(["help", "config"], { +test('enoent help', function (t) { + common.npm(['help', 'config'], { cwd: pkg, env: { - PATH: "", - Path: "", - "npm_config_loglevel": "warn", - "npm_config_viewer": "woman" + PATH: '', + Path: '', + 'npm_config_loglevel': 'warn', + 'npm_config_viewer': 'woman' } }, function (er, code, sout, serr) { t.similar(serr, /Check if the file 'emacsclient' is present./) @@ -28,7 +28,7 @@ test("enoent help", function (t) { }) }) -test("clean", function (t) { +test('clean', function (t) { rimraf.sync(pkg) t.end() }) diff --git a/deps/npm/test/tap/spawn-enoent.js b/deps/npm/test/tap/spawn-enoent.js index 29b70f6f8ac19eeed03708b154403d04a957429b..320e477e0ec4e069058dd2407f529f5806c4423e 100644 --- a/deps/npm/test/tap/spawn-enoent.js +++ b/deps/npm/test/tap/spawn-enoent.js @@ -1,32 +1,31 @@ -var path = require("path") -var test = require("tap").test -var fs = require("fs") -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") -var common = require("../common-tap.js") +var path = require('path') +var test = require('tap').test +var fs = require('fs') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var common = require('../common-tap.js') -var pkg = path.resolve(__dirname, "spawn-enoent") +var pkg = path.resolve(__dirname, 'spawn-enoent') var pj = JSON.stringify({ - name:"x", - version: "1.2.3", - scripts: { start: "wharble-garble-blorst" } -}, null, 2) + "\n" + name: 'x', + version: '1.2.3', + scripts: { start: 'wharble-garble-blorst' } +}, null, 2) + '\n' - -test("setup", function (t) { +test('setup', function (t) { rimraf.sync(pkg) mkdirp.sync(pkg) - fs.writeFileSync(pkg + "/package.json", pj) + fs.writeFileSync(pkg + '/package.json', pj) t.end() }) -test("enoent script", function (t) { - common.npm(["start"], { +test('enoent script', function (t) { + common.npm(['start'], { cwd: pkg, env: { PATH: process.env.PATH, Path: process.env.Path, - "npm_config_loglevel": "warn" + 'npm_config_loglevel': 'warn' } }, function (er, code, sout, serr) { t.similar(serr, /npm ERR! Failed at the x@1\.2\.3 start script 'wharble-garble-blorst'\./) @@ -34,7 +33,7 @@ test("enoent script", function (t) { }) }) -test("clean", function (t) { +test('clean', function (t) { rimraf.sync(pkg) t.end() }) diff --git a/deps/npm/test/tap/splat-with-only-prerelease-to-latest.js b/deps/npm/test/tap/splat-with-only-prerelease-to-latest.js index d402bed2961866b2082146ff1a4264f08f16848e..09eb4ebe3b8336802fa2ef59a831c3ca23065c9e 100644 --- a/deps/npm/test/tap/splat-with-only-prerelease-to-latest.js +++ b/deps/npm/test/tap/splat-with-only-prerelease-to-latest.js @@ -1,7 +1,6 @@ 'use strict' var test = require('tap').test var npm = require('../../lib/npm') -var log = require('npmlog') var stream = require('readable-stream') var moduleName = 'xyzzy-wibble' @@ -42,13 +41,13 @@ var testModule = { shasum: 'da39a3ee5e6b4b0d3255bfef95601890afd80709', tarball: 'http://registry.npmjs.org/aproba/-/xyzzy-wibble-1.3.0-a.tgz' } - }, - }, + } + } } var lastFetched test('setup', function (t) { - npm.load(function(){ + npm.load(function () { npm.config.set('loglevel', 'silly') npm.registry = { get: function (uri, opts, cb) { @@ -69,13 +68,13 @@ test('setup', function (t) { }) }) - test('splat', function (t) { - t.plan(3) + t.plan(4) var addNamed = require('../../lib/cache/add-named.js') addNamed('xyzzy-wibble', '*', testModule, function (err, pkg) { t.error(err, 'Succesfully resolved a splat package') t.is(pkg.name, moduleName) t.is(pkg.version, testModule['dist-tags'].latest) + t.is(lastFetched, 'https://registry.npmjs.org/aproba/-/xyzzy-wibble-1.3.0-a.tgz') }) }) diff --git a/deps/npm/test/tap/symlink-cycle.js b/deps/npm/test/tap/symlink-cycle.js new file mode 100644 index 0000000000000000000000000000000000000000..b09b25acc8676f794c90a2aa59ec82001c0907d2 --- /dev/null +++ b/deps/npm/test/tap/symlink-cycle.js @@ -0,0 +1,61 @@ +'use strict' +var fs = require('fs') +var path = require('path') +var test = require('tap').test +var mkdirp = require('mkdirp') +var osenv = require('osenv') +var rimraf = require('rimraf') +var writeFileSync = require('fs').writeFileSync +var common = require('../common-tap.js') + +var base = path.join(__dirname, path.basename(__filename, '.js')) +var cycle = path.join(base, 'cycle') + +var cycleJSON = { + name: 'cycle', + version: '1.0.0', + description: '', + main: 'index.js', + scripts: { + test: 'echo \"Error: no test specified\" && exit 1' + }, + dependencies: { + 'cycle': '*' + }, + author: '', + license: 'ISC' +} + +test('setup', function (t) { + setup() + t.end() +}) + +test('ls', function (t) { + process.chdir(cycle) + common.npm(['ls'], {}, function (err, code, stdout, stderr) { + t.ifError(err, 'installed w/o error') + t.is(stderr, '', 'no warnings printed to stderr') + t.end() + }) +}) + +test('cleanup', function (t) { + process.chdir(osenv.tmpdir()) + cleanup() + t.end() +}) + +function cleanup () { + rimraf.sync(base) +} + +function setup () { + cleanup() + mkdirp.sync(path.join(cycle, 'node_modules')) + writeFileSync( + path.join(cycle, 'package.json'), + JSON.stringify(cycleJSON, null, 2) + ) + fs.symlinkSync(cycle, path.join(cycle, 'node_modules', 'cycle')) +} diff --git a/deps/npm/test/tap/team.js b/deps/npm/test/tap/team.js index 4bfcbaddb2d90b9a7f787cf76b20959082e66fdc..b13fa86e8b8df0e43b27c88531ec0ce0e03f4a1c 100644 --- a/deps/npm/test/tap/team.js +++ b/deps/npm/test/tap/team.js @@ -1,6 +1,3 @@ -var fs = require('fs') -var path = require('path') -var rimraf = require('rimraf') var mr = require('npm-registry-mock') var test = require('tap').test diff --git a/deps/npm/test/tap/test-run-ls.js b/deps/npm/test/tap/test-run-ls.js index 252c6e8f931e6eba561b23aacbaea0d3bce6e80c..ea495879f31025ecb9f3b794b57b4a9722d4a746 100644 --- a/deps/npm/test/tap/test-run-ls.js +++ b/deps/npm/test/tap/test-run-ls.js @@ -1,30 +1,30 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var path = require("path") -var cwd = path.resolve(__dirname, "..", "..") -var testscript = require("../../package.json").scripts.test -var tsregexp = testscript.replace(/([\[\.\*\]])/g, "\\$1") +var common = require('../common-tap.js') +var test = require('tap').test +var path = require('path') +var cwd = path.resolve(__dirname, '..', '..') +var testscript = require('../../package.json').scripts.test +var tsregexp = testscript.replace(/([\[\.\*\]])/g, '\\$1') -test("default", function (t) { - common.npm(["run"], { cwd: cwd }, function (er, code, so) { +test('default', function (t) { + common.npm(['run'], { cwd: cwd }, function (er, code, so) { if (er) throw er t.notOk(code) - t.similar(so, new RegExp("\\n test\\n " + tsregexp + "\\n")) + t.similar(so, new RegExp('\\n test\\n ' + tsregexp + '\\n')) t.end() }) }) -test("parseable", function (t) { - common.npm(["run", "-p"], { cwd: cwd }, function (er, code, so) { +test('parseable', function (t) { + common.npm(['run', '-p'], { cwd: cwd }, function (er, code, so) { if (er) throw er t.notOk(code) - t.similar(so, new RegExp("\\ntest:" + tsregexp + "\\n")) + t.similar(so, new RegExp('\\ntest:' + tsregexp + '\\n')) t.end() }) }) -test("parseable", function (t) { - common.npm(["run", "--json"], { cwd: cwd }, function (er, code, so) { +test('parseable', function (t) { + common.npm(['run', '--json'], { cwd: cwd }, function (er, code, so) { if (er) throw er t.notOk(code) t.equal(JSON.parse(so).test, testscript) diff --git a/deps/npm/test/tap/uninstall-in-reverse.js b/deps/npm/test/tap/uninstall-in-reverse.js new file mode 100644 index 0000000000000000000000000000000000000000..2d8fe2bcfccfb9f86bbff97ff42d0e70c0e09361 --- /dev/null +++ b/deps/npm/test/tap/uninstall-in-reverse.js @@ -0,0 +1,38 @@ +'use strict' +var test = require('tap').test +var requireInject = require('require-inject') +var log = require('npmlog') + +/* +The remove actions need to happen in the opposite of their normally defined +order. That is, they need to go shallow -> deep. +*/ + +var removed = [] +var npm = requireInject.installGlobally('../../lib/npm.js', { + '../../lib/install/action/remove.js': function (top, buildpath, pkg, log, next) { + removed.push(pkg.package.name) + next() + } +}) + +test('setup', function (t) { + npm.load(function () { + t.pass('npm loaded') + t.end() + }) +}) + +test('abc', function (t) { + var Installer = require('../../lib/install.js').Installer + var inst = new Installer(__dirname, false, []) + inst.progress = {executeActions: log} + inst.todo = [ + ['remove', {package: {name: 'first'}}], + ['remove', {package: {name: 'second'}}] + ] + inst.executeActions(function () { + t.isDeeply(removed, ['second', 'first']) + t.end() + }) +}) diff --git a/deps/npm/test/tap/uninstall-package.js b/deps/npm/test/tap/uninstall-package.js index 6e86df531aacb7bf9cb7dc08650f9a27e2785590..549b403ccfd55661d38338622ae7f030b105fb1c 100644 --- a/deps/npm/test/tap/uninstall-package.js +++ b/deps/npm/test/tap/uninstall-package.js @@ -56,8 +56,8 @@ test('returns a list of removed items', function (t) { function (err, code, stdout, stderr) { t.ifError(err, 'uninstall ran without issue') t.notOk(code, 'uninstall ran without raising error code') - t.has(stdout, /unbuild underscore@1.3.3/, 'underscore uninstalled') - t.has(stdout, /unbuild request@0.9.5/, 'request uninstalled') + t.has(stdout, /- underscore@1.3.3/, 'underscore uninstalled') + t.has(stdout, /- request@0.9.5/, 'request uninstalled') s.close() t.end() diff --git a/deps/npm/test/tap/update-examples.js b/deps/npm/test/tap/update-examples.js index 633713d9d7a8cf804510f917f5b84ccb41dc7acf..ae67e4a911a72b576c660739f78c6e68ad5089a4 100644 --- a/deps/npm/test/tap/update-examples.js +++ b/deps/npm/test/tap/update-examples.js @@ -1,6 +1,5 @@ var common = require('../common-tap.js') var test = require('tap').test -var npm = require('../../lib/npm.js') var mkdirp = require('mkdirp') var rimraf = require('rimraf') var path = require('path') @@ -29,9 +28,19 @@ var DEP_PKG = { } var INSTALLED = { - dependencies: { - 'dep1': '1.1.1' - } + path: '/mock/root', + realpath: '/mock/root', + isLink: false, + package: DEFAULT_PKG, + children: [ + { + path: '/mock/root/node_modules/dep1', + realpath: '/mock/root/node_modules/dep1', + isLink: false, + package: DEP_PKG, + children: [] + } + ] } var DEP1_REGISTRY = { name: 'dep1', @@ -87,16 +96,18 @@ function resetPackage (options) { if (options.wanted) { mockParentJson.dependencies.dep1 = options.wanted + mockInstalled.package.dependencies.dep1 = options.wanted mockDepJson._from = options.wanted } if (options.installed) { - mockInstalled.dependencies.dep1 = options.installed + mockInstalled.package.dependencies.dep1 = options.installed + mockInstalled.children[0].package.version = options.installed mockDepJson.version = options.installed } } -function mockReadInstalled (dir, opts, cb) { +function mockReadPackageTree (dir, cb) { cb(null, mockInstalled) } @@ -109,30 +120,47 @@ function mockCommand (npm, name, fn) { npm.commands[name] = fn } +function mockInstaller (where, dryrun, what) { + installAskedFor = what[0] +} +mockInstaller.prototype = {} +mockInstaller.prototype.run = function (cb) { + cb() +} + +var npm = requireInject.installGlobally('../../lib/npm.js', { + 'read-package-tree': mockReadPackageTree, + 'read-package-json': mockReadJson, + '../../lib/install': { + Installer: mockInstaller + } +}) + test('setup', function (t) { + t.plan(5) process.chdir(osenv.tmpdir()) mkdirp.sync(PKG_DIR) process.chdir(PKG_DIR) + t.pass('made ' + PKG_DIR) resetPackage({}) mr({ port: common.port, mocks: registryMocks }, function (er, server) { + t.pass('mock registry active') npm.load({ cache: CACHE_DIR, registry: common.registry, cwd: PKG_DIR }, function (err) { t.ifError(err, 'started server') mockServer = server + t.pass('npm.load complete') + mockCommand(npm, 'install', function mockInstall (where, what, cb) { installAskedFor = what cb(null) }) - mockCommand(npm, 'outdated', requireInject('../../lib/outdated', { - 'read-installed': mockReadInstalled, - 'read-package-json': mockReadJson - })) - + t.pass('mocks configured') t.end() }) }) @@ -141,9 +169,10 @@ test('setup', function (t) { test('update caret dependency to latest', function (t) { resetPackage({ wanted: '^1.1.1' }) + npm.config.set('loglevel', 'silly') npm.commands.update([], function (err) { t.ifError(err) - t.equal('dep1@1.2.2', installAskedFor, 'should want to install dep@1.2.2') + t.equal(installAskedFor, 'dep1@1.2.2', 'should want to install dep@1.2.2') t.end() }) }) @@ -153,7 +182,7 @@ test('update tilde dependency to latest', function (t) { npm.commands.update([], function (err) { t.ifError(err) - t.equal('dep1@1.1.2', installAskedFor, 'should want to install dep@1.1.2') + t.equal(installAskedFor, 'dep1@1.1.2', 'should want to install dep@1.1.2') t.end() }) }) @@ -173,7 +202,7 @@ test('update old caret dependency with no newer', function (t) { npm.commands.update([], function (err) { t.ifError(err) - t.equal('dep1@0.2.0', installAskedFor, 'should want to install dep@0.2.0') + t.equal(installAskedFor, 'dep1@0.2.0', 'should want to install dep@0.2.0') t.end() }) }) @@ -183,7 +212,7 @@ test('update old caret dependency with newer', function (t) { npm.commands.update([], function (err) { t.ifError(err) - t.equal('dep1@0.4.1', installAskedFor, 'should want to install dep@0.4.1') + t.equal(installAskedFor, 'dep1@0.4.1', 'should want to install dep@0.4.1') t.end() }) }) diff --git a/deps/npm/test/tap/update-path.js b/deps/npm/test/tap/update-path.js new file mode 100644 index 0000000000000000000000000000000000000000..1578669a253fb95bbc2d96db5c8ba387316efa22 --- /dev/null +++ b/deps/npm/test/tap/update-path.js @@ -0,0 +1,35 @@ +'use strict' +var test = require('tap').test +var requireInject = require('require-inject') + +var mockNpm = { + config: { + get: function (key) { + return false + } + }, + commands: { + outdated: function (args, silent, cb) { + cb(null, [ + [{path: '/incorrect', parent: {path: '/correct'}}, 'abc', '1.0.0', '1.1.0', '1.1.0', '^1.1.0'] + ]) + } + } +} + +// What we're testing here is that updates use the parent module's path to +// install from. +test('update', function (t) { + var update = requireInject('../../lib/update.js', { + '../../lib/npm.js': mockNpm, + '../../lib/install.js': { + 'Installer': function (where, dryrun, args) { + t.is(where, '/correct', 'We should be installing to the parent of the modules being updated') + this.run = function (cb) { cb() } + } + } + }) + update(['abc'], function () { + t.end() + }) +}) diff --git a/deps/npm/test/tap/verify-no-lifecycle-on-repo.js b/deps/npm/test/tap/verify-no-lifecycle-on-repo.js new file mode 100644 index 0000000000000000000000000000000000000000..29f79e29833bab92b30f3015c1d93d56958cc3b5 --- /dev/null +++ b/deps/npm/test/tap/verify-no-lifecycle-on-repo.js @@ -0,0 +1,54 @@ +'use strict' +var path = require('path') +var fs = require('graceful-fs') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var test = require('tap').test +var common = require('../common-tap.js') + +var base = path.join(__dirname, path.basename(__filename, '.js')) + +var baseJSON = { + name: 'base', + version: '1.0.0', + repository: { + type: 'git', + url: 'http://example.com' + }, + scripts: { + prepublish: 'false' + } +} + +test('setup', function (t) { + cleanup() + setup() + t.end() +}) + +test('repo', function (t) { + common.npm(['repo', '--browser=echo'], {cwd: base}, function (er, code, stdout, stderr) { + t.ifError(er, 'npm config ran without issue') + t.is(code, 0, 'exited with a non-error code') + t.is(stderr, '', 'Ran without errors') + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function saveJson (pkgPath, json) { + mkdirp.sync(pkgPath) + fs.writeFileSync(path.join(pkgPath, 'package.json'), JSON.stringify(json, null, 2)) +} + +function setup () { + saveJson(base, baseJSON) +} + +function cleanup () { + rimraf.sync(base) +} diff --git a/deps/npm/test/tap/version-no-git.js b/deps/npm/test/tap/version-no-git.js index 0acd0ab6a56a043c40665f81e451426a7ba93680..0a859c7af2170afae1250d077424dfaeaec910c4 100644 --- a/deps/npm/test/tap/version-no-git.js +++ b/deps/npm/test/tap/version-no-git.js @@ -1,54 +1,54 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var npm = require("../../") -var osenv = require("osenv") -var path = require("path") -var fs = require("fs") -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var requireInject = require("require-inject") +var common = require('../common-tap.js') +var test = require('tap').test +var npm = require('../../') +var osenv = require('osenv') +var path = require('path') +var fs = require('fs') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var requireInject = require('require-inject') -var pkg = path.resolve(__dirname, "version-no-git") -var cache = path.resolve(pkg, "cache") -var gitDir = path.resolve(pkg, ".git") +var pkg = path.resolve(__dirname, 'version-no-git') +var cache = path.resolve(pkg, 'cache') +var gitDir = path.resolve(pkg, '.git') -test("npm version in a git repo without the git binary", function(t) { +test('npm version in a git repo without the git binary', function (t) { setup() - npm.load({cache: cache, registry: common.registry}, function() { - var version = requireInject("../../lib/version", { - which: function(cmd, cb) { - process.nextTick(function() { + npm.load({cache: cache, registry: common.registry}, function () { + var version = requireInject('../../lib/version', { + which: function (cmd, cb) { + process.nextTick(function () { cb(new Error('ENOGIT!')) }) } }) - version(["patch"], function(err) { - if (! t.error(err)) return t.end() - var p = path.resolve(pkg, "package") + version(['patch'], function (err) { + if (!t.error(err)) return t.end() + var p = path.resolve(pkg, 'package') var testPkg = require(p) - t.equal("0.0.1", testPkg.version, "\"" + testPkg.version+"\" === \"0.0.1\"") + t.equal('0.0.1', testPkg.version, '\'' + testPkg.version + '\' === \'0.0.1\'') t.end() }) }) }) -test("cleanup", function(t) { +test('cleanup', function (t) { process.chdir(osenv.tmpdir()) rimraf.sync(pkg) t.end() }) -function setup() { +function setup () { mkdirp.sync(pkg) mkdirp.sync(cache) mkdirp.sync(gitDir) - fs.writeFileSync(path.resolve(pkg, "package.json"), JSON.stringify({ - author: "Terin Stock", - name: "version-no-git-test", - version: "0.0.0", + fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ + author: 'Terin Stock', + name: 'version-no-git-test', + version: '0.0.0', description: "Test for npm version if git binary doesn't exist" - }), "utf8") + }), 'utf8') process.chdir(pkg) } diff --git a/deps/npm/test/tap/version-no-package.js b/deps/npm/test/tap/version-no-package.js index 539f53feb72ca95ee844eaa26d1713bee9e94806..755f99317e6e097727dbd62a84e5ad5050089668 100644 --- a/deps/npm/test/tap/version-no-package.js +++ b/deps/npm/test/tap/version-no-package.js @@ -1,45 +1,45 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var osenv = require("osenv") -var path = require("path") -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") +var common = require('../common-tap.js') +var test = require('tap').test +var osenv = require('osenv') +var path = require('path') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') -var pkg = path.resolve(__dirname, "version-no-package") +var pkg = path.resolve(__dirname, 'version-no-package') -test("setup", function (t) { +test('setup', function (t) { setup() t.end() }) -test("npm version in a prefix with no package.json", function(t) { +test('npm version in a prefix with no package.json', function (t) { setup() common.npm( - ["version", "--json", "--prefix", pkg], - { cwd : pkg }, + ['version', '--json', '--prefix', pkg], + { cwd: pkg }, function (er, code, stdout, stderr) { t.ifError(er, "npm version doesn't care that there's no package.json") - t.notOk(code, "npm version ran without barfing") - t.ok(stdout, "got version output") - t.notOk(stderr, "no error output") + t.notOk(code, 'npm version ran without barfing') + t.ok(stdout, 'got version output') + t.notOk(stderr, 'no error output') t.doesNotThrow(function () { var metadata = JSON.parse(stdout) - t.equal(metadata.node, process.versions.node, "node versions match") + t.equal(metadata.node, process.versions.node, 'node versions match') t.end() - }, "able to reconstitute version object from stdout") + }, 'able to reconstitute version object from stdout') } ) }) -test("cleanup", function(t) { +test('cleanup', function (t) { process.chdir(osenv.tmpdir()) rimraf.sync(pkg) t.end() }) -function setup() { +function setup () { mkdirp.sync(pkg) process.chdir(pkg) } diff --git a/deps/npm/test/tap/version-no-tags.js b/deps/npm/test/tap/version-no-tags.js index cb6f195f8ba5997a56755f85ad6ebfc7618fc66d..ed2bed32c29deee118ca80b3bccf06bb20f2fc42 100644 --- a/deps/npm/test/tap/version-no-tags.js +++ b/deps/npm/test/tap/version-no-tags.js @@ -1,47 +1,47 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var npm = require("../../") -var osenv = require("osenv") -var path = require("path") -var fs = require("fs") -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") -var which = require("which") -var spawn = require("child_process").spawn +var common = require('../common-tap.js') +var test = require('tap').test +var npm = require('../../') +var osenv = require('osenv') +var path = require('path') +var fs = require('fs') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var which = require('which') +var spawn = require('child_process').spawn -var pkg = path.resolve(__dirname, "version-no-tags") -var cache = path.resolve(pkg, "cache") +var pkg = path.resolve(__dirname, 'version-no-tags') +var cache = path.resolve(pkg, 'cache') -test("npm version without git tag", function (t) { +test('npm version without git tag', function (t) { setup() npm.load({ cache: cache, registry: common.registry}, function () { - which("git", function (err, git) { - t.ifError(err, "git found on system") - function tagExists(tag, _cb) { - var child1 = spawn(git, ["tag", "-l", tag]) - var out = "" - child1.stdout.on("data", function (d) { + which('git', function (err, git) { + t.ifError(err, 'git found on system') + function tagExists (tag, _cb) { + var child1 = spawn(git, ['tag', '-l', tag]) + var out = '' + child1.stdout.on('data', function (d) { out += d.toString() }) - child1.on("exit", function () { + child1.on('exit', function () { return _cb(null, Boolean(~out.indexOf(tag))) }) } - var child2 = spawn(git, ["init"]) + var child2 = spawn(git, ['init']) child2.stdout.pipe(process.stdout) - child2.on("exit", function () { - npm.config.set("git-tag-version", false) - npm.commands.version(["patch"], function (err) { - if (err) return t.fail("Error perform version patch") - var p = path.resolve(pkg, "package") + child2.on('exit', function () { + npm.config.set('git-tag-version', false) + npm.commands.version(['patch'], function (err) { + if (err) return t.fail('Error perform version patch') + var p = path.resolve(pkg, 'package') var testPkg = require(p) - if (testPkg.version !== "0.0.1") t.fail(testPkg.version+" !== \"0.0.1\"") - t.equal("0.0.1", testPkg.version) - tagExists("v0.0.1", function (err, exists) { - t.ifError(err, "tag found to exist") - t.equal(exists, false, "git tag DOES exist") - t.pass("git tag does not exist") + if (testPkg.version !== '0.0.1') t.fail(testPkg.version + ' !== \'0.0.1\'') + t.equal('0.0.1', testPkg.version) + tagExists('v0.0.1', function (err, exists) { + t.ifError(err, 'tag found to exist') + t.equal(exists, false, 'git tag DOES exist') + t.pass('git tag does not exist') t.end() }) }) @@ -50,7 +50,7 @@ test("npm version without git tag", function (t) { }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { // windows fix for locked files process.chdir(osenv.tmpdir()) @@ -58,14 +58,14 @@ test("cleanup", function (t) { t.end() }) -function setup() { +function setup () { mkdirp.sync(pkg) mkdirp.sync(cache) - fs.writeFileSync(path.resolve(pkg, "package.json"), JSON.stringify({ - author: "Evan Lucas", - name: "version-no-tags-test", - version: "0.0.0", - description: "Test for git-tag-version flag" - }), "utf8") + fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ + author: 'Evan Lucas', + name: 'version-no-tags-test', + version: '0.0.0', + description: 'Test for git-tag-version flag' + }), 'utf8') process.chdir(pkg) } diff --git a/deps/npm/test/tap/view.js b/deps/npm/test/tap/view.js index dcfd2810115d3ad14e3dac4e33c10decde79b538..84a0a69d30c4283f4c1401978e99b2c0f75754cb 100644 --- a/deps/npm/test/tap/view.js +++ b/deps/npm/test/tap/view.js @@ -1,97 +1,97 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var osenv = require("osenv") -var path = require("path") -var fs = require("fs") -var rimraf = require("rimraf") -var mkdirp = require("mkdirp") +var common = require('../common-tap.js') +var test = require('tap').test +var osenv = require('osenv') +var path = require('path') +var fs = require('fs') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') var tmp = osenv.tmpdir() -var t1dir = path.resolve(tmp, "view-local-no-pkg") -var t2dir = path.resolve(tmp, "view-local-notmine") -var t3dir = path.resolve(tmp, "view-local-mine") -var mr = require("npm-registry-mock") +var t1dir = path.resolve(tmp, 'view-local-no-pkg') +var t2dir = path.resolve(tmp, 'view-local-notmine') +var t3dir = path.resolve(tmp, 'view-local-mine') +var mr = require('npm-registry-mock') -test("setup", function (t) { +test('setup', function (t) { mkdirp.sync(t1dir) mkdirp.sync(t2dir) mkdirp.sync(t3dir) - fs.writeFileSync(t2dir + "/package.json", JSON.stringify({ - author: "Evan Lucas" - , name: "test-repo-url-https" - , version: "0.0.1" - }), "utf8") + fs.writeFileSync(t2dir + '/package.json', JSON.stringify({ + author: 'Evan Lucas', + name: 'test-repo-url-https', + version: '0.0.1' + }), 'utf8') - fs.writeFileSync(t3dir + "/package.json", JSON.stringify({ - author: "Evan Lucas" - , name: "biscuits" - , version: "0.0.1" - }), "utf8") + fs.writeFileSync(t3dir + '/package.json', JSON.stringify({ + author: 'Evan Lucas', + name: 'biscuits', + version: '0.0.1' + }), 'utf8') - t.pass("created fixtures") + t.pass('created fixtures') t.end() }) function plugin (server) { server - .get("/biscuits") + .get('/biscuits') .many() - .reply(404, {"error": "version not found"}) + .reply(404, {'error': 'version not found'}) } -test("npm view . in global mode", function (t) { +test('npm view . in global mode', function (t) { process.chdir(t1dir) common.npm([ - "view" - , "." - , "--registry=" + common.registry - , "--global" + 'view', + '.', + '--registry=' + common.registry, + '--global' ], { cwd: t1dir }, function (err, code, stdout, stderr) { - t.ifError(err, "view command finished successfully") - t.equal(code, 1, "exit not ok") + t.ifError(err, 'view command finished successfully') + t.equal(code, 1, 'exit not ok') t.similar(stderr, /Cannot use view command in global mode./m) t.end() }) }) -test("npm view --global", function(t) { +test('npm view --global', function (t) { process.chdir(t1dir) common.npm([ - "view" - , "--registry=" + common.registry - , "--global" - ], { cwd: t1dir }, function(err, code, stdout, stderr) { - t.ifError(err, "view command finished successfully") - t.equal(code, 1, "exit not ok") + 'view', + '--registry=' + common.registry, + '--global' + ], { cwd: t1dir }, function (err, code, stdout, stderr) { + t.ifError(err, 'view command finished successfully') + t.equal(code, 1, 'exit not ok') t.similar(stderr, /Cannot use view command in global mode./m) t.end() }) }) -test("npm view . with no package.json", function(t) { +test('npm view . with no package.json', function (t) { process.chdir(t1dir) common.npm([ - "view" - , "." - , "--registry=" + common.registry + 'view', + '.', + '--registry=' + common.registry ], { cwd: t1dir }, function (err, code, stdout, stderr) { - t.ifError(err, "view command finished successfully") - t.equal(code, 1, "exit not ok") + t.ifError(err, 'view command finished successfully') + t.equal(code, 1, 'exit not ok') t.similar(stderr, /Invalid package.json/m) t.end() }) }) -test("npm view . with no published package", function (t) { +test('npm view . with no published package', function (t) { process.chdir(t3dir) - mr({port : common.port, plugin : plugin}, function (er, s) { + mr({ port: common.port, plugin: plugin}, function (er, s) { common.npm([ - "view" - , "." - , "--registry=" + common.registry + 'view', + '.', + '--registry=' + common.registry ], { cwd: t3dir }, function (err, code, stdout, stderr) { - t.ifError(err, "view command finished successfully") - t.equal(code, 1, "exit not ok") + t.ifError(err, 'view command finished successfully') + t.equal(code, 1, 'exit not ok') t.similar(stderr, /version not found/m) s.close() t.end() @@ -99,16 +99,16 @@ test("npm view . with no published package", function (t) { }) }) -test("npm view .", function (t) { +test('npm view .', function (t) { process.chdir(t2dir) - mr({port : common.port, plugin : plugin}, function (er, s) { + mr({ port: common.port, plugin: plugin }, function (er, s) { common.npm([ - "view" - , "." - , "--registry=" + common.registry + 'view', + '.', + '--registry=' + common.registry ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, "view command finished successfully") - t.equal(code, 0, "exit ok") + t.ifError(err, 'view command finished successfully') + t.equal(code, 0, 'exit ok') var re = new RegExp("name: 'test-repo-url-https'") t.similar(stdout, re) s.close() @@ -117,161 +117,160 @@ test("npm view .", function (t) { }) }) -test("npm view . select fields", function (t) { +test('npm view . select fields', function (t) { process.chdir(t2dir) - mr({port : common.port, plugin : plugin}, function (er, s) { + mr({ port: common.port, plugin: plugin }, function (er, s) { common.npm([ - "view" - , "." - , "main" - , "--registry=" + common.registry + 'view', + '.', + 'main', + '--registry=' + common.registry ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, "view command finished successfully") - t.equal(code, 0, "exit ok") - t.equal(stdout.trim(), "index.js", "should print `index.js`") + t.ifError(err, 'view command finished successfully') + t.equal(code, 0, 'exit ok') + t.equal(stdout.trim(), 'index.js', 'should print `index.js`') s.close() t.end() }) }) }) -test("npm view .@", function (t) { +test('npm view .@', function (t) { process.chdir(t2dir) - mr({port : common.port, plugin : plugin}, function (er, s) { + mr({ port: common.port, plugin: plugin }, function (er, s) { common.npm([ - "view" - , ".@0.0.0" - , "version" - , "--registry=" + common.registry + 'view', + '.@0.0.0', + 'version', + '--registry=' + common.registry ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, "view command finished successfully") - t.equal(code, 0, "exit ok") - t.equal(stdout.trim(), "0.0.0", "should print `0.0.0`") + t.ifError(err, 'view command finished successfully') + t.equal(code, 0, 'exit ok') + t.equal(stdout.trim(), '0.0.0', 'should print `0.0.0`') s.close() t.end() }) }) }) -test("npm view .@ --json", function (t) { +test('npm view .@ --json', function (t) { process.chdir(t2dir) - mr({port : common.port, plugin : plugin}, function (er, s) { + mr({ port: common.port, plugin: plugin }, function (er, s) { common.npm([ - "view" - , ".@0.0.0" - , "version" - , "--json" - , "--registry=" + common.registry + 'view', + '.@0.0.0', + 'version', + '--json', + '--registry=' + common.registry ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, "view command finished successfully") - t.equal(code, 0, "exit ok") - t.equal(stdout.trim(), "\"0.0.0\"", "should print `\"0.0.0\"`") + t.ifError(err, 'view command finished successfully') + t.equal(code, 0, 'exit ok') + t.equal(stdout.trim(), '"0.0.0"', 'should print `"0.0.0"`') s.close() t.end() }) }) }) -test("npm view ", function (t) { - mr({port : common.port, plugin : plugin}, function (er, s) { +test('npm view ', function (t) { + mr({ port: common.port, plugin: plugin }, function (er, s) { common.npm([ - "view" - , "underscore" - , "--registry=" + common.registry + 'view', + 'underscore', + '--registry=' + common.registry ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, "view command finished successfully") - t.equal(code, 0, "exit ok") + t.ifError(err, 'view command finished successfully') + t.equal(code, 0, 'exit ok') var re = new RegExp("name: 'underscore'") - t.similar(stdout, re, "should have name `underscore`") + t.similar(stdout, re, 'should have name `underscore`') s.close() t.end() }) }) }) -test("npm view --global", function(t) { - mr({port : common.port, plugin : plugin}, function (er, s) { +test('npm view --global', function (t) { + mr({ port: common.port, plugin: plugin }, function (er, s) { common.npm([ - "view" - , "underscore" - , "--global" - , "--registry=" + common.registry - ], { cwd: t2dir }, function(err, code, stdout) { - t.ifError(err, "view command finished successfully") - t.equal(code, 0, "exit ok") + 'view', + 'underscore', + '--global', + '--registry=' + common.registry + ], { cwd: t2dir }, function (err, code, stdout) { + t.ifError(err, 'view command finished successfully') + t.equal(code, 0, 'exit ok') var re = new RegExp("name: 'underscore'") - t.similar(stdout, re, "should have name `underscore`") + t.similar(stdout, re, 'should have name `underscore`') s.close() t.end() }) }) }) -test("npm view --json", function(t) { +test('npm view --json', function (t) { t.plan(3) - mr({port : common.port, plugin : plugin}, function (er, s) { + mr({ port: common.port, plugin: plugin }, function (er, s) { common.npm([ - "view" - , "underscore" - , "--json" - , "--registry=" + common.registry + 'view', + 'underscore', + '--json', + '--registry=' + common.registry ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, "view command finished successfully") - t.equal(code, 0, "exit ok") + t.ifError(err, 'view command finished successfully') + t.equal(code, 0, 'exit ok') s.close() try { var out = JSON.parse(stdout.trim()) t.similar(out, { - maintainers: "jashkenas " - }, "should have the same maintainer") - } - catch (er) { - t.fail("Unable to parse JSON") + maintainers: ['jashkenas '] + }, 'should have the same maintainer') + } catch (er) { + t.fail('Unable to parse JSON') } }) }) }) -test("npm view ", function (t) { - mr({port : common.port, plugin : plugin}, function (er, s) { +test('npm view ', function (t) { + mr({ port: common.port, plugin: plugin }, function (er, s) { common.npm([ - "view" - , "underscore" - , "homepage" - , "--registry=" + common.registry + 'view', + 'underscore', + 'homepage', + '--registry=' + common.registry ], { cwd: t2dir }, function (err, code, stdout) { - t.ifError(err, "view command finished successfully") - t.equal(code, 0, "exit ok") - t.equal(stdout.trim(), "http://underscorejs.org", - "homepage should equal `http://underscorejs.org`") + t.ifError(err, 'view command finished successfully') + t.equal(code, 0, 'exit ok') + t.equal(stdout.trim(), 'http://underscorejs.org', + 'homepage should equal `http://underscorejs.org`') s.close() t.end() }) }) }) -test("npm view with invalid package name", function (t) { - var invalidName = "InvalidPackage" - obj = {} - obj["/" + invalidName] = [404, {"error": "not found"}] +test('npm view with invalid package name', function (t) { + var invalidName = 'InvalidPackage' + var obj = {} + obj['/' + invalidName] = [404, {'error': 'not found'}] - mr({port : common.port, mocks: {"get": obj}}, function (er, s) { + mr({ port: common.port, mocks: { 'get': obj } }, function (er, s) { common.npm([ - "view" - , invalidName - , "--registry=" + common.registry + 'view', + invalidName, + '--registry=' + common.registry ], {}, function (err, code, stdout, stderr) { - t.ifError(err, "view command finished successfully") - t.equal(code, 1, "exit not ok") + t.ifError(err, 'view command finished successfully') + t.equal(code, 1, 'exit not ok') - t.similar(stderr, new RegExp("is not in the npm registry"), - "Package should NOT be found") + t.similar(stderr, new RegExp('is not in the npm registry'), + 'Package should NOT be found') - t.dissimilar(stderr, new RegExp("use the name yourself!"), - "Suggestion should not be there") + t.dissimilar(stderr, new RegExp('use the name yourself!'), + 'Suggestion should not be there') - t.similar(stderr, new RegExp("name can no longer contain capital letters"), - "Suggestion about Capital letter should be there") + t.similar(stderr, new RegExp('name can no longer contain capital letters'), + 'Suggestion about Capital letter should be there') s.close() t.end() @@ -279,27 +278,26 @@ test("npm view with invalid package name", function (t) { }) }) - -test("npm view with valid but non existent package name", function (t) { - mr({port : common.port, mocks: { - "get": { - "/valid-but-non-existent-package" : [404, {"error": "not found"}] +test('npm view with valid but non existent package name', function (t) { + mr({ port: common.port, mocks: { + 'get': { + '/valid-but-non-existent-package': [404, {'error': 'not found'}] } }}, function (er, s) { common.npm([ - "view" - , "valid-but-non-existent-package" - , "--registry=" + common.registry + 'view', + 'valid-but-non-existent-package', + '--registry=' + common.registry ], {}, function (err, code, stdout, stderr) { - t.ifError(err, "view command finished successfully") - t.equal(code, 1, "exit not ok") + t.ifError(err, 'view command finished successfully') + t.equal(code, 1, 'exit not ok') t.similar(stderr, new RegExp("'valid-but-non-existent-package' is not in the npm registry\."), - "Package should NOT be found") + 'Package should NOT be found') - t.similar(stderr, new RegExp("use the name yourself!"), - "Suggestion should be there") + t.similar(stderr, new RegExp('use the name yourself!'), + 'Suggestion should be there') s.close() t.end() @@ -307,11 +305,11 @@ test("npm view with valid but non existent package name", function (t) { }) }) -test("cleanup", function (t) { +test('cleanup', function (t) { process.chdir(osenv.tmpdir()) rimraf.sync(t1dir) rimraf.sync(t2dir) rimraf.sync(t3dir) - t.pass("cleaned up") + t.pass('cleaned up') t.end() }) diff --git a/deps/npm/test/tap/whoami.js b/deps/npm/test/tap/whoami.js index 558d0db9aefeb12791f32f8bf5361e768e2b6c89..268e0f94feb095c234a54aab486da8229c7bdecc 100644 --- a/deps/npm/test/tap/whoami.js +++ b/deps/npm/test/tap/whoami.js @@ -1,55 +1,55 @@ -var common = require("../common-tap.js") +var common = require('../common-tap.js') -var fs = require("fs") -var path = require("path") -var createServer = require("http").createServer +var fs = require('fs') +var path = require('path') +var createServer = require('http').createServer -var test = require("tap").test -var rimraf = require("rimraf") +var test = require('tap').test +var rimraf = require('rimraf') var opts = { cwd: __dirname } -var FIXTURE_PATH = path.resolve(__dirname, "fixture_npmrc") +var FIXTURE_PATH = path.resolve(__dirname, 'fixture_npmrc') -test("npm whoami with basic auth", function (t) { - var s = "//registry.lvh.me/:username = wombat\n" + - "//registry.lvh.me/:_password = YmFkIHBhc3N3b3Jk\n" + - "//registry.lvh.me/:email = lindsay@wdu.org.au\n" - fs.writeFileSync(FIXTURE_PATH, s, "ascii") - fs.chmodSync(FIXTURE_PATH, "0444") +test('npm whoami with basic auth', function (t) { + var s = '//registry.lvh.me/:username = wombat\n' + + '//registry.lvh.me/:_password = YmFkIHBhc3N3b3Jk\n' + + '//registry.lvh.me/:email = lindsay@wdu.org.au\n' + fs.writeFileSync(FIXTURE_PATH, s, 'ascii') + fs.chmodSync(FIXTURE_PATH, '0444') common.npm( [ - "whoami", - "--userconfig=" + FIXTURE_PATH, - "--registry=http://registry.lvh.me/" + 'whoami', + '--userconfig=' + FIXTURE_PATH, + '--registry=http://registry.lvh.me/' ], opts, function (err, code, stdout, stderr) { t.ifError(err) - t.equal(stderr, "", "got nothing on stderr") - t.equal(code, 0, "exit ok") - t.equal(stdout, "wombat\n", "got username") + t.equal(stderr, '', 'got nothing on stderr') + t.equal(code, 0, 'exit ok') + t.equal(stdout, 'wombat\n', 'got username') rimraf.sync(FIXTURE_PATH) t.end() } ) }) -test("npm whoami with bearer auth", {timeout : 2 * 1000}, function (t) { - var s = "//localhost:" + common.port + - "/:_authToken = wombat-developers-union\n" - fs.writeFileSync(FIXTURE_PATH, s, "ascii") - fs.chmodSync(FIXTURE_PATH, "0444") +test('npm whoami with bearer auth', { timeout: 2 * 1000 }, function (t) { + var s = '//localhost:' + common.port + + '/:_authToken = wombat-developers-union\n' + fs.writeFileSync(FIXTURE_PATH, s, 'ascii') + fs.chmodSync(FIXTURE_PATH, '0444') - function verify(req, res) { - t.equal(req.method, "GET") - t.equal(req.url, "/-/whoami") + function verify (req, res) { + t.equal(req.method, 'GET') + t.equal(req.url, '/-/whoami') - res.setHeader("content-type", "application/json") + res.setHeader('content-type', 'application/json') res.writeHeader(200) - res.end(JSON.stringify({username : "wombat"}), "utf8") + res.end(JSON.stringify({ username: 'wombat' }), 'utf8') } var server = createServer(verify) @@ -57,17 +57,17 @@ test("npm whoami with bearer auth", {timeout : 2 * 1000}, function (t) { server.listen(common.port, function () { common.npm( [ - "whoami", - "--userconfig=" + FIXTURE_PATH, - "--registry=http://localhost:" + common.port + "/" + 'whoami', + '--userconfig=' + FIXTURE_PATH, + '--registry=http://localhost:' + common.port + '/' ], opts, function (err, code, stdout, stderr) { t.ifError(err) - t.equal(stderr, "", "got nothing on stderr") - t.equal(code, 0, "exit ok") - t.equal(stdout, "wombat\n", "got username") + t.equal(stderr, '', 'got nothing on stderr') + t.equal(code, 0, 'exit ok') + t.equal(stdout, 'wombat\n', 'got username') rimraf.sync(FIXTURE_PATH) server.close() t.end() diff --git a/deps/npm/test/tap/zz-cleanup.js b/deps/npm/test/tap/zz-cleanup.js index c491cbf0711f1cc541f08d42199c4c45fdef93e5..e1020aa3b11b518ac36025d9eed39bbf56f6bd0b 100644 --- a/deps/npm/test/tap/zz-cleanup.js +++ b/deps/npm/test/tap/zz-cleanup.js @@ -1,8 +1,8 @@ -var common = require("../common-tap") -var test = require("tap").test -var rimraf = require("rimraf") +var common = require('../common-tap') +var test = require('tap').test +var rimraf = require('rimraf') -test("cleanup", function (t) { +test('cleanup', function (t) { rimraf.sync(common.npm_config_cache) t.end() })