Binary file not shown.

Large diffs are not rendered by default.

Binary file not shown.
@@ -1,5 +1,5 @@
{
"version": "1.3.4",
"version": "1.3.5",
"name": "npm",
"publishConfig": {
"proprietary-attribs": false
@@ -40,14 +40,13 @@
"abbrev": "~1.0.4",
"graceful-fs": "~2.0.0",
"minimatch": "~0.2.12",
"nopt": "~2.1.1",
"nopt": "~2.1.2",
"rimraf": "~2.2.0",
"request": "~2.21.0",
"which": "1",
"tar": "~0.1.17",
"tar": "~0.1.18",
"fstream": "~0.1.23",
"block-stream": "*",
"inherits": "1",
"block-stream": "0.0.7",
"mkdirp": "~0.3.3",
"read": "~1.0.4",
"lru-cache": "~2.3.0",
@@ -67,11 +66,11 @@
"lockfile": "~0.4.0",
"retry": "~0.6.0",
"once": "~1.1.1",
"npmconf": "~0.1.1",
"npmconf": "~0.1.2",
"opener": "~1.3.0",
"chmodr": "~0.1.0",
"cmd-shim": "~1.1.0",
"sha": "~1.0.1",
"cmd-shim": "~1.0.1",
"sha": "~1.2.1",
"editor": "0.0.4",
"child-process-close": "~0.1.1",
"npm-user-validate": "0.0.3"
@@ -119,12 +119,14 @@ Return the number of listeners for a given event.
* `event` {String} The event name
* `listener` {Function} The event handler function

This event is emitted any time someone adds a new listener.
This event is emitted any time someone adds a new listener. It is unspecified
if `listener` is in the list returned by `emitter.listeners(event)`.


### Event: 'removeListener'

* `event` {String} The event name
* `listener` {Function} The event handler function

This event is emitted any time someone removes a listener.
This event is emitted any time someone removes a listener. It is unspecified
if `listener` is in the list returned by `emitter.listeners(event)`.
@@ -405,7 +405,7 @@ Read data from the file specified by `fd`.

`buffer` is the buffer that the data will be written to.

`offset` is offset within the buffer where reading will start.
`offset` is the offset in the buffer to start writing at.

`length` is an integer specifying the number of bytes to read.

@@ -171,6 +171,10 @@ automatically set as a listener for the [secureConnection][] event. The
resumption. If `requestCert` is `true`, the default is MD5 hash value
generated from command-line. Otherwise, the default is not provided.

- `secureProtocol`: The SSL method to use, e.g. `SSLv3_method` to force
SSL version 3. The possible values depend on your installation of
OpenSSL and are defined in the constant [SSL_METHODS][].

Here is a simple example echo server:

var tls = require('tls');
@@ -0,0 +1,72 @@
date: Thu Jul 25 13:35:41 PDT 2013
version: 0.10.14
category: release
title: Node v0.10.14 (Stable)
slug: node-v0-10-14-stable

2013.07.25, Version 0.10.14 (Stable)

* uv: Upgrade to v0.10.13

* npm: Upgrade to v1.3.5

* os: Don't report negative times in cpu info (Ben Noordhuis)

* fs: Handle large UID and GID (Ben Noordhuis)

* url: Fix edge-case when protocol is non-lowercase (Shuan Wang)

* doc: Streams API Doc Rewrite (isaacs)

* node: call MakeDomainCallback in all domain cases (Trevor Norris)

* crypto: fix memory leak in LoadPKCS12 (Fedor Indutny)


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

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

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

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

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

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

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

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

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

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

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

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

Shasums:
```
f6a13dc93f677e9d71f15570ea3db2244c09b26e node-v0.10.14-darwin-x64.tar.gz
c7a456bb7bd7a3d46e4d4ed65b19458e8c937431 node-v0.10.14-darwin-x86.tar.gz
9797f93df6085796ccad0f84a65fcdee46aaeedf node-v0.10.14-linux-x64.tar.gz
f40ade7d212be254a67994f86f598b1c1c0b7b4c node-v0.10.14-linux-x86.tar.gz
c187f1385224e8d4bc2b465d9677c060b399e268 node-v0.10.14-sunos-x64.tar.gz
bd8edd17eff8928ccd0adedbe63ddf3631324148 node-v0.10.14-sunos-x86.tar.gz
7654aacdcdc832387e479b2c3de731b3b6ca3d01 node-v0.10.14-x86.msi
90892d5672a75baa761afd2f238c06d4fa58cfef node-v0.10.14.pkg
b5d27b36d25bd7d45e1bb52ce0e0fdfb49dde370 node-v0.10.14.tar.gz
f2de9c77ed3914fd9139668581f970f8df698687 node.exe
b2a767985060c0719569d8fcfe7ad7e5548d952c node.exp
fa035fd44672547f8424df4a461f0a48c4cfdb97 node.lib
aaaf7b82f826dd2a0358223ea7f1a70ccf93bc77 node.pdb
9758a6374055ebfb5a2d788e1f95ebb267a5c20b pkgsrc/nodejs-ia32-0.10.14.tgz
d8ca87abc993a042030d63bcae08e85a30eef4b8 pkgsrc/nodejs-x64-0.10.14.tgz
b372293ff300dacae79c44603e878726e282b3a2 x64/node-v0.10.14-x64.msi
293a240db1cd280907a16956d4d6bb72ad9ef02a x64/node.exe
9d03fa6d751359e174586190e757efbf61869d50 x64/node.exp
8b4e097f17d4efe13a05bff7534bb23738821a9d x64/node.lib
0323632950aa90ed4bb083774b487f6287dae7a5 x64/node.pdb
```
@@ -0,0 +1,58 @@
date: Thu Jul 25 16:57:47 PDT 2013
version: 0.10.15
category: release
title: Node v0.10.15 (Stable)
slug: node-v0-10-15-stable

2013.07.25, Version 0.10.15 (Stable)

* src: fix process.getuid() return value (Ben Noordhuis)


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

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

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

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

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

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

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

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

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

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

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

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

Shasums:
```
b812ba5b966b89180d1391a9de5ccd075fc84c65 node-v0.10.15-darwin-x64.tar.gz
f07bed2a59040d7adf3a647c953c3942b132da5c node-v0.10.15-darwin-x86.tar.gz
d236ed82967eefa726ec144301728b6a32ab8d8d node-v0.10.15-linux-x64.tar.gz
5629f83b10dc95d899268c3387895085270bb9e1 node-v0.10.15-linux-x86.tar.gz
408e52074146cfed792f20ea54e9eca4419164af node-v0.10.15-sunos-x64.tar.gz
01ed71a5b019c6a2b51750c2e287613be1df0d92 node-v0.10.15-sunos-x86.tar.gz
18c72b9394a943136ad5446599c732bc5fd5af9a node-v0.10.15-x86.msi
9dba40ed9c511faa215586d0b0f535d4ae55016c node-v0.10.15.pkg
14174896de074c244b0ed2251a95d7163d5a5e87 node-v0.10.15.tar.gz
fad9611a7f656b8097c97de7b2ed016f3f33c6f9 node.exe
ee48f297215ce12ba87998ccc06760ab3e667573 node.exp
11f354ebcccfb88133a529e6e1337185a3b60550 node.lib
230fc683b097afd33583ede1ec1f41fe4dae414b node.pdb
9d349103a53f444d1f9835989e22ebf2c906e3c0 pkgsrc/nodejs-ia32-0.10.15.tgz
bb1397b448bf2a58ce62fc3c51fb14633e840bbd pkgsrc/nodejs-x64-0.10.15.tgz
7c6fbdfe5c0154477f1dd8acd915c8c13766b9ae x64/node-v0.10.15-x64.msi
f273ef837b2bc3b8cf5b1b7a363b510cb230a9be x64/node.exe
57fcec104d9fd3af53286f15353c7cd75e961382 x64/node.exp
86afa3785280a25d183ff46bfea3a845b6b506c0 x64/node.lib
f6bc69a9c20c3965fd4969040cde9b43c7de50ff x64/node.pdb
```
@@ -181,7 +181,11 @@ <h2 class="localized">Localized Sites</h2>
<a href="http://www.nodejstr.com/">Node.js Türkiye</a>
Node.js in Turkish<br>
<a href="http://www.nodebr.com/">NodeBR.com</a>
Brazilian community of Node.js
Brazilian community of Node.js<br>
<a href="http://nodejs.org.au/">nodejs.org.au</a> Australian
Node.js blog &amp; developers listing<br>
<a href="http://nodejs.geek.nz/">nodejs.geek.nz</a>
Node.js site for Kiwis<br>
</p>
</div>
</div>
@@ -38,7 +38,7 @@
<div id="quotes" class="clearfix">
<h2>Node.js in the Industry</h2>
<ul>
<li class="microsoft"><img src="http://nodejs.org/images/microsoft-logo.png">
<li class="microsoft"><img src="http://nodejs.org/images/microsoft-logo.png" height=34>
<p>Node gives Azure users the first end-to-end JavaScript
experience for the development of a whole new class of real-time
applications.
@@ -48,7 +48,7 @@ <h2>Node.js in the Industry</h2>
<span>Principal Program Manager, Microsoft Open Technologies, Inc.</span></p>
</li>

<li class="ebay"><img src="http://nodejs.org/images/ebay-logo.png">
<li class="ebay"><img src="http://nodejs.org/images/ebay-logo.png" height=34>
<p>Node’s evented I/O model freed us from worrying about locking
and concurrency issues that are common with multithreaded async
I/O.
@@ -57,7 +57,7 @@ <h2>Node.js in the Industry</h2>
<br>
<span>Principal Member, Technical Staff</span></p></li>

<li class="linkedin"><img src="http://nodejs.org/images/linkedin-logo.png">
<li class="linkedin"><img src="http://nodejs.org/images/linkedin-logo.png" height=34>
<p>On the server side, our entire mobile software stack is
completely built in Node. One reason was scale. The second is
Node showed us huge performance gains.
@@ -66,7 +66,7 @@ <h2>Node.js in the Industry</h2>
<br>
<span>Director of Engineering, Mobile</span></p></li>

<li class="yahoo"><img src="http://nodejs.org/images/yahoo-logo.png">
<li class="yahoo"><img src="http://nodejs.org/images/yahoo-logo.png" height=34>
<p>Node.js is the execution core of Manhattan. Allowing
developers to build one code base using one language – that is
the nirvana for developers.
@@ -2229,10 +2229,13 @@ void CipherBase::Update(const FunctionCallbackInfo<Value>& args) {

// Only copy the data if we have to, because it's a string
if (args[0]->IsString()) {
Local<String> string = args[0].As<String>();
enum encoding encoding = ParseEncoding(args[1], BINARY);
size_t buflen = StringBytes::StorageSize(args[0], encoding);
if (!StringBytes::IsValidString(string, encoding))
return ThrowTypeError("Bad input string");
size_t buflen = StringBytes::StorageSize(string, encoding);
char* buf = new char[buflen];
size_t written = StringBytes::Write(buf, buflen, args[0], encoding);
size_t written = StringBytes::Write(buf, buflen, string, encoding);
r = cipher->Update(buf, written, &out, &out_len);
delete[] buf;
} else {
@@ -2377,10 +2380,13 @@ void Hmac::HmacUpdate(const FunctionCallbackInfo<Value>& args) {
// Only copy the data if we have to, because it's a string
bool r;
if (args[0]->IsString()) {
Local<String> string = args[0].As<String>();
enum encoding encoding = ParseEncoding(args[1], BINARY);
size_t buflen = StringBytes::StorageSize(args[0], encoding);
if (!StringBytes::IsValidString(string, encoding))
return ThrowTypeError("Bad input string");
size_t buflen = StringBytes::StorageSize(string, encoding);
char* buf = new char[buflen];
size_t written = StringBytes::Write(buf, buflen, args[0], encoding);
size_t written = StringBytes::Write(buf, buflen, string, encoding);
r = hmac->HmacUpdate(buf, written);
delete[] buf;
} else {
@@ -2492,10 +2498,13 @@ void Hash::HashUpdate(const FunctionCallbackInfo<Value>& args) {
// Only copy the data if we have to, because it's a string
bool r;
if (args[0]->IsString()) {
Local<String> string = args[0].As<String>();
enum encoding encoding = ParseEncoding(args[1], BINARY);
size_t buflen = StringBytes::StorageSize(args[0], encoding);
if (!StringBytes::IsValidString(string, encoding))
return ThrowTypeError("Bad input string");
size_t buflen = StringBytes::StorageSize(string, encoding);
char* buf = new char[buflen];
size_t written = StringBytes::Write(buf, buflen, args[0], encoding);
size_t written = StringBytes::Write(buf, buflen, string, encoding);
r = hash->HashUpdate(buf, written);
delete[] buf;
} else {
@@ -2604,10 +2613,13 @@ void Sign::SignUpdate(const FunctionCallbackInfo<Value>& args) {
// Only copy the data if we have to, because it's a string
int r;
if (args[0]->IsString()) {
Local<String> string = args[0].As<String>();
enum encoding encoding = ParseEncoding(args[1], BINARY);
size_t buflen = StringBytes::StorageSize(args[0], encoding);
if (!StringBytes::IsValidString(string, encoding))
return ThrowTypeError("Bad input string");
size_t buflen = StringBytes::StorageSize(string, encoding);
char* buf = new char[buflen];
size_t written = StringBytes::Write(buf, buflen, args[0], encoding);
size_t written = StringBytes::Write(buf, buflen, string, encoding);
r = sign->SignUpdate(buf, written);
delete[] buf;
} else {
@@ -2747,10 +2759,13 @@ void Verify::VerifyUpdate(const FunctionCallbackInfo<Value>& args) {
// Only copy the data if we have to, because it's a string
bool r;
if (args[0]->IsString()) {
Local<String> string = args[0].As<String>();
enum encoding encoding = ParseEncoding(args[1], BINARY);
size_t buflen = StringBytes::StorageSize(args[0], encoding);
if (!StringBytes::IsValidString(string, encoding))
return ThrowTypeError("Bad input string");
size_t buflen = StringBytes::StorageSize(string, encoding);
char* buf = new char[buflen];
size_t written = StringBytes::Write(buf, buflen, args[0], encoding);
size_t written = StringBytes::Write(buf, buflen, string, encoding);
r = verify->VerifyUpdate(buf, written);
delete[] buf;
} else {
@@ -812,12 +812,12 @@ static void Chown(const FunctionCallbackInfo<Value>& args) {
if (len < 2) return TYPE_ERROR("uid required");
if (len < 3) return TYPE_ERROR("gid required");
if (!args[0]->IsString()) return TYPE_ERROR("path must be a string");
if (!args[1]->IsInt32()) return TYPE_ERROR("uid must be an int");
if (!args[2]->IsInt32()) return TYPE_ERROR("gid must be an int");
if (!args[1]->IsUint32()) return TYPE_ERROR("uid must be an unsigned int");
if (!args[2]->IsUint32()) return TYPE_ERROR("gid must be an unsigned int");

String::Utf8Value path(args[0]);
int uid = static_cast<int>(args[1]->Int32Value());
int gid = static_cast<int>(args[2]->Int32Value());
uv_uid_t uid = static_cast<uv_uid_t>(args[1]->Uint32Value());
uv_gid_t gid = static_cast<uv_gid_t>(args[2]->Uint32Value());

if (args[3]->IsFunction()) {
ASYNC_CALL(chown, args[3], *path, uid, gid);
@@ -838,12 +838,12 @@ static void FChown(const FunctionCallbackInfo<Value>& args) {
if (len < 2) return TYPE_ERROR("uid required");
if (len < 3) return TYPE_ERROR("gid required");
if (!args[0]->IsInt32()) return TYPE_ERROR("fd must be an int");
if (!args[1]->IsInt32()) return TYPE_ERROR("uid must be an int");
if (!args[2]->IsInt32()) return TYPE_ERROR("gid must be an int");
if (!args[1]->IsUint32()) return TYPE_ERROR("uid must be an unsigned int");
if (!args[2]->IsUint32()) return TYPE_ERROR("gid must be an unsigned int");

int fd = args[0]->Int32Value();
int uid = static_cast<int>(args[1]->Int32Value());
int gid = static_cast<int>(args[2]->Int32Value());
uv_uid_t uid = static_cast<uv_uid_t>(args[1]->Uint32Value());
uv_gid_t gid = static_cast<uv_gid_t>(args[2]->Uint32Value());

if (args[3]->IsFunction()) {
ASYNC_CALL(fchown, args[3], fd, uid, gid);