mirror of
https://github.com/nodejs/node-v0.x-archive.git
synced 2026-04-28 03:01:10 -04:00
Compare commits
514 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5cda2542fd | ||
|
|
9a70d99980 | ||
|
|
7abbda8ba2 | ||
|
|
6ebe9e0c1d | ||
|
|
304f1fcf86 | ||
|
|
6aa755070a | ||
|
|
11770bf5e2 | ||
|
|
d7c96cf289 | ||
|
|
daa6b95b08 | ||
|
|
5e7cb68be9 | ||
|
|
44eb279ef8 | ||
|
|
26b6da134f | ||
|
|
238e12af22 | ||
|
|
b521ff3b4f | ||
|
|
af90faf198 | ||
|
|
4b64542fe0 | ||
|
|
8a15147bc5 | ||
|
|
cda3b6ff52 | ||
|
|
b031671138 | ||
|
|
973bbecf1a | ||
|
|
285d8c6589 | ||
|
|
67fc1dafd0 | ||
|
|
48bbdde66b | ||
|
|
eb1ff03418 | ||
|
|
208b230744 | ||
|
|
a33d1c959a | ||
|
|
b187e96ec9 | ||
|
|
228ddddc1c | ||
|
|
e7065eaa93 | ||
|
|
f41901cdf6 | ||
|
|
00224771e3 | ||
|
|
5e8c2b0768 | ||
|
|
698e795a5f | ||
|
|
aad12d0b26 | ||
|
|
ab518ae50e | ||
|
|
e7792e5d46 | ||
|
|
0dd8e0167d | ||
|
|
83aae35b8e | ||
|
|
4515987058 | ||
|
|
75face6139 | ||
|
|
8727e5f2be | ||
|
|
2cf5f040a5 | ||
|
|
249c3c165a | ||
|
|
e1199fa335 | ||
|
|
ef046bf4f6 | ||
|
|
feaa8a41c7 | ||
|
|
d2389f8fab | ||
|
|
c781f17742 | ||
|
|
81cd3a3cd6 | ||
|
|
4b1d492561 | ||
|
|
f2ebf2469b | ||
|
|
7817f48322 | ||
|
|
06a058d731 | ||
|
|
8517089b3e | ||
|
|
253ec6a63d | ||
|
|
415bff26fe | ||
|
|
18240193ba | ||
|
|
891f9defeb | ||
|
|
dce8682827 | ||
|
|
94d337eb0f | ||
|
|
d927fbc9ab | ||
|
|
ab32e9e043 | ||
|
|
89653cb32f | ||
|
|
7418905aef | ||
|
|
b6cb6ce0d3 | ||
|
|
f61d4b7a87 | ||
|
|
d8c4ecea0b | ||
|
|
fb47a337ba | ||
|
|
70e68893fe | ||
|
|
815169383e | ||
|
|
7bee98bae2 | ||
|
|
5abcdc9671 | ||
|
|
76a771b749 | ||
|
|
46376888cd | ||
|
|
ec735cbce0 | ||
|
|
534264d209 | ||
|
|
90b785c09a | ||
|
|
6628a3b6ea | ||
|
|
0fb4fb4797 | ||
|
|
7cb0f5f84a | ||
|
|
11d8823791 | ||
|
|
95fd517431 | ||
|
|
bea2e15864 | ||
|
|
c7b8073afc | ||
|
|
928ea564d1 | ||
|
|
761a82bc9a | ||
|
|
78dc13fbf9 | ||
|
|
f9aa01de32 | ||
|
|
dc752327bb | ||
|
|
1a97998644 | ||
|
|
702b46c80d | ||
|
|
7fc835afe3 | ||
|
|
9a35656210 | ||
|
|
0113f5a72d | ||
|
|
19fd5301bf | ||
|
|
96e3be3aa3 | ||
|
|
b9bd2d3eb9 | ||
|
|
9726a259bf | ||
|
|
9f7f86b534 | ||
|
|
06bf0707f7 | ||
|
|
571a51989e | ||
|
|
f631c1d73b | ||
|
|
ad5a108dfd | ||
|
|
c834ef409e | ||
|
|
c12a1dc5d8 | ||
|
|
d2fba2bf35 | ||
|
|
35043ad8ac | ||
|
|
bda08bfa04 | ||
|
|
73c874698b | ||
|
|
f06abda6f5 | ||
|
|
10dc129a4b | ||
|
|
884a209ccf | ||
|
|
f9da776b33 | ||
|
|
f214758dd1 | ||
|
|
6b5a34cdf3 | ||
|
|
b7ddd30181 | ||
|
|
659d449460 | ||
|
|
4f63f9f327 | ||
|
|
109b16d488 | ||
|
|
8b79a31333 | ||
|
|
1cdadb1e3b | ||
|
|
1cecfee634 | ||
|
|
943c396b86 | ||
|
|
c15e6905c4 | ||
|
|
4e85257c6e | ||
|
|
e4fc2cbfd3 | ||
|
|
bcb0cc0b18 | ||
|
|
9701f1c4b2 | ||
|
|
531eba18a6 | ||
|
|
677c2c112c | ||
|
|
a10cfba766 | ||
|
|
c450ac343f | ||
|
|
f8ce384446 | ||
|
|
4472f7bbc3 | ||
|
|
79cbe1fdbb | ||
|
|
407ecc6b5f | ||
|
|
9b672bcaa2 | ||
|
|
36761b2055 | ||
|
|
ff4a9d381d | ||
|
|
8c02f9b7c8 | ||
|
|
2589d55611 | ||
|
|
296b7a580b | ||
|
|
9d72a742e3 | ||
|
|
0c68604823 | ||
|
|
31ad1d29c7 | ||
|
|
3733a85d8d | ||
|
|
daaccc7cb7 | ||
|
|
5ad0140f48 | ||
|
|
f82ef0f7c3 | ||
|
|
024451c65c | ||
|
|
c84b3c4b73 | ||
|
|
408f450286 | ||
|
|
150053b3fa | ||
|
|
fb53986a80 | ||
|
|
17da4242b0 | ||
|
|
d5fca08da4 | ||
|
|
b72d43cbf9 | ||
|
|
b6023905ff | ||
|
|
07c886f944 | ||
|
|
544e5ee1fb | ||
|
|
443071db57 | ||
|
|
1e9bcf26ce | ||
|
|
9ea5a4c468 | ||
|
|
59c3923672 | ||
|
|
39ce94276a | ||
|
|
1520c7bf5b | ||
|
|
e10bd5177f | ||
|
|
33f9074a62 | ||
|
|
8258bd467a | ||
|
|
5ebc05f560 | ||
|
|
5062741bd7 | ||
|
|
707863c1fb | ||
|
|
c97b4f1971 | ||
|
|
e0796b6f1f | ||
|
|
959a19e118 | ||
|
|
1d5b6f26fe | ||
|
|
5ca5ec33cc | ||
|
|
f1742c93d7 | ||
|
|
a42b4ad44e | ||
|
|
1d59a73fef | ||
|
|
cf6e4d82e7 | ||
|
|
2e487379ad | ||
|
|
f70be203e4 | ||
|
|
c368e46e7f | ||
|
|
3dfa98c991 | ||
|
|
2d44dcc8be | ||
|
|
4053c01b53 | ||
|
|
61be6844aa | ||
|
|
578ba76e6c | ||
|
|
d6f0ecc622 | ||
|
|
b6595c4d60 | ||
|
|
78db18739a | ||
|
|
2f256af412 | ||
|
|
353bfbaf93 | ||
|
|
48a2d34cfe | ||
|
|
ef5b0f4c8e | ||
|
|
b47ba2c431 | ||
|
|
2d6a076ab3 | ||
|
|
c0c4e008aa | ||
|
|
1bf3a14353 | ||
|
|
054127112c | ||
|
|
edea94c332 | ||
|
|
30b29d8f87 | ||
|
|
d8c5ba2185 | ||
|
|
0613af0a20 | ||
|
|
5e803219d8 | ||
|
|
9be20afeb5 | ||
|
|
67b10f816c | ||
|
|
3aa2fd3b2c | ||
|
|
8cdbf014bd | ||
|
|
a63ce6ea94 | ||
|
|
4ca3fd0a01 | ||
|
|
86d077da00 | ||
|
|
17db291b5c | ||
|
|
7bfa5cf284 | ||
|
|
674416fbc9 | ||
|
|
b34feeeb86 | ||
|
|
169b0820f0 | ||
|
|
3c195d04f3 | ||
|
|
c417de409d | ||
|
|
c2f6405a0f | ||
|
|
c0446edcc2 | ||
|
|
4ed05da2be | ||
|
|
8d1e5d3ae1 | ||
|
|
774c289ba8 | ||
|
|
8e22004cb5 | ||
|
|
d39297251f | ||
|
|
3b6c1d74c7 | ||
|
|
798f8a0dc1 | ||
|
|
e083720d54 | ||
|
|
3ce782b7f2 | ||
|
|
8a121fa0e7 | ||
|
|
e8ad5b9c1c | ||
|
|
e88a1ba74a | ||
|
|
c205d3b53a | ||
|
|
4f24b20fcb | ||
|
|
a62ec4437b | ||
|
|
2a6ff3f56b | ||
|
|
14d4fbb002 | ||
|
|
cacb28c92c | ||
|
|
db8c55e77c | ||
|
|
f775c5cea4 | ||
|
|
032b877f31 | ||
|
|
6738d82e38 | ||
|
|
03d6aa07ea | ||
|
|
d383954ffe | ||
|
|
5d4e3d2d0c | ||
|
|
df5be65415 | ||
|
|
d71f9944cc | ||
|
|
f28d482cd4 | ||
|
|
5824881e4a | ||
|
|
1a181315eb | ||
|
|
63629614cb | ||
|
|
8cd13eb74e | ||
|
|
ffcdcc7ff0 | ||
|
|
4051c2843b | ||
|
|
217bb47b02 | ||
|
|
bab59f33e7 | ||
|
|
ebb79cdaba | ||
|
|
7343f8e776 | ||
|
|
56cfcea4b4 | ||
|
|
4065b241e8 | ||
|
|
af7960b295 | ||
|
|
18acdff8d3 | ||
|
|
cd5d2473a4 | ||
|
|
63431796f4 | ||
|
|
44daa9836b | ||
|
|
29463cb60c | ||
|
|
692bcbe559 | ||
|
|
493a6bb19a | ||
|
|
7f58d207f3 | ||
|
|
ba0892ba91 | ||
|
|
483edbdf1a | ||
|
|
cacd651ec6 | ||
|
|
50cfeef65e | ||
|
|
412cebec9e | ||
|
|
2e24ded6d2 | ||
|
|
70a393ea9a | ||
|
|
4f8d7328a4 | ||
|
|
fde26002f1 | ||
|
|
f4641bd4de | ||
|
|
82ad1f87fa | ||
|
|
0e7dad3f6e | ||
|
|
7af2d6b985 | ||
|
|
909ea3008e | ||
|
|
5571c1aaa4 | ||
|
|
f9df88c6da | ||
|
|
f9e464f95a | ||
|
|
9fe92590b2 | ||
|
|
f4720d8dbd | ||
|
|
8e6086b403 | ||
|
|
a54b70a355 | ||
|
|
cf4700aff4 | ||
|
|
c9b35b9923 | ||
|
|
c4d6c7f829 | ||
|
|
f0694e1e0c | ||
|
|
03968739c5 | ||
|
|
94c6bcfdad | ||
|
|
dfdf09d43d | ||
|
|
728386bfb2 | ||
|
|
628bc835ae | ||
|
|
a52254d0d7 | ||
|
|
aef61ee367 | ||
|
|
0e752246d3 | ||
|
|
2fd5cb3d2e | ||
|
|
0cf7156f08 | ||
|
|
2806c6ce28 | ||
|
|
02e288b640 | ||
|
|
af7314e190 | ||
|
|
40190b7c92 | ||
|
|
ec02e82760 | ||
|
|
2f148845e8 | ||
|
|
9a0495a4b0 | ||
|
|
dd1b3b6dfd | ||
|
|
ab294ad93d | ||
|
|
6e51db1268 | ||
|
|
60aa852a03 | ||
|
|
97ee38707b | ||
|
|
44559a3211 | ||
|
|
24a2706a3b | ||
|
|
11d27367cd | ||
|
|
bd880e7f3f | ||
|
|
3bec62b012 | ||
|
|
3d5f7594b5 | ||
|
|
ac5e7072c9 | ||
|
|
7aee49d967 | ||
|
|
7d6d5e263e | ||
|
|
964d03bc3f | ||
|
|
cd4cb8e795 | ||
|
|
90fd70d284 | ||
|
|
aa35564ca1 | ||
|
|
3f1f2d1497 | ||
|
|
d03b8487c6 | ||
|
|
3c68c85f18 | ||
|
|
2d7b43f466 | ||
|
|
ae762b620e | ||
|
|
2f5e084147 | ||
|
|
db8940dae2 | ||
|
|
ca0986fbd1 | ||
|
|
d4d45a1757 | ||
|
|
27a937bcf8 | ||
|
|
b73ec84ce1 | ||
|
|
a84adad078 | ||
|
|
59ecf2ccf7 | ||
|
|
f492baa61d | ||
|
|
c5cbc3db47 | ||
|
|
d384b8b0d2 | ||
|
|
a9130222bd | ||
|
|
c1fcb1db99 | ||
|
|
491ec171ec | ||
|
|
58e5d69250 | ||
|
|
680d75af34 | ||
|
|
b92a919500 | ||
|
|
1b5048b288 | ||
|
|
d3b8372615 | ||
|
|
73806b56e5 | ||
|
|
9a6f936c8a | ||
|
|
92cb684e78 | ||
|
|
3502e45b6c | ||
|
|
defa637378 | ||
|
|
fd61bfc731 | ||
|
|
ac9fa2b846 | ||
|
|
e004721b48 | ||
|
|
e60b18bbdf | ||
|
|
7f94b5ccca | ||
|
|
35c1f682c1 | ||
|
|
3d1b670640 | ||
|
|
21374c3903 | ||
|
|
634b4de2c8 | ||
|
|
27d8b059fa | ||
|
|
5e3ca98155 | ||
|
|
186960fefb | ||
|
|
3817b12fec | ||
|
|
bae4018b30 | ||
|
|
c6019b8b4e | ||
|
|
080ffb8b2c | ||
|
|
b9127eb0a5 | ||
|
|
feff9bbb67 | ||
|
|
c6a04ce78f | ||
|
|
19133cac02 | ||
|
|
da908364a8 | ||
|
|
c6c6f98f1c | ||
|
|
3f4062309e | ||
|
|
f116e17a23 | ||
|
|
86f4846c21 | ||
|
|
0cebfc8ddb | ||
|
|
de5e3f6a6f | ||
|
|
f0c5165f81 | ||
|
|
b0c1541227 | ||
|
|
1109c8fc4e | ||
|
|
c3a9733ac1 | ||
|
|
b72277183f | ||
|
|
8d3c46daa8 | ||
|
|
999757983c | ||
|
|
7f4aba91d3 | ||
|
|
028043dd02 | ||
|
|
546870edd8 | ||
|
|
af4a96ce6e | ||
|
|
4af673e161 | ||
|
|
7ae0d473a6 | ||
|
|
d530ee62cd | ||
|
|
96338432e2 | ||
|
|
0cdf85e28d | ||
|
|
96a137a18a | ||
|
|
31721da4b1 | ||
|
|
c1f474010e | ||
|
|
0787287021 | ||
|
|
7864bb9eb8 | ||
|
|
23c4278e06 | ||
|
|
dfed2cef75 | ||
|
|
f73f07e126 | ||
|
|
1eb1fe3225 | ||
|
|
a2851b6234 | ||
|
|
4672872ddd | ||
|
|
977e211421 | ||
|
|
ae5e23310e | ||
|
|
9764bea97d | ||
|
|
4ed7b035bd | ||
|
|
a118f21728 | ||
|
|
7a1a62ec6e | ||
|
|
30e462e919 | ||
|
|
83fd1c1de5 | ||
|
|
2c07712860 | ||
|
|
8f2694bb53 | ||
|
|
d52f5020ce | ||
|
|
9364699be1 | ||
|
|
3415427dbf | ||
|
|
ef50bd2e54 | ||
|
|
ce485791db | ||
|
|
3bc3af0276 | ||
|
|
d91bc7cb09 | ||
|
|
077f9d7293 | ||
|
|
71e975669c | ||
|
|
1e425e3fa7 | ||
|
|
d653732157 | ||
|
|
6a2cb6c506 | ||
|
|
6141386f7e | ||
|
|
0685707bc6 | ||
|
|
de21de920c | ||
|
|
0a4f5e8473 | ||
|
|
14b20ffc30 | ||
|
|
b19b8836c3 | ||
|
|
1ce14eca44 | ||
|
|
9a0d90793e | ||
|
|
df236e75a2 | ||
|
|
a7af84f988 | ||
|
|
e7e4f2f3aa | ||
|
|
ef032cbe85 | ||
|
|
3a915b02e8 | ||
|
|
5041bc1b6c | ||
|
|
68a0c56a7d | ||
|
|
09ccbef3bb | ||
|
|
2e6ad62047 | ||
|
|
c3f176222a | ||
|
|
3f43b1c039 | ||
|
|
8a6576f764 | ||
|
|
a27320e00f | ||
|
|
2f759a7090 | ||
|
|
d3f6b094c7 | ||
|
|
e9adb7fbbc | ||
|
|
830d0fe95a | ||
|
|
c7771bc2ec | ||
|
|
c9f58cc595 | ||
|
|
a8f357629d | ||
|
|
38eec57aef | ||
|
|
d4ccdeaf00 | ||
|
|
cacd3ae004 | ||
|
|
163900dc68 | ||
|
|
9da830e895 | ||
|
|
e5ed6b91f4 | ||
|
|
02c1cb54aa | ||
|
|
9a6012edd9 | ||
|
|
e612143a89 | ||
|
|
99059aad8d | ||
|
|
349cab0b48 | ||
|
|
81d18398a8 | ||
|
|
09c296b44d | ||
|
|
0a347559bf | ||
|
|
986785c9d2 | ||
|
|
116835561d | ||
|
|
e5db01ee29 | ||
|
|
8be699494e | ||
|
|
23514fc946 | ||
|
|
1595a6e885 | ||
|
|
a20872045a | ||
|
|
5e1471c806 | ||
|
|
c2dc673eb5 | ||
|
|
832efb1e01 | ||
|
|
2e2df04b35 | ||
|
|
74a8215a86 | ||
|
|
7543c38dca | ||
|
|
a2cd31cbf1 | ||
|
|
0f0af55a0a | ||
|
|
11d1eca9f3 | ||
|
|
f64989e63b | ||
|
|
07a983a602 | ||
|
|
4671e54495 | ||
|
|
68db20656e | ||
|
|
9fb088e3ab | ||
|
|
74a2528bd7 | ||
|
|
051908e023 | ||
|
|
5937d02aed | ||
|
|
71527e3a55 | ||
|
|
465f57c56f | ||
|
|
30fd2f7bb2 | ||
|
|
7e40c7ddc9 | ||
|
|
f101f7c9ba | ||
|
|
67cd05472e | ||
|
|
e5ea6ad0f0 | ||
|
|
a661830569 | ||
|
|
5166758927 | ||
|
|
3deceaf6e7 | ||
|
|
a9723df1b7 | ||
|
|
ec79acb3a6 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -38,3 +38,6 @@ ipch/
|
||||
/dist-osx
|
||||
/npm.wxs
|
||||
/tools/msvs/npm.wixobj
|
||||
email.md
|
||||
blog.html
|
||||
deps/v8-*
|
||||
|
||||
34
AUTHORS
34
AUTHORS
@@ -172,6 +172,7 @@ Scott McWhirter <scott.mcwhirter@joyent.com>
|
||||
Jakub Lekstan <jakub.lekstan@dreamlab.pl>
|
||||
Tim Baumann <tim@timbaumann.info>
|
||||
Robert Mustacchi <rm@joyent.com>
|
||||
Håvard Stranden <havard.stranden@gmail.com>
|
||||
George Miroshnykov <george.miroshnykov@gmail.com>
|
||||
Marcel Laverdet <marcel@laverdet.com>
|
||||
Alexandre Marangone <a.marangone@gmail.com>
|
||||
@@ -261,3 +262,36 @@ Brandon Benvie <brandon@bbenvie.com>
|
||||
Nicolas LaCasse <nlacasse@borderstylo.com>
|
||||
Dan VerWeire <dverweire@gmail.com>
|
||||
Matthew Fitzsimmons <matt@joyent.com>
|
||||
Philip Tellis <philip.tellis@gmail.com>
|
||||
Christopher Jeffrey <chjjeffrey@gmail.com>
|
||||
Paddy Byers <paddy.byers@gmail.com>
|
||||
Seth Fitzsimmons <seth@mojodna.net>
|
||||
Einar Otto Stangvik <einaros@gmail.com>
|
||||
Paul Vorbach <paul@vorb.de>
|
||||
Luke Gallagher <notfornoone@gmail.com>
|
||||
Tomasz Buchert <tomek.buchert@gmail.com>
|
||||
Myles Byrne <myles@myles.id.au>
|
||||
T.C. Hollingsworth <tchollingsworth@gmail.com>
|
||||
Cam Pedersen <diffference@gmail.com>
|
||||
Roly Fentanes <roly426@gmail.com>
|
||||
Ted Young <ted@radicaldesigns.org>
|
||||
Joshua Holbrook <josh.holbrook@gmail.com>
|
||||
Blake Miner <miner.blake@gmail.com>
|
||||
Vincent Ollivier <contact@vincentollivier.com>
|
||||
Jimb Esser <jimb@railgun3d.com>
|
||||
Sambasiva Suda <sambasivarao@gmail.com>
|
||||
Sadique Ali <sadiqalikm@gmail.com>
|
||||
Dmitry Nizovtsev <dmitry@ukrteam.com>
|
||||
Alex Kocharin <rlidwka@kocharin.ru>
|
||||
Ming Liu <vmliu1@gmail.com>
|
||||
Shea Levy <shea@shealevy.com>
|
||||
Nao Iizuka <iizuka@kyu-mu.net>
|
||||
Christian Ress <christian@ressonline.de>
|
||||
Rod Vagg <rod@vagg.org>
|
||||
Matt Ezell <ezell.matt@gmail.com>
|
||||
Charlie McConnell <charlie@charlieistheman.com>
|
||||
Farid Neshat <FaridN_SOAD@yahoo.com>
|
||||
Johannes Wüller <johanneswueller@gmail.com>
|
||||
Erik Lundin <mjor.himself@gmail.com>
|
||||
Mikael Bourges-Sevenier <mikeseven@gmail.com>
|
||||
Yosef Dinerstein <yosefd@microsoft.com>
|
||||
|
||||
284
ChangeLog
284
ChangeLog
@@ -1,4 +1,159 @@
|
||||
2012.02.01, Version 0.7.2 (unstable)
|
||||
2012.03.30, Version 0.7.7 (unstable)
|
||||
|
||||
* Upgrade V8 to 3.9.24.7
|
||||
|
||||
* Upgrade npm to 1.1.15
|
||||
|
||||
* Handle Emoji characters properly (Erik Corry, Bert Belder)
|
||||
|
||||
* readline: migrate ansi/vt100 logic from tty to readline (Nathan Rajlich)
|
||||
|
||||
* readline: Fix multiline handling (Alex Kocharin)
|
||||
|
||||
* add a -i/--interactive flag to force the REPL (Nathan Rajlich)
|
||||
|
||||
* debugger: add breakOnException command (Fedor Indutny)
|
||||
|
||||
* cluster: kill workers when master dies (Andreas Madsen)
|
||||
|
||||
* cluster: add graceful disconnect support (Andreas Madsen)
|
||||
|
||||
* child_process: Separate 'close' event from 'exit' (Charlie McConnell)
|
||||
|
||||
* typed arrays: add Uint8ClampedArray (Mikael Bourges-Sevenier)
|
||||
|
||||
* buffer: Fix byte alignment issues (Ben Noordhuis, Erik Lundin)
|
||||
|
||||
* tls: fix CryptoStream.setKeepAlive() (Shigeki Ohtsu)
|
||||
|
||||
* Expose http parse error codes (Felix Geisendörfer)
|
||||
|
||||
* events: don't delete the listeners array (Ben Noordhuis, Nathan Rajlich)
|
||||
|
||||
* process: add process.config to view node's ./configure settings (Nathan Rajlich)
|
||||
|
||||
* process: process.execArgv to see node's arguments (Micheil Smith)
|
||||
|
||||
* process: fix process.title setter (Ben Noordhuis)
|
||||
|
||||
* timers: handle negative or non-numeric timeout values (Ben Noordhuis)
|
||||
|
||||
|
||||
2012.03.13, Version 0.7.6 (unstable), f06abda6f58e517349d1b63a2cbf5a8d04a03505
|
||||
|
||||
* Upgrade v8 to 3.9.17
|
||||
|
||||
* Upgrade npm to 1.1.8
|
||||
- Add support for os/cpu fields in package.json (Adam Blackburn)
|
||||
- Automatically node-gyp packages containing a binding.gyp
|
||||
- Fix failures unpacking in UNC shares
|
||||
- Never create un-listable directories
|
||||
- Handle cases where an optionalDependency fails to build
|
||||
|
||||
* events: newListener emit correct fn when using 'once' (Roly Fentanes)
|
||||
|
||||
* url: Ignore empty port component (Łukasz Walukiewicz)
|
||||
|
||||
* module: replace 'children' array (isaacs)
|
||||
|
||||
* tls: parse multiple values of a key in ssl certificate (Sambasiva Suda)
|
||||
|
||||
* cluster: support passing of named pipes (Ben Noordhuis)
|
||||
|
||||
* Windows: include syscall in fs errors (Bert Belder)
|
||||
|
||||
* http: #2888 Emit end event only once (Igor Zinkovsky)
|
||||
|
||||
* readline: add multiline support (Rlidwka)
|
||||
|
||||
* process: add `process.hrtime()` (Nathan Rajlich)
|
||||
|
||||
* net, http, https: add localAddress option (Dmitry Nizovtsev)
|
||||
|
||||
* addon improvements (Nathan Rajlich)
|
||||
|
||||
* build improvements (Ben Noordhuis, Sadique Ali, T.C. Hollingsworth, Nathan Rajlich)
|
||||
|
||||
* add support for "SEARCH" request methods (Nathan Rajlich)
|
||||
|
||||
* expose the zlib and http_parser version in process.versions (Nathan Rajlich)
|
||||
|
||||
|
||||
2012.02.23, Version 0.7.5 (unstable), d384b8b0d2ab7f05465f0a3e15fe20b4e25b5f86
|
||||
|
||||
* startup speed improvements (Maciej Małecki)
|
||||
|
||||
* crypto: add function getDiffieHellman() (Tomasz Buchert)
|
||||
|
||||
* buffer: support decoding of URL-safe base64 (Ben Noordhuis)
|
||||
|
||||
* Make QueryString.parse() even faster (Brian White)
|
||||
|
||||
* url: decode url entities in auth section (Ben Noordhuis)
|
||||
|
||||
* http: support PURGE request method (Ben Noordhuis)
|
||||
|
||||
* http: Generate Date headers on responses (Mark Nottingham)
|
||||
|
||||
* Fix #2762: Add callback to close function. (Mikeal Rogers)
|
||||
|
||||
* dgram: fix out-of-bound memory read (Ben Noordhuis)
|
||||
|
||||
* repl: add automatic loading of built-in libs (Brandon Benvie)
|
||||
|
||||
* repl: remove double calls where possible (Fedor Indutny)
|
||||
|
||||
* Readline improvements. Related: #2737 #2756 (Colton Baker)
|
||||
|
||||
* build: disable -fomit-frame-pointer on solaris (Dave Pacheco)
|
||||
|
||||
* build: arch detection improvements (Nathan Rajlich)
|
||||
|
||||
* build: Make a fat binary for the OS X `make pkg`. (Nathan Rajlich)
|
||||
|
||||
* jslint src/ and lib/ on 'make test' (isaacs)
|
||||
|
||||
|
||||
|
||||
2012.02.14, Version 0.7.4 (unstable), de21de920cf93ec40736ada3792a7f85f3eadeda
|
||||
|
||||
* Upgrade V8 to 3.9.5
|
||||
|
||||
* Upgrade npm to 1.1.1
|
||||
|
||||
* build: Detect host_arch better (Karl Skomski)
|
||||
|
||||
* debugger: export `debug_port` to `process` (Fedor Indutny)
|
||||
|
||||
* api docs: CSS bug fixes (isaacs)
|
||||
|
||||
* build: use -fPIC for native addons on UNIX (Nathan Rajlich)
|
||||
|
||||
* Re-add top-level v8::Locker (Marcel Laverdet)
|
||||
|
||||
* Move images out of the dist tarballs (isaacs)
|
||||
|
||||
* libuv: Remove uv_export and uv_import (Ben Noordhuis)
|
||||
|
||||
* build: Support x64 build on Windows (Igor Zinkovsky)
|
||||
|
||||
|
||||
2012.02.07, Version 0.7.3 (unstable), 99059aad8d654acda4abcfaa68df182b50f2ec90
|
||||
|
||||
* Upgrade V8 to 3.9.2
|
||||
|
||||
* Revert support for isolates. (Ben Noordhuis)
|
||||
|
||||
* cluster: Cleanup docs, event handling, and process.disconnect (Andreas Madsen)
|
||||
|
||||
* gyp_addon: link with node.lib on Windows (Nathan Rajlich)
|
||||
|
||||
* http: fix case where http-parser is freed twice (koichik)
|
||||
|
||||
* Windows: disable RTTI and exceptions (Bert Belder)
|
||||
|
||||
|
||||
2012.02.01, Version 0.7.2 (unstable), ec79acb3a6166e30f0bf271fbbfda1fb575b3321
|
||||
|
||||
* Update V8 to 3.8.9
|
||||
|
||||
@@ -59,6 +214,133 @@
|
||||
* Bug fixes
|
||||
|
||||
|
||||
2012.03.15 Version 0.6.13 (stable), 9f7f86b534f8556290eb8cad915984ff4ca54996
|
||||
|
||||
* Windows: Many libuv test fixes (Bert Belder)
|
||||
|
||||
* Windows: avoid uv_guess_handle crash in when fd < 0 (Bert Belder)
|
||||
|
||||
* Map EBUSY and ENOTEMPTY errors (Bert Belder)
|
||||
|
||||
* Windows: include syscall in fs errors (Bert Belder)
|
||||
|
||||
* Fix fs.watch ENOSYS on Linux kernel version mismatch (Ben Noordhuis)
|
||||
|
||||
* Update npm to 1.1.9
|
||||
- upgrade node-gyp to 0.3.5 (Nathan Rajlich)
|
||||
- Fix isaacs/npm#2249 Add cache-max and cache-min configs
|
||||
- Properly redirect across https/http registry requests
|
||||
- log config usage if undefined key in set function (Kris Windham)
|
||||
- Add support for os/cpu fields in package.json (Adam Blackburn)
|
||||
- Automatically node-gyp packages containing a binding.gyp
|
||||
- Fix failures unpacking in UNC shares
|
||||
- Never create un-listable directories
|
||||
- Handle cases where an optionalDependency fails to build
|
||||
|
||||
|
||||
2012.03.02 Version 0.6.12 (stable), 48a2d34cfe6b7e1c9d15202a4ef5e3c82d1fba35
|
||||
|
||||
* Upgrade V8 to 3.6.6.24
|
||||
|
||||
* dtrace ustack helper improvements (Dave Pacheco)
|
||||
|
||||
* API Documentation refactor (isaacs)
|
||||
|
||||
* #2827 net: fix race write() before and after connect() (koichik)
|
||||
|
||||
* #2554 #2567 throw if fs args for 'start' or 'end' are strings (AJ ONeal)
|
||||
|
||||
* punycode: Update to v1.0.0 (Mathias Bynens)
|
||||
|
||||
* Make a fat binary for the OS X pkg (isaacs)
|
||||
|
||||
* Fix hang on accessing process.stdin (isaacs)
|
||||
|
||||
* repl: make tab completion work on non-objects (Nathan Rajlich)
|
||||
|
||||
* Fix fs.watch on OS X (Ben Noordhuis)
|
||||
|
||||
* Fix #2515 nested setTimeouts cause premature process exit (Ben Noordhuis)
|
||||
|
||||
* windows: fix time conversion in stat (Igor Zinkovsky)
|
||||
|
||||
* windows: fs: handle EOF in read (Brandon Philips)
|
||||
|
||||
* windows: avoid IOCP short-circuit on non-ifs lsps (Igor Zinkovsky)
|
||||
|
||||
* Upgrade npm to 1.1.4 (isaacs)
|
||||
- windows fixes
|
||||
- Bundle nested bundleDependencies properly
|
||||
- install: support --save with url install targets
|
||||
- shrinkwrap: behave properly with url-installed modules
|
||||
- support installing uncompressed tars or single file modules from urls etc.
|
||||
- don't run make clean on rebuild
|
||||
- support HTTPS-over-HTTP proxy tunneling
|
||||
|
||||
|
||||
2012.02.17 Version 0.6.11 (stable), 1eb1fe32250fc88cb5b0a97cddf3e02be02e3f4a
|
||||
|
||||
* http: allow multiple WebSocket RFC6455 headers (Einar Otto Stangvik)
|
||||
|
||||
* http: allow multiple WWW-Authenticate headers (Ben Noordhuis)
|
||||
|
||||
* windows: support unicode argv and environment variables (Bert Belder)
|
||||
|
||||
* tls: mitigate session renegotiation attacks (Ben Noordhuis)
|
||||
|
||||
* tcp, pipe: don't assert on uv_accept() errors (Ben Noordhuis)
|
||||
|
||||
* tls: Allow establishing secure connection on the existing socket (koichik)
|
||||
|
||||
* dgram: handle close of dgram socket before DNS lookup completes (Seth Fitzsimmons)
|
||||
|
||||
* windows: Support half-duplex pipes (Igor Zinkovsky)
|
||||
|
||||
* build: disable omit-frame-pointer on solaris systems (Dave Pacheco)
|
||||
|
||||
* debugger: fix --debug-brk (Ben Noordhuis)
|
||||
|
||||
* net: fix large file downloads failing (koichik)
|
||||
|
||||
* fs: fix ReadStream failure to read from existing fd (Christopher Jeffrey)
|
||||
|
||||
* net: destroy socket on DNS error (Stefan Rusu)
|
||||
|
||||
* dtrace: add missing translator (Dave Pacheco)
|
||||
|
||||
* unix: don't flush tty on switch to raw mode (Ben Noordhuis)
|
||||
|
||||
* windows: reset brightness when reverting to default text color (Bert Belder)
|
||||
|
||||
* npm: update to 1.1.1
|
||||
- Update which, fstream, mkdirp, request, and rimraf
|
||||
- Fix #2123 Set path properly for lifecycle scripts on windows
|
||||
- Mark the root as seen, so we don't recurse into it. Fixes #1838. (Martin Cooper)
|
||||
|
||||
|
||||
2012.02.02, Version 0.6.10 (stable), 051908e023f87894fa68f5b64d0b99a19a7db01e
|
||||
|
||||
* Update V8 to 3.6.6.20
|
||||
|
||||
* Add npm msysgit bash shim to msi installer (isaacs)
|
||||
|
||||
* buffers: fix intermittent out of bounds error (Ben Noordhuis)
|
||||
|
||||
* buffers: honor length argument in base64 decoder (Ben Noordhuis)
|
||||
|
||||
* windows: Fix path.exists regression (Bert Belder)
|
||||
|
||||
* Make QueryString.parse run faster (Philip Tellis)
|
||||
|
||||
* http: avoid freeing http-parser objects too early (koichik)
|
||||
|
||||
* timers: add v0.4 compatibility hack (Ben Noordhuis)
|
||||
|
||||
* Proper EPERM error code support (Igor Zinkovsky, Brandon Philips)
|
||||
|
||||
* dgram: Implement udp multicast methods on windows (Bert Belder)
|
||||
|
||||
|
||||
2012.01.27, Version 0.6.9 (stable), f19e20d33f57c4d2853aaea7d2724d44f3b0012f
|
||||
|
||||
* dgram: Bring back missing functionality for Unix (Dan VerWeire, Roman Shtylman, Ben Noordhuis)
|
||||
|
||||
7
LICENSE
7
LICENSE
@@ -79,8 +79,13 @@ The externally maintained libraries used by Node are:
|
||||
licensed under a permissive free software license. See
|
||||
deps/zlib/LICENSE.
|
||||
|
||||
- deps/npm npm is a package manager program copyright 2009, 2010, 2011
|
||||
- deps/npm npm is a package manager program copyright 2009 - 2012
|
||||
Isaac Z. Schlueter and licensed under MIT. npm includes several
|
||||
subpackages MIT or Apache licenses, see deps/npm/LICENSE for more
|
||||
information. npm is included in the Node .msi and .pkg distributions
|
||||
but not in the Node binary itself.
|
||||
|
||||
- tools/doc/node_modules/marked Marked is a Markdown parser Copyright
|
||||
(c) 2011-2012, Christopher Jeffrey (https://github.com/chjj/). Marked
|
||||
is used in the generation of node documentation, but not distributed in
|
||||
any node binaries.
|
||||
|
||||
88
Makefile
88
Makefile
@@ -33,20 +33,24 @@ out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/z
|
||||
tools/gyp_node -f make
|
||||
|
||||
install: all
|
||||
out/Release/node tools/installer.js ./config.gypi install
|
||||
out/Release/node tools/installer.js install
|
||||
|
||||
uninstall:
|
||||
out/Release/node tools/installer.js ./config.gypi uninstall
|
||||
out/Release/node tools/installer.js uninstall
|
||||
|
||||
clean:
|
||||
-rm -rf out/Makefile node node_g out/**/*.o out/**/*.a out/$(BUILDTYPE)/node
|
||||
-rm -rf out/Makefile node node_g out/$(BUILDTYPE)/node blog.html email.md
|
||||
-find out/ -name '*.o' -o -name '*.a' | xargs rm -rf
|
||||
|
||||
distclean:
|
||||
-rm -rf out
|
||||
-rm config.gypi
|
||||
-rm -f config.gypi
|
||||
-rm -f config.mk
|
||||
-rm -rf node node_g blog.html email.md
|
||||
|
||||
test: all
|
||||
$(PYTHON) tools/test.py --mode=release simple message
|
||||
PYTHONPATH=tools/closure_linter/ $(PYTHON) tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ --exclude_files lib/punycode.js
|
||||
|
||||
test-http1: all
|
||||
$(PYTHON) tools/test.py --mode=release --use-http1 simple message
|
||||
@@ -89,12 +93,15 @@ test-npm-publish: node
|
||||
npm_package_config_publishtest=true ./node deps/npm/test/run.js
|
||||
|
||||
apidoc_sources = $(wildcard doc/api/*.markdown)
|
||||
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html))
|
||||
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html)) \
|
||||
$(addprefix out/,$(apidoc_sources:.markdown=.json))
|
||||
|
||||
apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets out/doc/about out/doc/community out/doc/logos
|
||||
apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets out/doc/about out/doc/community out/doc/logos out/doc/images
|
||||
|
||||
apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/*)))
|
||||
|
||||
doc_images = $(addprefix out/,$(wildcard doc/images/* doc/*.jpg doc/*.png))
|
||||
|
||||
website_files = \
|
||||
out/doc/index.html \
|
||||
out/doc/v0.4_announcement.html \
|
||||
@@ -103,35 +110,14 @@ website_files = \
|
||||
out/doc/sh_javascript.min.js \
|
||||
out/doc/sh_vim-dark.css \
|
||||
out/doc/sh.css \
|
||||
out/doc/logo.png \
|
||||
out/doc/favicon.ico \
|
||||
out/doc/pipe.css \
|
||||
out/doc/about/index.html \
|
||||
out/doc/close-downloads.png \
|
||||
out/doc/community/index.html \
|
||||
out/doc/community/not-invented-here.png \
|
||||
out/doc/logos/index.html \
|
||||
out/doc/microsoft-logo.png \
|
||||
out/doc/ryan-speaker.jpg \
|
||||
out/doc/download-logo.png \
|
||||
out/doc/ebay-logo.png \
|
||||
out/doc/footer-logo-alt.png \
|
||||
out/doc/footer-logo.png \
|
||||
out/doc/icons-interior.png \
|
||||
out/doc/icons.png \
|
||||
out/doc/home-icons.png \
|
||||
out/doc/joyent-logo_orange_nodeorg-01.png \
|
||||
out/doc/linkedin-logo.png \
|
||||
out/doc/logo-light.png \
|
||||
out/doc/mac_osx_nodejs_installer_logo.png \
|
||||
out/doc/microsoft-logo.png \
|
||||
out/doc/platform-icons.png \
|
||||
out/doc/sponsored.png \
|
||||
out/doc/twitter-bird.png \
|
||||
out/doc/community-icons.png \
|
||||
out/doc/yahoo-logo.png
|
||||
$(doc_images)
|
||||
|
||||
doc: node $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs)
|
||||
doc: program $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/
|
||||
|
||||
$(apidoc_dirs):
|
||||
mkdir -p $@
|
||||
@@ -139,13 +125,24 @@ $(apidoc_dirs):
|
||||
out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets/
|
||||
cp $< $@
|
||||
|
||||
out/doc/%.html: doc/%.html
|
||||
cat $< | sed -e 's|__VERSION__|'$(VERSION)'|g' > $@
|
||||
|
||||
out/doc/%: doc/%
|
||||
cp $< $@
|
||||
cp -r $< $@
|
||||
|
||||
out/doc/api/%.html: doc/api/%.markdown node $(apidoc_dirs) $(apiassets) tools/doctool/doctool.js
|
||||
out/Release/node tools/doctool/doctool.js doc/template.html $< > $@
|
||||
out/doc/api/%.json: doc/api/%.markdown
|
||||
out/Release/node tools/doc/generate.js --format=json $< > $@
|
||||
|
||||
out/doc/%:
|
||||
out/doc/api/%.html: doc/api/%.markdown
|
||||
out/Release/node tools/doc/generate.js --format=html --template=doc/template.html $< > $@
|
||||
|
||||
email.md: ChangeLog tools/email-footer.md
|
||||
bash tools/changelog-head.sh > $@
|
||||
cat tools/email-footer.md | sed -e 's|__VERSION__|'$(VERSION)'|g' >> $@
|
||||
|
||||
blog.html: email.md
|
||||
cat $< | node tools/doc/node_modules/.bin/marked > $@
|
||||
|
||||
website-upload: doc
|
||||
rsync -r out/doc/ node@nodejs.org:~/web/nodejs.org/
|
||||
@@ -169,21 +166,40 @@ PKGDIR=out/dist-osx
|
||||
pkg: $(PKG)
|
||||
|
||||
$(PKG):
|
||||
-rm -rf $(PKGDIR)
|
||||
./configure --prefix=$(PKGDIR)/usr/local --without-snapshot
|
||||
rm -rf $(PKGDIR)
|
||||
rm -rf out/deps out/Release
|
||||
./configure --prefix=$(PKGDIR)/32/usr/local --without-snapshot --dest-cpu=ia32
|
||||
$(MAKE) install
|
||||
rm -rf out/deps out/Release
|
||||
./configure --prefix=$(PKGDIR)/usr/local --without-snapshot --dest-cpu=x64
|
||||
$(MAKE) install
|
||||
lipo $(PKGDIR)/32/usr/local/bin/node \
|
||||
$(PKGDIR)/usr/local/bin/node \
|
||||
-output $(PKGDIR)/usr/local/bin/node-universal \
|
||||
-create
|
||||
mv $(PKGDIR)/usr/local/bin/node-universal $(PKGDIR)/usr/local/bin/node
|
||||
rm -rf $(PKGDIR)/32
|
||||
$(packagemaker) \
|
||||
--id "org.nodejs.NodeJS-$(VERSION)" \
|
||||
--doc tools/osx-pkg.pmdoc \
|
||||
--out $(PKG)
|
||||
|
||||
$(TARBALL): node out/doc
|
||||
@if [ $(shell ./node --version) = "$(VERSION)" ]; then \
|
||||
exit 0; \
|
||||
else \
|
||||
echo "" >&2 ; \
|
||||
echo "$(shell ./node --version) doesn't match $(VERSION)." >&2 ; \
|
||||
echo "Did you remember to update src/node_version.cc?" >&2 ; \
|
||||
echo "" >&2 ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
git archive --format=tar --prefix=$(TARNAME)/ HEAD | tar xf -
|
||||
mkdir -p $(TARNAME)/doc
|
||||
cp doc/node.1 $(TARNAME)/doc/node.1
|
||||
cp -r out/doc/api $(TARNAME)/doc/api
|
||||
rm -rf $(TARNAME)/deps/v8/test # too big
|
||||
rm -rf $(TARNAME)/doc/logos # too big
|
||||
rm -rf $(TARNAME)/doc/images # too big
|
||||
tar -cf $(TARNAME).tar $(TARNAME)
|
||||
rm -rf $(TARNAME)
|
||||
gzip -f -9 $(TARNAME).tar
|
||||
|
||||
80
benchmark/client_latency.js
Normal file
80
benchmark/client_latency.js
Normal file
@@ -0,0 +1,80 @@
|
||||
// first start node http_simple.js
|
||||
var http = require('http');
|
||||
|
||||
var latency = [];
|
||||
|
||||
var numRequests = parseInt(process.argv[2], 10) || 100;
|
||||
var maxSockets = parseInt(process.argv[3], 10) || 100;
|
||||
var runs = parseInt(process.argv[4], 10) || 100;
|
||||
var prefix = process.argv[5] || '';
|
||||
if (prefix) prefix += '_';
|
||||
var r = 0;
|
||||
|
||||
var port = parseInt(process.env.PORT, 10) || 8000;
|
||||
var host = process.env.HOST || '127.0.0.1';
|
||||
|
||||
http.globalAgent.maxSockets = maxSockets;
|
||||
|
||||
run();
|
||||
|
||||
function run() {
|
||||
if (r++ === runs) {
|
||||
return finish();
|
||||
}
|
||||
|
||||
// make numRequests in parallel
|
||||
// retain the order in which they are *made*. This requires trapping
|
||||
// each one in a closure, since otherwise, we'll of course end
|
||||
// up mostly sorting them in ascending order, since the cb from a
|
||||
// fast request will almost always be called before the cb from a
|
||||
// slow one.
|
||||
var c = numRequests;
|
||||
var lat = [];
|
||||
latency.push(lat);
|
||||
for (var i = 0; i < numRequests; i++) (function (i) {
|
||||
makeRequest(function(l) {
|
||||
lat[i] = l;
|
||||
c--;
|
||||
if (c === 0) run();
|
||||
});
|
||||
})(i);
|
||||
}
|
||||
|
||||
function makeRequest(cb) {
|
||||
var opts = { host: host,
|
||||
port: port,
|
||||
uri: 'http://'+host+':'+port+'/bytes/12',
|
||||
forever: true,
|
||||
path: '/bytes/12' };
|
||||
var pre = Date.now();
|
||||
var req = http.get(opts, function(res) {
|
||||
return cb(Date.now() - pre);
|
||||
});
|
||||
}
|
||||
|
||||
function finish() {
|
||||
var data = [];
|
||||
latency.forEach(function(run, i) {
|
||||
run.forEach(function(l, j) {
|
||||
data[j] = data[j] || [];
|
||||
data[j][i] = l;
|
||||
});
|
||||
});
|
||||
|
||||
data = data.map(function (l, i) {
|
||||
return l.join('\t')
|
||||
}).join('\n') + '\n';
|
||||
|
||||
var fname = prefix +
|
||||
'client_latency_' +
|
||||
numRequests + '_' +
|
||||
maxSockets + '_' +
|
||||
runs + '.tab';
|
||||
var path = require('path');
|
||||
fname = path.resolve(__dirname, '..', 'out', fname);
|
||||
fname = path.relative(process.cwd(), fname);
|
||||
require('fs').writeFile(fname, data, function(er) {
|
||||
if (er) throw er;
|
||||
console.log('written: %s', fname);
|
||||
});
|
||||
}
|
||||
10
benchmark/http.sh
Executable file
10
benchmark/http.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
cd "$(dirname "$(dirname $0)")"
|
||||
sudo sysctl -w net.inet.ip.portrange.first=12000
|
||||
sudo sysctl -w net.inet.tcp.msl=1000
|
||||
sudo sysctl -w kern.maxfiles=1000000 kern.maxfilesperproc=1000000
|
||||
ulimit -n 100000
|
||||
./node benchmark/http_simple.js || exit 1 &
|
||||
sleep 1
|
||||
ab -n 30000 -c 100 http://127.0.0.1:8000/bytes/123 | grep Req
|
||||
killall node
|
||||
13
benchmark/http_server_lag.js
Normal file
13
benchmark/http_server_lag.js
Normal file
@@ -0,0 +1,13 @@
|
||||
var http = require('http');
|
||||
var port = parseInt(process.env.PORT, 10) || 8000;
|
||||
var defaultLag = parseInt(process.argv[2], 10) || 100;
|
||||
|
||||
http.createServer(function(req, res) {
|
||||
res.writeHead(200, { 'content-type': 'text/plain',
|
||||
'content-length': '2' });
|
||||
|
||||
var lag = parseInt(req.url.split("/").pop(), 10) || defaultLag;
|
||||
setTimeout(function() {
|
||||
res.end('ok');
|
||||
}, lag);
|
||||
}).listen(port, 'localhost');
|
||||
109
benchmark/http_simple_auto.js
Normal file
109
benchmark/http_simple_auto.js
Normal file
@@ -0,0 +1,109 @@
|
||||
//
|
||||
// Usage:
|
||||
// node benchmark/http_simple_auto.js <args> <target>
|
||||
//
|
||||
// Where:
|
||||
// <args> Arguments to pass to `ab`.
|
||||
// <target> Target to benchmark, e.g. `bytes/1024` or `buffer/8192`.
|
||||
//
|
||||
|
||||
var path = require("path");
|
||||
var http = require("http");
|
||||
var spawn = require("child_process").spawn;
|
||||
|
||||
var port = parseInt(process.env.PORT || 8000);
|
||||
|
||||
var fixed = ""
|
||||
for (var i = 0; i < 20*1024; i++) {
|
||||
fixed += "C";
|
||||
}
|
||||
|
||||
var stored = {};
|
||||
var storedBuffer = {};
|
||||
|
||||
var server = http.createServer(function (req, res) {
|
||||
var commands = req.url.split("/");
|
||||
var command = commands[1];
|
||||
var body = "";
|
||||
var arg = commands[2];
|
||||
var n_chunks = parseInt(commands[3], 10);
|
||||
var status = 200;
|
||||
|
||||
if (command == "bytes") {
|
||||
var n = parseInt(arg, 10)
|
||||
if (n <= 0)
|
||||
throw "bytes called with n <= 0"
|
||||
if (stored[n] === undefined) {
|
||||
stored[n] = "";
|
||||
for (var i = 0; i < n; i++) {
|
||||
stored[n] += "C"
|
||||
}
|
||||
}
|
||||
body = stored[n];
|
||||
|
||||
} else if (command == "buffer") {
|
||||
var n = parseInt(arg, 10)
|
||||
if (n <= 0) throw new Error("bytes called with n <= 0");
|
||||
if (storedBuffer[n] === undefined) {
|
||||
storedBuffer[n] = new Buffer(n);
|
||||
for (var i = 0; i < n; i++) {
|
||||
storedBuffer[n][i] = "C".charCodeAt(0);
|
||||
}
|
||||
}
|
||||
body = storedBuffer[n];
|
||||
|
||||
} else if (command == "quit") {
|
||||
res.connection.server.close();
|
||||
body = "quitting";
|
||||
|
||||
} else if (command == "fixed") {
|
||||
body = fixed;
|
||||
|
||||
} else if (command == "echo") {
|
||||
res.writeHead(200, { "Content-Type": "text/plain",
|
||||
"Transfer-Encoding": "chunked" });
|
||||
req.pipe(res);
|
||||
return;
|
||||
|
||||
} else {
|
||||
status = 404;
|
||||
body = "not found\n";
|
||||
}
|
||||
|
||||
// example: http://localhost:port/bytes/512/4
|
||||
// sends a 512 byte body in 4 chunks of 128 bytes
|
||||
if (n_chunks > 0) {
|
||||
res.writeHead(status, { "Content-Type": "text/plain",
|
||||
"Transfer-Encoding": "chunked" });
|
||||
// send body in chunks
|
||||
var len = body.length;
|
||||
var step = ~~(len / n_chunks) || len;
|
||||
|
||||
for (var i = 0; i < len; i += step) {
|
||||
res.write(body.slice(i, i + step));
|
||||
}
|
||||
|
||||
res.end();
|
||||
} else {
|
||||
var content_length = body.length.toString();
|
||||
|
||||
res.writeHead(status, { "Content-Type": "text/plain",
|
||||
"Content-Length": content_length });
|
||||
res.end(body);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
server.listen(port, function () {
|
||||
var url = 'http://127.0.0.1:' + port + '/';
|
||||
|
||||
var n = process.argv.length - 1;
|
||||
process.argv[n] = url + process.argv[n];
|
||||
|
||||
var cp = spawn('ab', process.argv.slice(2));
|
||||
cp.stdout.pipe(process.stdout);
|
||||
cp.stderr.pipe(process.stderr);
|
||||
cp.on('exit', function() {
|
||||
server.close();
|
||||
});
|
||||
});
|
||||
63
benchmark/tls-fragmentation.js
Normal file
63
benchmark/tls-fragmentation.js
Normal file
@@ -0,0 +1,63 @@
|
||||
// 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.
|
||||
|
||||
if (!process.versions.openssl) {
|
||||
console.error('Skipping because node compiled without OpenSSL.');
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
var common = require('../common');
|
||||
var assert = require('assert');
|
||||
var tls = require('tls');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
var options = {
|
||||
key: fs.readFileSync(path.join(common.fixturesDir, 'test_key.pem')),
|
||||
cert: fs.readFileSync(path.join(common.fixturesDir, 'test_cert.pem'))
|
||||
};
|
||||
|
||||
var fragment = 'fr';
|
||||
var dataSize = 1024 * 1024;
|
||||
var sent = 0;
|
||||
var received = 0;
|
||||
|
||||
var server = tls.createServer(options, function (stream) {
|
||||
for (sent = 0; sent <= dataSize; sent += fragment.length) {
|
||||
stream.write(fragment);
|
||||
}
|
||||
stream.end();
|
||||
});
|
||||
|
||||
server.listen(common.PORT, function () {
|
||||
var client = tls.connect(common.PORT, function () {
|
||||
client.on('data', function (data) {
|
||||
received += data.length;
|
||||
});
|
||||
client.on('end', function () {
|
||||
server.close();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
process.on('exit', function () {
|
||||
assert.equal(sent, received);
|
||||
});
|
||||
59
common.gypi
59
common.gypi
@@ -1,5 +1,6 @@
|
||||
{
|
||||
'variables': {
|
||||
'strict_aliasing%': 'false', # turn on/off -fstrict-aliasing
|
||||
'visibility%': 'hidden', # V8's visibility setting
|
||||
'target_arch%': 'ia32', # set v8's target architecture
|
||||
'host_arch%': 'ia32', # set v8's host architecture
|
||||
@@ -10,20 +11,19 @@
|
||||
},
|
||||
|
||||
'target_defaults': {
|
||||
'default_configuration': 'Debug',
|
||||
'default_configuration': 'Release',
|
||||
'configurations': {
|
||||
'Debug': {
|
||||
'defines': [ 'DEBUG', '_DEBUG' ],
|
||||
'cflags': [ '-g', '-O0' ],
|
||||
'conditions': [
|
||||
['target_arch=="x64"', {
|
||||
'msvs_configuration_platform': 'x64',
|
||||
}],
|
||||
],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'target_conditions': [
|
||||
['library=="static_library"', {
|
||||
'RuntimeLibrary': 1, # static debug
|
||||
}, {
|
||||
'RuntimeLibrary': 3, # DLL debug
|
||||
}],
|
||||
],
|
||||
'RuntimeLibrary': 1, # static debug
|
||||
'Optimization': 0, # /Od, no optimization
|
||||
'MinimalRebuild': 'true',
|
||||
'OmitFramePointers': 'false',
|
||||
@@ -35,17 +35,21 @@
|
||||
},
|
||||
},
|
||||
'Release': {
|
||||
# 'defines': [ 'NDEBUG' ],
|
||||
'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections' ],
|
||||
'cflags': [ '-O3', '-fdata-sections', '-ffunction-sections' ],
|
||||
'conditions': [
|
||||
['target_arch=="x64"', {
|
||||
'msvs_configuration_platform': 'x64',
|
||||
}],
|
||||
['OS=="solaris"', {
|
||||
'cflags': [ '-fno-omit-frame-pointer' ],
|
||||
}],
|
||||
['strict_aliasing!="true"', {
|
||||
'cflags': [ '-fno-strict-aliasing' ],
|
||||
}],
|
||||
],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'target_conditions': [
|
||||
['library=="static_library"', {
|
||||
'RuntimeLibrary': 0, # static release
|
||||
}, {
|
||||
'RuntimeLibrary': 2, # debug release
|
||||
}],
|
||||
],
|
||||
'RuntimeLibrary': 0, # static release
|
||||
'Optimization': 3, # /Ox, full optimization
|
||||
'FavorSizeOrSpeed': 1, # /Ot, favour speed over size
|
||||
'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible
|
||||
@@ -53,6 +57,8 @@
|
||||
'OmitFramePointers': 'true',
|
||||
'EnableFunctionLevelLinking': 'true',
|
||||
'EnableIntrinsicFunctions': 'true',
|
||||
'RuntimeTypeInfo': 'false',
|
||||
'ExceptionHandling': '0',
|
||||
'AdditionalOptions': [
|
||||
'/MP', # compile across multiple CPUs
|
||||
],
|
||||
@@ -84,6 +90,11 @@
|
||||
'VCLibrarianTool': {
|
||||
},
|
||||
'VCLinkerTool': {
|
||||
'conditions': [
|
||||
['target_arch=="x64"', {
|
||||
'TargetMachine' : 17 # /MACHINE:X64
|
||||
}],
|
||||
],
|
||||
'GenerateDebugInformation': 'true',
|
||||
'RandomizedBaseAddress': 2, # enable ASLR
|
||||
'DataExecutionPrevention': 2, # enable DEP
|
||||
@@ -129,6 +140,12 @@
|
||||
'cflags': [ '-ansi' ],
|
||||
'ldflags': [ '-rdynamic' ],
|
||||
}],
|
||||
[ 'OS=="solaris"', {
|
||||
'cflags': [ '-pthreads' ],
|
||||
'ldflags': [ '-pthreads' ],
|
||||
'cflags!': [ '-pthread' ],
|
||||
'ldflags!': [ '-pthread' ],
|
||||
}],
|
||||
],
|
||||
}],
|
||||
['OS=="mac"', {
|
||||
@@ -160,6 +177,14 @@
|
||||
'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},
|
||||
}],
|
||||
],
|
||||
'conditions': [
|
||||
['target_arch=="ia32"', {
|
||||
'xcode_settings': {'ARCHS': ['i386']},
|
||||
}],
|
||||
['target_arch=="x64"', {
|
||||
'xcode_settings': {'ARCHS': ['x86_64']},
|
||||
}],
|
||||
],
|
||||
}],
|
||||
],
|
||||
}
|
||||
|
||||
162
configure
vendored
162
configure
vendored
@@ -1,11 +1,13 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import optparse
|
||||
import os
|
||||
import pprint
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
CC = os.environ.get('CC', 'cc')
|
||||
|
||||
root_dir = os.path.dirname(__file__)
|
||||
sys.path.insert(0, os.path.join(root_dir, 'deps', 'v8', 'tools'))
|
||||
|
||||
@@ -32,11 +34,6 @@ parser.add_option("--without-waf",
|
||||
dest="without_waf",
|
||||
help="Don\'t install node-waf")
|
||||
|
||||
parser.add_option("--without-isolates",
|
||||
action="store_true",
|
||||
dest="without_isolates",
|
||||
help="Build without isolates (no threads, single loop) [Default: False]")
|
||||
|
||||
parser.add_option("--without-ssl",
|
||||
action="store_true",
|
||||
dest="without_ssl",
|
||||
@@ -69,7 +66,7 @@ parser.add_option("--shared-v8-libname",
|
||||
help="Alternative lib name to link to (default: 'v8')")
|
||||
|
||||
parser.add_option("--openssl-use-sys",
|
||||
action="store",
|
||||
action="store_true",
|
||||
dest="openssl_use_sys",
|
||||
help="Use the system OpenSSL instead of one included with Node")
|
||||
|
||||
@@ -88,20 +85,25 @@ parser.add_option("--no-ssl2",
|
||||
dest="no_ssl2",
|
||||
help="Disable OpenSSL v2")
|
||||
|
||||
parser.add_option("--shared-cares",
|
||||
parser.add_option("--shared-zlib",
|
||||
action="store_true",
|
||||
dest="shared_cares",
|
||||
help="Link to a shared C-Ares DLL instead of static linking")
|
||||
dest="shared_zlib",
|
||||
help="Link to a shared zlib DLL instead of static linking")
|
||||
|
||||
parser.add_option("--shared-cares-includes",
|
||||
parser.add_option("--shared-zlib-includes",
|
||||
action="store",
|
||||
dest="shared_cares_includes",
|
||||
help="Directory containing C-Ares header files")
|
||||
dest="shared_zlib_includes",
|
||||
help="Directory containing zlib header files")
|
||||
|
||||
parser.add_option("--shared-cares-libpath",
|
||||
parser.add_option("--shared-zlib-libpath",
|
||||
action="store",
|
||||
dest="shared_cares_libpath",
|
||||
help="A directory to search for the shared C-Ares DLL")
|
||||
dest="shared_zlib_libpath",
|
||||
help="A directory to search for the shared zlib DLL")
|
||||
|
||||
parser.add_option("--shared-zlib-libname",
|
||||
action="store",
|
||||
dest="shared_zlib_libname",
|
||||
help="Alternative lib name to link to (default: 'z')")
|
||||
|
||||
parser.add_option("--with-dtrace",
|
||||
action="store_true",
|
||||
@@ -144,49 +146,115 @@ def pkg_config(pkg):
|
||||
return (libs, cflags)
|
||||
|
||||
|
||||
def uname(switch):
|
||||
f = os.popen('uname %s' % switch)
|
||||
s = f.read().strip()
|
||||
f.close()
|
||||
return s
|
||||
def host_arch_cc():
|
||||
"""Host architecture check using the CC command."""
|
||||
|
||||
p = subprocess.Popen(CC.split() + ['-dM', '-E', '-'],
|
||||
stdin=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE)
|
||||
p.stdin.write('\n')
|
||||
out = p.communicate()[0]
|
||||
|
||||
out = str(out).split('\n')
|
||||
|
||||
k = {}
|
||||
for line in out:
|
||||
import shlex
|
||||
lst = shlex.split(line)
|
||||
if len(lst) > 2:
|
||||
key = lst[1]
|
||||
val = lst[2]
|
||||
k[key] = val
|
||||
|
||||
matchup = {
|
||||
'__x86_64__' : 'x64',
|
||||
'__i386__' : 'ia32',
|
||||
'__arm__' : 'arm',
|
||||
}
|
||||
|
||||
rtn = 'ia32' # default
|
||||
|
||||
for i in matchup:
|
||||
if i in k and k[i] != '0':
|
||||
rtn = matchup[i]
|
||||
break
|
||||
|
||||
return rtn
|
||||
|
||||
|
||||
def host_arch_win():
|
||||
"""Host architecture check using environ vars (better way to do this?)"""
|
||||
|
||||
arch = os.environ.get('PROCESSOR_ARCHITECTURE', 'x86')
|
||||
|
||||
matchup = {
|
||||
'AMD64' : 'x64',
|
||||
'x86' : 'ia32',
|
||||
'arm' : 'arm',
|
||||
}
|
||||
|
||||
return matchup.get(arch, 'ia32')
|
||||
|
||||
|
||||
def host_arch():
|
||||
"""Host architecture. One of arm, ia32 or x64."""
|
||||
arch = uname('-p')
|
||||
|
||||
if arch == 'unknown':
|
||||
arch = uname('-m')
|
||||
|
||||
return {
|
||||
'arm': 'arm',
|
||||
'x86': 'ia32',
|
||||
'i386': 'ia32',
|
||||
'x86_64': 'x64',
|
||||
}.get(arch, 'ia32')
|
||||
if os.name == 'nt':
|
||||
arch = host_arch_win()
|
||||
else:
|
||||
arch = host_arch_cc()
|
||||
return arch
|
||||
|
||||
|
||||
def target_arch():
|
||||
return host_arch()
|
||||
|
||||
|
||||
def gcc_version():
|
||||
try:
|
||||
proc = subprocess.Popen([CC, '-v'], stderr=subprocess.PIPE)
|
||||
except OSError:
|
||||
return None
|
||||
# TODO parse clang output
|
||||
version = proc.communicate()[1].split('\n')[-2]
|
||||
match = re.match('gcc version (\d+)\.(\d+)\.(\d+)', version)
|
||||
if not match: return None
|
||||
return ['LLVM' in version] + map(int, match.groups())
|
||||
|
||||
|
||||
def configure_node(o):
|
||||
# TODO add gdb
|
||||
o['variables']['node_use_isolates'] = b(not options.without_isolates)
|
||||
o['variables']['node_prefix'] = options.prefix if options.prefix else ''
|
||||
o['variables']['node_use_dtrace'] = b(options.with_dtrace)
|
||||
o['variables']['node_install_npm'] = b(not options.without_npm)
|
||||
o['variables']['node_install_waf'] = b(not options.without_waf)
|
||||
o['variables']['host_arch'] = host_arch()
|
||||
o['variables']['target_arch'] = options.dest_cpu or target_arch()
|
||||
o['default_configuration'] = 'Debug' if options.debug else 'Release'
|
||||
|
||||
# TODO move to node.gyp
|
||||
if sys.platform == 'sunos5':
|
||||
o['variables']['visibility'] = '' # FIXME -fvisibility=hidden, should be a gcc check
|
||||
# turn off strict aliasing if gcc < 4.6.0 unless it's llvm-gcc
|
||||
# see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45883
|
||||
# see http://code.google.com/p/v8/issues/detail?id=884
|
||||
o['variables']['strict_aliasing'] = b(
|
||||
'clang' in CC or gcc_version() >= [False, 4, 6, 0])
|
||||
|
||||
# clang has always supported -fvisibility=hidden, right?
|
||||
if 'clang' not in CC and gcc_version() < [False, 4, 0, 0]:
|
||||
o['variables']['visibility'] = ''
|
||||
|
||||
|
||||
def configure_libz(o):
|
||||
o['libraries'] += ['-lz']
|
||||
o['variables']['node_shared_zlib'] = b(options.shared_zlib)
|
||||
|
||||
# assume shared_zlib if one of these is set?
|
||||
if options.shared_zlib_libpath:
|
||||
o['libraries'] += ['-L%s' % options.shared_zlib_libpath]
|
||||
if options.shared_zlib_libname:
|
||||
o['libraries'] += ['-l%s' % options.shared_zlib_libname]
|
||||
elif options.shared_zlib:
|
||||
o['libraries'] += ['-lz']
|
||||
if options.shared_zlib_includes:
|
||||
o['include_dirs'] += [options.shared_zlib_includes]
|
||||
|
||||
|
||||
def configure_v8(o):
|
||||
@@ -198,18 +266,11 @@ def configure_v8(o):
|
||||
o['libraries'] += ['-L%s' % options.shared_v8_libpath]
|
||||
if options.shared_v8_libname:
|
||||
o['libraries'] += ['-l%s' % options.shared_v8_libname]
|
||||
elif options.shared_v8:
|
||||
o['libraries'] += ['-lv8']
|
||||
if options.shared_v8_includes:
|
||||
o['include_dirs'] += [options.shared_v8_includes]
|
||||
|
||||
|
||||
def configure_cares(o):
|
||||
o['variables']['node_shared_cares'] = b(options.shared_cares)
|
||||
|
||||
# assume shared_cares if one of these is set?
|
||||
if options.shared_cares_libpath:
|
||||
o['libraries'] += ['-L%s' % options.shared_cares_libpath]
|
||||
if options.shared_cares_includes:
|
||||
o['include_dirs'] += [options.shared_cares_includes]
|
||||
o['variables']['node_shared_v8_includes'] = options.shared_v8_includes
|
||||
|
||||
|
||||
def configure_openssl(o):
|
||||
@@ -252,7 +313,6 @@ output = {
|
||||
configure_node(output)
|
||||
configure_libz(output)
|
||||
configure_v8(output)
|
||||
configure_cares(output)
|
||||
configure_openssl(output)
|
||||
|
||||
# variables should be a root level element,
|
||||
@@ -277,4 +337,8 @@ write('config.gypi', "# Do not edit. Generated by the configure script.\n" +
|
||||
write('config.mk', "# Do not edit. Generated by the configure script.\n" +
|
||||
("BUILDTYPE=%s\n" % ('Debug' if options.debug else 'Release')))
|
||||
|
||||
subprocess.call(['tools/gyp_node','-f', 'make'])
|
||||
if os.name == 'nt':
|
||||
subprocess.call(['python', 'tools/gyp_node', '-f', 'msvs',
|
||||
'-G', 'msvs_version=2010'])
|
||||
else:
|
||||
subprocess.call(['tools/gyp_node', '-f', 'make'])
|
||||
|
||||
3
deps/http_parser/.gitignore
vendored
3
deps/http_parser/.gitignore
vendored
@@ -1,5 +1,8 @@
|
||||
core
|
||||
tags
|
||||
*.o
|
||||
test
|
||||
test_g
|
||||
test_fast
|
||||
*.mk
|
||||
*.Makefile
|
||||
|
||||
4
deps/http_parser/.mailmap
vendored
Normal file
4
deps/http_parser/.mailmap
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
# update AUTHORS with:
|
||||
# git log --all --reverse --format='%aN <%aE>' | perl -ne 'BEGIN{print "# Authors ordered by first contribution.\n"} print unless $h{$_}; $h{$_} = 1' > AUTHORS
|
||||
Ryan Dahl <ry@tinyclouds.org>
|
||||
Salman Haq <salman.haq@asti-usa.com>
|
||||
32
deps/http_parser/AUTHORS
vendored
Normal file
32
deps/http_parser/AUTHORS
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
# Authors ordered by first contribution.
|
||||
Ryan Dahl <ry@tinyclouds.org>
|
||||
Jeremy Hinegardner <jeremy@hinegardner.org>
|
||||
Sergey Shepelev <temotor@gmail.com>
|
||||
Joe Damato <ice799@gmail.com>
|
||||
tomika <tomika_nospam@freemail.hu>
|
||||
Phoenix Sol <phoenix@burninglabs.com>
|
||||
Cliff Frey <cliff@meraki.com>
|
||||
Ewen Cheslack-Postava <ewencp@cs.stanford.edu>
|
||||
Santiago Gala <sgala@apache.org>
|
||||
Tim Becker <tim.becker@syngenio.de>
|
||||
Jeff Terrace <jterrace@gmail.com>
|
||||
Ben Noordhuis <info@bnoordhuis.nl>
|
||||
Nathan Rajlich <nathan@tootallnate.net>
|
||||
Mark Nottingham <mnot@mnot.net>
|
||||
Aman Gupta <aman@tmm1.net>
|
||||
Tim Becker <tim.becker@kuriositaet.de>
|
||||
Sean Cunningham <sean.cunningham@mandiant.com>
|
||||
Peter Griess <pg@std.in>
|
||||
Salman Haq <salman.haq@asti-usa.com>
|
||||
Cliff Frey <clifffrey@gmail.com>
|
||||
Jon Kolb <jon@b0g.us>
|
||||
Fouad Mardini <f.mardini@gmail.com>
|
||||
Paul Querna <pquerna@apache.org>
|
||||
Felix Geisendörfer <felix@debuggable.com>
|
||||
koichik <koichik@improvement.jp>
|
||||
Andre Caron <andre.l.caron@gmail.com>
|
||||
Ivo Raisr <ivosh@ivosh.net>
|
||||
James McLaughlin <jamie@lacewing-project.org>
|
||||
David Gwynne <loki@animata.net>
|
||||
LE ROUX Thomas <thomas@procheo.fr>
|
||||
Randy Rizun <rrizun@ortivawireless.com>
|
||||
10
deps/http_parser/Makefile
vendored
10
deps/http_parser/Makefile
vendored
@@ -10,7 +10,7 @@ CPPFLAGS_FAST += $(CPPFLAGS_FAST_EXTRA)
|
||||
CFLAGS += -Wall -Wextra -Werror
|
||||
CFLAGS_DEBUG = $(CFLAGS) -O0 -g $(CFLAGS_DEBUG_EXTRA)
|
||||
CFLAGS_FAST = $(CFLAGS) -O3 $(CFLAGS_FAST_EXTRA)
|
||||
|
||||
CFLAGS_LIB = $(CFLAGS_FAST) -fPIC
|
||||
|
||||
test: test_g test_fast
|
||||
./test_g
|
||||
@@ -40,6 +40,12 @@ test-run-timed: test_fast
|
||||
test-valgrind: test_g
|
||||
valgrind ./test_g
|
||||
|
||||
libhttp_parser.o: http_parser.c http_parser.h Makefile
|
||||
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_LIB) -c http_parser.c -o libhttp_parser.o
|
||||
|
||||
library: libhttp_parser.o
|
||||
$(CC) -shared -o libhttp_parser.so libhttp_parser.o
|
||||
|
||||
package: http_parser.o
|
||||
$(AR) rcs libhttp_parser.a http_parser.o
|
||||
|
||||
@@ -47,6 +53,6 @@ tags: http_parser.c http_parser.h test.c
|
||||
ctags $^
|
||||
|
||||
clean:
|
||||
rm -f *.o *.a test test_fast test_g http_parser.tar tags
|
||||
rm -f *.o *.a test test_fast test_g http_parser.tar tags libhttp_parser.so libhttp_parser.o
|
||||
|
||||
.PHONY: clean package test-run test-run-timed test-valgrind
|
||||
|
||||
11
deps/http_parser/README.md
vendored
11
deps/http_parser/README.md
vendored
@@ -164,8 +164,15 @@ and apply following logic:
|
||||
------------------------ ------------ --------------------------------------------
|
||||
|
||||
|
||||
Parsing URLs
|
||||
------------
|
||||
|
||||
A simplistic zero-copy URL parser is provided as `http_parser_parse_url()`.
|
||||
Users of this library may wish to use it to parse URLs constructed from
|
||||
consecutive `on_url` callbacks.
|
||||
|
||||
See examples of reading in headers:
|
||||
|
||||
* [partial example](http://gist.github.com/155877) in C
|
||||
* [from http-parser tests](http://github.com/ry/http-parser/blob/37a0ff8928fb0d83cec0d0d8909c5a4abcd221af/test.c#L403) in C
|
||||
* [from Node library](http://github.com/ry/node/blob/842eaf446d2fdcb33b296c67c911c32a0dabc747/src/http.js#L284) in Javascript
|
||||
* [from http-parser tests](http://github.com/joyent/http-parser/blob/37a0ff8/test.c#L403) in C
|
||||
* [from Node library](http://github.com/joyent/node/blob/842eaf4/src/http.js#L284) in Javascript
|
||||
|
||||
1357
deps/http_parser/http_parser.c
vendored
1357
deps/http_parser/http_parser.c
vendored
File diff suppressed because it is too large
Load Diff
126
deps/http_parser/http_parser.h
vendored
126
deps/http_parser/http_parser.h
vendored
@@ -28,7 +28,7 @@ extern "C" {
|
||||
#define HTTP_PARSER_VERSION_MINOR 0
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(_WIN32) && !defined(__MINGW32__) && !defined(_MSC_VER)
|
||||
#if defined(_WIN32) && !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER<1600)
|
||||
typedef __int8 int8_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef __int16 int16_t;
|
||||
@@ -65,7 +65,6 @@ typedef int ssize_t;
|
||||
|
||||
typedef struct http_parser http_parser;
|
||||
typedef struct http_parser_settings http_parser_settings;
|
||||
typedef struct http_parser_result http_parser_result;
|
||||
|
||||
|
||||
/* Callbacks should return non-zero to indicate an error. The parser will
|
||||
@@ -86,36 +85,44 @@ typedef int (*http_cb) (http_parser*);
|
||||
|
||||
|
||||
/* Request Methods */
|
||||
#define HTTP_METHOD_MAP(XX) \
|
||||
XX(0, DELETE, DELETE) \
|
||||
XX(1, GET, GET) \
|
||||
XX(2, HEAD, HEAD) \
|
||||
XX(3, POST, POST) \
|
||||
XX(4, PUT, PUT) \
|
||||
/* pathological */ \
|
||||
XX(5, CONNECT, CONNECT) \
|
||||
XX(6, OPTIONS, OPTIONS) \
|
||||
XX(7, TRACE, TRACE) \
|
||||
/* webdav */ \
|
||||
XX(8, COPY, COPY) \
|
||||
XX(9, LOCK, LOCK) \
|
||||
XX(10, MKCOL, MKCOL) \
|
||||
XX(11, MOVE, MOVE) \
|
||||
XX(12, PROPFIND, PROPFIND) \
|
||||
XX(13, PROPPATCH, PROPPATCH) \
|
||||
XX(14, SEARCH, SEARCH) \
|
||||
XX(15, UNLOCK, UNLOCK) \
|
||||
/* subversion */ \
|
||||
XX(16, REPORT, REPORT) \
|
||||
XX(17, MKACTIVITY, MKACTIVITY) \
|
||||
XX(18, CHECKOUT, CHECKOUT) \
|
||||
XX(19, MERGE, MERGE) \
|
||||
/* upnp */ \
|
||||
XX(20, MSEARCH, M-SEARCH) \
|
||||
XX(21, NOTIFY, NOTIFY) \
|
||||
XX(22, SUBSCRIBE, SUBSCRIBE) \
|
||||
XX(23, UNSUBSCRIBE, UNSUBSCRIBE) \
|
||||
/* RFC-5789 */ \
|
||||
XX(24, PATCH, PATCH) \
|
||||
XX(25, PURGE, PURGE) \
|
||||
|
||||
enum http_method
|
||||
{ HTTP_DELETE = 0
|
||||
, HTTP_GET
|
||||
, HTTP_HEAD
|
||||
, HTTP_POST
|
||||
, HTTP_PUT
|
||||
/* pathological */
|
||||
, HTTP_CONNECT
|
||||
, HTTP_OPTIONS
|
||||
, HTTP_TRACE
|
||||
/* webdav */
|
||||
, HTTP_COPY
|
||||
, HTTP_LOCK
|
||||
, HTTP_MKCOL
|
||||
, HTTP_MOVE
|
||||
, HTTP_PROPFIND
|
||||
, HTTP_PROPPATCH
|
||||
, HTTP_UNLOCK
|
||||
/* subversion */
|
||||
, HTTP_REPORT
|
||||
, HTTP_MKACTIVITY
|
||||
, HTTP_CHECKOUT
|
||||
, HTTP_MERGE
|
||||
/* upnp */
|
||||
, HTTP_MSEARCH
|
||||
, HTTP_NOTIFY
|
||||
, HTTP_SUBSCRIBE
|
||||
, HTTP_UNSUBSCRIBE
|
||||
/* RFC-5789 */
|
||||
, HTTP_PATCH
|
||||
{
|
||||
#define XX(num, name, string) HTTP_##name = num,
|
||||
HTTP_METHOD_MAP(XX)
|
||||
#undef XX
|
||||
};
|
||||
|
||||
|
||||
@@ -143,10 +150,7 @@ enum flags
|
||||
\
|
||||
/* Callback-related errors */ \
|
||||
XX(CB_message_begin, "the on_message_begin callback failed") \
|
||||
XX(CB_path, "the on_path callback failed") \
|
||||
XX(CB_query_string, "the on_query_string callback failed") \
|
||||
XX(CB_url, "the on_url callback failed") \
|
||||
XX(CB_fragment, "the on_fragment callback failed") \
|
||||
XX(CB_header_field, "the on_header_field callback failed") \
|
||||
XX(CB_header_value, "the on_header_value callback failed") \
|
||||
XX(CB_headers_complete, "the on_headers_complete callback failed") \
|
||||
@@ -177,6 +181,7 @@ enum flags
|
||||
XX(INVALID_CONSTANT, "invalid constant string") \
|
||||
XX(INVALID_INTERNAL_STATE, "encountered unexpected internal state")\
|
||||
XX(STRICT, "strict mode assertion failed") \
|
||||
XX(PAUSED, "parser is paused") \
|
||||
XX(UNKNOWN, "an unknown error occurred")
|
||||
|
||||
|
||||
@@ -201,20 +206,20 @@ enum http_errno {
|
||||
|
||||
struct http_parser {
|
||||
/** PRIVATE **/
|
||||
unsigned char type : 2;
|
||||
unsigned char flags : 6; /* F_* values from 'flags' enum; semi-public */
|
||||
unsigned char state;
|
||||
unsigned char header_state;
|
||||
unsigned char index;
|
||||
unsigned char type : 2; /* enum http_parser_type */
|
||||
unsigned char flags : 6; /* F_* values from 'flags' enum; semi-public */
|
||||
unsigned char state; /* enum state from http_parser.c */
|
||||
unsigned char header_state; /* enum header_state from http_parser.c */
|
||||
unsigned char index; /* index into current matcher */
|
||||
|
||||
uint32_t nread;
|
||||
int64_t content_length;
|
||||
uint32_t nread; /* # bytes read in various scenarios */
|
||||
uint64_t content_length; /* # bytes in body (0 if no Content-Length header) */
|
||||
|
||||
/** READ-ONLY **/
|
||||
unsigned short http_major;
|
||||
unsigned short http_minor;
|
||||
unsigned short status_code; /* responses only */
|
||||
unsigned char method; /* requests only */
|
||||
unsigned char method; /* requests only */
|
||||
unsigned char http_errno : 7;
|
||||
|
||||
/* 1 = Upgrade header was present and the parser has exited because of that.
|
||||
@@ -244,6 +249,35 @@ struct http_parser_settings {
|
||||
};
|
||||
|
||||
|
||||
enum http_parser_url_fields
|
||||
{ UF_SCHEMA = 0
|
||||
, UF_HOST = 1
|
||||
, UF_PORT = 2
|
||||
, UF_PATH = 3
|
||||
, UF_QUERY = 4
|
||||
, UF_FRAGMENT = 5
|
||||
, UF_MAX = 6
|
||||
};
|
||||
|
||||
|
||||
/* Result structure for http_parser_parse_url().
|
||||
*
|
||||
* Callers should index into field_data[] with UF_* values iff field_set
|
||||
* has the relevant (1 << UF_*) bit set. As a courtesy to clients (and
|
||||
* because we probably have padding left over), we convert any port to
|
||||
* a uint16_t.
|
||||
*/
|
||||
struct http_parser_url {
|
||||
uint16_t field_set; /* Bitmask of (1 << UF_*) values */
|
||||
uint16_t port; /* Converted UF_PORT string */
|
||||
|
||||
struct {
|
||||
uint16_t off; /* Offset into buffer in which field starts */
|
||||
uint16_t len; /* Length of run in buffer */
|
||||
} field_data[UF_MAX];
|
||||
};
|
||||
|
||||
|
||||
void http_parser_init(http_parser *parser, enum http_parser_type type);
|
||||
|
||||
|
||||
@@ -270,6 +304,14 @@ const char *http_errno_name(enum http_errno err);
|
||||
/* Return a string description of the given error */
|
||||
const char *http_errno_description(enum http_errno err);
|
||||
|
||||
/* Parse a URL; return nonzero on failure */
|
||||
int http_parser_parse_url(const char *buf, size_t buflen,
|
||||
int is_connect,
|
||||
struct http_parser_url *u);
|
||||
|
||||
/* Pause or un-pause the parser; a nonzero value pauses */
|
||||
void http_parser_pause(http_parser *parser, int paused);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
1059
deps/http_parser/test.c
vendored
1059
deps/http_parser/test.c
vendored
File diff suppressed because it is too large
Load Diff
4
deps/npm/.npmignore
vendored
4
deps/npm/.npmignore
vendored
@@ -11,3 +11,7 @@ npm-debug.log
|
||||
./npmrc
|
||||
.gitignore
|
||||
release/
|
||||
|
||||
# don't ignore .npmignore files
|
||||
# these are used in some tests.
|
||||
!.npmignore
|
||||
|
||||
10
deps/npm/AUTHORS
vendored
10
deps/npm/AUTHORS
vendored
@@ -51,3 +51,13 @@ Stephen Sugden <glurgle@gmail.com>
|
||||
Gautham Pai <buzypi@gmail.com>
|
||||
David Trejo <david.daniel.trejo@gmail.com>
|
||||
Paul Vorbach <paul@vorb.de>
|
||||
George Ornbo <george@shapeshed.com>
|
||||
Tim Oxley <secoif@gmail.com>
|
||||
Tyler Green <tyler.green2@gmail.com>
|
||||
atomizer <danila.gerasimov@gmail.com>
|
||||
Rod Vagg <rod@vagg.org>
|
||||
Christian Howe <coderarity@gmail.com>
|
||||
Andrew Lunny <alunny@gmail.com>
|
||||
Henrik Hodne <dvyjones@binaryhex.com>
|
||||
Adam Blackburn <regality@gmail.com>
|
||||
Kris Windham <kriswindham@gmail.com>
|
||||
|
||||
18
deps/npm/LICENSE
vendored
18
deps/npm/LICENSE
vendored
@@ -1,4 +1,4 @@
|
||||
Copyright 2009, 2010, 2011 Isaac Z. Schlueter (the "Author")
|
||||
Copyright 2009-2012, Isaac Z. Schlueter (the "Original Author")
|
||||
All rights reserved.
|
||||
|
||||
MIT +no-false-attribs License
|
||||
@@ -20,9 +20,9 @@ by the recipients as they would use the unmodified Software,
|
||||
containing modifications that substantially alter, remove, or
|
||||
disable functionality of the Software, outside of the documented
|
||||
configuration mechanisms provided by the Software, shall be
|
||||
modified such that the Author's bug reporting email addresses and
|
||||
urls are either replaced with the contact information of the
|
||||
parties responsible for the changes, or removed entirely.
|
||||
modified such that the Original Author's bug reporting email
|
||||
addresses and urls are either replaced with the contact information
|
||||
of the parties responsible for the changes, or removed entirely.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
@@ -36,7 +36,7 @@ OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except where noted, this license applies to any and all software
|
||||
programs and associated documentation files created by the
|
||||
Author, when distributed with the Software.
|
||||
Original Author, when distributed with the Software.
|
||||
|
||||
"Node.js" and "node" trademark Joyent, Inc. npm is not officially
|
||||
part of the Node.js project, and is neither owned by nor
|
||||
@@ -49,13 +49,11 @@ and are not covered by this license.
|
||||
"npm Logo" created by Mathias Pettersson and Brian Hammond,
|
||||
used with permission.
|
||||
|
||||
This program includes a BSDTar/LibArchive version 2.8.3-1 binary,
|
||||
originally distributed as part of the MinGW suite, compiled for
|
||||
Win32, according to the terms of the BSD license.
|
||||
See deps/basic-bsdtar-2.8.3-1-ming32-bin/basic-bsdtar.LICENSE.
|
||||
|
||||
This program uses "node-uuid", Copyright (c) 2010 Robert Kieffer,
|
||||
according to the terms of the MIT license.
|
||||
|
||||
This program uses "request", Copyright (c) 2011 Mikeal Rogers,
|
||||
according to the terms of the Apache license.
|
||||
|
||||
This program uses "mkdirp", Copyright (c) 2010 James Halliday,
|
||||
according to the terms of the MIT/X11 license.
|
||||
|
||||
2
deps/npm/Makefile
vendored
2
deps/npm/Makefile
vendored
@@ -123,7 +123,7 @@ doc-publish: doc
|
||||
rsync -vazu --stats --no-implied-dirs --delete html/api/ npmjs.org:/var/www/npmjs.org/public/api
|
||||
|
||||
zip-publish: release
|
||||
scp release/*.zip npmjs.org:/var/www/npmjs.org/public/dist/
|
||||
scp release/* npmjs.org:/var/www/npmjs.org/public/dist/
|
||||
|
||||
release:
|
||||
@bash scripts/release.sh
|
||||
|
||||
2
deps/npm/bin/node-gyp-bin/node-gyp
vendored
Executable file
2
deps/npm/bin/node-gyp-bin/node-gyp
vendored
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env sh
|
||||
node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@"
|
||||
1
deps/npm/bin/node-gyp-bin/node-gyp.cmd
vendored
Executable file
1
deps/npm/bin/node-gyp-bin/node-gyp.cmd
vendored
Executable file
@@ -0,0 +1 @@
|
||||
node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %*
|
||||
7
deps/npm/bin/npm-cli.js
vendored
7
deps/npm/bin/npm-cli.js
vendored
@@ -49,6 +49,13 @@ if (conf.version) {
|
||||
return
|
||||
}
|
||||
|
||||
if (conf.versions) {
|
||||
var v = process.versions
|
||||
v.npm = npm.version
|
||||
console.log(v)
|
||||
return
|
||||
}
|
||||
|
||||
log.info("npm@"+npm.version, "using")
|
||||
log.info("node@"+process.version, "using")
|
||||
|
||||
|
||||
8
deps/npm/bin/npm.cmd
vendored
8
deps/npm/bin/npm.cmd
vendored
@@ -1,6 +1,6 @@
|
||||
:: Created by npm, please don't edit manually.
|
||||
@IF EXIST "%~dp0"\"node.exe" (
|
||||
"%~dp0"\"node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
) ELSE (
|
||||
node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
)
|
||||
node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
)
|
||||
|
||||
6
deps/npm/doc/api/ls.md
vendored
6
deps/npm/doc/api/ls.md
vendored
@@ -21,6 +21,12 @@ It will print out extraneous, missing, and invalid packages.
|
||||
If the silent parameter is set to true, nothing will be output to the screen,
|
||||
but the data will still be returned.
|
||||
|
||||
Callback is provided an error if one occurred, the full data about which
|
||||
packages are installed and which dependencies they will receive, and a
|
||||
"lite" data object which just shows which versions are installed where.
|
||||
Note that the full data object is a circular structure, so care must be
|
||||
taken if it is serialized to JSON.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### long
|
||||
|
||||
20
deps/npm/doc/api/shrinkwrap.md
vendored
Normal file
20
deps/npm/doc/api/shrinkwrap.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
npm-shrinkwrap(3) -- programmatically generate package shrinkwrap file
|
||||
====================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.shrinkwrap(args, [silent,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This acts much the same ways as shrinkwrapping on the command-line.
|
||||
|
||||
This command does not take any arguments, but 'args' must be defined.
|
||||
Beyond that, if any arguments are passed in, npm will politely warn that it
|
||||
does not take positional arguments.
|
||||
|
||||
If the 'silent' parameter is set to true, nothing will be output to the screen,
|
||||
but the shrinkwrap file will still be written.
|
||||
|
||||
Finally, 'callback' is a function that will be called when the shrinkwrap has
|
||||
been saved.
|
||||
44
deps/npm/doc/cli/changelog.md
vendored
44
deps/npm/doc/cli/changelog.md
vendored
@@ -3,6 +3,50 @@ npm-changelog(1) -- Changes
|
||||
|
||||
## HISTORY
|
||||
|
||||
### 1.1.3, 1.1.4
|
||||
|
||||
* Update request to support HTTPS-over-HTTP proxy tunneling
|
||||
* Throw on undefined envs in config settings
|
||||
* Update which to 1.0.5
|
||||
* Fix windows UNC busyloop in findPrefix
|
||||
* Bundle nested bundleDependencies properly
|
||||
* Alias adduser to add-user
|
||||
* Doc updates (Christian Howe, Henrik Hodne, Andrew Lunny)
|
||||
* ignore logfd/outfd streams in makeEnv() (Rod Vagg)
|
||||
* shrinkwrap: Behave properly with url-installed deps
|
||||
* install: Support --save with url install targets
|
||||
* Support installing naked tars or single-file modules from urls etc.
|
||||
* init: Don't add engines section
|
||||
* Don't run make clean on rebuild
|
||||
* Added missing unicode replacement (atomizer)
|
||||
|
||||
### 1.1.2
|
||||
|
||||
Dave Pacheco (2):
|
||||
add "npm shrinkwrap"
|
||||
|
||||
Martin Cooper (1):
|
||||
Fix #1753 Make a copy of the cached objects we'll modify.
|
||||
|
||||
Tim Oxley (1):
|
||||
correctly remove readme from default npm view command.
|
||||
|
||||
Tyler Green (1):
|
||||
fix #2187 set terminal columns to Infinity if 0
|
||||
|
||||
isaacs (19):
|
||||
update minimatch
|
||||
update request
|
||||
Experimental: single-file modules
|
||||
Fix #2172 Don't remove global mans uninstalling local pkgs
|
||||
Add --versions flag to show the version of node as well
|
||||
Support --json flag for ls output
|
||||
update request to 2.9.151
|
||||
|
||||
### 1.1
|
||||
* Replace system tar dependency with a JS tar
|
||||
* Continue to refine
|
||||
|
||||
### 1.0
|
||||
* Greatly simplified folder structure
|
||||
* Install locally (bundle by default)
|
||||
|
||||
4
deps/npm/doc/cli/coding-style.md
vendored
4
deps/npm/doc/cli/coding-style.md
vendored
@@ -59,8 +59,8 @@ Don't use them except in four situations:
|
||||
* `for (;;)` loops. They're actually required.
|
||||
* null loops like: `while (something) ;` (But you'd better have a good
|
||||
reason for doing that.)
|
||||
* case "foo": doSomething(); break
|
||||
* In front of a leading ( or [ at the start of the line.
|
||||
* `case "foo": doSomething(); break`
|
||||
* In front of a leading `(` or `[` at the start of the line.
|
||||
This prevents the expression from being interpreted
|
||||
as a function call or property access, respectively.
|
||||
|
||||
|
||||
45
deps/npm/doc/cli/config.md
vendored
45
deps/npm/doc/cli/config.md
vendored
@@ -218,6 +218,28 @@ See also the `strict-ssl` config.
|
||||
|
||||
The location of npm's cache directory. See `npm-cache(1)`
|
||||
|
||||
### cache-max
|
||||
|
||||
* Default: Infinity
|
||||
* Type: Number
|
||||
|
||||
The maximum time (in seconds) to keep items in the registry cache before
|
||||
re-checking against the registry.
|
||||
|
||||
Note that no purging is done unless the `npm cache clean` command is
|
||||
explicitly used, and that only GET requests use the cache.
|
||||
|
||||
### cache-min
|
||||
|
||||
* Default: 0
|
||||
* Type: Number
|
||||
|
||||
The minimum time (in seconds) to keep items in the registry cache before
|
||||
re-checking against the registry.
|
||||
|
||||
Note that no purging is done unless the `npm cache clean` command is
|
||||
explicitly used, and that only GET requests use the cache.
|
||||
|
||||
### color
|
||||
|
||||
* Default: true on Posix, false on Windows
|
||||
@@ -353,7 +375,7 @@ The value `npm init` should use by default for the package version.
|
||||
|
||||
### init.author.name
|
||||
|
||||
* Default: "0.0.0"
|
||||
* Default: ""
|
||||
* Type: String
|
||||
|
||||
The value `npm init` should use by default for the package author's name.
|
||||
@@ -372,6 +394,17 @@ The value `npm init` should use by default for the package author's email.
|
||||
|
||||
The value `npm init` should use by default for the package author's homepage.
|
||||
|
||||
### json
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Whether or not to output JSON data, rather than the normal output.
|
||||
|
||||
This feature is currently experimental, and the output data structures
|
||||
for many commands is either not implemented in JSON yet, or subject to
|
||||
change. Only the output from `npm ls --json` is currently valid.
|
||||
|
||||
### link
|
||||
|
||||
* Default: false
|
||||
@@ -682,6 +715,16 @@ If true, output the npm version and exit successfully.
|
||||
|
||||
Only relevant when specified explicitly on the command line.
|
||||
|
||||
### versions
|
||||
|
||||
* Default: false
|
||||
* Type: boolean
|
||||
|
||||
If true, output the npm version as well as node's `process.versions`
|
||||
hash, and exit successfully.
|
||||
|
||||
Only relevant when specified explicitly on the command line.
|
||||
|
||||
### viewer
|
||||
|
||||
* Default: "man" on Posix, "browser" on Windows
|
||||
|
||||
11
deps/npm/doc/cli/developers.md
vendored
11
deps/npm/doc/cli/developers.md
vendored
@@ -27,12 +27,23 @@ A package is:
|
||||
* d) a `<name>@<version>` that is published on the registry with (c)
|
||||
* e) a `<name>@<tag>` that points to (d)
|
||||
* f) a `<name>` that has a "latest" tag satisfying (e)
|
||||
* g) a `git` url that, when cloned, results in (a).
|
||||
|
||||
Even if you never publish your package, you can still get a lot of
|
||||
benefits of using npm if you just want to write a node program (a), and
|
||||
perhaps if you also want to be able to easily install it elsewhere
|
||||
after packing it up into a tarball (b).
|
||||
|
||||
Git urls can be of the form:
|
||||
|
||||
git://github.com/user/project.git#commit-ish
|
||||
git+ssh://user@hostname:project.git#commit-ish
|
||||
git+http://user@hostname/project/blah.git#commit-ish
|
||||
git+https://user@hostname/project/blah.git#commit-ish
|
||||
|
||||
The `commit-ish` can be any tag, sha, or branch which can be supplied as
|
||||
an argument to `git checkout`. The default is `master`.
|
||||
|
||||
## The package.json File
|
||||
|
||||
You need to have a `package.json` file in the root of your project to do
|
||||
|
||||
8
deps/npm/doc/cli/index.md
vendored
8
deps/npm/doc/cli/index.md
vendored
@@ -170,6 +170,10 @@ npm-index(1) -- Index of all npm documentation
|
||||
|
||||
The semantic versioner for npm
|
||||
|
||||
## npm-shrinkwrap(1)
|
||||
|
||||
Lock down dependency versions
|
||||
|
||||
## npm-star(1)
|
||||
|
||||
Mark your favorite packages
|
||||
@@ -323,6 +327,10 @@ npm-index(1) -- Index of all npm documentation
|
||||
|
||||
Search for packages
|
||||
|
||||
## npm-shrinkwrap(3)
|
||||
|
||||
programmatically generate package shrinkwrap file
|
||||
|
||||
## npm-start(3)
|
||||
|
||||
Start a package
|
||||
|
||||
5
deps/npm/doc/cli/install.md
vendored
5
deps/npm/doc/cli/install.md
vendored
@@ -14,7 +14,9 @@ npm-install(1) -- Install a package
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command installs a package, and any packages that it depends on.
|
||||
This command installs a package, and any packages that it depends on. If the
|
||||
package has a shrinkwrap file, the installation of dependencies will be driven
|
||||
by that. See npm-shrinkwrap(1).
|
||||
|
||||
A `package` is:
|
||||
|
||||
@@ -199,3 +201,4 @@ affects a real use-case, it will be investigated.
|
||||
* npm-folders(1)
|
||||
* npm-tag(1)
|
||||
* npm-rm(1)
|
||||
* npm-shrinkwrap(1)
|
||||
|
||||
45
deps/npm/doc/cli/json.md
vendored
45
deps/npm/doc/cli/json.md
vendored
@@ -332,6 +332,7 @@ is a semver compatible version identifier.
|
||||
* `""` (just an empty string) Same as `*`
|
||||
* `version1 - version2` Same as `>=version1 <=version2`.
|
||||
* `range1 || range2` Passes if either range1 or range2 are satisfied.
|
||||
* `git...` See 'Git URLs as Dependencies' below
|
||||
|
||||
For example, these are all valid:
|
||||
|
||||
@@ -387,6 +388,18 @@ of a version range.
|
||||
This tarball will be downloaded and installed locally to your package at
|
||||
install time.
|
||||
|
||||
### Git URLs as Dependencies
|
||||
|
||||
Git urls can be of the form:
|
||||
|
||||
git://github.com/user/project.git#commit-ish
|
||||
git+ssh://user@hostname:project.git#commit-ish
|
||||
git+http://user@hostname/project/blah.git#commit-ish
|
||||
git+https://user@hostname/project/blah.git#commit-ish
|
||||
|
||||
The `commit-ish` can be any tag, sha, or branch which can be supplied as
|
||||
an argument to `git checkout`. The default is `master`.
|
||||
|
||||
## devDependencies
|
||||
|
||||
If someone is planning on downloading and using your module in their
|
||||
@@ -415,7 +428,7 @@ node that your stuff works on:
|
||||
{ "engines" : { "node" : ">=0.1.27 <0.1.30" } }
|
||||
|
||||
And, like with dependencies, if you don't specify the version (or if you
|
||||
specify "*" as the version), then any version of node will do.
|
||||
specify "\*" as the version), then any version of node will do.
|
||||
|
||||
If you specify an "engines" field, then npm will require that "node" be
|
||||
somewhere on that list. If "engines" is omitted, then npm will just assume
|
||||
@@ -426,6 +439,36 @@ are capable of properly installing your program. For example:
|
||||
|
||||
{ "engines" : { "npm" : "~1.0.20" } }
|
||||
|
||||
## os
|
||||
|
||||
You can specify which operating systems your
|
||||
module will run on:
|
||||
|
||||
"os" : [ "darwin", "linux" ]
|
||||
|
||||
You can also blacklist instead of whitelist operating systems,
|
||||
just prepend the blacklisted os with a '!':
|
||||
|
||||
"os" : [ "!win32" ]
|
||||
|
||||
The host operating system is determined by `process.platform`
|
||||
|
||||
It is allowed to both blacklist, and whitelist, although there isn't any
|
||||
good reason to do this.
|
||||
|
||||
## cpu
|
||||
|
||||
If your code only runs on certain cpu architectures,
|
||||
you can specify which ones.
|
||||
|
||||
"cpu" : [ "x64", "ia32" ]
|
||||
|
||||
Like the `os` option, you can also blacklist architectures:
|
||||
|
||||
"cpu" : [ "!arm", "!mips" ]
|
||||
|
||||
The host architecture is determined by `process.arch`
|
||||
|
||||
## preferGlobal
|
||||
|
||||
If your package is primarily a command-line application that should be
|
||||
|
||||
7
deps/npm/doc/cli/list.md
vendored
7
deps/npm/doc/cli/list.md
vendored
@@ -22,6 +22,13 @@ When run as `ll` or `la`, it shows extended information by default.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### json
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Show information in JSON format.
|
||||
|
||||
### long
|
||||
|
||||
* Default: false
|
||||
|
||||
14
deps/npm/doc/cli/scripts.md
vendored
14
deps/npm/doc/cli/scripts.md
vendored
@@ -62,6 +62,20 @@ Package scripts run in an environment where many pieces of information are
|
||||
made available regarding the setup of npm and the current state of the
|
||||
process.
|
||||
|
||||
|
||||
### path
|
||||
|
||||
If you depend on modules that define executable scripts, like test suites,
|
||||
then those executables will be added to the `PATH` for executing the scripts.
|
||||
So, if your package.json has this:
|
||||
|
||||
{ "name" : "foo"
|
||||
, "dependencies" : { "bar" : "0.1.x" }
|
||||
, "scripts": { "start" : "bar ./test" } }
|
||||
|
||||
then you could run `npm start` to execute the `bar` script, which is exported
|
||||
into the `node_modules/.bin` directory on `npm install`.
|
||||
|
||||
### package.json vars
|
||||
|
||||
The package.json fields are tacked onto the `npm_package_` prefix. So, for
|
||||
|
||||
171
deps/npm/doc/cli/shrinkwrap.md
vendored
Normal file
171
deps/npm/doc/cli/shrinkwrap.md
vendored
Normal file
@@ -0,0 +1,171 @@
|
||||
npm-shrinkwrap(1) -- Lock down dependency versions
|
||||
=====================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm shrinkwrap
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command locks down the versions of a package's dependencies so that you can
|
||||
control exactly which versions of each dependency will be used when your package
|
||||
is installed.
|
||||
|
||||
By default, "npm install" recursively installs the target's dependencies (as
|
||||
specified in package.json), choosing the latest available version that satisfies
|
||||
the dependency's semver pattern. In some situations, particularly when shipping
|
||||
software where each change is tightly managed, it's desirable to fully specify
|
||||
each version of each dependency recursively so that subsequent builds and
|
||||
deploys do not inadvertently pick up newer versions of a dependency that satisfy
|
||||
the semver pattern. Specifying specific semver patterns in each dependency's
|
||||
package.json would facilitate this, but that's not always possible or desirable,
|
||||
as when another author owns the npm package. It's also possible to check
|
||||
dependencies directly into source control, but that may be undesirable for other
|
||||
reasons.
|
||||
|
||||
As an example, consider package A:
|
||||
|
||||
{
|
||||
"name": "A",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"B": "<0.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
package B:
|
||||
|
||||
{
|
||||
"name": "B",
|
||||
"version": "0.0.1",
|
||||
"dependencies": {
|
||||
"C": "<0.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
and package C:
|
||||
|
||||
{
|
||||
"name": "C,
|
||||
"version": "0.0.1"
|
||||
}
|
||||
|
||||
If these are the only versions of A, B, and C available in the registry, then
|
||||
a normal "npm install A" will install:
|
||||
|
||||
A@0.1.0
|
||||
`-- B@0.0.1
|
||||
`-- C@0.0.1
|
||||
|
||||
However, if B@0.0.2 is published, then a fresh "npm install A" will install:
|
||||
|
||||
A@0.1.0
|
||||
`-- B@0.0.2
|
||||
`-- C@0.0.1
|
||||
|
||||
assuming the new version did not modify B's dependencies. Of course, the new
|
||||
version of B could include a new version of C and any number of new
|
||||
dependencies. If such changes are undesirable, the author of A could specify a
|
||||
dependency on B@0.0.1. However, if A's author and B's author are not the same
|
||||
person, there's no way for A's author to say that he or she does not want to
|
||||
pull in newly published versions of C when B hasn't changed at all.
|
||||
|
||||
In this case, A's author can run
|
||||
|
||||
npm shrinkwrap
|
||||
|
||||
This generates npm-shrinkwrap.json, which will look something like this:
|
||||
|
||||
{
|
||||
"name": "A",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"B": {
|
||||
"version": "0.0.1",
|
||||
"dependencies": {
|
||||
"C": {
|
||||
"version": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
The shrinkwrap command has locked down the dependencies based on what's
|
||||
currently installed in node_modules. When "npm install" installs a package with
|
||||
a npm-shrinkwrap.json file in the package root, the shrinkwrap file (rather than
|
||||
package.json files) completely drives the installation of that package and all
|
||||
of its dependencies (recursively). So now the author publishes A@0.1.0, and
|
||||
subsequent installs of this package will use B@0.0.1 and C@0.1.0, regardless the
|
||||
dependencies and versions listed in A's, B's, and C's package.json files.
|
||||
|
||||
|
||||
### Using shrinkwrapped packages
|
||||
|
||||
Using a shrinkwrapped package is no different than using any other package: you
|
||||
can "npm install" it by hand, or add a dependency to your package.json file and
|
||||
"npm install" it.
|
||||
|
||||
### Building shrinkwrapped packages
|
||||
|
||||
To shrinkwrap an existing package:
|
||||
|
||||
1. Run "npm install" in the package root to install the current versions of all
|
||||
dependencies.
|
||||
2. Validate that the package works as expected with these versions.
|
||||
3. Run "npm shrinkwrap", add npm-shrinkwrap.json to git, and publish your
|
||||
package.
|
||||
|
||||
To add or update a dependency in a shrinkwrapped package:
|
||||
|
||||
1. Run "npm install" in the package root to install the current versions of all
|
||||
dependencies.
|
||||
2. Add or update dependencies. "npm install" each new or updated package
|
||||
individually and then update package.json. Note that they must be
|
||||
explicitly named in order to be installed: running `npm install` with
|
||||
no arguments will merely reproduce the existing shrinkwrap.
|
||||
3. Validate that the package works as expected with the new dependencies.
|
||||
4. Run "npm shrinkwrap", commit the new npm-shrinkwrap.json, and publish your
|
||||
package.
|
||||
|
||||
You can use npm-outdated(1) to view dependencies with newer versions available.
|
||||
|
||||
### Other Notes
|
||||
|
||||
Since "npm shrinkwrap" uses the locally installed packages to construct the
|
||||
shrinkwrap file, devDependencies will be included if and only if you've
|
||||
installed them already when you make the shrinkwrap.
|
||||
|
||||
A shrinkwrap file must be consistent with the package's package.json file. "npm
|
||||
shrinkwrap" will fail if required dependencies are not already installed, since
|
||||
that would result in a shrinkwrap that wouldn't actually work. Similarly, the
|
||||
command will fail if there are extraneous packages (not referenced by
|
||||
package.json), since that would indicate that package.json is not correct.
|
||||
|
||||
If shrinkwrapped package A depends on shrinkwrapped package B, B's shrinkwrap
|
||||
will not be used as part of the installation of A. However, because A's
|
||||
shrinkwrap is constructed from a valid installation of B and recursively
|
||||
specifies all dependencies, the contents of B's shrinkwrap will implicitly be
|
||||
included in A's shrinkwrap.
|
||||
|
||||
### Caveats
|
||||
|
||||
Shrinkwrap files only lock down package versions, not actual package contents.
|
||||
While discouraged, a package author can republish an existing version of a
|
||||
package, causing shrinkwrapped packages using that version to pick up different
|
||||
code than they were before. If you want to avoid any risk that a byzantine
|
||||
author replaces a package you're using with code that breaks your application,
|
||||
you could modify the shrinkwrap file to use git URL references rather than
|
||||
version numbers so that npm always fetches all packages from git.
|
||||
|
||||
If you wish to lock down the specific bytes included in a package, for
|
||||
example to have 100% confidence in being able to reproduce a deployment
|
||||
or build, then you ought to check your dependencies into source control,
|
||||
or pursue some other mechanism that can verify contents rather than
|
||||
versions.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-install(1)
|
||||
* npm-json(1)
|
||||
* npm-list(1)
|
||||
2
deps/npm/html/api/bin.html
vendored
2
deps/npm/html/api/bin.html
vendored
@@ -19,7 +19,7 @@
|
||||
<p>This function should not be used programmatically. Instead, just refer
|
||||
to the <code>npm.bin</code> member.</p>
|
||||
</div>
|
||||
<p id="footer">bin — npm@1.1.0-3</p>
|
||||
<p id="footer">bin — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/bugs.html
vendored
2
deps/npm/html/api/bugs.html
vendored
@@ -25,7 +25,7 @@ optional version number.</p>
|
||||
<p>This command will launch a browser, so this command may not be the most
|
||||
friendly for programmatic use.</p>
|
||||
</div>
|
||||
<p id="footer">bugs — npm@1.1.0-3</p>
|
||||
<p id="footer">bugs — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/commands.html
vendored
2
deps/npm/html/api/commands.html
vendored
@@ -28,7 +28,7 @@ usage, or <code>man 3 npm-<command></code> for programmatic usage.</p>
|
||||
|
||||
<ul><li><a href="../doc/index.html">index(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">commands — npm@1.1.0-3</p>
|
||||
<p id="footer">commands — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/config.html
vendored
2
deps/npm/html/api/config.html
vendored
@@ -33,7 +33,7 @@ functions instead.</p>
|
||||
|
||||
<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">config — npm@1.1.0-3</p>
|
||||
<p id="footer">config — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/deprecate.html
vendored
2
deps/npm/html/api/deprecate.html
vendored
@@ -30,7 +30,7 @@ install the package.</p></li></ul>
|
||||
|
||||
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../api/unpublish.html">unpublish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">deprecate — npm@1.1.0-3</p>
|
||||
<p id="footer">deprecate — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/docs.html
vendored
2
deps/npm/html/api/docs.html
vendored
@@ -25,7 +25,7 @@ optional version number.</p>
|
||||
<p>This command will launch a browser, so this command may not be the most
|
||||
friendly for programmatic use.</p>
|
||||
</div>
|
||||
<p id="footer">docs — npm@1.1.0-3</p>
|
||||
<p id="footer">docs — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/edit.html
vendored
2
deps/npm/html/api/edit.html
vendored
@@ -30,7 +30,7 @@ to open. The package can optionally have a version number attached.</p>
|
||||
<p>Since this command opens an editor in a new process, be careful about where
|
||||
and how this is used.</p>
|
||||
</div>
|
||||
<p id="footer">edit — npm@1.1.0-3</p>
|
||||
<p id="footer">edit — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/explore.html
vendored
2
deps/npm/html/api/explore.html
vendored
@@ -24,7 +24,7 @@ sure to use <code>npm rebuild <pkg></code> if you make any changes.</p>
|
||||
|
||||
<p>The first element in the 'args' parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.</p>
|
||||
</div>
|
||||
<p id="footer">explore — npm@1.1.0-3</p>
|
||||
<p id="footer">explore — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/help-search.html
vendored
2
deps/npm/html/api/help-search.html
vendored
@@ -32,7 +32,7 @@ Name of the file that matched</li></ul>
|
||||
|
||||
<p>The silent parameter is not neccessary not used, but it may in the future.</p>
|
||||
</div>
|
||||
<p id="footer">help-search — npm@1.1.0-3</p>
|
||||
<p id="footer">help-search — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/init.html
vendored
2
deps/npm/html/api/init.html
vendored
@@ -35,7 +35,7 @@ then go ahead and use this programmatically.</p>
|
||||
|
||||
<p><a href="../doc/json.html">json(1)</a></p>
|
||||
</div>
|
||||
<p id="footer">init — npm@1.1.0-3</p>
|
||||
<p id="footer">init — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/install.html
vendored
2
deps/npm/html/api/install.html
vendored
@@ -25,7 +25,7 @@ the name of a package to be installed.</p>
|
||||
<p>Finally, 'callback' is a function that will be called when all packages have been
|
||||
installed or when an error has been encountered.</p>
|
||||
</div>
|
||||
<p id="footer">install — npm@1.1.0-3</p>
|
||||
<p id="footer">install — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/link.html
vendored
2
deps/npm/html/api/link.html
vendored
@@ -39,7 +39,7 @@ npm.commands.link('redis', cb) # link-install the package</code></pre>
|
||||
<p>Now, any changes to the redis package will be reflected in
|
||||
the package in the current working directory</p>
|
||||
</div>
|
||||
<p id="footer">link — npm@1.1.0-3</p>
|
||||
<p id="footer">link — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/load.html
vendored
2
deps/npm/html/api/load.html
vendored
@@ -32,7 +32,7 @@ config object.</p>
|
||||
|
||||
<p>For a list of all the available command-line configs, see <code>npm help config</code></p>
|
||||
</div>
|
||||
<p id="footer">load — npm@1.1.0-3</p>
|
||||
<p id="footer">load — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
8
deps/npm/html/api/ls.html
vendored
8
deps/npm/html/api/ls.html
vendored
@@ -28,6 +28,12 @@ like with any other command, such as <code>global</code> to list global packages
|
||||
<p>If the silent parameter is set to true, nothing will be output to the screen,
|
||||
but the data will still be returned.</p>
|
||||
|
||||
<p>Callback is provided an error if one occurred, the full data about which
|
||||
packages are installed and which dependencies they will receive, and a
|
||||
"lite" data object which just shows which versions are installed where.
|
||||
Note that the full data object is a circular structure, so care must be
|
||||
taken if it is serialized to JSON.</p>
|
||||
|
||||
<h2 id="CONFIGURATION">CONFIGURATION</h2>
|
||||
|
||||
<h3 id="long">long</h3>
|
||||
@@ -53,7 +59,7 @@ project.</p>
|
||||
This means that if a submodule a same dependency as a parent module, then the
|
||||
dependency will only be output once.</p>
|
||||
</div>
|
||||
<p id="footer">ls — npm@1.1.0-3</p>
|
||||
<p id="footer">ls — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
4
deps/npm/html/api/npm.html
vendored
4
deps/npm/html/api/npm.html
vendored
@@ -24,7 +24,7 @@ npm.load(configObject, function (er, npm) {
|
||||
|
||||
<h2 id="VERSION">VERSION</h2>
|
||||
|
||||
<p>1.1.0-3</p>
|
||||
<p>1.1.15</p>
|
||||
|
||||
<h2 id="DESCRIPTION">DESCRIPTION</h2>
|
||||
|
||||
@@ -91,7 +91,7 @@ method names. Use the <code>npm.deref</code> method to find the real name.</p>
|
||||
|
||||
<pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre>
|
||||
</div>
|
||||
<p id="footer">npm — npm@1.1.0-3</p>
|
||||
<p id="footer">npm — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/outdated.html
vendored
2
deps/npm/html/api/outdated.html
vendored
@@ -19,7 +19,7 @@ currently outdated.</p>
|
||||
|
||||
<p>If the 'packages' parameter is left out, npm will check all packages.</p>
|
||||
</div>
|
||||
<p id="footer">outdated — npm@1.1.0-3</p>
|
||||
<p id="footer">outdated — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/owner.html
vendored
2
deps/npm/html/api/owner.html
vendored
@@ -34,7 +34,7 @@ that is not implemented at this time.</p>
|
||||
|
||||
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">owner — npm@1.1.0-3</p>
|
||||
<p id="footer">owner — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/pack.html
vendored
2
deps/npm/html/api/pack.html
vendored
@@ -25,7 +25,7 @@ overwritten the second time.</p>
|
||||
|
||||
<p>If no arguments are supplied, then npm packs the current package folder.</p>
|
||||
</div>
|
||||
<p id="footer">pack — npm@1.1.0-3</p>
|
||||
<p id="footer">pack — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/prefix.html
vendored
2
deps/npm/html/api/prefix.html
vendored
@@ -21,7 +21,7 @@
|
||||
|
||||
<p>This function is not useful programmatically</p>
|
||||
</div>
|
||||
<p id="footer">prefix — npm@1.1.0-3</p>
|
||||
<p id="footer">prefix — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/prune.html
vendored
2
deps/npm/html/api/prune.html
vendored
@@ -23,7 +23,7 @@
|
||||
<p>Extraneous packages are packages that are not listed on the parent
|
||||
package's dependencies list.</p>
|
||||
</div>
|
||||
<p id="footer">prune — npm@1.1.0-3</p>
|
||||
<p id="footer">prune — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/publish.html
vendored
2
deps/npm/html/api/publish.html
vendored
@@ -32,7 +32,7 @@ the registry. Overwrites when the "force" environment variable is set.</p>
|
||||
|
||||
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../api/owner.html">owner(3)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">publish — npm@1.1.0-3</p>
|
||||
<p id="footer">publish — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/rebuild.html
vendored
2
deps/npm/html/api/rebuild.html
vendored
@@ -22,7 +22,7 @@ the new binary. If no 'packages' parameter is specify, every package will be reb
|
||||
|
||||
<p>See <code>npm help build</code></p>
|
||||
</div>
|
||||
<p id="footer">rebuild — npm@1.1.0-3</p>
|
||||
<p id="footer">rebuild — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/restart.html
vendored
2
deps/npm/html/api/restart.html
vendored
@@ -27,7 +27,7 @@ in the <code>packages</code> parameter.</p>
|
||||
|
||||
<ul><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">restart — npm@1.1.0-3</p>
|
||||
<p id="footer">restart — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/root.html
vendored
2
deps/npm/html/api/root.html
vendored
@@ -21,7 +21,7 @@
|
||||
|
||||
<p>This function is not useful programmatically.</p>
|
||||
</div>
|
||||
<p id="footer">root — npm@1.1.0-3</p>
|
||||
<p id="footer">root — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/run-script.html
vendored
2
deps/npm/html/api/run-script.html
vendored
@@ -29,7 +29,7 @@ assumed to be the command to run. All other elements are ignored.</p>
|
||||
|
||||
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../api/test.html">test(3)</a></li><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/restart.html">restart(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">run-script — npm@1.1.0-3</p>
|
||||
<p id="footer">run-script — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/search.html
vendored
2
deps/npm/html/api/search.html
vendored
@@ -32,7 +32,7 @@ excluded term (the "searchexclude" config). The search is case insensitive
|
||||
and doesn't try to read your mind (it doesn't do any verb tense matching or the
|
||||
like).</p>
|
||||
</div>
|
||||
<p id="footer">search — npm@1.1.0-3</p>
|
||||
<p id="footer">search — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
61
deps/npm/html/api/shrinkwrap.html
vendored
Normal file
61
deps/npm/html/api/shrinkwrap.html
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<title>shrinkwrap</title>
|
||||
<meta http-equiv="content-type" value="text/html;utf-8">
|
||||
<link rel="stylesheet" type="text/css" href="./style.css">
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<h1><a href="../api/shrinkwrap.html">shrinkwrap</a></h1> <p>programmatically generate package shrinkwrap file</p>
|
||||
|
||||
<h2 id="SYNOPSIS">SYNOPSIS</h2>
|
||||
|
||||
<pre><code>npm.commands.shrinkwrap(args, [silent,] callback)</code></pre>
|
||||
|
||||
<h2 id="DESCRIPTION">DESCRIPTION</h2>
|
||||
|
||||
<p>This acts much the same ways as shrinkwrapping on the command-line.</p>
|
||||
|
||||
<p>This command does not take any arguments, but 'args' must be defined.
|
||||
Beyond that, if any arguments are passed in, npm will politely warn that it
|
||||
does not take positional arguments.</p>
|
||||
|
||||
<p>If the 'silent' parameter is set to true, nothing will be output to the screen,
|
||||
but the shrinkwrap file will still be written.</p>
|
||||
|
||||
<p>Finally, 'callback' is a function that will be called when the shrinkwrap has
|
||||
been saved.</p>
|
||||
</div>
|
||||
<p id="footer">shrinkwrap — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
|
||||
.filter(function (el) {
|
||||
return el.parentNode === wrapper
|
||||
&& el.tagName.match(/H[1-6]/)
|
||||
&& el.id
|
||||
})
|
||||
var l = 2
|
||||
, toc = document.createElement("ul")
|
||||
toc.innerHTML = els.map(function (el) {
|
||||
var i = el.tagName.charAt(1)
|
||||
, out = ""
|
||||
while (i > l) {
|
||||
out += "<ul>"
|
||||
l ++
|
||||
}
|
||||
while (i < l) {
|
||||
out += "</ul>"
|
||||
l --
|
||||
}
|
||||
out += "<li><a href='#" + el.id + "'>" +
|
||||
( el.innerText || el.text || el.innerHTML)
|
||||
+ "</a>"
|
||||
return out
|
||||
}).join("\n")
|
||||
toc.id = "toc"
|
||||
document.body.appendChild(toc)
|
||||
})()
|
||||
</script>
|
||||
</body></html>
|
||||
2
deps/npm/html/api/start.html
vendored
2
deps/npm/html/api/start.html
vendored
@@ -19,7 +19,7 @@
|
||||
<p>npm can run tests on multiple packages. Just specify multiple packages
|
||||
in the <code>packages</code> parameter.</p>
|
||||
</div>
|
||||
<p id="footer">start — npm@1.1.0-3</p>
|
||||
<p id="footer">start — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/stop.html
vendored
2
deps/npm/html/api/stop.html
vendored
@@ -19,7 +19,7 @@
|
||||
<p>npm can run stop on multiple packages. Just specify multiple packages
|
||||
in the <code>packages</code> parameter.</p>
|
||||
</div>
|
||||
<p id="footer">stop — npm@1.1.0-3</p>
|
||||
<p id="footer">stop — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/submodule.html
vendored
2
deps/npm/html/api/submodule.html
vendored
@@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
|
||||
|
||||
<ul><li>npm help json</li><li>git help submodule</li></ul>
|
||||
</div>
|
||||
<p id="footer">submodule — npm@1.1.0-3</p>
|
||||
<p id="footer">submodule — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/tag.html
vendored
2
deps/npm/html/api/tag.html
vendored
@@ -29,7 +29,7 @@ parameter is missing or falsey (empty), the default froom the config will be
|
||||
used. For more information about how to set this config, check
|
||||
<code>man 3 npm-config</code> for programmatic usage or <code>man npm-config</code> for cli usage.</p>
|
||||
</div>
|
||||
<p id="footer">tag — npm@1.1.0-3</p>
|
||||
<p id="footer">tag — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/test.html
vendored
2
deps/npm/html/api/test.html
vendored
@@ -22,7 +22,7 @@ true.</p>
|
||||
<p>npm can run tests on multiple packages. Just specify multiple packages
|
||||
in the <code>packages</code> parameter.</p>
|
||||
</div>
|
||||
<p id="footer">test — npm@1.1.0-3</p>
|
||||
<p id="footer">test — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/uninstall.html
vendored
2
deps/npm/html/api/uninstall.html
vendored
@@ -22,7 +22,7 @@ the name of a package to be uninstalled.</p>
|
||||
<p>Finally, 'callback' is a function that will be called when all packages have been
|
||||
uninstalled or when an error has been encountered.</p>
|
||||
</div>
|
||||
<p id="footer">uninstall — npm@1.1.0-3</p>
|
||||
<p id="footer">uninstall — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/unpublish.html
vendored
2
deps/npm/html/api/unpublish.html
vendored
@@ -26,7 +26,7 @@ is what is meant.</p>
|
||||
<p>If no version is specified, or if all versions are removed then
|
||||
the root package entry is removed from the registry entirely.</p>
|
||||
</div>
|
||||
<p id="footer">unpublish — npm@1.1.0-3</p>
|
||||
<p id="footer">unpublish — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/update.html
vendored
2
deps/npm/html/api/update.html
vendored
@@ -18,7 +18,7 @@
|
||||
|
||||
<p>The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.</p>
|
||||
</div>
|
||||
<p id="footer">update — npm@1.1.0-3</p>
|
||||
<p id="footer">update — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/version.html
vendored
2
deps/npm/html/api/version.html
vendored
@@ -24,7 +24,7 @@ fail if the repo is not clean.</p>
|
||||
parameter. The difference, however, is this function will fail if it does
|
||||
not have exactly one element. The only element should be a version number.</p>
|
||||
</div>
|
||||
<p id="footer">version — npm@1.1.0-3</p>
|
||||
<p id="footer">version — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/view.html
vendored
2
deps/npm/html/api/view.html
vendored
@@ -99,7 +99,7 @@ the field name.</p>
|
||||
|
||||
<p>corresponding to the list of fields selected.</p>
|
||||
</div>
|
||||
<p id="footer">view — npm@1.1.0-3</p>
|
||||
<p id="footer">view — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/api/whoami.html
vendored
2
deps/npm/html/api/whoami.html
vendored
@@ -21,7 +21,7 @@
|
||||
|
||||
<p>This function is not useful programmatically</p>
|
||||
</div>
|
||||
<p id="footer">whoami — npm@1.1.0-3</p>
|
||||
<p id="footer">whoami — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/README.html
vendored
2
deps/npm/html/doc/README.html
vendored
@@ -267,7 +267,7 @@ will no doubt tell you to put the output in a gist or email.</p>
|
||||
|
||||
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer"><a href="../doc/README.html">README</a> — npm@1.1.0-3</p>
|
||||
<p id="footer"><a href="../doc/README.html">README</a> — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/adduser.html
vendored
2
deps/npm/html/doc/adduser.html
vendored
@@ -39,7 +39,7 @@ authorize on a new machine.</p>
|
||||
|
||||
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">adduser — npm@1.1.0-3</p>
|
||||
<p id="footer">adduser — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/bin.html
vendored
2
deps/npm/html/doc/bin.html
vendored
@@ -20,7 +20,7 @@
|
||||
|
||||
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">bin — npm@1.1.0-3</p>
|
||||
<p id="footer">bin — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/bugs.html
vendored
2
deps/npm/html/doc/bugs.html
vendored
@@ -36,7 +36,7 @@ config param.</p>
|
||||
|
||||
<ul><li><a href="../doc/docs.html">docs(1)</a></li><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">bugs — npm@1.1.0-3</p>
|
||||
<p id="footer">bugs — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/build.html
vendored
2
deps/npm/html/doc/build.html
vendored
@@ -25,7 +25,7 @@ A folder containing a <code>package.json</code> file in its root.</li></ul>
|
||||
|
||||
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">build — npm@1.1.0-3</p>
|
||||
<p id="footer">build — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/bundle.html
vendored
2
deps/npm/html/doc/bundle.html
vendored
@@ -20,7 +20,7 @@ install packages into the local space.</p>
|
||||
|
||||
<ul><li><a href="../doc/install.html">install(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">bundle — npm@1.1.0-3</p>
|
||||
<p id="footer">bundle — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/cache.html
vendored
2
deps/npm/html/doc/cache.html
vendored
@@ -66,7 +66,7 @@ they do not make an HTTP request to the registry.</p>
|
||||
|
||||
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">cache — npm@1.1.0-3</p>
|
||||
<p id="footer">cache — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
33
deps/npm/html/doc/changelog.html
vendored
33
deps/npm/html/doc/changelog.html
vendored
@@ -10,6 +10,37 @@
|
||||
|
||||
<h2 id="HISTORY">HISTORY</h2>
|
||||
|
||||
<h3 id="1-1-3-1-1-4">1.1.3, 1.1.4</h3>
|
||||
|
||||
<ul><li>Update request to support HTTPS-over-HTTP proxy tunneling</li><li>Throw on undefined envs in config settings</li><li>Update which to 1.0.5</li><li>Fix windows UNC busyloop in findPrefix</li><li>Bundle nested bundleDependencies properly</li><li>Alias adduser to add-user</li><li>Doc updates (Christian Howe, Henrik Hodne, Andrew Lunny)</li><li>ignore logfd/outfd streams in makeEnv() (Rod Vagg)</li><li>shrinkwrap: Behave properly with url-installed deps</li><li>install: Support --save with url install targets</li><li>Support installing naked tars or single-file modules from urls etc.</li><li>init: Don't add engines section</li><li>Don't run make clean on rebuild</li><li>Added missing unicode replacement (atomizer)</li></ul>
|
||||
|
||||
<h3 id="1-1-2">1.1.2</h3>
|
||||
|
||||
<p>Dave Pacheco (2):
|
||||
add "npm shrinkwrap"</p>
|
||||
|
||||
<p>Martin Cooper (1):
|
||||
Fix #1753 Make a copy of the cached objects we'll modify.</p>
|
||||
|
||||
<p>Tim Oxley (1):
|
||||
correctly remove readme from default npm view command.</p>
|
||||
|
||||
<p>Tyler Green (1):
|
||||
fix #2187 set terminal columns to Infinity if 0</p>
|
||||
|
||||
<p>isaacs (19):
|
||||
update minimatch
|
||||
update request
|
||||
Experimental: single-file modules
|
||||
Fix #2172 Don't remove global mans uninstalling local pkgs
|
||||
Add --versions flag to show the version of node as well
|
||||
Support --json flag for ls output
|
||||
update request to 2.9.151</p>
|
||||
|
||||
<h3 id="1-1">1.1</h3>
|
||||
|
||||
<ul><li>Replace system tar dependency with a JS tar</li><li>Continue to refine</li></ul>
|
||||
|
||||
<h3 id="1-0">1.0</h3>
|
||||
|
||||
<ul><li>Greatly simplified folder structure </li><li>Install locally (bundle by default) </li><li>Drastic rearchitecture</li></ul>
|
||||
@@ -34,7 +65,7 @@
|
||||
|
||||
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">changelog — npm@1.1.0-3</p>
|
||||
<p id="footer">changelog — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
4
deps/npm/html/doc/coding-style.html
vendored
4
deps/npm/html/doc/coding-style.html
vendored
@@ -64,7 +64,7 @@ while (foo) {
|
||||
<p>Don't use them except in four situations:</p>
|
||||
|
||||
<ul><li><code>for (;;)</code> loops. They're actually required.</li><li>null loops like: <code>while (something) ;</code> (But you'd better have a good
|
||||
reason for doing that.)</li><li>case "foo": doSomething(); break</li><li>In front of a leading ( or [ at the start of the line.
|
||||
reason for doing that.)</li><li><code>case "foo": doSomething(); break</code></li><li>In front of a leading <code>(</code> or <code>[</code> at the start of the line.
|
||||
This prevents the expression from being interpreted
|
||||
as a function call or property access, respectively.</li></ul>
|
||||
|
||||
@@ -191,7 +191,7 @@ set to anything."</p>
|
||||
|
||||
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">coding-style — npm@1.1.0-3</p>
|
||||
<p id="footer">coding-style — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/completion.html
vendored
2
deps/npm/html/doc/completion.html
vendored
@@ -33,7 +33,7 @@ completions based on the arguments.</p>
|
||||
|
||||
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">completion — npm@1.1.0-3</p>
|
||||
<p id="footer">completion — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
43
deps/npm/html/doc/config.html
vendored
43
deps/npm/html/doc/config.html
vendored
@@ -200,6 +200,26 @@ to trust only that specific signing authority.</p>
|
||||
|
||||
<p>The location of npm's cache directory. See <code><a href="../doc/cache.html">cache(1)</a></code></p>
|
||||
|
||||
<h3 id="cache-max">cache-max</h3>
|
||||
|
||||
<ul><li>Default: Infinity</li><li>Type: Number</li></ul>
|
||||
|
||||
<p>The maximum time (in seconds) to keep items in the registry cache before
|
||||
re-checking against the registry.</p>
|
||||
|
||||
<p>Note that no purging is done unless the <code>npm cache clean</code> command is
|
||||
explicitly used, and that only GET requests use the cache.</p>
|
||||
|
||||
<h3 id="cache-min">cache-min</h3>
|
||||
|
||||
<ul><li>Default: 0</li><li>Type: Number</li></ul>
|
||||
|
||||
<p>The minimum time (in seconds) to keep items in the registry cache before
|
||||
re-checking against the registry.</p>
|
||||
|
||||
<p>Note that no purging is done unless the <code>npm cache clean</code> command is
|
||||
explicitly used, and that only GET requests use the cache.</p>
|
||||
|
||||
<h3 id="color">color</h3>
|
||||
|
||||
<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean or <code>"always"</code></li></ul>
|
||||
@@ -315,7 +335,7 @@ from packages when building tarballs.</p>
|
||||
|
||||
<h3 id="init-author-name">init.author.name</h3>
|
||||
|
||||
<ul><li>Default: "0.0.0"</li><li>Type: String</li></ul>
|
||||
<ul><li>Default: ""</li><li>Type: String</li></ul>
|
||||
|
||||
<p>The value <code>npm init</code> should use by default for the package author's name.</p>
|
||||
|
||||
@@ -331,6 +351,16 @@ from packages when building tarballs.</p>
|
||||
|
||||
<p>The value <code>npm init</code> should use by default for the package author's homepage.</p>
|
||||
|
||||
<h3 id="json">json</h3>
|
||||
|
||||
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
|
||||
|
||||
<p>Whether or not to output JSON data, rather than the normal output.</p>
|
||||
|
||||
<p>This feature is currently experimental, and the output data structures
|
||||
for many commands is either not implemented in JSON yet, or subject to
|
||||
change. Only the output from <code>npm ls --json</code> is currently valid.</p>
|
||||
|
||||
<h3 id="link">link</h3>
|
||||
|
||||
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
|
||||
@@ -601,6 +631,15 @@ this value. Thus, the defaults are <code>0755</code> and <code>0644</code> resp
|
||||
|
||||
<p>Only relevant when specified explicitly on the command line.</p>
|
||||
|
||||
<h3 id="versions">versions</h3>
|
||||
|
||||
<ul><li>Default: false</li><li>Type: boolean</li></ul>
|
||||
|
||||
<p>If true, output the npm version as well as node's <code>process.versions</code>
|
||||
hash, and exit successfully.</p>
|
||||
|
||||
<p>Only relevant when specified explicitly on the command line.</p>
|
||||
|
||||
<h3 id="viewer">viewer</h3>
|
||||
|
||||
<ul><li>Default: "man" on Posix, "browser" on Windows</li><li>Type: path</li></ul>
|
||||
@@ -623,7 +662,7 @@ then answer "no" to any prompt.</p>
|
||||
|
||||
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">config — npm@1.1.0-3</p>
|
||||
<p id="footer">config — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/deprecate.html
vendored
2
deps/npm/html/doc/deprecate.html
vendored
@@ -29,7 +29,7 @@ something like this:</p>
|
||||
|
||||
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">deprecate — npm@1.1.0-3</p>
|
||||
<p id="footer">deprecate — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
14
deps/npm/html/doc/developers.html
vendored
14
deps/npm/html/doc/developers.html
vendored
@@ -28,13 +28,23 @@ topic, or <code>npm help thing</code> to see the same information.</p>
|
||||
|
||||
<p>A package is:</p>
|
||||
|
||||
<ul><li>a) a folder containing a program described by a package.json file</li><li>b) a gzipped tarball containing (a)</li><li>c) a url that resolves to (b)</li><li>d) a <code><name>@<version></code> that is published on the registry with (c)</li><li>e) a <code><name>@<tag></code> that points to (d)</li><li>f) a <code><name></code> that has a "latest" tag satisfying (e)</li></ul>
|
||||
<ul><li>a) a folder containing a program described by a package.json file</li><li>b) a gzipped tarball containing (a)</li><li>c) a url that resolves to (b)</li><li>d) a <code><name>@<version></code> that is published on the registry with (c)</li><li>e) a <code><name>@<tag></code> that points to (d)</li><li>f) a <code><name></code> that has a "latest" tag satisfying (e)</li><li>g) a <code>git</code> url that, when cloned, results in (a).</li></ul>
|
||||
|
||||
<p>Even if you never publish your package, you can still get a lot of
|
||||
benefits of using npm if you just want to write a node program (a), and
|
||||
perhaps if you also want to be able to easily install it elsewhere
|
||||
after packing it up into a tarball (b).</p>
|
||||
|
||||
<p>Git urls can be of the form:</p>
|
||||
|
||||
<pre><code>git://github.com/user/project.git#commit-ish
|
||||
git+ssh://user@hostname:project.git#commit-ish
|
||||
git+http://user@hostname/project/blah.git#commit-ish
|
||||
git+https://user@hostname/project/blah.git#commit-ish</code></pre>
|
||||
|
||||
<p>The <code>commit-ish</code> can be any tag, sha, or branch which can be supplied as
|
||||
an argument to <code>git checkout</code>. The default is <code>master</code>.</p>
|
||||
|
||||
<h2 id="The-package-json-File">The package.json File</h2>
|
||||
|
||||
<p>You need to have a <code>package.json</code> file in the root of your project to do
|
||||
@@ -150,7 +160,7 @@ from a fresh checkout.</p>
|
||||
|
||||
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">developers — npm@1.1.0-3</p>
|
||||
<p id="footer">developers — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/disputes.html
vendored
2
deps/npm/html/doc/disputes.html
vendored
@@ -80,7 +80,7 @@ license statement)</li><li>Illegal content.</li></ol>
|
||||
|
||||
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">disputes — npm@1.1.0-3</p>
|
||||
<p id="footer">disputes — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/docs.html
vendored
2
deps/npm/html/doc/docs.html
vendored
@@ -37,7 +37,7 @@ config param.</p>
|
||||
|
||||
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">docs — npm@1.1.0-3</p>
|
||||
<p id="footer">docs — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/edit.html
vendored
2
deps/npm/html/doc/edit.html
vendored
@@ -37,7 +37,7 @@ or <code>"notepad"</code> on Windows.</li><li>Type: path</li></ul>
|
||||
|
||||
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">edit — npm@1.1.0-3</p>
|
||||
<p id="footer">edit — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/explore.html
vendored
2
deps/npm/html/doc/explore.html
vendored
@@ -40,7 +40,7 @@ Windows</li><li>Type: path</li></ul>
|
||||
|
||||
<ul><li><a href="../doc/submodule.html">submodule(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/edit.html">edit(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">explore — npm@1.1.0-3</p>
|
||||
<p id="footer">explore — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/faq.html
vendored
2
deps/npm/html/doc/faq.html
vendored
@@ -241,7 +241,7 @@ We'll have someone kick it or something.</p>
|
||||
|
||||
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">faq — npm@1.1.0-3</p>
|
||||
<p id="footer">faq — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/folders.html
vendored
2
deps/npm/html/doc/folders.html
vendored
@@ -205,7 +205,7 @@ cannot be found elsewhere. See <code><a href="../doc/json.html">json(1)</a></co
|
||||
|
||||
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">folders — npm@1.1.0-3</p>
|
||||
<p id="footer">folders — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/help-search.html
vendored
2
deps/npm/html/doc/help-search.html
vendored
@@ -38,7 +38,7 @@ where the terms were found in the documentation.</p>
|
||||
|
||||
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">help-search — npm@1.1.0-3</p>
|
||||
<p id="footer">help-search — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/help.html
vendored
2
deps/npm/html/doc/help.html
vendored
@@ -36,7 +36,7 @@ matches are equivalent to specifying a topic name.</p>
|
||||
|
||||
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/help-search.html">help-search(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">help — npm@1.1.0-3</p>
|
||||
<p id="footer">help — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
10
deps/npm/html/doc/index.html
vendored
10
deps/npm/html/doc/index.html
vendored
@@ -178,6 +178,10 @@
|
||||
|
||||
<p> The semantic versioner for npm</p>
|
||||
|
||||
<h2 id="npm-shrinkwrap-1"><a href="../doc/shrinkwrap.html">shrinkwrap(1)</a></h2>
|
||||
|
||||
<p> Lock down dependency versions</p>
|
||||
|
||||
<h2 id="npm-star-1"><a href="../doc/star.html">star(1)</a></h2>
|
||||
|
||||
<p> Mark your favorite packages</p>
|
||||
@@ -332,6 +336,10 @@
|
||||
|
||||
<p> Search for packages</p>
|
||||
|
||||
<h2 id="npm-shrinkwrap-3"><a href="../api/shrinkwrap.html">shrinkwrap(3)</a></h2>
|
||||
|
||||
<p> programmatically generate package shrinkwrap file</p>
|
||||
|
||||
<h2 id="npm-start-3"><a href="../api/start.html">start(3)</a></h2>
|
||||
|
||||
<p> Start a package</p>
|
||||
@@ -376,7 +384,7 @@
|
||||
|
||||
<p> Display npm username</p>
|
||||
</div>
|
||||
<p id="footer">index — npm@1.1.0-3</p>
|
||||
<p id="footer">index — npm@1.1.15</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user