diff options
author | Kat Marchán <kzm@sykosomatic.org> | 2015-09-03 02:08:42 +0300 |
---|---|---|
committer | Rebecca Turner <me@re-becca.org> | 2015-09-18 01:20:26 +0300 |
commit | 5efed61fc2e8fd4321ba9ab507c04ec94d01a154 (patch) | |
tree | a7da76aaeb07779011da0ef1aeb0c632a5438810 /node_modules/npm-registry-client | |
parent | a1278013f729485b8f181192b7d4df64fa3d6de6 (diff) |
npm-registry-client@7.0.7
Fixes error when deprecating scoped packages
PR-URL: https://github.com/npm/npm-registry-client/pull/115
PR-URL: https://github.com/npm/npm/pull/9558
Diffstat (limited to 'node_modules/npm-registry-client')
70 files changed, 248 insertions, 1453 deletions
diff --git a/node_modules/npm-registry-client/.travis.yml b/node_modules/npm-registry-client/.travis.yml index 686d9aeca..3669bc76e 100644 --- a/node_modules/npm-registry-client/.travis.yml +++ b/node_modules/npm-registry-client/.travis.yml @@ -2,9 +2,11 @@ language: node_js node_js: - "0.12" - "0.10" + - "0.8" - iojs -before_install: - - "npm install -g npm@^2" script: "npm test" +sudo: false +before_install: + - "npm install -g npm@latest" notifications: slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8 diff --git a/node_modules/npm-registry-client/lib/deprecate.js b/node_modules/npm-registry-client/lib/deprecate.js index 04d311cc0..5ff3a8891 100644 --- a/node_modules/npm-registry-client/lib/deprecate.js +++ b/node_modules/npm-registry-client/lib/deprecate.js @@ -1,7 +1,6 @@ module.exports = deprecate var assert = require('assert') -var url = require('url') var semver = require('semver') function deprecate (uri, params, cb) { @@ -38,6 +37,6 @@ function deprecate (uri, params, cb) { body: data, auth: auth } - this.request(url.resolve(uri, data._id), options, cb) + this.request(uri, options, cb) }.bind(this)) } diff --git a/node_modules/npm-registry-client/lib/request.js b/node_modules/npm-registry-client/lib/request.js index e4dc39957..567fc8dbe 100644 --- a/node_modules/npm-registry-client/lib/request.js +++ b/node_modules/npm-registry-client/lib/request.js @@ -64,6 +64,13 @@ function regRequest (uri, params, cb_) { var self = this this.attempt(function (operation) { makeRequest.call(self, uri, params, function (er, parsed, raw, response) { + if (response) { + self.log.verbose('headers', response.headers) + if (response.headers['npm-notice']) { + self.log.warn('notice', response.headers['npm-notice']) + } + } + if (!er || (er.message && er.message.match(/^SSL Error/))) { if (er) er.code = 'ESSL' return cb(er, parsed, raw, response) @@ -79,12 +86,6 @@ function regRequest (uri, params, cb_) { self.log.info('retry', 'will retry, error on last attempt: ' + er) return undefined } - if (response) { - self.log.verbose('headers', response.headers) - if (response.headers['npm-notice']) { - self.log.warn('notice', response.headers['npm-notice']) - } - } cb.apply(null, arguments) }) }) diff --git a/node_modules/npm-registry-client/node_modules/graceful-fs/.npmignore b/node_modules/npm-registry-client/node_modules/graceful-fs/.npmignore deleted file mode 100644 index c2658d7d1..000000000 --- a/node_modules/npm-registry-client/node_modules/graceful-fs/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/node_modules/npm-registry-client/node_modules/graceful-fs/LICENSE b/node_modules/npm-registry-client/node_modules/graceful-fs/LICENSE deleted file mode 100644 index 19129e315..000000000 --- a/node_modules/npm-registry-client/node_modules/graceful-fs/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/npm-registry-client/node_modules/graceful-fs/README.md b/node_modules/npm-registry-client/node_modules/graceful-fs/README.md deleted file mode 100644 index 13a2e8605..000000000 --- a/node_modules/npm-registry-client/node_modules/graceful-fs/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# graceful-fs - -graceful-fs functions as a drop-in replacement for the fs module, -making various improvements. - -The improvements are meant to normalize behavior across different -platforms and environments, and to make filesystem access more -resilient to errors. - -## Improvements over [fs module](http://api.nodejs.org/fs.html) - -graceful-fs: - -* Queues up `open` and `readdir` calls, and retries them once - something closes if there is an EMFILE error from too many file - descriptors. -* fixes `lchmod` for Node versions prior to 0.6.2. -* implements `fs.lutimes` if possible. Otherwise it becomes a noop. -* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or - `lchown` if the user isn't root. -* makes `lchmod` and `lchown` become noops, if not available. -* retries reading a file if `read` results in EAGAIN error. - -On Windows, it retries renaming a file for up to one second if `EACCESS` -or `EPERM` error occurs, likely because antivirus software has locked -the directory. - -## USAGE - -```javascript -// use just like fs -var fs = require('graceful-fs') - -// now go and do stuff with it... -fs.readFileSync('some-file-or-whatever') -``` diff --git a/node_modules/npm-registry-client/node_modules/graceful-fs/fs.js b/node_modules/npm-registry-client/node_modules/graceful-fs/fs.js deleted file mode 100644 index 64ad98023..000000000 --- a/node_modules/npm-registry-client/node_modules/graceful-fs/fs.js +++ /dev/null @@ -1,11 +0,0 @@ -// eeeeeevvvvviiiiiiillllll -// more evil than monkey-patching the native builtin? -// Not sure. - -var mod = require("module") -var pre = '(function (exports, require, module, __filename, __dirname) { ' -var post = '});' -var src = pre + process.binding('natives').fs + post -var vm = require('vm') -var fn = vm.runInThisContext(src) -fn(exports, require, module, __filename, __dirname) diff --git a/node_modules/npm-registry-client/node_modules/graceful-fs/graceful-fs.js b/node_modules/npm-registry-client/node_modules/graceful-fs/graceful-fs.js deleted file mode 100644 index fb206b838..000000000 --- a/node_modules/npm-registry-client/node_modules/graceful-fs/graceful-fs.js +++ /dev/null @@ -1,158 +0,0 @@ -// Monkey-patching the fs module. -// It's ugly, but there is simply no other way to do this. -var fs = module.exports = require('./fs.js') - -var assert = require('assert') - -// fix up some busted stuff, mostly on windows and old nodes -require('./polyfills.js') - -var util = require('util') - -function noop () {} - -var debug = noop -if (util.debuglog) - debug = util.debuglog('gfs') -else if (/\bgfs\b/i.test(process.env.NODE_DEBUG || '')) - debug = function() { - var m = util.format.apply(util, arguments) - m = 'GFS: ' + m.split(/\n/).join('\nGFS: ') - console.error(m) - } - -if (/\bgfs\b/i.test(process.env.NODE_DEBUG || '')) { - process.on('exit', function() { - debug('fds', fds) - debug(queue) - assert.equal(queue.length, 0) - }) -} - - -var originalOpen = fs.open -fs.open = open - -function open(path, flags, mode, cb) { - if (typeof mode === "function") cb = mode, mode = null - if (typeof cb !== "function") cb = noop - new OpenReq(path, flags, mode, cb) -} - -function OpenReq(path, flags, mode, cb) { - this.path = path - this.flags = flags - this.mode = mode - this.cb = cb - Req.call(this) -} - -util.inherits(OpenReq, Req) - -OpenReq.prototype.process = function() { - originalOpen.call(fs, this.path, this.flags, this.mode, this.done) -} - -var fds = {} -OpenReq.prototype.done = function(er, fd) { - debug('open done', er, fd) - if (fd) - fds['fd' + fd] = this.path - Req.prototype.done.call(this, er, fd) -} - - -var originalReaddir = fs.readdir -fs.readdir = readdir - -function readdir(path, cb) { - if (typeof cb !== "function") cb = noop - new ReaddirReq(path, cb) -} - -function ReaddirReq(path, cb) { - this.path = path - this.cb = cb - Req.call(this) -} - -util.inherits(ReaddirReq, Req) - -ReaddirReq.prototype.process = function() { - originalReaddir.call(fs, this.path, this.done) -} - -ReaddirReq.prototype.done = function(er, files) { - if (files && files.sort) - files = files.sort() - Req.prototype.done.call(this, er, files) - onclose() -} - - -var originalClose = fs.close -fs.close = close - -function close (fd, cb) { - debug('close', fd) - if (typeof cb !== "function") cb = noop - delete fds['fd' + fd] - originalClose.call(fs, fd, function(er) { - onclose() - cb(er) - }) -} - - -var originalCloseSync = fs.closeSync -fs.closeSync = closeSync - -function closeSync (fd) { - try { - return originalCloseSync(fd) - } finally { - onclose() - } -} - - -// Req class -function Req () { - // start processing - this.done = this.done.bind(this) - this.failures = 0 - this.process() -} - -Req.prototype.done = function (er, result) { - var tryAgain = false - if (er) { - var code = er.code - var tryAgain = code === "EMFILE" || code === "ENFILE" - if (process.platform === "win32") - tryAgain = tryAgain || code === "OK" - } - - if (tryAgain) { - this.failures ++ - enqueue(this) - } else { - var cb = this.cb - cb(er, result) - } -} - -var queue = [] - -function enqueue(req) { - queue.push(req) - debug('enqueue %d %s', queue.length, req.constructor.name, req) -} - -function onclose() { - var req = queue.shift() - if (req) { - debug('process', req.constructor.name, req) - req.process() - } -} diff --git a/node_modules/npm-registry-client/node_modules/graceful-fs/package.json b/node_modules/npm-registry-client/node_modules/graceful-fs/package.json deleted file mode 100644 index 651f94213..000000000 --- a/node_modules/npm-registry-client/node_modules/graceful-fs/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "_args": [ - [ - "graceful-fs@^3.0.0", - "/Users/rebecca/code/npm/node_modules/npm-registry-client" - ] - ], - "_from": "graceful-fs@>=3.0.0 <4.0.0", - "_id": "graceful-fs@3.0.8", - "_inCache": true, - "_location": "/npm-registry-client/graceful-fs", - "_nodeVersion": "2.0.1", - "_npmUser": { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - "_npmVersion": "2.10.1", - "_phantomChildren": {}, - "_requested": { - "name": "graceful-fs", - "raw": "graceful-fs@^3.0.0", - "rawSpec": "^3.0.0", - "scope": null, - "spec": ">=3.0.0 <4.0.0", - "type": "range" - }, - "_requiredBy": [ - "/npm-registry-client" - ], - "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz", - "_shasum": "ce813e725fa82f7e6147d51c9a5ca68270551c22", - "_shrinkwrap": null, - "_spec": "graceful-fs@^3.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me" - }, - "bugs": { - "url": "https://github.com/isaacs/node-graceful-fs/issues" - }, - "dependencies": {}, - "description": "A drop-in replacement for fs, making various improvements.", - "devDependencies": { - "mkdirp": "^0.5.0", - "rimraf": "^2.2.8", - "tap": "^1.2.0" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "ce813e725fa82f7e6147d51c9a5ca68270551c22", - "tarball": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" - }, - "engines": { - "node": ">=0.4.0" - }, - "gitHead": "45c57aa5e323c35a985a525de6f0c9a6ef59e1f8", - "homepage": "https://github.com/isaacs/node-graceful-fs#readme", - "keywords": [ - "EACCESS", - "EAGAIN", - "EINVAL", - "EMFILE", - "EPERM", - "error", - "errors", - "fs", - "handling", - "module", - "queue", - "reading", - "retries", - "retry" - ], - "license": "ISC", - "main": "graceful-fs.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "name": "graceful-fs", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-graceful-fs.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "3.0.8" -} diff --git a/node_modules/npm-registry-client/node_modules/graceful-fs/polyfills.js b/node_modules/npm-registry-client/node_modules/graceful-fs/polyfills.js deleted file mode 100644 index 42705391a..000000000 --- a/node_modules/npm-registry-client/node_modules/graceful-fs/polyfills.js +++ /dev/null @@ -1,255 +0,0 @@ -var fs = require('./fs.js') -var constants = require('constants') - -var origCwd = process.cwd -var cwd = null -process.cwd = function() { - if (!cwd) - cwd = origCwd.call(process) - return cwd -} -var chdir = process.chdir -process.chdir = function(d) { - cwd = null - chdir.call(process, d) -} - -// (re-)implement some things that are known busted or missing. - -// lchmod, broken prior to 0.6.2 -// back-port the fix here. -if (constants.hasOwnProperty('O_SYMLINK') && - process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { - fs.lchmod = function (path, mode, callback) { - callback = callback || noop - fs.open( path - , constants.O_WRONLY | constants.O_SYMLINK - , mode - , function (err, fd) { - if (err) { - callback(err) - return - } - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - fs.fchmod(fd, mode, function (err) { - fs.close(fd, function(err2) { - callback(err || err2) - }) - }) - }) - } - - fs.lchmodSync = function (path, mode) { - var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) - - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - var err, err2 - try { - var ret = fs.fchmodSync(fd, mode) - } catch (er) { - err = er - } - try { - fs.closeSync(fd) - } catch (er) { - err2 = er - } - if (err || err2) throw (err || err2) - return ret - } -} - - -// lutimes implementation, or no-op -if (!fs.lutimes) { - if (constants.hasOwnProperty("O_SYMLINK")) { - fs.lutimes = function (path, at, mt, cb) { - fs.open(path, constants.O_SYMLINK, function (er, fd) { - cb = cb || noop - if (er) return cb(er) - fs.futimes(fd, at, mt, function (er) { - fs.close(fd, function (er2) { - return cb(er || er2) - }) - }) - }) - } - - fs.lutimesSync = function (path, at, mt) { - var fd = fs.openSync(path, constants.O_SYMLINK) - , err - , err2 - , ret - - try { - var ret = fs.futimesSync(fd, at, mt) - } catch (er) { - err = er - } - try { - fs.closeSync(fd) - } catch (er) { - err2 = er - } - if (err || err2) throw (err || err2) - return ret - } - - } else if (fs.utimensat && constants.hasOwnProperty("AT_SYMLINK_NOFOLLOW")) { - // maybe utimensat will be bound soonish? - fs.lutimes = function (path, at, mt, cb) { - fs.utimensat(path, at, mt, constants.AT_SYMLINK_NOFOLLOW, cb) - } - - fs.lutimesSync = function (path, at, mt) { - return fs.utimensatSync(path, at, mt, constants.AT_SYMLINK_NOFOLLOW) - } - - } else { - fs.lutimes = function (_a, _b, _c, cb) { process.nextTick(cb) } - fs.lutimesSync = function () {} - } -} - - -// https://github.com/isaacs/node-graceful-fs/issues/4 -// Chown should not fail on einval or eperm if non-root. -// It should not fail on enosys ever, as this just indicates -// that a fs doesn't support the intended operation. - -fs.chown = chownFix(fs.chown) -fs.fchown = chownFix(fs.fchown) -fs.lchown = chownFix(fs.lchown) - -fs.chmod = chownFix(fs.chmod) -fs.fchmod = chownFix(fs.fchmod) -fs.lchmod = chownFix(fs.lchmod) - -fs.chownSync = chownFixSync(fs.chownSync) -fs.fchownSync = chownFixSync(fs.fchownSync) -fs.lchownSync = chownFixSync(fs.lchownSync) - -fs.chmodSync = chownFix(fs.chmodSync) -fs.fchmodSync = chownFix(fs.fchmodSync) -fs.lchmodSync = chownFix(fs.lchmodSync) - -function chownFix (orig) { - if (!orig) return orig - return function (target, uid, gid, cb) { - return orig.call(fs, target, uid, gid, function (er, res) { - if (chownErOk(er)) er = null - cb(er, res) - }) - } -} - -function chownFixSync (orig) { - if (!orig) return orig - return function (target, uid, gid) { - try { - return orig.call(fs, target, uid, gid) - } catch (er) { - if (!chownErOk(er)) throw er - } - } -} - -// ENOSYS means that the fs doesn't support the op. Just ignore -// that, because it doesn't matter. -// -// if there's no getuid, or if getuid() is something other -// than 0, and the error is EINVAL or EPERM, then just ignore -// it. -// -// This specific case is a silent failure in cp, install, tar, -// and most other unix tools that manage permissions. -// -// When running as root, or if other types of errors are -// encountered, then it's strict. -function chownErOk (er) { - if (!er) - return true - - if (er.code === "ENOSYS") - return true - - var nonroot = !process.getuid || process.getuid() !== 0 - if (nonroot) { - if (er.code === "EINVAL" || er.code === "EPERM") - return true - } - - return false -} - - -// if lchmod/lchown do not exist, then make them no-ops -if (!fs.lchmod) { - fs.lchmod = function (path, mode, cb) { - process.nextTick(cb) - } - fs.lchmodSync = function () {} -} -if (!fs.lchown) { - fs.lchown = function (path, uid, gid, cb) { - process.nextTick(cb) - } - fs.lchownSync = function () {} -} - - - -// on Windows, A/V software can lock the directory, causing this -// to fail with an EACCES or EPERM if the directory contains newly -// created files. Try again on failure, for up to 1 second. -if (process.platform === "win32") { - var rename_ = fs.rename - fs.rename = function rename (from, to, cb) { - var start = Date.now() - rename_(from, to, function CB (er) { - if (er - && (er.code === "EACCES" || er.code === "EPERM") - && Date.now() - start < 1000) { - return rename_(from, to, CB) - } - if(cb) cb(er) - }) - } -} - - -// if read() returns EAGAIN, then just try it again. -var read = fs.read -fs.read = function (fd, buffer, offset, length, position, callback_) { - var callback - if (callback_ && typeof callback_ === 'function') { - var eagCounter = 0 - callback = function (er, _, __) { - if (er && er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - return read.call(fs, fd, buffer, offset, length, position, callback) - } - callback_.apply(this, arguments) - } - } - return read.call(fs, fd, buffer, offset, length, position, callback) -} - -var readSync = fs.readSync -fs.readSync = function (fd, buffer, offset, length, position) { - var eagCounter = 0 - while (true) { - try { - return readSync.call(fs, fd, buffer, offset, length, position) - } catch (er) { - if (er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - continue - } - throw er - } - } -} - diff --git a/node_modules/npm-registry-client/node_modules/graceful-fs/test/max-open.js b/node_modules/npm-registry-client/node_modules/graceful-fs/test/max-open.js deleted file mode 100644 index a6b9ba43d..000000000 --- a/node_modules/npm-registry-client/node_modules/graceful-fs/test/max-open.js +++ /dev/null @@ -1,69 +0,0 @@ -var test = require('tap').test -var fs = require('../') - -test('open lots of stuff', function (t) { - // Get around EBADF from libuv by making sure that stderr is opened - // Otherwise Darwin will refuse to give us a FD for stderr! - process.stderr.write('') - - // How many parallel open()'s to do - var n = 1024 - var opens = 0 - var fds = [] - var going = true - var closing = false - var doneCalled = 0 - - for (var i = 0; i < n; i++) { - go() - } - - function go() { - opens++ - fs.open(__filename, 'r', function (er, fd) { - if (er) throw er - fds.push(fd) - if (going) go() - }) - } - - // should hit ulimit pretty fast - setTimeout(function () { - going = false - t.equal(opens - fds.length, n) - done() - }, 100) - - - function done () { - if (closing) return - doneCalled++ - - if (fds.length === 0) { - console.error('done called %d times', doneCalled) - // First because of the timeout - // Then to close the fd's opened afterwards - // Then this time, to complete. - // Might take multiple passes, depending on CPU speed - // and ulimit, but at least 3 in every case. - t.ok(doneCalled >= 2) - return t.end() - } - - closing = true - setTimeout(function () { - // console.error('do closing again') - closing = false - done() - }, 100) - - // console.error('closing time') - var closes = fds.slice(0) - fds.length = 0 - closes.forEach(function (fd) { - fs.close(fd, function (er) { - if (er) throw er - }) - }) - } -}) diff --git a/node_modules/npm-registry-client/node_modules/graceful-fs/test/open.js b/node_modules/npm-registry-client/node_modules/graceful-fs/test/open.js deleted file mode 100644 index 85732f236..000000000 --- a/node_modules/npm-registry-client/node_modules/graceful-fs/test/open.js +++ /dev/null @@ -1,39 +0,0 @@ -var test = require('tap').test -var fs = require('../graceful-fs.js') - -test('graceful fs is monkeypatched fs', function (t) { - t.equal(fs, require('../fs.js')) - t.end() -}) - -test('open an existing file works', function (t) { - var fd = fs.openSync(__filename, 'r') - fs.closeSync(fd) - fs.open(__filename, 'r', function (er, fd) { - if (er) throw er - fs.close(fd, function (er) { - if (er) throw er - t.pass('works') - t.end() - }) - }) -}) - -test('open a non-existing file throws', function (t) { - var er - try { - var fd = fs.openSync('this file does not exist', 'r') - } catch (x) { - er = x - } - t.ok(er, 'should throw') - t.notOk(fd, 'should not get an fd') - t.equal(er.code, 'ENOENT') - - fs.open('neither does this file', 'r', function (er, fd) { - t.ok(er, 'should throw') - t.notOk(fd, 'should not get an fd') - t.equal(er.code, 'ENOENT') - t.end() - }) -}) diff --git a/node_modules/npm-registry-client/node_modules/graceful-fs/test/readdir-sort.js b/node_modules/npm-registry-client/node_modules/graceful-fs/test/readdir-sort.js deleted file mode 100644 index cb63a6846..000000000 --- a/node_modules/npm-registry-client/node_modules/graceful-fs/test/readdir-sort.js +++ /dev/null @@ -1,20 +0,0 @@ -var test = require("tap").test -var fs = require("../fs.js") - -var readdir = fs.readdir -fs.readdir = function(path, cb) { - process.nextTick(function() { - cb(null, ["b", "z", "a"]) - }) -} - -var g = require("../") - -test("readdir reorder", function (t) { - g.readdir("whatevers", function (er, files) { - if (er) - throw er - t.same(files, [ "a", "b", "z" ]) - t.end() - }) -}) diff --git a/node_modules/npm-registry-client/node_modules/graceful-fs/test/write-then-read.js b/node_modules/npm-registry-client/node_modules/graceful-fs/test/write-then-read.js deleted file mode 100644 index 21e4c26bf..000000000 --- a/node_modules/npm-registry-client/node_modules/graceful-fs/test/write-then-read.js +++ /dev/null @@ -1,47 +0,0 @@ -var fs = require('../'); -var rimraf = require('rimraf'); -var mkdirp = require('mkdirp'); -var test = require('tap').test; -var p = require('path').resolve(__dirname, 'files'); - -process.chdir(__dirname) - -// Make sure to reserve the stderr fd -process.stderr.write(''); - -var num = 4097; -var paths = new Array(num); - -test('make files', function (t) { - rimraf.sync(p); - mkdirp.sync(p); - - for (var i = 0; i < num; ++i) { - paths[i] = 'files/file-' + i; - fs.writeFileSync(paths[i], 'content'); - } - - t.end(); -}) - -test('read files', function (t) { - // now read them - var done = 0; - for (var i = 0; i < num; ++i) { - fs.readFile(paths[i], function(err, data) { - if (err) - throw err; - - ++done; - if (done === num) { - t.pass('success'); - t.end() - } - }); - } -}); - -test('cleanup', function (t) { - rimraf.sync(p); - t.end(); -}); diff --git a/node_modules/npm-registry-client/node_modules/retry/.npmignore b/node_modules/npm-registry-client/node_modules/retry/.npmignore deleted file mode 100644 index 5a23aa6a0..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/node_modules/* diff --git a/node_modules/npm-registry-client/node_modules/retry/License b/node_modules/npm-registry-client/node_modules/retry/License deleted file mode 100644 index 0b58de379..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/License +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2011: -Tim Koschützki (tim@debuggable.com) -Felix Geisendörfer (felix@debuggable.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/node_modules/npm-registry-client/node_modules/retry/Makefile b/node_modules/npm-registry-client/node_modules/retry/Makefile deleted file mode 100644 index 72baaac19..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -SHELL := /bin/bash - -test: - @node test/runner.js - -.PHONY: test diff --git a/node_modules/npm-registry-client/node_modules/retry/README.md b/node_modules/npm-registry-client/node_modules/retry/README.md deleted file mode 100644 index ba6602205..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/README.md +++ /dev/null @@ -1,167 +0,0 @@ -# retry - -Abstraction for exponential and custom retry strategies for failed operations. - -## Installation - - npm install retry - -## Current Status - -This module has been tested and is ready to be used. - -## Tutorial - -The example below will retry a potentially failing `dns.resolve` operation -`10` times using an exponential backoff strategy. With the default settings, this -means the last attempt is made after `17 minutes and 3 seconds`. - -``` javascript -var dns = require('dns'); -var retry = require('retry'); - -function faultTolerantResolve(address, cb) { - var operation = retry.operation(); - - operation.attempt(function(currentAttempt) { - dns.resolve(address, function(err, addresses) { - if (operation.retry(err)) { - return; - } - - cb(err ? operation.mainError() : null, addresses); - }); - }); -} - -faultTolerantResolve('nodejs.org', function(err, addresses) { - console.log(err, addresses); -}); -``` - -Of course you can also configure the factors that go into the exponential -backoff. See the API documentation below for all available settings. -currentAttempt is an int representing the number of attempts so far. - -``` javascript -var operation = retry.operation({ - retries: 5, - factor: 3, - minTimeout: 1 * 1000, - maxTimeout: 60 * 1000, - randomize: true, -}); -``` - -## API - -### retry.operation([options]) - -Creates a new `RetryOperation` object. See the `retry.timeouts()` function -below for available `options`. - -### retry.timeouts([options]) - -Returns an array of timeouts. All time `options` and return values are in -milliseconds. If `options` is an array, a copy of that array is returned. - -`options` is a JS object that can contain any of the following keys: - -* `retries`: The maximum amount of times to retry the operation. Default is `10`. -* `factor`: The exponential factor to use. Default is `2`. -* `minTimeout`: The number of milliseconds before starting the first retry. Default is `1000`. -* `maxTimeout`: The maximum number of milliseconds between two retries. Default is `Infinity`. -* `randomize`: Randomizes the timeouts by multiplying with a factor between `1` to `2`. Default is `false`. - -The formula used to calculate the individual timeouts is: - -``` -var Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout); -``` - -Have a look at [this article][article] for a better explanation of approach. - -If you want to tune your `factor` / `times` settings to attempt the last retry -after a certain amount of time, you can use wolfram alpha. For example in order -to tune for `10` attempts in `5 minutes`, you can use this equation: - -![screenshot](https://github.com/tim-kos/node-retry/raw/master/equation.gif) - -Explaining the various values from left to right: - -* `k = 0 ... 9`: The `retries` value (10) -* `1000`: The `minTimeout` value in ms (1000) -* `x^k`: No need to change this, `x` will be your resulting factor -* `5 * 60 * 1000`: The desired total amount of time for retrying in ms (5 minutes) - -To make this a little easier for you, use wolfram alpha to do the calculations: - -[http://www.wolframalpha.com/input/?i=Sum%5B1000*x^k%2C+{k%2C+0%2C+9}%5D+%3D+5+*+60+*+1000]() - -[article]: http://dthain.blogspot.com/2009/02/exponential-backoff-in-distributed.html - -### new RetryOperation(timeouts) - -Creates a new `RetryOperation` where `timeouts` is an array where each value is -a timeout given in milliseconds. - -#### retryOperation.errors() - -Returns an array of all errors that have been passed to -`retryOperation.retry()` so far. - -#### retryOperation.mainError() - -A reference to the error object that occured most frequently. Errors are -compared using the `error.message` property. - -If multiple error messages occured the same amount of time, the last error -object with that message is returned. - -If no errors occured so far, the value is `null`. - -#### retryOperation.attempt(fn, timeoutOps) - -Defines the function `fn` that is to be retried and executes it for the first -time right away. The `fn` function can receive an optional `currentAttempt` callback that represents the number of attempts to execute `fn` so far. - -Optionally defines `timeoutOps` which is an object having a property `timeout` in miliseconds and a property `cb` callback function. -Whenever your retry operation takes longer than `timeout` to execute, the timeout callback function `cb` is called. - - -#### retryOperation.try(fn) - -This is an alias for `retryOperation.attempt(fn)`. This is deprecated. - -#### retryOperation.start(fn) - -This is an alias for `retryOperation.attempt(fn)`. This is deprecated. - -#### retryOperation.retry(error) - -Returns `false` when no `error` value is given, or the maximum amount of retries -has been reached. - -Otherwise it returns `true`, and retries the operation after the timeout for -the current attempt number. - -#### retryOperation.attempts() - -Returns an int representing the number of attempts it took to call `fn` before it was successful. - -## License - -retry is licensed under the MIT license. - - -#Changelog - -0.6.0 Introduced optional timeOps parameter for the attempt() function which is an object having a property timeout in miliseconds and a property cb callback function. Whenever your retry operation takes longer than timeout to execute, the timeout callback function cb is called. - -0.5.0 Some minor refactorings. - -0.4.0 Changed retryOperation.try() to retryOperation.attempt(). Deprecated the aliases start() and try() for it. - -0.3.0 Added retryOperation.start() which is an alias for retryOperation.try(). - -0.2.0 Added attempts() function and parameter to retryOperation.try() representing the number of attempts it took to call fn(). diff --git a/node_modules/npm-registry-client/node_modules/retry/equation.gif b/node_modules/npm-registry-client/node_modules/retry/equation.gif Binary files differdeleted file mode 100644 index 97107237b..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/equation.gif +++ /dev/null diff --git a/node_modules/npm-registry-client/node_modules/retry/example/dns.js b/node_modules/npm-registry-client/node_modules/retry/example/dns.js deleted file mode 100644 index e4082af72..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/example/dns.js +++ /dev/null @@ -1,31 +0,0 @@ -var dns = require('dns'); -var retry = require('../lib/retry'); - -function faultTolerantResolve(address, cb) { - var opts = { - times: 2, - factor: 2, - minTimeout: 1 * 1000, - maxTimeout: 2 * 1000, - randomize: true - }; - var operation = retry.operation(opts); - - operation.attempt(function(currentAttempt) { - dns.resolve(address, function(err, addresses) { - if (operation.retry(err)) { - return; - } - - cb(operation.mainError(), operation.errors(), addresses); - }); - }); -} - -faultTolerantResolve('nodejs.org', function(err, errors, addresses) { - console.warn('err:'); - console.log(err); - - console.warn('addresses:'); - console.log(addresses); -});
\ No newline at end of file diff --git a/node_modules/npm-registry-client/node_modules/retry/index.js b/node_modules/npm-registry-client/node_modules/retry/index.js deleted file mode 100644 index ee62f3a11..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/retry');
\ No newline at end of file diff --git a/node_modules/npm-registry-client/node_modules/retry/lib/retry.js b/node_modules/npm-registry-client/node_modules/retry/lib/retry.js deleted file mode 100644 index 38406860d..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/lib/retry.js +++ /dev/null @@ -1,50 +0,0 @@ -var RetryOperation = require('./retry_operation'); - -exports.operation = function(options) { - var timeouts = exports.timeouts(options); - return new RetryOperation(timeouts); -}; - -exports.timeouts = function(options) { - if (options instanceof Array) { - return [].concat(options); - } - - var opts = { - retries: 10, - factor: 2, - minTimeout: 1 * 1000, - maxTimeout: Infinity, - randomize: false - }; - for (var key in options) { - opts[key] = options[key]; - } - - if (opts.minTimeout > opts.maxTimeout) { - throw new Error('minTimeout is greater than maxTimeout'); - } - - var timeouts = []; - for (var i = 0; i < opts.retries; i++) { - timeouts.push(this._createTimeout(i, opts)); - } - - // sort the array numerically ascending - timeouts.sort(function(a,b) { - return a - b; - }); - - return timeouts; -}; - -exports._createTimeout = function(attempt, opts) { - var random = (opts.randomize) - ? (Math.random() + 1) - : 1; - - var timeout = Math.round(random * opts.minTimeout * Math.pow(opts.factor, attempt)); - timeout = Math.min(timeout, opts.maxTimeout); - - return timeout; -};
\ No newline at end of file diff --git a/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js b/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js deleted file mode 100644 index f24d2d5a4..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js +++ /dev/null @@ -1,109 +0,0 @@ -function RetryOperation(timeouts) { - this._timeouts = timeouts; - this._fn = null; - this._errors = []; - this._attempts = 1; - this._operationTimeout = null; - this._operationTimeoutCb = null; - this._timeout = null; -} -module.exports = RetryOperation; - -RetryOperation.prototype.retry = function(err) { - if (this._timeout) { - clearTimeout(this._timeout); - } - - if (!err) { - return false; - } - - this._errors.push(err); - - var timeout = this._timeouts.shift(); - if (timeout === undefined) { - return false; - } - - this._attempts++; - - var self = this; - setTimeout(function() { - self._fn(self._attempts); - - if (self._operationTimeoutCb) { - self._timeout = setTimeout(function() { - self._operationTimeoutCb(self._attempts); - }, self._operationTimeout); - } - }, timeout); - - return true; -}; - -RetryOperation.prototype.attempt = function(fn, timeoutOps) { - this._fn = fn; - - if (timeoutOps) { - if (timeoutOps.timeout) { - this._operationTimeout = timeoutOps.timeout; - } - if (timeoutOps.cb) { - this._operationTimeoutCb = timeoutOps.cb; - } - } - - this._fn(this._attempts); - - var self = this; - if (this._operationTimeoutCb) { - this._timeout = setTimeout(function() { - self._operationTimeoutCb(); - }, self._operationTimeout); - } -}; - -RetryOperation.prototype.try = function(fn) { - console.log('Using RetryOperation.try() is deprecated'); - this.attempt(fn); -}; - -RetryOperation.prototype.start = function(fn) { - console.log('Using RetryOperation.start() is deprecated'); - this.attempt(fn); -}; - -RetryOperation.prototype.start = RetryOperation.prototype.try; - -RetryOperation.prototype.errors = function() { - return this._errors; -}; - -RetryOperation.prototype.attempts = function() { - return this._attempts; -}; - -RetryOperation.prototype.mainError = function() { - if (this._errors.length === 0) { - return null; - } - - var counts = {}; - var mainError = null; - var mainErrorCount = 0; - - for (var i = 0; i < this._errors.length; i++) { - var error = this._errors[i]; - var message = error.message; - var count = (counts[message] || 0) + 1; - - counts[message] = count; - - if (count >= mainErrorCount) { - mainError = error; - mainErrorCount = count; - } - } - - return mainError; -};
\ No newline at end of file diff --git a/node_modules/npm-registry-client/node_modules/retry/package.json b/node_modules/npm-registry-client/node_modules/retry/package.json deleted file mode 100644 index 95d7a67a6..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "_args": [ - [ - "retry@^0.6.1", - "/Users/rebecca/code/npm/node_modules/npm-registry-client" - ] - ], - "_from": "retry@>=0.6.1 <0.7.0", - "_id": "retry@0.6.1", - "_inCache": true, - "_location": "/npm-registry-client/retry", - "_npmUser": { - "email": "tim@debuggable.com", - "name": "tim-kos" - }, - "_npmVersion": "1.4.9", - "_phantomChildren": {}, - "_requested": { - "name": "retry", - "raw": "retry@^0.6.1", - "rawSpec": "^0.6.1", - "scope": null, - "spec": ">=0.6.1 <0.7.0", - "type": "range" - }, - "_requiredBy": [ - "/npm-registry-client" - ], - "_resolved": "https://registry.npmjs.org/retry/-/retry-0.6.1.tgz", - "_shasum": "fdc90eed943fde11b893554b8cc63d0e899ba918", - "_shrinkwrap": null, - "_spec": "retry@^0.6.1", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client", - "author": { - "email": "tim@debuggable.com", - "name": "Tim Koschützki", - "url": "http://debuggable.com/" - }, - "bugs": { - "url": "https://github.com/tim-kos/node-retry/issues" - }, - "dependencies": {}, - "description": "Abstraction for exponential and custom retry strategies for failed operations.", - "devDependencies": { - "fake": "0.2.0", - "far": "0.0.1" - }, - "directories": { - "lib": "./lib" - }, - "dist": { - "shasum": "fdc90eed943fde11b893554b8cc63d0e899ba918", - "tarball": "http://registry.npmjs.org/retry/-/retry-0.6.1.tgz" - }, - "engines": { - "node": "*" - }, - "homepage": "https://github.com/tim-kos/node-retry", - "installable": true, - "main": "index", - "maintainers": [ - { - "name": "tim-kos", - "email": "tim@debuggable.com" - } - ], - "name": "retry", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/tim-kos/node-retry.git" - }, - "version": "0.6.1" -} diff --git a/node_modules/npm-registry-client/node_modules/retry/test/common.js b/node_modules/npm-registry-client/node_modules/retry/test/common.js deleted file mode 100644 index 224720696..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/test/common.js +++ /dev/null @@ -1,10 +0,0 @@ -var common = module.exports; -var path = require('path'); - -var rootDir = path.join(__dirname, '..'); -common.dir = { - lib: rootDir + '/lib' -}; - -common.assert = require('assert'); -common.fake = require('fake');
\ No newline at end of file diff --git a/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js b/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js deleted file mode 100644 index d873d1fa8..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js +++ /dev/null @@ -1,80 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var fake = common.fake.create(); -var retry = require(common.dir.lib + '/retry'); - -(function testErrors() { - var operation = retry.operation(); - - var error = new Error('some error'); - var error2 = new Error('some other error'); - operation._errors.push(error); - operation._errors.push(error2); - - assert.deepEqual(operation.errors(), [error, error2]); -})(); - -(function testMainErrorReturnsMostFrequentError() { - var operation = retry.operation(); - var error = new Error('some error'); - var error2 = new Error('some other error'); - - operation._errors.push(error); - operation._errors.push(error2); - operation._errors.push(error); - - assert.strictEqual(operation.mainError(), error); -})(); - -(function testMainErrorReturnsLastErrorOnEqualCount() { - var operation = retry.operation(); - var error = new Error('some error'); - var error2 = new Error('some other error'); - - operation._errors.push(error); - operation._errors.push(error2); - - assert.strictEqual(operation.mainError(), error2); -})(); - -(function testAttempt() { - var operation = retry.operation(); - var fn = new Function(); - - var timeoutOpts = { - timeout: 1, - cb: function() {} - }; - operation.attempt(fn, timeoutOpts); - - assert.strictEqual(fn, operation._fn); - assert.strictEqual(timeoutOpts.timeout, operation._operationTimeout); - assert.strictEqual(timeoutOpts.cb, operation._operationTimeoutCb); -})(); - -(function testRetry() { - var times = 3; - var error = new Error('some error'); - var operation = retry.operation([1, 2, 3]); - var attempts = 0; - - var finalCallback = fake.callback('finalCallback'); - fake.expectAnytime(finalCallback); - - var fn = function() { - operation.attempt(function(currentAttempt) { - attempts++; - assert.equal(currentAttempt, attempts); - if (operation.retry(error)) { - return; - } - - assert.strictEqual(attempts, 4); - assert.strictEqual(operation.attempts(), attempts); - assert.strictEqual(operation.mainError(), error); - finalCallback(); - }); - }; - - fn(); -})();
\ No newline at end of file diff --git a/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js b/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js deleted file mode 100644 index 7206b0fb0..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js +++ /dev/null @@ -1,69 +0,0 @@ -var common = require('../common'); -var assert = common.assert; -var retry = require(common.dir.lib + '/retry'); - -(function testDefaultValues() { - var timeouts = retry.timeouts(); - - assert.equal(timeouts.length, 10); - assert.equal(timeouts[0], 1000); - assert.equal(timeouts[1], 2000); - assert.equal(timeouts[2], 4000); -})(); - -(function testDefaultValuesWithRandomize() { - var minTimeout = 5000; - var timeouts = retry.timeouts({ - minTimeout: minTimeout, - randomize: true - }); - - assert.equal(timeouts.length, 10); - assert.ok(timeouts[0] > minTimeout); - assert.ok(timeouts[1] > timeouts[0]); - assert.ok(timeouts[2] > timeouts[1]); -})(); - -(function testPassedTimeoutsAreUsed() { - var timeoutsArray = [1000, 2000, 3000]; - var timeouts = retry.timeouts(timeoutsArray); - assert.deepEqual(timeouts, timeoutsArray); - assert.notStrictEqual(timeouts, timeoutsArray); -})(); - -(function testTimeoutsAreWithinBoundaries() { - var minTimeout = 1000; - var maxTimeout = 10000; - var timeouts = retry.timeouts({ - minTimeout: minTimeout, - maxTimeout: maxTimeout - }); - for (var i = 0; i < timeouts; i++) { - assert.ok(timeouts[i] >= minTimeout); - assert.ok(timeouts[i] <= maxTimeout); - } -})(); - -(function testTimeoutsAreIncremental() { - var timeouts = retry.timeouts(); - var lastTimeout = timeouts[0]; - for (var i = 0; i < timeouts; i++) { - assert.ok(timeouts[i] > lastTimeout); - lastTimeout = timeouts[i]; - } -})(); - -(function testTimeoutsAreIncrementalForFactorsLessThanOne() { - var timeouts = retry.timeouts({ - retries: 3, - factor: 0.5 - }); - - var expected = [250, 500, 1000]; - assert.deepEqual(expected, timeouts); -})(); - -(function testRetries() { - var timeouts = retry.timeouts({retries: 2}); - assert.strictEqual(timeouts.length, 2); -})(); diff --git a/node_modules/npm-registry-client/node_modules/retry/test/runner.js b/node_modules/npm-registry-client/node_modules/retry/test/runner.js deleted file mode 100644 index e0ee2f570..000000000 --- a/node_modules/npm-registry-client/node_modules/retry/test/runner.js +++ /dev/null @@ -1,5 +0,0 @@ -var far = require('far').create(); - -far.add(__dirname); -far.include(/\/test-.*\.js$/); -far.execute(); diff --git a/node_modules/npm-registry-client/package.json b/node_modules/npm-registry-client/package.json index d84d5028c..3ab27508a 100644 --- a/node_modules/npm-registry-client/package.json +++ b/node_modules/npm-registry-client/package.json @@ -1,12 +1,12 @@ { "_args": [ [ - "npm-registry-client@~7.0.1", + "npm-registry-client@~7.0.7", "/Users/rebecca/code/npm" ] ], - "_from": "npm-registry-client@>=7.0.1 <7.1.0", - "_id": "npm-registry-client@7.0.1", + "_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", @@ -14,23 +14,23 @@ "email": "kat@sykosomatic.org", "name": "zkat" }, - "_npmVersion": "2.13.5", + "_npmVersion": "2.14.4", "_phantomChildren": {}, "_requested": { "name": "npm-registry-client", - "raw": "npm-registry-client@~7.0.1", - "rawSpec": "~7.0.1", + "raw": "npm-registry-client@~7.0.7", + "rawSpec": "~7.0.7", "scope": null, - "spec": ">=7.0.1 <7.1.0", + "spec": ">=7.0.7 <7.1.0", "type": "range" }, "_requiredBy": [ "/" ], - "_resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.0.1.tgz", - "_shasum": "1184253d2085dcaa01a394cfdd66f2dad0d26feb", + "_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.1", + "_spec": "npm-registry-client@~7.0.7", "_where": "/Users/rebecca/code/npm", "author": { "email": "i@izs.me", @@ -43,14 +43,14 @@ "dependencies": { "chownr": "^1.0.1", "concat-stream": "^1.4.6", - "graceful-fs": "^3.0.0", + "graceful-fs": "^4.1.2", "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.6.1", + "retry": "^0.8.0", "rimraf": "2", "semver": "2 >=2.2.1 || 3.x || 4 || 5", "slide": "^1.1.3" @@ -59,15 +59,16 @@ "devDependencies": { "negotiator": "^0.4.9", "nock": "^0.56.0", + "readable-stream": "^2.0.2", "standard": "^4.0.0", "tap": "^1.2.0" }, "directories": {}, "dist": { - "shasum": "1184253d2085dcaa01a394cfdd66f2dad0d26feb", - "tarball": "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.0.1.tgz" + "shasum": "899d7c8fefe87b72a70d8c9e075fb874539e0d3e", + "tarball": "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.0.7.tgz" }, - "gitHead": "250563a6a64f73e5e683e75aa21d36739f63159a", + "gitHead": "06f188917bf575fe7dc7c2f6d1d4adbaa50bc423", "homepage": "https://github.com/isaacs/npm-registry-client#readme", "installable": true, "license": "ISC", @@ -100,5 +101,5 @@ "scripts": { "test": "standard && tap test/*.js" }, - "version": "7.0.1" + "version": "7.0.7" } diff --git a/node_modules/npm-registry-client/test/access.js b/node_modules/npm-registry-client/test/access.js index ba0fb2c81..c07b1bd6a 100644 --- a/node_modules/npm-registry-client/test/access.js +++ b/node_modules/npm-registry-client/test/access.js @@ -285,6 +285,11 @@ test('access command base validation', function (t) { t.end() }) +test('cleanup', function (t) { + server.close() + t.end() +}) + function onJsonReq (req, cb) { var buffer = '' req.setEncoding('utf8') diff --git a/node_modules/npm-registry-client/test/adduser-new.js b/node_modules/npm-registry-client/test/adduser-new.js index d8c415bc5..a834841de 100644 --- a/node_modules/npm-registry-client/test/adduser-new.js +++ b/node_modules/npm-registry-client/test/adduser-new.js @@ -51,6 +51,7 @@ tap.test('create new user account', function (t) { function (er, data) { if (er) throw er t.deepEqual(data, auth, 'received expected auth data') + server.close() t.end() } ) diff --git a/node_modules/npm-registry-client/test/adduser-update.js b/node_modules/npm-registry-client/test/adduser-update.js index 18aad3ebe..03d5f468f 100644 --- a/node_modules/npm-registry-client/test/adduser-update.js +++ b/node_modules/npm-registry-client/test/adduser-update.js @@ -61,6 +61,7 @@ tap.test('update a user acct', function (t) { function (er, data) { if (er) throw er t.deepEqual(data, auth, 'got expected auth data') + server.close() t.end() } ) diff --git a/node_modules/npm-registry-client/test/deprecate.js b/node_modules/npm-registry-client/test/deprecate.js index d49f71215..4407d7c97 100644 --- a/node_modules/npm-registry-client/test/deprecate.js +++ b/node_modules/npm-registry-client/test/deprecate.js @@ -154,3 +154,63 @@ test('deprecate a package', function (t) { } ) }) + +test('deprecate a scoped package', function (t) { + server.expect('GET', '/@test%2funderscore?write=true', function (req, res) { + t.equal(req.method, 'GET') + + res.json(cache) + }) + + server.expect('PUT', '/@test%2funderscore', function (req, res) { + t.equal(req.method, 'PUT') + + var b = '' + req.setEncoding('utf8') + req.on('data', function (d) { + b += d + }) + + req.on('end', function () { + var updated = JSON.parse(b) + + var undeprecated = [ + '1.0.3', '1.0.4', '1.1.0', '1.1.1', '1.1.2', '1.1.3', '1.1.4', '1.1.5', '1.1.6', + '1.1.7', '1.2.0', '1.2.1', '1.2.2', '1.2.3', '1.2.4', '1.3.0', '1.3.1', '1.3.3' + ] + for (var i = 0; i < undeprecated.length; i++) { + var current = undeprecated[i] + t.notEqual( + updated.versions[current].deprecated, + MESSAGE, + current + ' not deprecated' + ) + } + + t.equal( + updated.versions[VERSION].deprecated, + MESSAGE, + VERSION + ' deprecated' + ) + res.statusCode = 201 + res.json({ deprecated: true }) + }) + }) + + client.deprecate( + common.registry + '/@test%2funderscore', + PARAMS, + function (er, data) { + t.ifError(er) + t.ok(data.deprecated, 'was deprecated') + + t.end() + } + ) +}) + +test('cleanup', function (t) { + server.close() + t.ok(true) + t.end() +}) diff --git a/node_modules/npm-registry-client/test/dist-tags-add.js b/node_modules/npm-registry-client/test/dist-tags-add.js index e66d80a3e..00f43b0f2 100644 --- a/node_modules/npm-registry-client/test/dist-tags-add.js +++ b/node_modules/npm-registry-client/test/dist-tags-add.js @@ -136,6 +136,7 @@ test('add a new dist-tag to a package', function (t) { t.ifError(error, 'no errors') t.ok(data.test, 'dist-tag added') + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/dist-tags-fetch.js b/node_modules/npm-registry-client/test/dist-tags-fetch.js index ef0901ea7..cde338cf1 100644 --- a/node_modules/npm-registry-client/test/dist-tags-fetch.js +++ b/node_modules/npm-registry-client/test/dist-tags-fetch.js @@ -93,6 +93,7 @@ test('fetch dist-tags for a package', function (t) { t.ifError(error, 'no errors') t.same(data, { a: '1.0.0', b: '2.0.0' }, 'etag filtered from response') + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/dist-tags-rm.js b/node_modules/npm-registry-client/test/dist-tags-rm.js index a035014dc..2076eb931 100644 --- a/node_modules/npm-registry-client/test/dist-tags-rm.js +++ b/node_modules/npm-registry-client/test/dist-tags-rm.js @@ -112,6 +112,7 @@ test('remove a dist-tag from a package', function (t) { t.ifError(error, 'no errors') t.notOk(data.test, 'dist-tag removed') + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/dist-tags-set.js b/node_modules/npm-registry-client/test/dist-tags-set.js index 691aef13e..cb595f6d2 100644 --- a/node_modules/npm-registry-client/test/dist-tags-set.js +++ b/node_modules/npm-registry-client/test/dist-tags-set.js @@ -116,6 +116,7 @@ test('set dist-tags for a package', function (t) { t.ifError(error, 'no errors') t.ok(data.a && data.b, 'dist-tags set') + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/dist-tags-update.js b/node_modules/npm-registry-client/test/dist-tags-update.js index 4a829c85d..37508fc07 100644 --- a/node_modules/npm-registry-client/test/dist-tags-update.js +++ b/node_modules/npm-registry-client/test/dist-tags-update.js @@ -107,6 +107,7 @@ test('update dist-tags for a package', function (t) { t.ifError(error, 'no errors') t.ok(data.a && data.b, 'dist-tags set') + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/fetch-404.js b/node_modules/npm-registry-client/test/fetch-404.js index 805c88a67..fa400cd5c 100644 --- a/node_modules/npm-registry-client/test/fetch-404.js +++ b/node_modules/npm-registry-client/test/fetch-404.js @@ -28,6 +28,7 @@ tap.test('fetch with a 404 response', function (t) { 'fetch failed with status code 404', 'got expected error message' ) + server.close() t.end() } ) diff --git a/node_modules/npm-registry-client/test/fetch-408.js b/node_modules/npm-registry-client/test/fetch-408.js index d49b149f6..422376ef3 100644 --- a/node_modules/npm-registry-client/test/fetch-408.js +++ b/node_modules/npm-registry-client/test/fetch-408.js @@ -40,6 +40,7 @@ tap.test('fetch with retry on timeout', function (t) { var sink = cat(function (data) { t.deepEqual(data, readFileSync(tgz)) + server.close() t.end() }) diff --git a/node_modules/npm-registry-client/test/fetch-503.js b/node_modules/npm-registry-client/test/fetch-503.js index 04f5901e8..6dff11558 100644 --- a/node_modules/npm-registry-client/test/fetch-503.js +++ b/node_modules/npm-registry-client/test/fetch-503.js @@ -40,6 +40,7 @@ tap.test('fetch with retry on server error', function (t) { var sink = cat(function (data) { t.deepEqual(data, readFileSync(tgz)) + server.close() t.end() }) diff --git a/node_modules/npm-registry-client/test/fetch-authed.js b/node_modules/npm-registry-client/test/fetch-authed.js index ccfd4b77f..d516deb37 100644 --- a/node_modules/npm-registry-client/test/fetch-authed.js +++ b/node_modules/npm-registry-client/test/fetch-authed.js @@ -44,6 +44,7 @@ tap.test('basic fetch with scoped always-auth enabled', function (t) { var sink = cat(function (data) { t.deepEqual(data, readFileSync(tgz)) + server.close() t.end() }) diff --git a/node_modules/npm-registry-client/test/fetch-basic.js b/node_modules/npm-registry-client/test/fetch-basic.js index 7bf4d1bd1..31ad17edd 100644 --- a/node_modules/npm-registry-client/test/fetch-basic.js +++ b/node_modules/npm-registry-client/test/fetch-basic.js @@ -79,6 +79,7 @@ test('basic fetch', function (t) { var sink = concat(function (data) { t.deepEqual(data, readFileSync(tgz)) + server.close() t.end() }) diff --git a/node_modules/npm-registry-client/test/fetch-github-api-json.js b/node_modules/npm-registry-client/test/fetch-github-api-json.js index 43f25f1ad..688c91d27 100644 --- a/node_modules/npm-registry-client/test/fetch-github-api-json.js +++ b/node_modules/npm-registry-client/test/fetch-github-api-json.js @@ -54,6 +54,7 @@ tap.test("fetch accepts github api's json", function (t) { var sink = cat(function (data) { t.deepEqual(data, readFileSync(tgz)) + server.close() t.end() }) diff --git a/node_modules/npm-registry-client/test/fetch-not-authed.js b/node_modules/npm-registry-client/test/fetch-not-authed.js index 2fb92c2c2..6a397cc5e 100644 --- a/node_modules/npm-registry-client/test/fetch-not-authed.js +++ b/node_modules/npm-registry-client/test/fetch-not-authed.js @@ -40,6 +40,7 @@ tap.test('basic fetch with scoped always-auth disabled', function (t) { var sink = cat(function (data) { t.deepEqual(data, readFileSync(tgz)) + server.close() t.end() }) diff --git a/node_modules/npm-registry-client/test/get-403.js b/node_modules/npm-registry-client/test/get-403.js index 0b8592e50..004de207f 100644 --- a/node_modules/npm-registry-client/test/get-403.js +++ b/node_modules/npm-registry-client/test/get-403.js @@ -23,6 +23,7 @@ tap.test('get returns 403', function (t) { t.equal(er.statusCode, 403, 'status code was attached to error as expected') t.equal(er.code, 'E403', 'error code was formatted as expected') + server.close() t.end() } ) diff --git a/node_modules/npm-registry-client/test/get-basic.js b/node_modules/npm-registry-client/test/get-basic.js index a2ab27fe0..031309c92 100644 --- a/node_modules/npm-registry-client/test/get-basic.js +++ b/node_modules/npm-registry-client/test/get-basic.js @@ -78,3 +78,8 @@ test('basic request', function (t) { t.deepEqual(data, usroot) }) }) + +test('cleanup', function (t) { + server.close() + t.end() +}) diff --git a/node_modules/npm-registry-client/test/get-error-403.js b/node_modules/npm-registry-client/test/get-error-403.js index c9c96d354..73ef43611 100644 --- a/node_modules/npm-registry-client/test/get-error-403.js +++ b/node_modules/npm-registry-client/test/get-error-403.js @@ -27,6 +27,7 @@ tap.test('get fails with 403', function (t) { 'got error message' ) + server.close() t.end() } ) diff --git a/node_modules/npm-registry-client/test/lib/common.js b/node_modules/npm-registry-client/test/lib/common.js index 8b7875d4c..78e543f69 100644 --- a/node_modules/npm-registry-client/test/lib/common.js +++ b/node_modules/npm-registry-client/test/lib/common.js @@ -2,6 +2,14 @@ var server = require('./server.js') var RC = require('../../') var REGISTRY = 'http://localhost:' + server.port +// cheesy hackaround for test deps (read: nock) that rely on setImmediate +if (!global.setImmediate || !require('timers').setImmediate) { + require('timers').setImmediate = global.setImmediate = function () { + var args = [arguments[0], 0].concat([].slice.call(arguments, 1)) + setTimeout.apply(this, args) + } +} + module.exports = { port: server.port, registry: REGISTRY, diff --git a/node_modules/npm-registry-client/test/lib/server.js b/node_modules/npm-registry-client/test/lib/server.js index 60b116d80..06bebdc13 100644 --- a/node_modules/npm-registry-client/test/lib/server.js +++ b/node_modules/npm-registry-client/test/lib/server.js @@ -29,11 +29,6 @@ function handler (req, res) { var fn = server._expect[k].shift() if (!fn) throw Error('unexpected request: ' + req.method + ' ' + req.url) - var remain = (Object.keys(server._expect).reduce(function (s, k) { - return s + server._expect[k].length - }, 0)) - if (remain === 0) server.close() - else this.log.info('fake-registry', 'TEST SERVER: %d reqs remain', remain) this.log.info('fake-registry', Object.keys(server._expect).map(function (k) { return [k, server._expect[k].length] }).reduce(function (acc, kv) { diff --git a/node_modules/npm-registry-client/test/ping.js b/node_modules/npm-registry-client/test/ping.js index 002d8ba8f..1b30b9052 100644 --- a/node_modules/npm-registry-client/test/ping.js +++ b/node_modules/npm-registry-client/test/ping.js @@ -70,6 +70,7 @@ test('ping', function (t) { username: DEP_USER } t.same(found, wanted) + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/publish-again-scoped.js b/node_modules/npm-registry-client/test/publish-again-scoped.js index 42f672721..611a852cd 100644 --- a/node_modules/npm-registry-client/test/publish-again-scoped.js +++ b/node_modules/npm-registry-client/test/publish-again-scoped.js @@ -17,7 +17,7 @@ tap.test('publish again', function (t) { // not really a tarball, but doesn't matter var bodyPath = require.resolve('../package.json') var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath, 'base64') + var pd = fs.readFileSync(bodyPath) var pkg = require('../package.json') var lastTime = null @@ -36,7 +36,7 @@ tap.test('publish again', function (t) { t.has(o.versions[pkg.version], pkg) t.same(o.maintainers, [ { name: 'username', email: 'i@izs.me' } ]) var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd) + t.same(att.data, pd.toString('base64')) res.statusCode = 409 res.json({reason: 'must supply latest _rev to update existing package'}) }) @@ -85,6 +85,7 @@ tap.test('publish again', function (t) { client.publish('http://localhost:1337/', params, function (er, data) { if (er) throw er t.deepEqual(data, { created: true }) + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/publish-again.js b/node_modules/npm-registry-client/test/publish-again.js index 5beec90e4..4a895205e 100644 --- a/node_modules/npm-registry-client/test/publish-again.js +++ b/node_modules/npm-registry-client/test/publish-again.js @@ -17,7 +17,7 @@ tap.test('publish again', function (t) { // not really a tarball, but doesn't matter var bodyPath = require.resolve('../package.json') var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath, 'base64') + var pd = fs.readFileSync(bodyPath) var pkg = require('../package.json') var lastTime = null @@ -36,7 +36,7 @@ tap.test('publish again', function (t) { t.has(o.versions[pkg.version], pkg) t.same(o.maintainers, [ { name: 'username', email: 'i@izs.me' } ]) var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd) + t.same(att.data, pd.toString('base64')) res.statusCode = 409 res.json({reason: 'must supply latest _rev to update existing package'}) }) @@ -83,6 +83,7 @@ tap.test('publish again', function (t) { client.publish('http://localhost:1337/', params, function (er, data) { if (er) throw er t.deepEqual(data, { created: true }) + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/publish-failed-no-message.js b/node_modules/npm-registry-client/test/publish-failed-no-message.js index 5cb66d1e0..d2641e85c 100644 --- a/node_modules/npm-registry-client/test/publish-failed-no-message.js +++ b/node_modules/npm-registry-client/test/publish-failed-no-message.js @@ -38,6 +38,7 @@ test('publish with a 500 response but no message', function (t) { t.ok(er, 'got expected error') t.notOk(data, 'no payload on failure') + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/publish-mixcase-name.js b/node_modules/npm-registry-client/test/publish-mixcase-name.js index f2cc1d668..5f2c44e69 100644 --- a/node_modules/npm-registry-client/test/publish-mixcase-name.js +++ b/node_modules/npm-registry-client/test/publish-mixcase-name.js @@ -17,7 +17,7 @@ tap.test('publish mixcase name', function (t) { // not really a tarball, but doesn't matter var bodyPath = require.resolve('../package.json') var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath, 'base64') + var pd = fs.readFileSync(bodyPath) var pkg = require('../package.json') var lastTime = null @@ -39,7 +39,7 @@ tap.test('publish mixcase name', function (t) { t.has(o.versions[pkg.version], pkg) t.same(o.maintainers, [ { name: 'username', email: 'i@izs.me' } ]) var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd) + t.same(att.data, pd.toString('base64')) res.statusCode = 409 res.json({reason: 'must supply latest _rev to update existing package'}) }) @@ -86,6 +86,7 @@ tap.test('publish mixcase name', function (t) { client.publish('http://localhost:1337/', params, function (er, data) { if (er) throw er t.deepEqual(data, { created: true }) + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/publish-new-mixcase-name.js b/node_modules/npm-registry-client/test/publish-new-mixcase-name.js index 5b0e47655..e3e8ed232 100644 --- a/node_modules/npm-registry-client/test/publish-new-mixcase-name.js +++ b/node_modules/npm-registry-client/test/publish-new-mixcase-name.js @@ -28,7 +28,7 @@ var PARAMS = { } test('publish-new-mixcase-name', function (t) { - var pd = fs.readFileSync(BODY_PATH, 'base64') + var pd = fs.readFileSync(BODY_PATH) // change to mixed-case name METADATA.name = 'npm-Registry-Client' @@ -51,9 +51,9 @@ test('publish-new-mixcase-name', function (t) { t.same(o.maintainers, o.versions[METADATA.version].maintainers) var att = o._attachments[METADATA.name + '-' + METADATA.version + '.tgz'] - t.same(att.data, pd) + t.same(att.data, pd.toString('base64')) - var hash = crypto.createHash('sha1').update(pd, 'base64').digest('hex') + var hash = crypto.createHash('sha1').update(pd).digest('hex') t.equal(o.versions[METADATA.version].dist.shasum, hash) res.statusCode = 403 @@ -67,6 +67,7 @@ test('publish-new-mixcase-name', function (t) { // TODO: need a test that ensures useful error message // t.similar(data.error, /must be lower-case/) + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/publish-scoped-auth-token.js b/node_modules/npm-registry-client/test/publish-scoped-auth-token.js index d4704ca49..a9c5768e5 100644 --- a/node_modules/npm-registry-client/test/publish-scoped-auth-token.js +++ b/node_modules/npm-registry-client/test/publish-scoped-auth-token.js @@ -13,7 +13,7 @@ tap.test('publish', function (t) { // not really a tarball, but doesn't matter var bodyPath = require.resolve('../package.json') var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath, 'base64') + var pd = fs.readFileSync(bodyPath) var pkg = require('../package.json') pkg.name = '@npm/npm-registry-client' @@ -34,8 +34,8 @@ tap.test('publish', function (t) { t.has(o.versions[pkg.version], pkg) t.same(o.maintainers, o.versions[pkg.version].maintainers) var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd) - var hash = crypto.createHash('sha1').update(pd, 'base64').digest('hex') + t.same(att.data, pd.toString('base64')) + var hash = crypto.createHash('sha1').update(pd).digest('hex') t.equal(o.versions[pkg.version].dist.shasum, hash) res.statusCode = 201 res.json({ created: true }) @@ -51,6 +51,7 @@ tap.test('publish', function (t) { client.publish(common.registry, params, function (er, data) { if (er) throw er t.deepEqual(data, { created: true }) + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/publish-scoped.js b/node_modules/npm-registry-client/test/publish-scoped.js index 7758c3c12..347364ea9 100644 --- a/node_modules/npm-registry-client/test/publish-scoped.js +++ b/node_modules/npm-registry-client/test/publish-scoped.js @@ -19,7 +19,7 @@ tap.test('publish', function (t) { // not really a tarball, but doesn't matter var bodyPath = require.resolve('../package.json') var tarball = fs.createReadStream(bodyPath) - var pd = fs.readFileSync(bodyPath, 'base64') + var pd = fs.readFileSync(bodyPath) var pkg = require('../package.json') pkg.name = '@npm/npm-registry-client' @@ -41,8 +41,8 @@ tap.test('publish', function (t) { t.same(o.maintainers, [ { name: 'username', email: 'ogd@aoaioxxysz.net' } ]) t.same(o.maintainers, o.versions[pkg.version].maintainers) var att = o._attachments[ pkg.name + '-' + pkg.version + '.tgz' ] - t.same(att.data, pd) - var hash = crypto.createHash('sha1').update(pd, 'base64').digest('hex') + t.same(att.data, pd.toString('base64')) + var hash = crypto.createHash('sha1').update(pd).digest('hex') t.equal(o.versions[pkg.version].dist.shasum, hash) res.statusCode = 201 res.json({ created: true }) @@ -58,6 +58,7 @@ tap.test('publish', function (t) { client.publish(common.registry, params, function (er, data) { if (er) throw er t.deepEqual(data, { created: true }) + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/publish.js b/node_modules/npm-registry-client/test/publish.js index f2c257e95..07c8bb461 100644 --- a/node_modules/npm-registry-client/test/publish.js +++ b/node_modules/npm-registry-client/test/publish.js @@ -164,7 +164,7 @@ test('publish call contract', function (t) { }) test('publish', function (t) { - var pd = fs.readFileSync(BODY_PATH, 'base64') + var pd = fs.readFileSync(BODY_PATH) server.expect('/npm-registry-client', function (req, res) { t.equal(req.method, 'PUT') @@ -184,9 +184,9 @@ test('publish', function (t) { t.same(o.maintainers, o.versions[METADATA.version].maintainers) var att = o._attachments[METADATA.name + '-' + METADATA.version + '.tgz'] - t.same(att.data, pd) + t.same(att.data, pd.toString('base64')) - var hash = crypto.createHash('sha1').update(pd, 'base64').digest('hex') + var hash = crypto.createHash('sha1').update(pd).digest('hex') t.equal(o.versions[METADATA.version].dist.shasum, hash) res.statusCode = 201 @@ -198,6 +198,7 @@ test('publish', function (t) { if (er) throw er t.deepEqual(data, { created: true }) + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/redirects.js b/node_modules/npm-registry-client/test/redirects.js index d589f161a..2da565769 100644 --- a/node_modules/npm-registry-client/test/redirects.js +++ b/node_modules/npm-registry-client/test/redirects.js @@ -1,4 +1,4 @@ -var tap = require('tap') +var test = require('tap').test var server = require('./lib/server.js') var common = require('./lib/common.js') @@ -10,7 +10,7 @@ var pkg = { version: '1.2.3' } -tap.test('basic request', function (t) { +test('basic request', function (t) { // Expect one request for { follow : false } server.expect('/-/some-package/1.2.3', function (req, res) { res.writeHead(301, { @@ -49,3 +49,8 @@ tap.test('basic request', function (t) { } ) }) + +test('cleanup', function (t) { + server.close() + t.end() +}) diff --git a/node_modules/npm-registry-client/test/request-gzip-content.js b/node_modules/npm-registry-client/test/request-gzip-content.js index 27a76b8a8..5e25214f2 100644 --- a/node_modules/npm-registry-client/test/request-gzip-content.js +++ b/node_modules/npm-registry-client/test/request-gzip-content.js @@ -1,5 +1,5 @@ var zlib = require('zlib') -var tap = require('tap') +var test = require('tap').test var server = require('./lib/server.js') var common = require('./lib/common.js') @@ -20,7 +20,7 @@ var pkg = { } zlib.gzip(JSON.stringify(pkg), function (err, pkgGzip) { - tap.test('request gzip package content', function (t) { + test('request gzip package content', function (t) { t.ifError(err, 'example package compressed') server.expect('GET', '/some-package-gzip/1.2.3', function (req, res) { @@ -37,7 +37,7 @@ zlib.gzip(JSON.stringify(pkg), function (err, pkgGzip) { }) }) - tap.test('request wrong gzip package content', function (t) { + test('request wrong gzip package content', function (t) { // will retry 3 times for (var i = 0; i < 3; i++) { server.expect('GET', '/some-package-gzip/1.2.3', function (req, res) { @@ -53,4 +53,9 @@ zlib.gzip(JSON.stringify(pkg), function (err, pkgGzip) { t.end() }) }) + + test('cleanup', function (t) { + server.close() + t.end() + }) }) diff --git a/node_modules/npm-registry-client/test/request.js b/node_modules/npm-registry-client/test/request.js index 113bafd34..ed02f1972 100644 --- a/node_modules/npm-registry-client/test/request.js +++ b/node_modules/npm-registry-client/test/request.js @@ -1,4 +1,4 @@ -var Readable = require('stream').Readable +var Readable = require('readable-stream').Readable var inherits = require('util').inherits var test = require('tap').test @@ -276,3 +276,42 @@ test('run request through its paces', function (t) { t.ok(typeof er !== 'string', "Error shouldn't be returned as string.") }) }) + +test('outputs notice if npm-notice header is set', function (t) { + var client = common.freshClient({ + log: { + error: noop, + warn: function (prefix, msg) { + warnings.push(msg) + }, + info: noop, + verbose: noop, + silly: noop, + http: noop, + pause: noop, + resume: noop + } + }) + var message = 'notice me!' + var warnings = [] + + function noop () {} + + server.expect('GET', '/npm-notice', function (req, res) { + req.pipe(concat(function () { + res.statusCode = 200 + res.setHeader('npm-notice', message) + res.end() + })) + }) + + client.request(common.registry + '/npm-notice', {}, function (er) { + t.notEqual(warnings.indexOf(message), -1, 'notice not printed') + t.end() + }) +}) + +test('cleanup', function (t) { + server.close() + t.end() +}) diff --git a/node_modules/npm-registry-client/test/retries.js b/node_modules/npm-registry-client/test/retries.js index 3101a5d57..a75cbf7e0 100644 --- a/node_modules/npm-registry-client/test/retries.js +++ b/node_modules/npm-registry-client/test/retries.js @@ -46,6 +46,7 @@ tap.test('create new user account', function (t) { client.get('http://localhost:1337/some-package/1.2.3', {}, function (er, data) { if (er) throw er t.deepEqual(data, pkg) + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/star.js b/node_modules/npm-registry-client/test/star.js index ff00bab1c..e9e60266d 100644 --- a/node_modules/npm-registry-client/test/star.js +++ b/node_modules/npm-registry-client/test/star.js @@ -112,13 +112,13 @@ test('if password auth, only sets authorization on put', function (t) { .reply(200, {}) var starPut = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Basic ' + new Buffer(AUTH.username + ':' + - AUTH.password).toString('base64') - } - }) - .put('/underscore') - .reply(200) + reqheaders: { + authorization: 'Basic ' + new Buffer(AUTH.username + ':' + + AUTH.password).toString('base64') + } + }) + .put('/underscore') + .reply(200) var params = { starred: STARRED, auth: AUTH } @@ -132,28 +132,28 @@ test('if password auth, only sets authorization on put', function (t) { test('if token auth, sets bearer on get and put', function (t) { var starGet = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Bearer foo' - } - }) - .get('/underscore?write=true') - .reply(200, {}) + reqheaders: { + authorization: 'Bearer foo' + } + }) + .get('/underscore?write=true') + .reply(200, {}) var getUser = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Bearer foo' - } - }) - .get('/-/whoami') - .reply(200, { username: 'bcoe' }) + reqheaders: { + authorization: 'Bearer foo' + } + }) + .get('/-/whoami') + .reply(200, { username: 'bcoe' }) var starPut = nock('http://localhost:1010', { - reqheaders: { - authorization: 'Bearer foo' - } - }) - .put('/underscore') - .reply(200) + reqheaders: { + authorization: 'Bearer foo' + } + }) + .put('/underscore') + .reply(200) var params = { starred: STARRED, @@ -169,3 +169,8 @@ test('if token auth, sets bearer on get and put', function (t) { t.end() }) }) + +test('cleanup', function (t) { + server.close() + t.end() +}) diff --git a/node_modules/npm-registry-client/test/stars.js b/node_modules/npm-registry-client/test/stars.js index d990e05c5..a5e713c58 100644 --- a/node_modules/npm-registry-client/test/stars.js +++ b/node_modules/npm-registry-client/test/stars.js @@ -75,6 +75,7 @@ test('get the stars for a package', function (t) { t.ifError(er, 'no errors') t.deepEqual(info, USERS, 'got the list of users') + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/tag.js b/node_modules/npm-registry-client/test/tag.js index 2ab5134e4..e10490ee6 100644 --- a/node_modules/npm-registry-client/test/tag.js +++ b/node_modules/npm-registry-client/test/tag.js @@ -102,6 +102,7 @@ test('tag a package', function (t) { t.ifError(error, 'no errors') t.ok(data.tagged, 'was tagged') + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/team.js b/node_modules/npm-registry-client/test/team.js index 638690c57..ffbd18fc8 100644 --- a/node_modules/npm-registry-client/test/team.js +++ b/node_modules/npm-registry-client/test/team.js @@ -202,6 +202,11 @@ test('team command base validation', function (t) { t.end() }) +test('cleanup', function (t) { + server.close() + t.end() +}) + function onJsonReq (req, cb) { var buffer = '' req.setEncoding('utf8') diff --git a/node_modules/npm-registry-client/test/unpublish-scoped.js b/node_modules/npm-registry-client/test/unpublish-scoped.js index d3222de47..26d4ac7b1 100644 --- a/node_modules/npm-registry-client/test/unpublish-scoped.js +++ b/node_modules/npm-registry-client/test/unpublish-scoped.js @@ -1,4 +1,4 @@ -var tap = require('tap') +var test = require('tap').test var server = require('./lib/server.js') var common = require('./lib/common.js') @@ -19,7 +19,7 @@ var PARAMS = { auth: AUTH } -tap.test('unpublish a package', function (t) { +test('unpublish a package', function (t) { server.expect('GET', '/@npm%2fnpm-registry-client?write=true', function (req, res) { t.equal(req.method, 'GET') @@ -62,6 +62,7 @@ tap.test('unpublish a package', function (t) { client.unpublish(URI, PARAMS, function (er) { t.ifError(er, 'no errors') + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/unpublish.js b/node_modules/npm-registry-client/test/unpublish.js index afb16b787..8a114c899 100644 --- a/node_modules/npm-registry-client/test/unpublish.js +++ b/node_modules/npm-registry-client/test/unpublish.js @@ -98,6 +98,7 @@ test('unpublish a package', function (t) { client.unpublish(URI, PARAMS, function (error) { t.ifError(error, 'no errors') + server.close() t.end() }) }) diff --git a/node_modules/npm-registry-client/test/whoami.js b/node_modules/npm-registry-client/test/whoami.js index 764fc0c30..80979ee97 100644 --- a/node_modules/npm-registry-client/test/whoami.js +++ b/node_modules/npm-registry-client/test/whoami.js @@ -64,6 +64,7 @@ test('whoami', function (t) { t.ifError(error, 'no errors') t.equal(wombat, WHOIAM, 'im a wombat') + server.close() t.end() }) }) |