@@ -1,5 +1,5 @@
{
"version": "1.2.3",
"version": "1.2.10",
"name": "npm",
"publishConfig": {
"proprietary-attribs": false
@@ -35,17 +35,17 @@
"bin": "./bin/npm-cli.js",
"dependencies": {
"semver": "~1.1.2",
"ini": "~1.0.5",
"ini": "~1.1.0",
"slide": "1",
"abbrev": "~1.0.4",
"graceful-fs": "~1.1.1",
"graceful-fs": "~1.2.0",
"minimatch": "~0.2.8",
"nopt": "~2.1.1",
"rimraf": "2",
"request": "~2.9",
"which": "1",
"tar": "~0.1.12",
"fstream": "~0.1.17",
"fstream": "~0.1.22",
"block-stream": "*",
"inherits": "1",
"mkdirp": "~0.3.3",
@@ -58,13 +58,13 @@
"chownr": "0",
"npmlog": "0",
"ansi": "~0.1.2",
"npm-registry-client": "~0.2.10",
"npm-registry-client": "~0.2.13",
"read-package-json": "~0.1.8",
"read-installed": "0",
"glob": "~3.1.14",
"glob": "~3.1.18",
"init-package-json": "0.0.6",
"osenv": "0",
"lockfile": ">=0.2",
"lockfile": "~0.3.0",
"retry": "~0.6.0",
"once": "~1.1.1",
"npmconf": "0",
@@ -109,14 +109,15 @@
],
"devDependencies": {
"ronn": "~0.3.6",
"tap": "~0.2.5"
"tap": "~0.4.0"
},
"engines": {
"node": ">=0.6",
"npm": "1"
},
"scripts": {
"test": "node ./test/run.js && tap test/tap/*.js",
"tap": "tap test/tap/*.js",
"prepublish": "node bin/npm-cli.js prune ; rm -rf test/*/*/node_modules ; make -j4 doc",
"dumpconf": "env | grep npm | sort | uniq",
"echo": "node bin/npm-cli.js"

This file was deleted.

This file was deleted.

This file was deleted.

@@ -7,14 +7,19 @@ delete process.env.npm_config_depth

var npm = process.env.npm_execpath

require("child_process").exec(npm + " ls --json", {
require("child_process").execFile(process.execPath, [npm, "ls", "--json"], {
env: process.env, cwd: process.cwd() },
function (err, stdout, stderr) {

if (err) throw err

var actual = JSON.parse(stdout).dependencies
var expected = require("./npm-ls.json")

// resolved url doesn't matter
delete actual.dict.resolved
delete expected.dict.resolved

console.error(JSON.stringify(actual, null, 2))
console.error(JSON.stringify(expected, null, 2))

@@ -7,7 +7,7 @@ delete process.env.npm_config_depth

var npm = process.env.npm_execpath

require("child_process").exec(npm + " ls --json", {
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
@@ -4,6 +4,7 @@ var test = require("tap").test
, existsSync = fs.existsSync || path.existsSync
, spawn = require("child_process").spawn
, npm = require("../../")
, rimraf = require("rimraf")

test("not every pkg.name can be required", function (t) {
t.plan(1)
@@ -20,10 +21,8 @@ test("not every pkg.name can be required", function (t) {
function setup (cb) {
process.chdir(__dirname + "/false_name")
npm.load(function () {
spawn("rm", [ "-rf", __dirname + "/false_name/node_modules" ])
.on("exit", function () {
fs.mkdirSync(__dirname + "/false_name/node_modules")
cb()
})
rimraf.sync(__dirname + "/false_name/node_modules")
fs.mkdirSync(__dirname + "/false_name/node_modules")
cb()
})
}
@@ -0,0 +1,7 @@
{
"name": "package-with-peer-dep",
"version": "0.0.0",
"peerDependencies": {
"opener": "*"
}
}
@@ -0,0 +1,24 @@
var fs = require("fs")
var test = require("tap").test
var rimraf = require("rimraf")
var npm = require("../../")

test("installing dependencies that having conflicting peerDependencies", function (t) {
t.plan(1)

rimraf.sync(__dirname + "/peer-deps-invalid/node_modules")
process.chdir(__dirname + "/peer-deps-invalid")

npm.load(function () {
npm.commands.install([], function (err) {
if (!err) {
t.fail("No error!")
process.exit(1)
return
}

t.equal(err.code, "EPEERINVALID")
process.exit(0)
})
})
})
@@ -1,12 +1,9 @@
{
"author": "Domenic Denicola <domenic@domenicdenicola.com> (http://domenicdenicola.com/)",
"name": "npm-test-peer-deps-invalid",
"name": "peer-deps-invalid",
"version": "0.0.0",
"dependencies": {
"npm-test-peer-deps-file": "https://raw.github.com/gist/3971128/3f6aa37b4fa1186c2f47da9b77dcc4ec496e3483/index.js",
"npm-test-peer-deps-file-invalid": "https://gist.github.com/raw/4303335/861f8d3213061826ab31591840c3cb0ac737f4fc/index.js"
},
"scripts": {
"test": "node test.js"
}
}
@@ -0,0 +1,29 @@
var fs = require("fs")
var test = require("tap").test
var rimraf = require("rimraf")
var npm = require("../../")

var peerDepsTestUrl = "https://gist.github.com/raw/3971128/3f6aa37b4fa1186c2f47da9b77dcc4ec496e3483/index.js"

test("installing a peerDependencies-using package without a package.json present (GH-3049)", function (t) {

rimraf.sync(__dirname + "/peer-deps-without-package-json/node_modules")
fs.mkdirSync(__dirname + "/peer-deps-without-package-json/node_modules")
process.chdir(__dirname + "/peer-deps-without-package-json")

npm.load(function () {
npm.install(peerDepsTestUrl, function (err) {
if (err) {
t.fail(err)
t.end()
process.exit(1)
return
}

t.ok(fs.existsSync(__dirname + "/peer-deps-without-package-json/node_modules/npm-test-peer-deps-file"))
t.ok(fs.existsSync(__dirname + "/peer-deps-without-package-json/node_modules/dict"))
t.end()
process.exit(0)
})
})
})
File renamed without changes.
@@ -101,7 +101,7 @@ the worker pool for your application's needs.
(Default=`false`)

All settings set by the `.setupMaster` is stored in this settings object.
This object is not supposed to be change or set manually, by you.
This object is not supposed to be changed or set manually, by you.

## cluster.isMaster

@@ -299,8 +299,7 @@ then the socket will be opened as a TCP socket, if `host` is omitted,
opened as a unix socket to that path.

Normally this method is not needed, as `net.createConnection` opens the
socket. Use this only if you are implementing a custom Socket or if a
Socket is closed and you want to reuse it to connect to another server.
socket. Use this only if you are implementing a custom Socket.

This function is asynchronous. When the ['connect'][] event is emitted the
socket is established. If there is a problem connecting, the `'connect'` event
@@ -0,0 +1,72 @@
category: release
date: Wed Feb 6 09:47:18 PST 2013
version: 0.8.19
title: Node v0.8.19 (Stable)
slug: node-v0-8-19-stable

2013.02.06, Version 0.8.19 (Stable)

* npm: Upgrade to v1.2.10

* zlib: pass object size hint to V8 (Ben Noordhuis)

* zlib: reduce memory consumption, release early (Ben Noordhuis)

* buffer: slow buffer copy compatibility fix (Trevor Norris)

* zlib: don't assert on malformed dictionary (Ben Noordhuis)

* zlib: don't assert on missing dictionary (Ben Noordhuis)

* windows: better ipv6 support (Bert Belder)

* windows: add error mappings related to unsupported protocols (Bert Belder)

* windows: map ERROR_DIRECTORY to UV_ENOENT (Bert Belder)


Source Code: http://nodejs.org/dist/v0.8.19/node-v0.8.19.tar.gz

Macintosh Installer (Universal): http://nodejs.org/dist/v0.8.19/node-v0.8.19.pkg

Windows Installer: http://nodejs.org/dist/v0.8.19/node-v0.8.19-x86.msi

Windows x64 Installer: http://nodejs.org/dist/v0.8.19/x64/node-v0.8.19-x64.msi

Windows x64 Files: http://nodejs.org/dist/v0.8.19/x64/

Linux 32-bit Binary: http://nodejs.org/dist/v0.8.19/node-v0.8.19-linux-x86.tar.gz

Linux 64-bit Binary: http://nodejs.org/dist/v0.8.19/node-v0.8.19-linux-x64.tar.gz

Solaris 32-bit Binary: http://nodejs.org/dist/v0.8.19/node-v0.8.19-sunos-x86.tar.gz

Solaris 64-bit Binary: http://nodejs.org/dist/v0.8.19/node-v0.8.19-sunos-x64.tar.gz

Other release files: http://nodejs.org/dist/v0.8.19/

Website: http://nodejs.org/docs/v0.8.19/

Documentation: http://nodejs.org/docs/v0.8.19/api/

Shasums:
```
b97ded53b15196764afd1cc456c5b05a40d8bb2f node-v0.8.19-darwin-x64.tar.gz
685a21891320f3bfc1b878247d64c9912f83eb19 node-v0.8.19-darwin-x86.tar.gz
b66b2bb829f627e3cf05bc19ba8b15092b1deb4d node-v0.8.19-linux-x64.tar.gz
dcc0be09cf9d9ab863c720f7470a05baea2f7a18 node-v0.8.19-linux-x86.tar.gz
67fe40e63cbf0a0a079d8214687fb9848b67bbe2 node-v0.8.19-sunos-x64.tar.gz
c949abebb61bfbe21d4f51337d2b4c76965bc467 node-v0.8.19-sunos-x86.tar.gz
0e41157ca1cbc43aafc3ac65bdde5564e2e13de6 node-v0.8.19-x86.msi
a77d2ac238aba0003144ab2d04fc6d1356c18cc5 node-v0.8.19.pkg
f4fdbb642055be65579e11cb52c823573efabcf2 node-v0.8.19.tar.gz
7bafe93904e9741592bc9a593169cabec9cca0dd node.exe
0785e45ade6642b4fee320e950795110ef1ca94c node.exp
f623019194ff2e9cf975fe007032ece07adb4e49 node.lib
3ba7c54527b8f15521f9e667867e485ef46ffda4 node.pdb
d44bff1c52b24d385edd69db14507739e53a654a x64/node-v0.8.19-x64.msi
ec60e8b2e68529d3256a94193df62088a986a826 x64/node.exe
daf65fd50219588877637b414be36e78a859d4e6 x64/node.exp
c154205667ad7c9063cebeeb98af39f203c8c16e x64/node.lib
f4a494678c0da4bad787f25001bb209f37f82722 x64/node.pdb
```
@@ -0,0 +1,76 @@
category: release
date: Thu Jan 24 10:28:53 PST 2013
version: 0.9.8
title: Node v0.9.8 (Unstable)
slug: node-v0-9-8-unstable

2013.01.24, Version 0.9.8 (Unstable)

* npm: Upgrade to v1.2.3

* V8: Upgrade to 3.15.11.10

* streams: Support objects other than Buffers (Jake Verbaten)

* buffer: remove float write range checks (Trevor Norris)

* http: close connection on 304/204 responses with chunked encoding (Ben Noordhuis)

* build: fix build with dtrace support on FreeBSD (Fedor Indutny)

* console: Support formatting options in trace() (isaacs)

* domain: empty stack on all exceptions (Dave Olszewski)

* unix, windows: make uv_*_bind() error codes consistent (Andrius Bentkus)

* linux: add futimes() fallback (Ben Noordhuis)


Source Code: http://nodejs.org/dist/v0.9.8/node-v0.9.8.tar.gz

Macintosh Installer (Universal): http://nodejs.org/dist/v0.9.8/node-v0.9.8.pkg

Windows Installer: http://nodejs.org/dist/v0.9.8/node-v0.9.8-x86.msi

Windows x64 Installer: http://nodejs.org/dist/v0.9.8/x64/node-v0.9.8-x64.msi

Windows x64 Files: http://nodejs.org/dist/v0.9.8/x64/

Linux 32-bit Binary: http://nodejs.org/dist/v0.9.8/node-v0.9.8-linux-x86.tar.gz

Linux 64-bit Binary: http://nodejs.org/dist/v0.9.8/node-v0.9.8-linux-x64.tar.gz

Solaris 32-bit Binary: http://nodejs.org/dist/v0.9.8/node-v0.9.8-sunos-x86.tar.gz

Solaris 64-bit Binary: http://nodejs.org/dist/v0.9.8/node-v0.9.8-sunos-x64.tar.gz

Other release files: http://nodejs.org/dist/v0.9.8/

Website: http://nodejs.org/docs/v0.9.8/

Documentation: http://nodejs.org/docs/v0.9.8/api/

Shasums:

```
30bbd1df69be189afca34d808932f5417986d966 node-v0.9.8-darwin-x64.tar.gz
e9e2e9477836e22a2e8242ddbc73400a2a5fac43 node-v0.9.8-darwin-x86.tar.gz
fddaef3c084121f21d466a29f1117a844761a4a6 node-v0.9.8-linux-arm-pi.tar.gz
0ec573b26722c45abf8db1c865f8169d49244877 node-v0.9.8-linux-x64.tar.gz
b5227fb14eaad8f0c3c4fbc97b30292dcc34046b node-v0.9.8-linux-x86.tar.gz
1d846eba7dc3c02c19d82915bfccba4efb77d54c node-v0.9.8-sunos-x64.tar.gz
e06c6b965d44084ef355d80b10d99f23005bdac7 node-v0.9.8-sunos-x86.tar.gz
4ba7fcefbd0d9cc83427500f4d71fa5ed0e82bb8 node-v0.9.8-x86.msi
c92303e41c45aef6959b6a70285cdd6be30ef0b4 node-v0.9.8.pkg
ce337f1f7baca56954412fbeaa25b4f9ea4c8528 node-v0.9.8.tar.gz
474b4afd7b8696edaf240f1710084c3c7e48a00c node.exe
22044cb9cf46570d9a41cc830eda962e57331da7 node.exp
3b612ca0692f8764dd722092d0ae6e5e2c6ae5fd node.lib
7b6e50f83202781bf827b554957d097f4ae66c46 node.pdb
c67b8047392e591434169c5d367ff2356ae640fd x64/node-v0.9.8-x64.msi
474b4afd7b8696edaf240f1710084c3c7e48a00c x64/node.exe
22044cb9cf46570d9a41cc830eda962e57331da7 x64/node.exp
3b612ca0692f8764dd722092d0ae6e5e2c6ae5fd x64/node.lib
7b6e50f83202781bf827b554957d097f4ae66c46 x64/node.pdb
```
@@ -164,6 +164,7 @@ function zlibBuffer(engine, buffer, callback) {
var buf = Buffer.concat(buffers, nread);
buffers = [];
callback(null, buf);
engine.close();
}
}

@@ -421,10 +421,10 @@ Handle<Value> Buffer::Copy(const Arguments &args) {
Local<Value> target = args[0];
char* target_data = Buffer::Data(target);
size_t target_length = Buffer::Length(target);
size_t target_start = args[1]->Uint32Value();
size_t source_start = args[2]->Uint32Value();
size_t source_end = args[3]->IsUint32() ? args[3]->Uint32Value()
: source->length_;
size_t target_start = args[1]->IsUndefined() ? 0 : args[1]->Uint32Value();
size_t source_start = args[2]->IsUndefined() ? 0 : args[2]->Uint32Value();
size_t source_end = args[3]->IsUndefined() ? source->length_
: args[3]->Uint32Value();

if (source_end < source_start) {
return ThrowRangeError("sourceEnd < sourceStart");
@@ -196,20 +196,22 @@ class ZCtx : public ObjectWrap {
ctx->err_ = inflate(&ctx->strm_, ctx->flush_);

// If data was encoded with dictionary
if (ctx->err_ == Z_NEED_DICT) {
assert(ctx->dictionary_ != NULL && "Stream has no dictionary");
if (ctx->dictionary_ != NULL) {

// Load it
ctx->err_ = inflateSetDictionary(&ctx->strm_,
ctx->dictionary_,
ctx->dictionary_len_);
assert(ctx->err_ == Z_OK && "Failed to set dictionary");
if (ctx->err_ == Z_OK) {

// And try to decode again
ctx->err_ = inflate(&ctx->strm_, ctx->flush_);
}
if (ctx->err_ == Z_NEED_DICT && ctx->dictionary_ != NULL) {

// Load it
ctx->err_ = inflateSetDictionary(&ctx->strm_,
ctx->dictionary_,
ctx->dictionary_len_);
if (ctx->err_ == Z_OK) {

// And try to decode again
ctx->err_ = inflate(&ctx->strm_, ctx->flush_);
} else if (ctx->err_ == Z_DATA_ERROR) {

// Both inflateSetDictionary() and inflate() return Z_DATA_ERROR.
// Make it possible for After() to tell a bad dictionary from bad
// input.
ctx->err_ = Z_NEED_DICT;
}
}
break;
@@ -238,6 +240,13 @@ class ZCtx : public ObjectWrap {
case Z_BUF_ERROR:
// normal statuses, not fatal
break;
case Z_NEED_DICT:
if (ctx->dictionary_ == NULL) {
ZCtx::Error(ctx, "Missing dictionary");
} else {
ZCtx::Error(ctx, "Bad dictionary");
}
return;
default:
// something else.
ZCtx::Error(ctx, "Zlib error");
@@ -127,14 +127,23 @@ for (var i = 0; i < b.length; i++) {
assert.strictEqual(cntr, b[i]);
}

// copy from b to c with negative targetStart
b.fill(++cntr);
c.fill(++cntr);
var copied = b.copy(c, -1);
console.log('copied %d bytes from b into c w/ negative targetStart', copied);
assert.strictEqual(c.length, copied);
for (var i = 0; i < c.length; i++) {
assert.strictEqual(b[i], c[i]);

// copy from fast to slow buffer
var sb = new SlowBuffer(b.length);
var copied = b.copy(sb);
console.log('copied %d bytes from b into sb');
for (var i = 0; i < sb.length; i++) {
assert.strictEqual(sb[i], b[i]);
}

var caught_error = null;

// try to copy from before the beginning of b
caught_error = null;
try {
var copied = b.copy(c, 0, 100, 10);
} catch (err) {
caught_error = err;
}

// copy from b to c with negative sourceStart
@@ -0,0 +1,48 @@
// 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 common = require('../common.js');
var assert = require('assert');
var zlib = require('zlib');

// Should raise an error, not trigger an assertion in src/node_zlib.cc
(function() {
var stream = zlib.createInflate();

stream.on('error', common.mustCall(function(err) {
assert(/Missing dictionary/.test(err.message));
}));

// String "test" encoded with dictionary "dict".
stream.write(Buffer([0x78,0xBB,0x04,0x09,0x01,0xA5]));
})();

// Should raise an error, not trigger an assertion in src/node_zlib.cc
(function() {
var stream = zlib.createInflate({ dictionary: Buffer('fail') });

stream.on('error', common.mustCall(function(err) {
assert(/Bad dictionary/.test(err.message));
}));

// String "test" encoded with dictionary "dict".
stream.write(Buffer([0x78,0xBB,0x04,0x09,0x01,0xA5]));
})();

This file was deleted.