Compare commits

...

180 Commits

Author SHA1 Message Date
Julien Gilli
8a9f263a82 2015.01.20, Version 0.11.15 (Unstable)
* v8: Upgrade to 3.28.73

* uv: Upgrade to 1.0.2

* npm: Upgrade to v2.1.6

* uv: float patch to revert tty breakage (Trevor Norris)

* v8: re-implement debugger-agent (Fedor Indutny)

* v8: apply floating irhydra patch (Fedor Indutny)

* v8: fix postmortem-metadata generator (Refael Ackermann)

* debugger: fix unhandled error in setBreakpoint (Miroslav Bajtoš)

* async-wrap: add event hooks (Trevor Norris)

* async-wrap: expose async-wrap as binding (Trevor Norris)

* buffer, doc: misc. fix and cleanup (Trevor Norris)

* buffer: add generic functions for (u)int ops (Yazhong Liu)

* buffer: fix and cleanup fill() (Trevor Norris)

* buffer: mv floating point read/write checks to JS (Trevor Norris)

* build, i18n: improve Intl build, add "--with-intl" (Steven R. Loomis)

* build: add small-icu support for binary packages (Julien Gilli)

* build: do not generate support for libuv's probes (Julien Gilli)

* build: i18n: add icu config options (Steven R. Loomis)

* build: i18n: support little-endian machines (Steven Loomis)

* build: vcbuild fix "The input line is too long." (Alexis Campailla)

* child_process: improve spawn() argument handling (cjihrig)

* cluster: avoid race enabling debugger in worker (Timothy J Fontaine)

* cluster: cluster.disconnect() should check status (Sam Roberts)

* cluster: do not signal children in debug mode (Fedor Indutny)

* cluster: don't assert if worker has no handles (Sam Roberts)

* core: fix usage of uv_cwd (Saúl Ibarra Corretgé)

* core: replace uv_fs_readdir with uv_fs_scandir (Saúl Ibarra Corretgé)

* crypto: createDiffieHellman throw for bad args (Trevor Norris)

* crypto: lower RSS usage for TLSCallbacks (Fedor Indutny)

* crypto: store thread id as pointer-sized (Alexis Campailla)

* dns: propagate domain for c-ares methods (Chris Dickinson)

* fs: fix symlink error message (Vladimir Kurchatkin)

* http: Improve _addHeaderLines method (Jackson Tian)

* http: cleanup setHeader() (Trevor Norris)

* http: rename flush to flushHeaders (Timothy J Fontaine)

* lib,src: fix spawnSync ignoring its 'env' option (Juanjo)

* modules: adding load linked modules feature (Thorsten Lorenz)

* net: Make server.connections un-enumerable (Patrick Mooney)

* net: add pauseOnConnect option to createServer() (cjihrig)

* net: make connect() input validation synchronous (cjihrig)

* node: avoid automatic microtask runs (Vladimir Kurchatkin)

* node: fix throws before timer module is loaded (Trevor Norris)

* openssl: fix keypress requirement in apps on win32 (Fedor Indutny)

* path: added parse() and format() functions (Rory Bradford)

* path: allow calling platform specific methods (Timothy J Fontaine)

* path: don't lower-cases drive letters (Bert Belder)

* path: refactor normalizeArray() (Nathan Woltman)

* process: pid can be a string in process.kill() (Sam Roberts)

* readline: fix performance issue when large line (Jicheng Li)

* readline: should not require an output stream. (Julien Gilli)

* smalloc: check if obj has external data (Vladimir Kurchatkin)

* smalloc: don't allow to dispose typed arrays (Vladimir Kurchatkin)

* smalloc: fix bad assert for zero length data (Trevor Norris)

* smalloc: fix copyOnto optimization (Vladimir Kurchatkin)

* src: all wrap's now use actual FunctionTemplate (Trevor Norris)

* src: fix VC++ warning C4244 (Rasmus Christian Pedersen)

* src: remove Async Listener (Trevor Norris)

* stream: switch _writableState.buffer to queue (Chris Dickinson)

* streams: make setDefaultEncoding() throw (Brian White)

* streams: set default encoding for writable streams (Johnny Ray)

* tls: remove tls.createSecurePair code deprecation (Jackson Tian)

* tls_wrap: ignore ZERO_RETURN after close_notify (Fedor Indutny)

* url: change hostname regex to negate invalid chars (Jonathan Johnson)

* url: fixed encoding for slash switching emulation. (Evan Rutledge Borden)

* url: improve parsing speed (CGavrila)

* url: make query() consistent (Gabriel Wicke)

* url: support `path` for url.format (Yazhong Liu)

* util: add es6 Symbol support for `util.inspect` (gyson)
2015-01-20 13:22:17 -08:00
Andrei Sedoi
430096a90f doc: use correct signature for assert()
The message argument is optional for both assert() and
assert.ok(). This commit makes message optional for assert().

PR-URL: https://github.com/joyent/node/pull/9003
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-01-20 10:51:00 -05:00
Julien Gilli
7a8ea15d6f test: fix test-debug-port-from-cmdline.js
Make this test less prone to race conditions by using synchronous
interprocess communication instead of a timer to determine when the
child process is ready to receive messages from its parent.

Also, remove a superfluous timer since the tests suite already makes
tests time out after a while.

Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
2015-01-16 14:59:29 -08:00
Timothy J Fontaine
89f3c9037f http: rename flush to flushHeaders
In order to preserve the potential for a flush method being added to the
streams API, rename flush to flushHeaders which is much more clear about
the behavior of this method.

PR: #9048
PR-URL: https://github.com/joyent/node/pull/9048

Reviewed-By: Julien Gilli <julien.gilli@joyent.com>
2015-01-16 13:42:43 -08:00
Timothy J Fontaine
efe1781f3d crypto: don't use transitionary ThrowException
Since the current environment is in scope use ThrowError on that,
instead of having to lookup the Environment again.

Added benefit, lint the source code.

Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Julien Gilli <julien.gilli@joyent.com>
2015-01-16 11:03:30 -08:00
Timothy J Fontaine
bb1f68f9d6 src: lint remove extra node_crypto include
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Julien Gilli <julien.gilli@joyent.com>
2015-01-16 11:02:55 -08:00
Julien Gilli
28d0cbbdfd test: fix test-fs-access.js
On non-windows supported platforms, fs.access(readOnlyFile, W_OK, ...)
is expected to fail, but always succeeds if node runs as the super user,
which is often the case for tests running on our continuous integration
platform.

This change makes the test try to change its process user id to nobody
on non-windows platforms so that the above mentioned test can pass and
still perform the actual desired test. If changing the process user id
to a nobody is not possible, then the test checks that
fs.access(readOnlyFile, W_OK, ...) actually succeeds.

Fixes #9033.

Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
2015-01-16 10:35:44 -08:00
Steven R. Loomis
70d04e7f35 src: add license content from ICU
Added license info from:
 http://source.icu-project.org/repos/icu/icu/trunk/license.html
All text pasted. Long lines wrapped. (original is HTML.)

Reviewed-By: Julien Gilli <julien.gilli@joyent.com>
Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
2015-01-16 10:25:32 -08:00
Timothy J Fontaine
58fcc65985 test: debug-signal-cluster should not be racey
unref one superfluous timer (as the test suite already has a global
timeout), and improve the state machine to iterate the messages more
reliably.

Ultimately make the test complete more quickly.

Signed-off-by: Julien Gilli <julien.gilli@joyent.com>
2015-01-15 23:41:22 -08:00
Timothy J Fontaine
e9df9a0216 cluster: avoid race enabling debugger in worker
Previously if a worker's state machine had already transitioned into the
'listening' state when it received the message enabling the debugger,
the worker would never enable its debugger.

Change the logic to allow the 'listening' as a valid state for enabling
the debugger.

Fixes #6440

Signed-off-by: Julien Gilli <julien.gilli@joyent.com>
2015-01-15 23:41:22 -08:00
Bert Belder
016e08458c path: don't lower-cases drive letters
In general path functions don't change the case of a path. Making an
exception for windows drive letters violates the principle of least
surprise.

Changing the drive letter case has caused a lot of issues, including
joyent/node#7031, joyent/node#7806 and lots of bikeshedding about
whether uppercase is the right case or lowercase.

This effectively reverts joyent/node@a05f973

Reviewed-by: Alexis Campailla <alexis@janeasystems.com>
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2015-01-15 14:59:36 -08:00
Julien Gilli
67f87a743d build: add small-icu support for binary packages
Invokes the configure script used to build binary packages
(OSX pkg, binary tarballs, pkgsrc, MSI) with --download=all
--with-intl=small-icu.

Also makes PACKAGEMAKER customizable, because PackageMaker is not
necessarily installed in /Developer on OSX anymore.

Tested all binary packages on Windows, OSX, Linux and SmartOS.

Fixes #7676.

Reviewed-by: Steven R. Loomis <srl@icu-project.org>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2015-01-14 17:41:21 -08:00
Julien Gilli
408bffe212 test: fix ssl/tls options matrix test
The tests suite available in test/external/ssl-options was originally
written for security fixes made in the v0.10 branch. In this branch, the
client's default ciphers list is compatible with SSLv2.

After merging this change from v0.10 to v0.12, this tests suite was
broken because commits 5d2aef17ee and
f4c8020d10 make SSL/TLS clients use a
default ciphers list that is not compatible with the SSLv2 protocol.

This change fixes two issues:
1) The cipher list that was setup for a given test was not passed
properly to the client.
2) When either or both of clients/servers were using SSLv2, tests were
expected to succeed when at least the server end was using SSLv2
compatible ciphers. Now, tests are expected to succeed only if
SSLv2 compatible ciphers are used on both ends.

Fixes #9020.

Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2015-01-14 17:36:45 -08:00
Julien Gilli
ae00e97ef2 test: fix test-crypto-stream.js
A recent merge of v0.10 to v0.12
(0c7f6ca830) upgraded OpenSSL to version
1.0.1j. In v0.10, this required test-crypto-stream.js to be fixed with
commit 707cc25011. Basically, instead of
returning the proper error, Err_get_error() would return 0 and the test
for the error message needed to be updated in test-crypto-stream.js.

However, in the v0.12 branch, crypto error messages are handled a bit
differently since commit 26a1b712ec
landed. Instead of returning the default OpenSSL error message, it makes
the decipher stream return a default message specific to Node.js.

This commit updates test-crypto-stream.js to test the error object
against the proper default error message.

Fixes #9019.

Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2015-01-14 17:34:39 -08:00
Sam Roberts
85360f06db cluster: don't assert if worker has no handles
Do not assume that all workers share all shared handles.

Signed-off-by: Julien Gilli <julien.gilli@joyent.com>
2015-01-14 16:27:13 -08:00
Sam Roberts
f260ef8c3e cluster: cluster.disconnect() should check status
Workers that are already disconnected but not yet exited should not be
disconnected, trying to do so raises exceptions.

Signed-off-by: Julien Gilli <julien.gilli@joyent.com>
2015-01-14 16:27:12 -08:00
Julien Gilli
307daedd2c Merge remote-tracking branch 'upstream/v0.10' into v0.12
Conflicts:
	test/simple/test-child-process-spawn-typeerror.js
2015-01-14 15:38:15 -08:00
Robert Kowalski
0c50195071 docs: delete unused/duplicate css files
- `sh.css` already exists in `api_assets`
 - `sh_vim-dark.css` is unused, but used in the repo `node-website`
        now

Reviewed-by: Trevor Norris <trev.norris@gmail.com>
Signed-off-by: Julien Gilli <julien.gilli@joyent.com>
2015-01-14 15:26:48 -08:00
cjihrig
0a430b9aec test: backport use executable in spawn() test
Backport 10703774f0 from the v0.12 branch.

Currently, the test-child-process-spawn-typeerror.js is
calling execFile() on a JavaScript source file, which is
causing failures on Windows. This commit switches to calling
spawn() on an actual executable.

Fixes #8930.

Signed-off-by: Julien Gilli <julien.gilli@joyent.com>
2015-01-13 14:54:44 -08:00
Julien Gilli
fbfe562d71 Merge remote-tracking branch 'upstream/v0.10' into v0.12
Conflicts:
	deps/v8/src/debug-debugger.js
	deps/v8/src/mirror-debugger.js
	deps/v8/src/platform-freebsd.cc
	deps/v8/src/platform-linux.cc
	deps/v8/src/platform-macos.cc
	deps/v8/src/platform-openbsd.cc
	deps/v8/src/platform-posix.cc
	deps/v8/src/platform-solaris.cc
	deps/v8/tools/gyp/v8.gyp
2015-01-13 12:39:14 -08:00
Julien Gilli
31051e5c7b deps: revert backport b593aa8 from v8 upstream
This reverts commit 45f1330425.

45f1330425 was basically breaking
node-inspector. V8 landed a patch upstream that would probably fix these
issues (see https://codereview.chromium.org/813873007), but without the
ability to properly test it in the wild, it's safer to just revert the
breaking change.

Fixes #8948.

Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2015-01-13 11:25:09 -08:00
Julien Gilli
21c2636c9a Merge remote-tracking branch 'upstream/v0.12' into merge-0-10-into-0-12 2015-01-12 18:36:08 -08:00
Julien Gilli
c315577994 child_process: fix test after latest merge
child_process.spawn's argument parsing is stricter in v0.12 than in
v0.10. Changes in tests merged from v0.10 that relied on the less-strict
argument parsing would fail. This change updates the test so that it
makes sure that the stricter argument parsing fails as expected.

This change also fixes a small typo introduced during the conflicts
resolution of said merge.
2015-01-12 17:40:47 -08:00
Colin Ihrig
29449349da fs: add access() and accessSync()
fs.exists() and fs.existsSync() do not follow the typical error first
callback convention. access() and accessSync() are added as alternatives
in this commit.

PR-URL: https://github.com/joyent/node/pull/8714
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2015-01-12 16:59:34 -08:00
Fedor Indutny
7f4b45dbe8 openssl: fix keypress requirement in apps on win32
Original source:

http://openssl.6102.n7.nabble.com/PATCH-s-client-Fix-keypress-requirement-with-redirected-input-on-Windows-td46787.html

Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-01-12 16:51:46 -08:00
cjihrig
10703774f0 test: use executable in spawn() test
Currently, the test-child-process-spawn-typeerror.js is
calling execFile() on a JavaScript source file, which is
causing failures on Windows. This commit switches to calling
spawn() on an actual executable.

Reviewed-by: Sam Roberts <sam@strongloop.com>
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2015-01-12 16:51:29 -08:00
Julien Gilli
e64ee2b3f7 tests: append instead of override environment
Some tests that rely on some environment variables being passed to child
processes would fail because they reset the child processes'
environement instead of appending to it. This would break on test
environments where some custom environment variables are needed to make
node work properly.

Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2015-01-12 16:51:14 -08:00
Julien Gilli
7325fe7987 src: fix indentation in _tls_wrap.js
Fix indentation issue in code added during the latest merge. This change
makes jslint pass for _tls_wrap.js.
2015-01-12 16:49:33 -08:00
Ben Noordhuis
6ebd85e105 v8: don't busy loop in cpu profiler thread
Reduce the overhead of the CPU profiler by replacing sched_yield() with
nanosleep() in V8's tick event processor thread.  The former only yields
the CPU when there is another process scheduled on the same CPU.

Before this commit, the thread would effectively busy loop and consume
100% CPU time.  By forcing a one nanosecond sleep period rounded up to
the task scheduler's granularity (about 50 us on Linux), CPU usage for
the processor thread now hovers around 10-20% for a busy application.

PR-URL: https://github.com/joyent/node/pull/8789
Ref: https://github.com/strongloop/strong-agent/issues/3
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2015-01-12 16:49:07 -08:00
Julien Gilli
893fe4c67d deps: remove duplicate uv__loop_configure
The latest merge resulted in uv__loop_configure being defined twice on
Windows. This changes removes one of these duplicates to fix the build
on this platform.
2015-01-12 16:47:56 -08:00
Julien Gilli
0c7f6ca830 Merge remote-tracking branch 'upstream/v0.10' into merge-0-10-into-0-12
Conflicts:
	AUTHORS
	ChangeLog
	configure
	deps/uv/AUTHORS
	deps/uv/ChangeLog
	deps/uv/README.md
	deps/uv/config-unix.mk
	deps/uv/include/uv-private/uv-win.h
	deps/uv/include/uv.h
	deps/uv/src/unix/internal.h
	deps/uv/src/unix/kqueue.c
	deps/uv/src/unix/stream.c
	deps/uv/src/uv-common.c
	deps/uv/src/uv-common.h
	deps/uv/src/version.c
	deps/uv/src/win/poll.c
	deps/uv/test/test-osx-select.c
	deps/v8/src/debug-debugger.js
	deps/v8/src/isolate.cc
	deps/v8/src/isolate.h
	deps/v8/src/mirror-debugger.js
	doc/api/buffer.markdown
	doc/api/child_process.markdown
	doc/api/dns.markdown
	doc/api/tls.markdown
	doc/api/url.markdown
	lib/_stream_writable.js
	lib/assert.js
	lib/child_process.js
	lib/crypto.js
	lib/dgram.js
	lib/http.js
	lib/net.js
	lib/timers.js
	lib/tls.js
	src/node.cc
	src/node.h
	src/node.js
	src/node_crypto.cc
	src/node_version.h
	test/common.js
	test/simple/test-child-process-spawn-typeerror.js
	tools/certdata.txt
2015-01-12 15:59:37 -08:00
cjihrig
1fad3730c2 test: fix test-process-active-wraps.js
b636ba8186 caused a regression
on Windows due to the way server handles are cleaned up. This
commit fixes the test by allowing the handle to be cleaned up.

Fixes: https://github.com/joyent/node/issues/8986
PR-URL: https://github.com/joyent/node/pull/8998
Reviewed-By: Julien Gilli <julien.gilli@joyent.com>
Reviewed-By: Bert Belder <bertbelder@gmail.com>
2015-01-08 18:41:51 -05:00
Chris Dickinson
c8ef97e4d9 src,zlib: revert concatenated-stream changes
Revert "src: fix windows build error" and "zlib: support
concatenated gzip files". Treating subsequent data as a
concatenated stream breaks npm install.

This reverts commits 93533e98f7
and 6f6a97958e.

Fixes: https://github.com/joyent/node/issues/8962
PR-URL: https://github.com/joyent/node/pull/8985
Reviewed-By: Julien Gilli <julien.gilli@joyent.com>
2015-01-07 14:29:11 -08:00
Trevor Norris
372a2f56be smalloc: fix bad assert for zero length data
If the data length passed to smalloc.alloc() the array_length will be
zero, causing an overflow check to fail. This prevents that from
happening.

Signed-off-by: Trevor Norris <trev.norris@gmail.com>
2015-01-05 02:24:40 -08:00
cjihrig
b636ba8186 net: make connect() input validation synchronous
Socket.prototype.connect() sometimes throws on bad inputs
after an asynchronous operation. This commit makes the input
validation synchronous. This commit also removes some hard
coded IP addresses.

PR-URL: https://github.com/joyent/node/pull/8180
Fixes: https://github.com/joyent/node/issues/8140
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
2015-01-03 20:02:27 -05:00
Steven R. Loomis
8cfbeed27a docs: update to authors file
PR-URL: https://github.com/joyent/node/pull/8964
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2015-01-02 17:31:20 -08:00
Steven R. Loomis
a30839576c build: i18n: add icu config options
Make "--with-intl=none" the default and add "intl-none" option to
vcbuild.bat.

If icu data is missing print a warning unless either --download=all or
--download=icu is set. If set then automatically download, verify (MD5)
and unpack the ICU data if not already available.

There's a "list" of URLs being used, but right now only the first is
picked up. The logic works something like this:

* If there is no directory deps/icu,
  * If no zip file (currently icu4c-54_1-src.zip),
    * Download zip file (icu-project.org -> sf.net)
  * Verify the MD5 sum of the zipfile
    * If bad, print error and exit
  * Unpack the zipfile into deps/icu
* If deps/icu now exists, use it, else fail with help text

Add the configuration option "--with-icu-source=..."

Usage:
  * --with-icu-source=/path/to/my/other/icu
  * --with-icu-source=/path/to/icu54.zip
  * --with-icu-source=/path/to/icu54.tgz
  * --with-icu-source=http://example.com/icu54.tar.bz2

Add the configuration option "--with-icu-locals=...".  Allows choosing
which locales are used in the "small-icu" case.

Example:
    configure --with-intl=small-icu --with-icu-locales=tlh,grc,nl

(Also note that as of this writing, neither Klingon nor Ancient Greek
are in upstream CLDR data. Serving suggestion only.)

Don't use hard coded ../../out paths on windows. This was suggested by
@misterdjules as it causes test failures.  With this fix, "out" is no
longer created on windows and the following can run properly:

    python tools/test.py simple

Reduce space by about 1MB with ICU 54 (over without this patch). Also
trims a few other source files, but only conditional on the exact ICU
version used. This is to future-proof - a file that is unneeded now may
be needed in future ICUs.

Also:
  * Update distclean to remove icu related files
  * Refactor some code into tools/configure.d/nodedownload.py
  * Update docs
  * Add test

PR-URL: https://github.com/joyent/node/pull/8719
Fixes: https://github.com/joyent/node/issues/7676#issuecomment-64704230
[trev.norris@gmail.com small change to test's whitespace and logic]
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
2015-01-02 16:51:53 -08:00
CGavrila
6a03fce16e url: improve parsing speed
The url.parse() function now checks whether an escapable character is in
the URL before trying to escape it.

PR-URL: https://github.com/joyent/node/pull/8638
[trev.norris@gmail.com: Switch to use continue instead of if]
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
2014-12-30 14:00:19 -08:00
Timothy J Fontaine
fe2019699a Now working on 0.10.36 2014-12-23 17:31:00 -08:00
Timothy J Fontaine
cd6dff9728 Merge branch 'v0.10.35-release' into v0.10 2014-12-23 17:30:32 -08:00
Timothy J Fontaine
a363f61ca8 2014.12.22, Version 0.10.35 (Stable)
* tls: re-add 1024-bit SSL certs removed by f9456a2 (Chris Dickinson)

* timers: don't close interval timers when unrefd (Julien Gilli)

* timers: don't mutate unref list while iterating it (Julien Gilli)
2014-12-22 13:22:32 -08:00
James M Snell
102a861ec2 doc: clarify buffer api documentation
Better wording for start and end parameters, also document .length
should be considered readonly.

RE: #8857, #8859, #8913
PR: #8910
PR-URL: https://github.com/joyent/node/pull/8910

Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
2014-12-22 12:24:28 -08:00
James M Snell
48536394c9 doc: clarify add/removeListener semantics
Clarify that adding or removing a listener is not idempotent.

RE: #8853
PR: #8911
PR-URL: https://github.com/joyent/node/pull/8911
Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
2014-12-22 12:12:48 -08:00
Julien Gilli
fd2cb7c611 timers: don't mutate unref list while iterating it
Commit 934bfe23a1 had introduced a
regression where node would crash trying to access a null unref timer if
a given unref timer's callback would remove other unref timers set to
fire in the future.

More generally, it makes the unrefTimeout function more solid by not
mutating the unrefList while traversing it.

Fixes #8897.

Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2014-12-22 11:45:31 -08:00
Chris Dickinson
1425ccd1b2 src: re-add 1024-bit SSL certs removed by f9456a2
this fixes a problem where connecting to AWS services
would report an untrusted cert error.

Fixes: https://github.com/joyent/node/issues/8894
PR-URL: https://github.com/joyent/node/pull/8904
Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
Reviewed-By: Julien Gilli <julien.gilli@joyent.com>
2014-12-19 17:11:40 -08:00
Julien Gilli
78db74dd88 timers: don't close interval timers when unrefd
This change fixes a regression introduced by commit
0d051238be, which contained a typo that
would cause every unrefd interval to fire only once.

Fixes #8900.

Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-12-19 15:41:55 -08:00
Jackson Tian
890baa03a8 doc: add details for http res/req end callback
Add documentation for the callback parameter of http.ClientRequest's and
http.ServerResponse's end methods.

Signed-off-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-19 13:02:47 -08:00
Chris Dickinson
91586661c9 stream: switch _writableState.buffer to queue
In cases where many small writes are made to a stream
lacking _writev, the array data structure backing the
WriteReq buffer would greatly increase GC pressure.

Specifically, in the fs.WriteStream case, the
clearBuffer routine would only clear a single WriteReq
from the buffer before exiting, but would cause the
entire backing array to be GC'd. Switching to [].shift
lessened pressure, but still the bulk of the time was
spent in memcpy.

This replaces that structure with a linked list-backed
queue so that adding and removing from the queue is O(1).
In the _writev case, collecting the buffer requires an
O(N) loop over the buffer, but that was already being
performed to collect callbacks, so slowdown should be
neglible.

PR-URL: https://github.com/joyent/node/pull/8826
Reviewed-by: Timothy J Fontaine <tjfontaine@gmail.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-12-18 09:39:05 -08:00
Timothy J Fontaine
1b81ea8276 Now working on 0.10.35 2014-12-17 14:39:51 -08:00
Timothy J Fontaine
a6757fb9d0 Merge branch 'v0.10.34-release' into v0.10 2014-12-17 14:39:24 -08:00
Ben Noordhuis
93533e98f7 src: fix windows build error
Fix a Windows-only build error that was introduced in
commit 1183ba4 ("zlib: support concatenated gzip files").

Rename the NO_ERROR and FAILED enumerations, they conflict
with macros of the same name in <winerror.h>.

PR-URL: https://github.com/joyent/node/pull/8893
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-by: Timothy J Fontaine <tjfontaine@gmail.com>
2014-12-17 14:13:20 -08:00
Timothy J Fontaine
52795f8fcc 2014.12.17, Version 0.10.34 (Stable)
* uv: update to v0.10.30

* zlib: upgrade to v1.2.8

* child_process: check execFile args is an array (Sam Roberts)

* child_process: check fork args is an array (Sam Roberts)

* crypto: update root certificates (Ben Noordhuis)

* domains: fix issues with abort on uncaught (Julien Gilli)

* timers: Avoid linear scan in _unrefActive. (Julien Gilli)

* timers: fix unref() memory leak (Trevor Norris)

* v8: add api for aborting on uncaught exception (Julien Gilli)

* debugger: fix when using "use strict" (Julien Gilli)
2014-12-17 13:21:23 -08:00
Miroslav Bajtoš
e93ff4f0ce debugger: fix unhandled error in setBreakpoint
Fix Interface.setBreakpoint() to correctly handle an attempt to set a
breakpoint in the current script when there is no current script.
This usually happens when the debugged process is not paused.

Fixes: https://github.com/joyent/node/issues/6453
PR-URL: https://github.com/joyent/node/pull/6460
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-12-17 13:00:48 -08:00
Trevor Norris
afb488db86 Revert "src: reduce cpu profiler overhead"
This reverts commit 1eb1e0a9af.
2014-12-17 12:45:23 -08:00
Ben Noordhuis
1eb1e0a9af src: reduce cpu profiler overhead
Reduce the overhead of the CPU profiler by suppressing SIGPROF signals
when sleeping / polling for events. Avoids unnecessary wakeups when the
CPU profiler is active. Depends on https://github.com/libuv/libuv#15.

Ref: https://github.com/strongloop/strong-agent/issues/3
PR-URL: https://github.com/joyent/node/pull/8791
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-12-17 12:37:30 -08:00
cjihrig
f75a8ad723 test: remove redundant code in test
A block of asserts were duplicated in
test/simple/test-child-process-spawn-typeerror.js. This commit
removes the duplicated asserts.

Fixes: https://github.com/joyent/node/pull/8454
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2014-12-17 15:08:22 -05:00
Julien Gilli
542234ad98 doc: improve dns module's documentation
Make the difference between dns.lookup and other functions even clearer.

PR: #8747
Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
2014-12-17 11:54:31 -08:00
Julien Gilli
45f1330425 deps: backport b593aa8 from v8 upstream
Original commit message:

Enable "strict mode"; for debugger scripts

BUG=v8:3708

Review URL: https://codereview.chromium.org/736583007

Cr-Commit-Position: refs/heads/master@{#25420}
2014-12-17 11:47:26 -08:00
Julien Gilli
0ff51c6e06 deps: backport 2ad2237 from v8 upstream
Original commit message:

Fix Unhandled ReferenceError in debug-debugger.js

This fixes following exception in Sky on attempt to set a breakpoint
"Unhandled: Uncaught ReferenceError: break_point is not defined"
I think this happens in Sky but not in Chrome because Sky scripts are executed in strict mode.

BUG=None
LOG=N
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/741683002

Cr-Commit-Position: refs/heads/master@{#25415}
2014-12-17 11:47:26 -08:00
Shigeki Ohtsu
bddea12026 doc: Update LICENSE for zlib 1.2.8 2014-12-16 15:35:09 -08:00
Shigeki Ohtsu
710845cfd3 deps: fix zlib.gyp for zlib upgrade to 1.2.8
This adds new sources for gzip files and defines a new flag for mac and freebsd.
They are taken from third_party/zlib/zlib.gyp in Chromium repository.
2014-12-16 15:35:09 -08:00
Shigeki Ohtsu
33f74bbd90 deps: upgrade zlib to 1.2.8 2014-12-16 15:35:09 -08:00
Luis Reis
6f6a97958e zlib: support concatenated gzip files
Reviewed-By: Fedor Indutny <fedor@indutny.com>
PR-URL: https://github.com/joyent/node/pull/6442
2014-12-16 15:11:50 -08:00
Julien Gilli
934bfe23a1 timers: Avoid linear scan in _unrefActive.
Before this change, _unrefActive would keep the unrefList sorted when
adding a new timer.

Because _unrefActive is called extremely frequently, this linear scan
(O(n) at worse) would make _unrefActive show high in the list of
contributors when profiling CPU usage.

This commit changes _unrefActive so that it doesn't try to keep the
unrefList sorted. The insertion thus happens in constant time.

However, when a timer expires, unrefTimeout has to go through the whole
unrefList because it's not ordered anymore.

It is usually not large enough to have a significant impact on
performance because:
- Most of the time, the timers will be removed before unrefTimeout is
  called because their users (sockets mainly) cancel them when an I/O
  operation takes place.
- If they're not, it means that some I/O took a long time to happen, and
  the initiator of subsequents I/O operations that would add more timers
  has to wait for them to complete.

With this change, _unrefActive does not show as a significant
contributor in CPU profiling reports anymore.

Fixes #8160.
PR-URL: #8751

Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
2014-12-16 11:44:23 -08:00
Ben Burns
5b9e5bdd03 doc: clarify create{Read,Write}Stream fd option
Clarify the fd option: it is preferred to the path parameter, omits
the "open" event if given, and is available on WriteStreams as well.

PR-URL: https://github.com/joyent/node/issues/7707
Fixes: https://github.com/joyent/node/issues/7707
Fixes: https://github.com/joyent/node/issues/7708
Fixes: https://github.com/joyent/node/issues/4367
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-12-15 22:25:58 -08:00
Trevor Norris
813114dab0 src: remove icu_config
ICU support in v0.12 generates a new icu_config.gypi. This was
accidentally committed after switching branches. The file has been removed
and added to .gitignore.

Fixes: 0d051238 "timers: fix unref() memory leak"
2014-12-15 15:36:00 -08:00
Steven R. Loomis
69b122a642 build: configure return exit status from gyp
Previously, 'configure' would not return an exit status
if gyp blows up. This can be tested via:

    date >> node.gyp ; ./configure && echo A-OK

You will get "A-OK" even though gyp had failed.

Signed-off-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-15 13:55:11 -08:00
Julien Gilli
0603c8345b docs: clarify url.format documentation
The original documentation was slightly confusing. It seemed that the
list of items described the properties of the urlObj object, while it
was actually describing the formatting process. This change makes this
clearer.

Fixes #8796.

Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-12-15 12:29:36 -08:00
silverwind
d230fa9eb7 doc: fix typo secureOptions in tls
Documentation mentioned 'securityOptions', where it should have read
'secureOptions'.

Fixes #8608.

Signed-off-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-11 23:27:49 -08:00
cjihrig
4bba87050c test: add test for spawnSync() env option
PR-URL: https://github.com/joyent/node/pull/8845
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-12-11 10:32:56 -08:00
Juanjo
946cec7b65 lib,src: fix spawnSync ignoring its 'env' option
PR-URL: https://github.com/joyent/node/pull/8546
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2014-12-11 10:31:06 -08:00
Alexis Campailla
8708c7abe5 test: mark more tests as flaky
Marking these two tests as flaky, since they have been failing
intermittenly in recent builds:
test-debug-signal-cluster
test-cluster-basic
2014-12-10 12:58:32 +01:00
Saúl Ibarra Corretgé
20a7088d9c deps: update libuv to 1.0.2
PR-URL: https://github.com/joyent/node/pull/8847
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-12-09 17:03:50 -08:00
Saúl Ibarra Corretgé
1c031c84d2 deps: update libuv to 0.10.30
PR-URL: https://github.com/joyent/node/pull/8849
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-12-09 12:41:46 -08:00
Julien Gilli
4dc660e164 build: do not generate support for libuv's probes
Dtrace probes were removed from libuv recently, but their usage by node
was not completely removed, causing build breaks on SmartOS.

Even though the build is working on other platforms, these probes are
not fired by libuv anymore, so there's no point in using them on these
platforms too.

Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-12-09 12:06:33 -08:00
pkcs
8120015f40 doc: clearer log messages in net code samples
Code examples in documentation for net.createServer and
net.createConnection contained confusing log messages. This change makes
them clearer.

Signed-off-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-08 15:23:22 -08:00
Alejandro Oviedo
f5cb330ab1 docs: fix streams example for write() after end()
Currently there's an example using http.ServerResponse stream, which
has a known bug and will not throw an error while writing after end().
Changed to a writable stream from fs which behaves as expected.

fix #8814

Signed-off-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-06 19:27:05 -08:00
Brendan Ashworth
5e503f45d2 doc: fix grammar in tls and timers
Replace 'a' with 'an' where appropriate.
2014-12-05 14:12:48 -08:00
Brendan Ashworth
70195acbe3 doc: fix grammar and wording in tls and timers
In `tls.markdown`, there was a misuse of 'a' which has been replaced
with 'an'.

In `timers.markdown`...
  line 31: misuse of 'a', replaced with 'an'
  line 59: unclear wording, haywire 'a', added new comma
2014-12-05 12:30:40 -08:00
Jackson Tian
9653c4b8c7 doc: mention callback for http res/req write & end
Add documentation for the callback parameter of http.ClientRequest's and
http.ServerResponse's write and end methods.
2014-12-05 10:59:40 -08:00
Trevor Norris
fe6d5be6b4 uv: float patch to revert tty breakage
Float https://github.com/libuv/libuv/commit/484a3a9 to fix incorrect
indentation in REPL.
2014-12-05 05:34:03 -08:00
Trevor Norris
709fc160e5 async-wrap: add event hooks
Call a user-defined callback at specific points in the lifetime of an
asynchronous event. Which are on instantiation, just before/after the
callback has been run.

**If any of these callbacks throws an exception, there is no forgiveness
or recovery. A message will be displayed and a core file dumped.**

Currently these only tie into AsyncWrap, meaning no call to a hook
callback will be made for timers or process.nextTick() events. Though
those will be added in a future commit.

Here are a few notes on how to make the hooks work:

- The "this" of all event hook callbacks is the request object.

- The zero field (kCallInitHook) of the flags object passed to
  setupHooks() must be set != 0 before the init callback will be called.

- kCallInitHook only affects the calling of the init callback. If the
  request object has been run through the create callback it will always
  run the before/after callbacks. Regardless of kCallInitHook.

- In the init callback the property "_asyncQueue" must be attached to
  the request object. e.g.

  function initHook() {
    this._asyncQueue = {};
  }

- DO NOT inspect the properties of the object in the init callback.
  Since the object is in the middle of being instantiated there are some
  cases when a getter is not complete, and doing so will cause Node to
  crash.

PR-URL: https://github.com/joyent/node/pull/8110
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Alexis Campailla <alexis@janeasystems.com>
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-05 05:00:45 -08:00
Trevor Norris
419f18d2e2 async-wrap: explicitly pass parent
When instantiating a new AsyncWrap allow the parent AsyncWrap to be
passed. This is useful for cases like TCP incoming connections, so the
connection can be tied to the server receiving the connection.

Because the current architecture instantiates the *Wrap inside a
v8::FunctionCallback, the parent pointer is currently wrapped inside a
new v8::External every time and passed as an argument. This adds ~80ns
to instantiation time.

A future optimization would be to add the v8::External as the data field
when creating the v8::FunctionTemplate, change the pointer just before
making the call then NULL'ing it out afterwards. This adds enough code
complexity that it will not be attempted until the current approach
demonstrates it is a bottle neck.

PR-URL: https://github.com/joyent/node/pull/8110
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Alexis Campailla <alexis@janeasystems.com>
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-05 04:57:01 -08:00
Trevor Norris
1293f0a228 async-wrap: expose async-wrap as binding
Expose basic hooks for AsyncWrap via the async_wrap binding. Right now
only the PROVIDER types are exposed. This is a preliminary step before
more functionality is added.

PR-URL: https://github.com/joyent/node/pull/8110
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Alexis Campailla <alexis@janeasystems.com>
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-05 04:56:45 -08:00
Trevor Norris
add955e6b8 src: remove unnecessary template parameter
The template class information is received via the type of the first
argument. So there is no need to use Wrap<T>(handle).

PR-URL: https://github.com/joyent/node/pull/8110
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Alexis Campailla <alexis@janeasystems.com>
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-05 04:55:26 -08:00
Trevor Norris
5962dbef49 src: all wrap's now use actual FunctionTemplate
Instead of simply creating a new v8::Object to contain the connection
information, instantiate a new instance of a FunctionTemplate. This will
allow future improvements for debugging and performance probes.

Additionally, the "provider" argument in the ReqWrap constructor is no
longer optional.

PR-URL: https://github.com/joyent/node/pull/8110
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Alexis Campailla <alexis@janeasystems.com>
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-05 04:52:42 -08:00
Trevor Norris
b1e9d330aa node: fix throws before timer module is loaded
An edge case could occur when the setImmediate() in _fatalException()
would fire before the timers module had been loaded globally, causing
Node to crash.

PR-URL: https://github.com/joyent/node/pull/8110
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Alexis Campailla <alexis@janeasystems.com>
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-05 04:52:19 -08:00
Trevor Norris
42df679c45 node, async-wrap: remove MakeDomainCallback
C++ won't deoptimize like JS if specific conditional branches are
sporadically met in the future. Combined with the amount of code
duplication removal and simplified maintenance complexity, it makes more
sense to merge MakeCallback and MakeDomainCallback.

Additionally, type casting in V8 before verifying what that type is will
cause V8 to abort in debug mode if that type isn't what was expected.
Fix this by first checking the v8::Value before casting.

PR-URL: https://github.com/joyent/node/pull/8110
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Alexis Campailla <alexis@janeasystems.com>
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-05 04:37:53 -08:00
Trevor Norris
2593c14131 async-wrap: move MakeCallback to .cc
MakeCallback is too large a function to be inlined. Likewise, only
having header files will not allow for any part of AsyncWrap to be
exposed cleanly via NODE_MODULE_CONTEXT_AWARE_BUILTIN().

PR-URL: https://github.com/joyent/node/pull/8110
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Alexis Campailla <alexis@janeasystems.com>
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-05 04:35:44 -08:00
Trevor Norris
b6559553a4 src: remove Async Listener
Async Listener was the name of the user-facing JS API, and is being
completely removed. Instead low level hooks directly into the mechanism
that AL used will be introduced in a future commit.

PR-URL: https://github.com/joyent/node/pull/8110
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Alexis Campailla <alexis@janeasystems.com>
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2014-12-05 04:33:26 -08:00
Alexis Campailla
0674cbaceb test: mark current flaky tests as flaky 2014-12-04 17:22:15 +01:00
Alexis Campailla
df3a2b2cf2 test: runner support for flaky tests
Adding --flaky-tests option, to allow regarding flaky tests failures
as non-fatal.

Currently only observed by the TapProgressIndicator, which will
add a # TODO directive to tests classified as flaky. According to the
TAP specification, the test harness is supposed to treat failures
that have a # TODO directive as non-fatal.
2014-12-04 17:22:14 +01:00
Fedor Indutny
8c868989be zlib: do not Unref() if wasn't Ref()ed
In very unlikely case, where `deflateInit2()` may return error (right
now happening only on exhausting all memory), the `ZCtx::Error()` will
be called and will try to `Unref()` the handle. But the problem is that
this handle was never `Ref()`ed, so it will trigger an assertion error
and crash the program.

Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: https://github.com/joyent/node/pull/8687
2014-12-04 18:10:13 +03:00
Ben Noordhuis
f9456a2d36 crypto: update root certificates
Update tools/certdata.txt to [0] (last updated on 2014-11-14) and
rebuild src/node_root_certs.h.

Refs joyent/node#8679 and joyent/node#8709.

[0] https://hg.mozilla.org/mozilla-central/raw-file/64206634959a/security/nss/lib/ckfw/builtins/certdata.txt
2014-12-04 16:57:48 +03:00
Ben Noordhuis
479b0b4e54 tools: customize mk-ca-bundle.pl
Remove unneeded functionality and tweak the generated output so we
can #include it in C++ source code.

This is a back-port of commit e159073 from the master branch.
2014-12-04 16:57:48 +03:00
Ben Noordhuis
3c9c920f57 tools: bundle mk-ca-bundle.pl from upstream curl
This is a back-port of commit 5ab863d from the master branch.
2014-12-04 16:57:48 +03:00
Trevor Norris
e67db0191d node: fix bad assert
It was my mistake to change an assert check. This changes it back to how
the assert was originally done.

Fixes: c131c1f "modules: adding load linked modules feature"
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
2014-12-03 17:19:07 -08:00
Carlos Campderrós
4815873bb5 doc: set logical umask in process.umask example
0644 seems to be the desired mode for new files (as it is a very weird
umask), and to achieve that the correct umask would be 0022.

PR-URL: https://github.com/joyent/node/pull/8039
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-12-02 22:35:36 -08:00
Jonathan Johnson
6120472036 url: change hostname regex to negate invalid chars
Regarding joyent/node#8520

This changes hostname validation from a whitelist regex approach
to a blacklist regex approach as described in https://url.spec.whatwg.org/#host-parsing.

url.parse misinterpreted `https://good.com+.evil.org/`
as `https://good.com/+.evil.org/`.  If we use url.parse to check the
validity of the hostname, the test passes, but in the browser the
user is redirected to the evil.org website.
2014-12-02 17:24:18 -08:00
Trevor Norris
c4f6c22c20 lint: fix code style
Couple code style fixes to pass cpplint

Fixes: 304c0b4 "crypto: store thread id as pointer-sized"
2014-12-02 17:10:40 -08:00
Yazhong Liu
d312b6d15c url: support path for url.format
this adds support for a "path" field that overrides
"query", "search", and "pathname" if given.

Fixes: https://github.com/joyent/node/issues/8722
PR-URL: https://github.com/joyent/node/pull/8755
Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-12-02 10:55:22 -08:00
Thorsten Lorenz
c131c1f920 modules: adding load linked modules feature
- introduced NM_F_LINKED flag to identify linked modules
- setting node_is_initialized after calling V8::Initialize in order to
  make the right decision during initial module registration
- introduced modlist_linked in order to track modules that were
  pre-registered in order to complete it once node is initialized
- completing registration of linked module similarly to the way it's
  done inside DLOpen

PR-URL: https://github.com/joyent/node/pull/8386
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-12-01 15:07:43 -08:00
Alexis Campailla
304c0b43aa crypto: store thread id as pointer-sized
In 59658a8de7
the return of uv_thread_self() was changed from unsigned long to
uv_thread_t.

uv_thread_t is a HANDLE (pointer-sized) on Windows, which means that
on Win64 it cannot be stored with CRYPTO_THREADID_set_numeric without
data loss.

Furthermore, without this change there will be a build break on Windows
when the libuv change is integrated into Node, because of the
conversion from HANDLE to unsigned long.

Other related commits:
5845a6bcd5
919d8ec63a
2014-11-28 13:12:14 +01:00
Alexis Campailla
cb8cadbe62 Revert "crypto: cast uv_thread_t to unsigned long"
This reverts commit 0308ad2ce5.
2014-11-28 13:11:36 +01:00
Saúl Ibarra Corretgé
0308ad2ce5 crypto: cast uv_thread_t to unsigned long
Should work in all platforms and it fixes this compilation problem
on OSX:

../src/node_crypto.cc:154:3: error: no matching function for call to
'CRYPTO_THREADID_set_numeric'
  CRYPTO_THREADID_set_numeric(tid, uv_thread_self());
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../deps/openssl/openssl/include/openssl/../../crypto/crypto.h:435:6:
    note: candidate function not viable: no known conversion from
          'uv_thread_t' (aka '_opaque_pthread_t *') to 'unsigned long'
          for 2nd argument
          void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned
          long val);
               ^
               1 error generated.

PR-URL: https://github.com/joyent/node/pull/8785
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-26 15:57:21 -08:00
Saúl Ibarra Corretgé
69904c8a78 deps: update libuv to 1.0.1
PR-URL: https://github.com/joyent/node/pull/8785
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-26 15:56:48 -08:00
Vladimir Kurchatkin
bf3e0f417b smalloc: don't allow to dispose typed arrays
PR-URL: https://github.com/joyent/node/pull/8743
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-26 12:39:02 -08:00
Trevor Norris
0d051238be timers: fix unref() memory leak
The destructor isn't being called for timers that have been unref'd.

Fixes: https://github.com/joyent/node/issues/8364
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
2014-11-26 12:27:57 -08:00
Nathan Woltman
e0a0e913c7 path: refactor normalizeArray()
The normalizeArray() function now avoids using the slow Array#splice()
method to improve performance and now also filters out empty path parts.

Code that pre-filtered empty parts has been removed.

PR-URL: https://github.com/joyent/node/pull/8724
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-26 12:16:56 -08:00
Saúl Ibarra Corretgé
9d9ed61c5a deps: update libuv to 1.0.0
PR-URL: https://github.com/joyent/node/pull/8762
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-26 12:08:36 -08:00
Rory Bradford
2d17193f20 path: added parse() and format() functions
The parse() function splits a path and returns an object
with the different elements. The format() function is the
reverse of this and adds an objects corresponding path
elements to make up a string. Fixes #6976.

Fixes: https://github.com/joyent/node/issues/6976
PR-URL: https://github.com/joyent/node/pull/8750
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2014-11-20 16:21:11 -08:00
Timothy J Fontaine
6a90a06002 path: allow calling platform specific methods
Add path.posix and path.win32 which have the specific methods like
resolve and normalize so you can specifically normalize or resolve
based on the target platform.

PR-URL: https://github.com/joyent/node/pull/5661
Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-11-20 16:10:55 -08:00
Steve Sharp
4dc8b26bbe doc: correct broken link in net.markdown
Fixes broken link to Readable Stream documentation.

Fixes: https://github.com/joyent/node/issues/8464
PR-URL: https://github.com/joyent/node/pull/8756
Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-11-20 15:38:29 -08:00
MK Safi
6a6782343c doc: clarify return value of http.createServer
PR-URL: https://github.com/joyent/node/pull/6054
Reviewed-by: Isaac Z. Schlueter <i@izs.me>
Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-11-19 14:18:50 -08:00
Sam Roberts
3a08b7c3e0 doc: cover stdio option in child_process
- Add hyperlinks from spawn options to subsections detailing what
those options do.
- Clarify some verbiage around ChildProcess.prototype.std{in,out,err}.
- Remove second-person pronoun.

PR-URL: https://github.com/joyent/node/pull/8639
Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-11-18 19:28:46 -08:00
Trevor Norris
a1b2875afd lint: fix lint issues
Forgot to fix these before landing the patch.

Fixes: e17c5a72
2014-11-18 16:42:10 -08:00
Julien Gilli
caeb67735b domains: fix issues with abort on uncaught
Do not abort the process if an error is thrown from within a domain, an
error handler is setup for the domain and --abort-on-uncaught-exception
was passed on the command line.

However, if an error is thrown from within the top-level domain's error
handler and --abort-on-uncaught-exception was passed on the command
line, make the process abort.

Fixes: https://github.com/joyent/node/issues/8631
Fixes: https://github.com/joyent/node/issues/8630
PR-URL: https://github.com/joyent/node/pull/8666
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-18 16:39:39 -08:00
Trevor Norris
fbff7054a4 v8: add api for aborting on uncaught exception
Add v8::Isolate::SetAbortOnUncaughtException() so the user can be
notified when an uncaught exception has bubbled.

PR-URL: https://github.com/joyent/node/pull/8666
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-18 16:37:54 -08:00
Sam Roberts
8032a21025 test: test all spawn parameter positions
PR-URL: https://github.com/joyent/node/pull/8454
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-18 16:20:31 -08:00
Sam Roberts
70dafa7b62 child_process: check fork args is an array
Optional fork args should be type-checked with same behaviour as the
equivalent argument to spawn.

PR-URL: https://github.com/joyent/node/pull/8454
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-18 16:20:21 -08:00
Sam Roberts
e17c5a72b2 child_process: check execFile args is an array
execFile and spawn have same API signature with respect to optional arg
array and optional options object, they should have same behaviour with
respect to argument validation.

PR-URL: https://github.com/joyent/node/pull/8454
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-18 16:20:06 -08:00
Sam Roberts
2ff29cc7e3 test: use assert.throw to test exceptions
The test wasn't checking directly that an assertion was thrown. Instead,
it was checking that spawn did not sucessfully spawn a non-existent
command.

However, the command chosen, dir, exists in GNU coreutils, so it exists
on Linux (though not on BSD derived OS X). The test as written passed on
Linux, even with the TypeError it is supposed to be checking for deleted
from spawn(). It would also pass on Windows if a ls.exe existed.

The approach is unnecessarily obscure, assert.throw() is for asserting
code throws, using it is more clear and works regardless of what
commands do or do not exist.

PR-URL: https://github.com/joyent/node/pull/8454
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-18 16:19:52 -08:00
Sam Roberts
13a992b1c2 doc: document the fds behind stdin/out/err
Its common knowledge on unix, but node documentation depends on knowing
this, as it exposes both streams named after stdio, and the fd numbers,
so make this explicit.

Fixes: https://github.com/joyent/node/pull/8624
PR-URL: https://github.com/joyent/node/pull/8454
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-18 16:19:21 -08:00
Artur Cistov
adc0206de9 doc: fix typos in http.markdown
PR-URL: https://github.com/joyent/node/pull/4784
Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-11-17 15:35:00 -08:00
Chris Dickinson
0fef250090 dns: propagate domain for c-ares methods
Fixes: https://github.com/joyent/node/issues/5471
PR-URL: https://github.com/joyent/node/pull/8732
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-17 12:34:37 -08:00
Sam Roberts
743a009bad process: pid can be a string in process.kill()
Not allowing string was a change from v0.10 behaviour, commented on in
joyent/node#7991. Allow them again, but still check that argument is
numberish. Also, simplify the fragile and non-portable test code
introduced in 832ec1cd50 that required fixups 2a415358ee, and
ef3c4ed3d.

PR-URL: https://github.com/joyent/node/pull/8531
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-17 12:15:54 -08:00
Vladimir Kurchatkin
f6556b678d fs: fix symlink error message
the arguments were swapped, so fs.symlink{Sync,} would
report that the wrong file EEXIST'd in error.

Fixes: https://github.com/joyent/node/issues/8651
Fixes: https://github.com/joyent/node/issues/4314
Fixes: https://github.com/joyent/node/issues/5381
PR-URL: https://github.com/joyent/node/pull/8657
Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-11-15 17:01:13 -08:00
Julien Gilli
5ff59453a4 doc: clarify dns.lookup vs dns.resolve
Clarify and emphasize the differences between dns.lookup and the rest of
the functions in the dns module.

PR-URL: https://github.com/joyent/node/pull/8726
Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-11-14 12:33:34 -08:00
haoxin
00d7b13a18 module: correct the order of the assertions
this puts the type-checking assertions in require
into proper order.

PR-URL: https://github.com/joyent/node/pull/8333
Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
2014-11-13 19:58:52 -08:00
Steven Loomis
855b1c98ca build: i18n: support little-endian machines
Note that this may not affect anything until powerpc support lands in
v8.

Related: https://github.com/srl295/node/issues/7
Related: ba8ab91bc4
PR-URL: https://github.com/joyent/node/pull/8712
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-13 11:25:55 -08:00
Steven R. Loomis
ea4dc7d444 build: i18n: fix icu toolset dependencies
So what I did here is to make the icutools library actually contain the
entire ICU dependencies needed for host-side tools. Sadly, this will
build ICU twice, but avoids conflicts between host and target side.
This all seems like a gyp bug of some sort, but without docs for
toolsets, who’s to say?

I removed the icuio library as a separate target, because it was only
used by the host-side tools.

PR-URL: https://github.com/joyent/node/pull/8681
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-11 16:18:22 -08:00
Steven R. Loomis
0339446cf7 build: i18n: fix build on OSX
Fix config option that doesn't work with OSX.

Fixes: https://github.com/joyent/node/issues/8521
PR-URL: https://github.com/joyent/node/pull/8602
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-11 16:14:59 -08:00
Eric Mill
88bd95cfef doc: update openssl commands to use best practices
This updates key size to 2048 and default hash function to sha256.

Reviewed-By: Fedor Indutny <fedor@indutny.com>
PR-URL: https://github.com/joyent/node/pull/8690
2014-11-11 20:39:57 +03:00
sudodoki
fd2226894a doc: note ability to require files within packages
Adding note to api/modules.markdown about ability to
load arbitrary path from modules from node_module path
by adding reference to path after module name in call
to require()

PR-URL: https://github.com/joyent/node/pull/7794
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Timothy J Fontaine <tjfontaine@gmail.com>
2014-11-09 21:46:35 -08:00
Jackson Tian
d8a3c4ab2a tls: remove tls.createSecurePair code deprecation
In https://github.com/joyent/node/pulls/8695, the deprecation was
removed from doc.  This removes the deprecation from the code.

PR-URL: https://github.com/joyent/node/pull/8700
Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
2014-11-09 21:39:24 -08:00
Chris Dickinson
03bae7bded doc: remove tls.createSecurePair deprecation
pending tls.TLSSocket growing the ability to work
with streams, createSecurePair will remain.

PR-URL: https://github.com/joyent/node/pull/8695
Reviewed-by: Fedor Indutny <fedor@indutny.com>
2014-11-07 14:33:05 -08:00
Trevor Norris
5845a6bcd5 uv: revert change causing build failures
Revert uv_thread_self() to return unsigned long instead of uv_thread_t.
This was causing a build failure on Windows and is only a temporary fix
until the proper patch lands upstream.

Reverts: https://github.com/joyent/libuv/commit/59658a8
Fixes: ce112c2 "deps: update uv to v1.0.0-rc2"
2014-11-07 13:44:09 -08:00
Saúl Ibarra Corretgé
e46cbaa06d core: fix usage of uv_cwd
It was modified in libuv to be consistent with uv_exepath and not
include the trailing NULL byte in the returned size.

PR-URL: https://github.com/joyent/node/pull/8566
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-05 16:51:12 -08:00
Saúl Ibarra Corretgé
a5f1307e45 core: replace uv_fs_readdir with uv_fs_scandir
PR-URL: https://github.com/joyent/node/pull/8566
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-05 16:50:58 -08:00
Saúl Ibarra Corretgé
ce112c27c6 deps: update uv to v1.0.0-rc2
PR-URL: https://github.com/joyent/node/pull/8566
Reviewed-by: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-05 16:49:57 -08:00
Timothy J Fontaine
28ae70ebad npm: Upgrade to v2.1.6 2014-11-05 10:35:43 -08:00
Forrest L Norvell
272aa589af test: more thorough tests for npm 2014-11-05 10:35:42 -08:00
Julien Gilli
3589a62104 build: fix build for SmartOS
This change in V8: https://code.google.com/p/v8/source/detail?r=22210
has introduced a method named OS::GetCurrentThreadId which fails to
compile on OSes where a "gettid" syscall does not exist.

This build issue has been fixed upstream by several changes:
- https://code.google.com/p/v8/source/detail?r=23459.
- https://codereview.chromium.org/649553002
- https://codereview.chromium.org/642223003

Another minor fix to the upstream changes was also necessary.
See https://code.google.com/p/v8/issues/detail?id=3620 for
more information.

The other build issue was due to the fact that alloca.h is not included
by other system includes on SmartOS, which is assumed by V8.

Built and tested on Linux, MacOS X, Windows and SmartOS.
2014-11-05 10:35:42 -08:00
Vladimir Kurchatkin
f65a5cbcde smalloc: check if obj has external data
PR-URL: https://github.com/joyent/node/pull/8655
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-05 00:33:00 -08:00
Fedor Indutny
d435f4b3eb Merge remote-tracking branch 'joyent/v0.10' into v0.10 2014-11-04 00:11:23 -05:00
Vladimir Kurchatkin
849fcdeca0 smalloc: fix copyOnto optimization
copyOnto is broken when one argument has 1 byte size and the other > 1
byte.

PR-URL: https://github.com/joyent/node/pull/8637
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-10-30 15:49:02 -07:00
cjihrig
c2b4f4809b net: add pauseOnConnect option to createServer()
Currently when a server receives a new connection the underlying socket
handle begins reading data immediately. This causes problems when
sockets are passed between processes, as data can be read by the first
process and thus never read by the second process.

This commit allows sockets that are constructed with a handle to be
paused initially.

PR-URL: https://github.com/joyent/node/pull/8576
Fixes: https://github.com/joyent/node/issues/7905
Fixes: https://github.com/joyent/node/issues/7784
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-10-27 14:11:20 -07:00
Vladimir Kurchatkin
15aa47e261 docs: fix smalloc.dispose() example
Also couple of additions about dispose and limitations of smalloc'ed
objects.

Fixes: https://github.com/joyent/node/pull/8625
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-10-27 12:58:05 -07:00
Trevor Norris
6a68d64629 lint: fix whitespace issues
Fixes: f6e5740 "path: resolve normalize drive letter to lower case"
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
2014-10-25 14:27:23 -07:00
Emmanuel Odeke
523929c927 repl: Private Buffer object in lib/* files
Fixes usage of global object 'Buffer' in lib/* files by ensuring that
each file does an explicit require('buffer').Buffer.  Previously, when
running a repl, due to usage of global 'Buffer', any redefinition of
Buffer would cause a crash eg var Buffer = {}.

Fixes: https://github.com/joyent/node/issues/8588
PR-URL: https://github.com/joyent/node/pull/8603
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-10-25 00:36:04 -07:00
Timothy J Fontaine
ea69dd7584 Now working on 0.10.34 2014-10-23 12:13:05 -07:00
Timothy J Fontaine
e59eca58ad Merge branch 'v0.10.33-release' into v0.10 2014-10-23 12:12:52 -07:00
Julien Gilli
8d045a30e9 tests: add TLS tests matrix
Add a test that goes through the whole matrix of:
- command line options (--enable-ssl*)
- secureOptions
- secureProtocols

and makes sure that compatible test setups actually work as expected.

The test works by spawning two processes for each test case: one client
and one server. The test passes if a SSL/TLS connection from the client
to the server is successful and the test case was supposed to pass, or
if the connection couldn't be established and the test case was supposed
to fail.

The test is currently located in the directory 'test/external' because
it has external dependencies.
2014-10-23 10:45:12 -07:00
Timothy J Fontaine
69080f5474 tls: enforce secureOptions on incoming clients
Reuse the secureProtocol and secureOptions of the server when creating
the secure context for incoming clients.
2014-10-23 10:45:04 -07:00
Timothy J Fontaine
b9283cf9d1 tls: honorCipherOrder should not degrade defaults
Specifying honorCipherOrder should not change the SSLv2/SSLv3 defaults
for a TLS server.

Use secureOptions logic in both lib/tls.js and lib/crypto.js
2014-10-23 10:44:56 -07:00
Timothy J Fontaine
fe2e8a4a24 2014.10.20, Version 0.10.33 (Stable)
* openssl: Update to 1.0.1j (Addressing multiple CVEs)

* uv: Update to v0.10.29

* child_process: properly support optional args (cjihrig)

* crypto: Disable autonegotiation for SSLv2/3 by default (Fedor Indutny,
Timothy J Fontaine, Alexis Campailla)

This is a behavior change, by default we will not allow the negotiation to
SSLv2 or SSLv3. If you want this behavior, run Node.js with either
`--enable-ssl2` or `--enable-ssl3` respectively.

This does not change the behavior for users specifically requesting
`SSLv2_method` or `SSLv3_method`. While this behavior is not advised, it is
assumed you know what you're doing since you're specifically asking to use
these methods.
2014-10-20 17:43:37 -07:00
Timothy J Fontaine
35443862a2 uv: Update to v0.10.29 2014-10-20 16:13:29 -07:00
Fedor Indutny
1349b680ba crypto: allow forcing SSLv2/v3 via secureProtocol
Force-enable SSLv2/v3 when `secureProtocol` is explicitly set
to `SSLv2_method` or `SSLv3_method`.

see discussion at #8551
2014-10-20 14:35:18 -07:00
dead-horse
f6e5740180 path: resolve normalize drive letter to lower case
make path.resolve work the same as path.normalize
2014-10-20 20:48:00 +02:00
Calvin Metcalf
7dbc024c85 doc: add note about key derivation
adds a note to the crypto docs passing along
the advice that openssl gives about what
key derivation function they recommend.

PR-URL: https://github.com/joyent/node/pull/8580
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2014-10-20 13:41:15 +04:00
Timothy J Fontaine
6c8593d456 crypto: move disaling SSLv2/3 into JavaScript 2014-10-17 15:16:26 -07:00
Timothy J Fontaine
226c98649d doc: clarify poodle mitigation 2014-10-17 15:15:45 -07:00
Timothy J Fontaine
b259f245f8 docs: update api location 2014-10-17 15:14:45 -07:00
Alexis Campailla
3139fa20d7 crypto: extra caution in setting ssl options
Always set ssl2/ssl3 disabled based on whether they are enabled in Node.
In some corner-case scenario, node with OPENSSL_NO_SSL3 defined could
be linked to openssl that has SSL3 enabled.
2014-10-16 18:45:47 +02:00
Timothy J Fontaine
3859fbdb7d test: fix test-net-listen-fd0 for pipes
In the case of a pipe'd input, i.e. from the CI the fd will be a PIPE
and when listen() is called it will return ENOTSOCK instead of EINVAL.

Backport: cd2d3aedaa
2014-10-15 18:48:34 -07:00
Timothy J Fontaine
2afa3d8a03 test: crypto-domains avoid spurious failures
The order of the callbacks is non-deterministic, so don't expect the
error messages to come back in the same order every time, instead just
verify they are expected messages.
2014-10-15 18:36:36 -07:00
Timothy J Fontaine
d601c76f4d crypto: allow runtime opt in using SSLv2/SSLv3
This change disables SSLv2/SSLv3 use by default, and introduces a
command line flag to opt into using SSLv2/SSLv3.

SSLv2 and SSLv3 are considered unsafe, and should only be used in
situations where compatibility with other components is required and
they cannot be upgrade to support newer forms of TLS.
2014-10-15 17:36:05 -07:00
Timothy J Fontaine
c1f4aacc75 build: revert change to disable ssl2 and ssl3 2014-10-15 14:49:41 -07:00
Fedor Indutny
707cc25011 test: fix test-crypto-stream
Because of constant-timeness change made in openssl-1.0.1j the error is
no longer returned from EVP_DecryptFinal_ex. Now it just return 0, and
thus the error message does not contain proper error code. Adapt to this
change, there is not much that we could do about it.
2014-10-15 14:07:00 -07:00
Fedor Indutny
e0e38c2f47 deps: update openssl to 1.0.1j 2014-10-15 14:06:03 -07:00
Fedor Indutny
d6712917f5 doc: document why SSL2/SSL3 is disabled
PR-URL: https://github.com/joyent/node/pull/8551
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2014-10-15 19:39:56 +04:00
Fedor Indutny
0ec78c961b configure: disable ssl2/ssl3 by default
PR-URL: https://github.com/joyent/node/pull/8551
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2014-10-15 19:39:40 +04:00
Swaagie
6a95e9f7e0 tls add secureOptions documentation
PR-URL: https://github.com/joyent/node/pull/8553
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2014-10-15 13:19:54 +04:00
Matthew Fitzsimmons
1524d48333 doc: update design to match nodejs.org 2014-10-13 14:17:39 -07:00
Timothy J Fontaine
641cea0926 doc: build branch versioned docs 2014-10-13 14:17:39 -07:00
Timothy J Fontaine
2b7c8a2f02 test: check for multi-localhost support 2014-10-13 14:17:39 -07:00
Alexis Campailla
d22637c36c build: vcbuild fix "The input line is too long."
vcbuild.bat is calling vcvars.bat, which doesn't detect if the environment
has already been set. This causes repeated entries to be added to the PATH,
which after a few invocations will lead to an error:
The input line is too long.
2014-10-10 15:14:47 +02:00
Fedor Indutny
d87ae24dfe hdr: always define NODE_WANT_INTERNALS
Otherwise the warning could be printed on some systems.

fix #8419
2014-09-26 10:31:10 +04:00
Calvin Metcalf
c8e0bdd7cf doc: document _transform callback takes 2 args
Expands the paragraph in the transform stream
implementation docs about the callback that is passed
to the _transform method to include details about how
two arguments may be passed, error and data.  A code
example is also included.

Reviewed-By: Fedor Indutny <fedor@indutny.com>
2014-09-23 15:53:58 +04:00
cjihrig
542ac7f3d2 child_process: properly support optional args
Currently, a TypeError is incorrectly thrown if the second argument is
an object. This commit allows the args argument to be properly omitted.

Fixes: https://github.com/joyent/node/issues/6068
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-09-17 15:13:34 -07:00
1259 changed files with 75502 additions and 16058 deletions

4
.gitignore vendored
View File

@@ -15,6 +15,7 @@ node_g
.benchmark_reports
/.project
/.cproject
icu_config.gypi
/out
@@ -46,6 +47,9 @@ ipch/
email.md
deps/v8-*
deps/icu
deps/icu*.zip
deps/icu*.tgz
deps/icu-tmp
./node_modules
.svn/

12
AUTHORS
View File

@@ -568,3 +568,15 @@ Kevin Simper <kevin.simper@gmail.com>
Jackson Tian <shyvo1987@gmail.com>
Tristan Berger <tristan.berger@gmail.com>
Mathias Schreck <schreck.mathias@googlemail.com>
Steven R. Loomis <srloomis@us.ibm.com>
Matthew Fitzsimmons <matt@fitzage.com>
Swaagie <info@martijnswaagman.nl>
Emmanuel Odeke <emmanuel.odeke@cmgcanada.ca>
Eric Mill <eric@konklone.com>
Brendan Ashworth <squirrelslikeacorns@gmail.com>
Alejandro Oviedo <alejandro.oviedo.g@gmail.com>
pkcs <pkcs@gmx.com>
Saúl Ibarra Corretgé <saghul@gmail.com>
silverwind <silv3rwind@gmail.com>
Steven R. Loomis <srl@icu-project.org>
James M Snell <jasnell@gmail.com>

198
ChangeLog
View File

@@ -1,4 +1,143 @@
2014.09.24, Version 0.11.14 (Unstable)
2015.01.20, Version 0.11.15 (Unstable)
* v8: Upgrade to 3.28.73
* uv: Upgrade to 1.0.2
* npm: Upgrade to v2.1.6
* uv: float patch to revert tty breakage (Trevor Norris)
* v8: re-implement debugger-agent (Fedor Indutny)
* v8: apply floating irhydra patch (Fedor Indutny)
* v8: fix postmortem-metadata generator (Refael Ackermann)
* debugger: fix unhandled error in setBreakpoint (Miroslav Bajtoš)
* async-wrap: add event hooks (Trevor Norris)
* async-wrap: expose async-wrap as binding (Trevor Norris)
* buffer, doc: misc. fix and cleanup (Trevor Norris)
* buffer: add generic functions for (u)int ops (Yazhong Liu)
* buffer: fix and cleanup fill() (Trevor Norris)
* buffer: mv floating point read/write checks to JS (Trevor Norris)
* build, i18n: improve Intl build, add "--with-intl" (Steven R. Loomis)
* build: add small-icu support for binary packages (Julien Gilli)
* build: do not generate support for libuv's probes (Julien Gilli)
* build: i18n: add icu config options (Steven R. Loomis)
* build: i18n: support little-endian machines (Steven Loomis)
* build: vcbuild fix "The input line is too long." (Alexis Campailla)
* child_process: improve spawn() argument handling (cjihrig)
* cluster: avoid race enabling debugger in worker (Timothy J Fontaine)
* cluster: cluster.disconnect() should check status (Sam Roberts)
* cluster: do not signal children in debug mode (Fedor Indutny)
* cluster: don't assert if worker has no handles (Sam Roberts)
* core: fix usage of uv_cwd (Saúl Ibarra Corretgé)
* core: replace uv_fs_readdir with uv_fs_scandir (Saúl Ibarra Corretgé)
* crypto: createDiffieHellman throw for bad args (Trevor Norris)
* crypto: lower RSS usage for TLSCallbacks (Fedor Indutny)
* crypto: store thread id as pointer-sized (Alexis Campailla)
* dns: propagate domain for c-ares methods (Chris Dickinson)
* fs: fix symlink error message (Vladimir Kurchatkin)
* http: Improve _addHeaderLines method (Jackson Tian)
* http: cleanup setHeader() (Trevor Norris)
* http: rename flush to flushHeaders (Timothy J Fontaine)
* lib,src: fix spawnSync ignoring its 'env' option (Juanjo)
* modules: adding load linked modules feature (Thorsten Lorenz)
* net: Make server.connections un-enumerable (Patrick Mooney)
* net: add pauseOnConnect option to createServer() (cjihrig)
* net: make connect() input validation synchronous (cjihrig)
* node: avoid automatic microtask runs (Vladimir Kurchatkin)
* node: fix throws before timer module is loaded (Trevor Norris)
* openssl: fix keypress requirement in apps on win32 (Fedor Indutny)
* path: added parse() and format() functions (Rory Bradford)
* path: allow calling platform specific methods (Timothy J Fontaine)
* path: don't lower-cases drive letters (Bert Belder)
* path: refactor normalizeArray() (Nathan Woltman)
* process: pid can be a string in process.kill() (Sam Roberts)
* readline: fix performance issue when large line (Jicheng Li)
* readline: should not require an output stream. (Julien Gilli)
* smalloc: check if obj has external data (Vladimir Kurchatkin)
* smalloc: don't allow to dispose typed arrays (Vladimir Kurchatkin)
* smalloc: fix bad assert for zero length data (Trevor Norris)
* smalloc: fix copyOnto optimization (Vladimir Kurchatkin)
* src: all wrap's now use actual FunctionTemplate (Trevor Norris)
* src: fix VC++ warning C4244 (Rasmus Christian Pedersen)
* src: remove Async Listener (Trevor Norris)
* stream: switch _writableState.buffer to queue (Chris Dickinson)
* streams: make setDefaultEncoding() throw (Brian White)
* streams: set default encoding for writable streams (Johnny Ray)
* tls: remove tls.createSecurePair code deprecation (Jackson Tian)
* tls_wrap: ignore ZERO_RETURN after close_notify (Fedor Indutny)
* url: change hostname regex to negate invalid chars (Jonathan Johnson)
* url: fixed encoding for slash switching emulation. (Evan Rutledge Borden)
* url: improve parsing speed (CGavrila)
* url: make query() consistent (Gabriel Wicke)
* url: support `path` for url.format (Yazhong Liu)
* util: add es6 Symbol support for `util.inspect` (gyson)
2014.09.24, Version 0.11.14 (Unstable), 902090af5375e497dded310575f19de5328a9bbc
* uv: Upgrade to v1.0.0-rc1
@@ -787,7 +926,60 @@
* console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)
2014.09.16, Version 0.10.32 (Stable)
2014.12.22, Version 0.10.35 (Stable)
* tls: re-add 1024-bit SSL certs removed by f9456a2 (Chris Dickinson)
* timers: don't close interval timers when unrefd (Julien Gilli)
* timers: don't mutate unref list while iterating it (Julien Gilli)
2014.12.17, Version 0.10.34 (Stable), 52795f8fcc2de77cf997e671ea58614e5e425dfe
* uv: update to v0.10.30
* zlib: upgrade to v1.2.8
* child_process: check execFile args is an array (Sam Roberts)
* child_process: check fork args is an array (Sam Roberts)
* crypto: update root certificates (Ben Noordhuis)
* domains: fix issues with abort on uncaught (Julien Gilli)
* timers: Avoid linear scan in _unrefActive. (Julien Gilli)
* timers: fix unref() memory leak (Trevor Norris)
* v8: add api for aborting on uncaught exception (Julien Gilli)
* debugger: fix when using "use strict" (Julien Gilli)
2014.10.20, Version 0.10.33 (Stable), 8d045a30e95602b443eb259a5021d33feb4df079
* openssl: Update to 1.0.1j (Addressing multiple CVEs)
* uv: Update to v0.10.29
* child_process: properly support optional args (cjihrig)
* crypto: Disable autonegotiation for SSLv2/3 by default (Fedor Indutny,
Timothy J Fontaine, Alexis Campailla)
This is a behavior change, by default we will not allow the negotiation to
SSLv2 or SSLv3. If you want this behavior, run Node.js with either
`--enable-ssl2` or `--enable-ssl3` respectively.
This does not change the behavior for users specifically requesting
`SSLv2_method` or `SSLv3_method`. While this behavior is not advised, it is
assumed you know what you're doing since you're specifically asking to use
these methods.
2014.09.16, Version 0.10.32 (Stable), 0fe0d121551593c23a565db8397f85f17bb0f00e
* npm: Update to 1.4.28
@@ -839,7 +1031,7 @@
* deps: backport 4ed5fde4f from v8 upstream (Fedor Indutny)
* deps: cherry-pick eca441b2 from OpenSSL (Fedor Indutny)
*
* lib: remove and restructure calls to isNaN() (cjihrig)

394
LICENSE
View File

@@ -294,9 +294,9 @@ maintained libraries. The externally maintained libraries used by Node are:
- Zlib at deps/zlib. zlib's license follows:
"""
/* zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.4, March 14th, 2010
version 1.2.8, April 28th, 2013
Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@@ -314,9 +314,8 @@ maintained libraries. The externally maintained libraries used by Node are:
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Jean-loup Gailly
Mark Adler
Jean-loup Gailly Mark Adler
jloup@gzip.org madler@alumni.caltech.edu
*/
"""
@@ -782,3 +781,388 @@ maintained libraries. The externally maintained libraries used by Node are:
END OF TERMS AND CONDITIONS
"""
- ICU's license follows:
From http://source.icu-project.org/repos/icu/icu/trunk/license.html
"""
ICU License - ICU 1.8.1 and later
COPYRIGHT AND PERMISSION NOTICE
Copyright (c) 1995-2014 International Business Machines Corporation and others
All rights reserved.
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, and/or sell copies of the
Software, and to permit persons to whom the Software is furnished
to do so, provided that the above copyright notice(s) and this
permission notice appear in all copies of the Software and that
both the above copyright notice(s) and this permission notice
appear in supporting documentation.
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 OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR
ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale,
use or other dealings in this Software without prior written
authorization of the copyright holder.
All trademarks and registered trademarks mentioned herein are the
property of their respective owners.
Third-Party Software Licenses
This section contains third-party software notices and/or
additional terms for licensed third-party software components
included within ICU libraries.
1. Unicode Data Files and Software
COPYRIGHT AND PERMISSION NOTICE
Copyright © 1991-2014 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in
http://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Unicode data files and any associated documentation
(the "Data Files") or Unicode software and any associated documentation
(the "Software") to deal in the Data Files or Software
without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, and/or sell copies of
the Data Files or Software, and to permit persons to whom the Data Files
or Software are furnished to do so, provided that
(a) this copyright and permission notice appear with all copies
of the Data Files or Software,
(b) this copyright and permission notice appear in associated
documentation, and
(c) there is clear notice in each modified Data File or in the Software
as well as in the documentation associated with the Data File(s) or
Software that the data or software has been modified.
THE DATA FILES AND SOFTWARE ARE 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 OF THIRD PARTY RIGHTS.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale,
use or other dealings in these Data Files or Software without prior
written authorization of the copyright holder.
2. Chinese/Japanese Word Break Dictionary Data (cjdict.txt)
# The Google Chrome software developed by Google is licensed
# under the BSD license. Other software included in this distribution
# is provided under other licenses, as set forth below.
#
# The BSD License
# http://opensource.org/licenses/bsd-license.php
# Copyright (C) 2006-2008, Google Inc.
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or
# without modification, are permitted provided that the following
# conditions are met:
#
# Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
# Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided with
# the distribution.
# Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# The word list in cjdict.txt are generated by combining three
word lists listed
# below with further processing for compound word breaking. The
frequency is generated
# with an iterative training against Google web corpora.
#
# * Libtabe (Chinese)
# - https://sourceforge.net/project/?group_id=1519
# - Its license terms and conditions are shown below.
#
# * IPADIC (Japanese)
# - http://chasen.aist-nara.ac.jp/chasen/distribution.html
# - Its license terms and conditions are shown below.
#
# ---------COPYING.libtabe ---- BEGIN--------------------
#
# /*
# * Copyrighy (c) 1999 TaBE Project.
# * Copyright (c) 1999 Pai-Hsiang Hsiao.
# * All rights reserved.
# *
# * Redistribution and use in source and binary forms, with or without
# * modification, are permitted provided that the following conditions
# * are met:
# *
# * . Redistributions of source code must retain the above copyright
# * notice, this list of conditions and the following disclaimer.
# * . Redistributions in binary form must reproduce the above copyright
# * notice, this list of conditions and the following disclaimer in
# * the documentation and/or other materials provided with the
# * distribution.
# * . Neither the name of the TaBE Project nor the names of its
# * contributors may be used to endorse or promote products derived
# * from this software without specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
# * OF THE POSSIBILITY OF SUCH DAMAGE.
# */
#
# /*
# * Copyright (c) 1999 Computer Systems and Communication Lab,
# * Institute of Information Science, Academia Sinica.
# * All rights reserved.
# *
# * Redistribution and use in source and binary forms, with or without
# * modification, are permitted provided that the following conditions
# * are met:
# *
# * . Redistributions of source code must retain the above copyright
# * notice, this list of conditions and the following disclaimer.
# * . Redistributions in binary form must reproduce the above copyright
# * notice, this list of conditions and the following disclaimer in
# * the documentation and/or other materials provided with the
# * distribution.
# * . Neither the name of the Computer Systems and Communication Lab
# * nor the names of its contributors may be used to endorse or
# * promote products derived from this software without specific
# * prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
# * OF THE POSSIBILITY OF SUCH DAMAGE.
# */
#
# Copyright 1996 Chih-Hao Tsai @ Beckman Institute, University of Illinois
# c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4
#
# ---------------COPYING.libtabe-----END------------------------------------
#
#
# ---------------COPYING.ipadic-----BEGIN------------------------------------
#
# Copyright 2000, 2001, 2002, 2003 Nara Institute of Science
# and Technology. All Rights Reserved.
#
# Use, reproduction, and distribution of this software is permitted.
# Any copy of this software, whether in its original form or modified,
# must include both the above copyright notice and the following
# paragraphs.
#
# Nara Institute of Science and Technology (NAIST),
# the copyright holders, disclaims all warranties with regard to this
# software, including all implied warranties of merchantability and
# fitness, in no event shall NAIST be liable for
# any special, indirect or consequential damages or any damages
# whatsoever resulting from loss of use, data or profits, whether in an
# action of contract, negligence or other tortuous action, arising out
# of or in connection with the use or performance of this software.
#
# A large portion of the dictionary entries
# originate from ICOT Free Software. The following conditions for ICOT
# Free Software applies to the current dictionary as well.
#
# Each User may also freely distribute the Program, whether in its
# original form or modified, to any third party or parties, PROVIDED
# that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear
# on, or be attached to, the Program, which is distributed substantially
# in the same form as set out herein and that such intended
# distribution, if actually made, will neither violate or otherwise
# contravene any of the laws and regulations of the countries having
# jurisdiction over the User or the intended distribution itself.
#
# NO WARRANTY
#
# The program was produced on an experimental basis in the course of the
# research and development conducted during the project and is provided
# to users as so produced on an experimental basis. Accordingly, the
# program is provided without any warranty whatsoever, whether express,
# implied, statutory or otherwise. The term "warranty" used herein
# includes, but is not limited to, any warranty of the quality,
# performance, merchantability and fitness for a particular purpose of
# the program and the nonexistence of any infringement or violation of
# any right of any third party.
#
# Each user of the program will agree and understand, and be deemed to
# have agreed and understood, that there is no warranty whatsoever for
# the program and, accordingly, the entire risk arising from or
# otherwise connected with the program is assumed by the user.
#
# Therefore, neither ICOT, the copyright holder, or any other
# organization that participated in or was otherwise related to the
# development of the program and their respective officials, directors,
# officers and other employees shall be held liable for any and all
# damages, including, without limitation, general, special, incidental
# and consequential damages, arising out of or otherwise in connection
# with the use or inability to use the program or any product, material
# or result produced or otherwise obtained by using the program,
# regardless of whether they have been advised of, or otherwise had
# knowledge of, the possibility of such damages at any time during the
# project or thereafter. Each user will be deemed to have agreed to the
# foregoing by his or her commencement of use of the program. The term
# "use" as used herein includes, but is not limited to, the use,
# modification, copying and distribution of the program and the
# production of secondary products from the program.
#
# In the case where the program, whether in its original form or
# modified, was distributed or delivered to or received by a user from
# any person, organization or entity other than ICOT, unless it makes or
# grants independently of ICOT any specific warranty to the user in
# writing, such person, organization or entity, will also be exempted
# from and not be held liable to the user for any such damages as noted
# above as far as the program is concerned.
#
# ---------------COPYING.ipadic-----END------------------------------------
3. Lao Word Break Dictionary Data (laodict.txt)
# Copyright (c) 2013 International Business Machines Corporation
# and others. All Rights Reserved.
#
# Project: http://code.google.com/p/lao-dictionary/
# Dictionary: http://lao-dictionary.googlecode.com/git/Lao-Dictionary.txt
# License: http://lao-dictionary.googlecode.com/git/Lao-Dictionary-LICENSE.txt
# (copied below)
#
# This file is derived from the above dictionary, with slight modifications.
# --------------------------------------------------------------------------------
# Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer. Redistributions in binary
# form must reproduce the above copyright notice, this list of conditions and
# the following disclaimer in the documentation and/or other materials
# provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# --------------------------------------------------------------------------------
4. Burmese Word Break Dictionary Data (burmesedict.txt)
# Copyright (c) 2014 International Business Machines Corporation
# and others. All Rights Reserved.
#
# This list is part of a project hosted at:
# github.com/kanyawtech/myanmar-karen-word-lists
#
# --------------------------------------------------------------------------------
# Copyright (c) 2013, LeRoy Benjamin Sharon
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# Redistributions in binary form must reproduce the above copyright notice, this
# list of conditions and the following disclaimer in the documentation and/or
# other materials provided with the distribution.
#
# Neither the name Myanmar Karen Word Lists, nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# --------------------------------------------------------------------------------
5. Time Zone Database
ICU uses the public domain data and code derived from Time Zone
Database for its time zone support. The ownership of the TZ
database is explained in BCP 175: Procedure for Maintaining the
Time Zone Database section 7.
7. Database Ownership
The TZ database itself is not an IETF Contribution or an IETF
document. Rather it is a pre-existing and regularly updated work
that is in the public domain, and is intended to remain in the public
domain. Therefore, BCPs 78 [RFC5378] and 79 [RFC3979] do not apply
to the TZ Database or contributions that individuals make to it.
Should any claims be made and substantiated against the TZ Database,
the organization that is providing the IANA Considerations defined in
this RFC, under the memorandum of understanding with the IETF,
currently ICANN, may act in accordance with all competent court
orders. No ownership claims will be made by ICANN or the IETF Trust
on the database or the code. Any person making a contribution to the
database or code waives all rights to future claims in that
contribution or in the TZ Database.
"""

View File

@@ -78,10 +78,12 @@ clean:
distclean:
-rm -rf out
-rm -f config.gypi
-rm -f config.gypi icu_config.gypi
-rm -f config.mk
-rm -rf node node_g blog.html email.md
-rm -rf node_modules
-rm -rf deps/icu
-rm -rf deps/icu4c*.tgz deps/icu4c*.zip deps/icu-tmp
test: all
$(PYTHON) tools/test.py --mode=release simple message
@@ -147,7 +149,19 @@ test-debugger: all
$(PYTHON) tools/test.py debugger
test-npm: node
./node deps/npm/test/run.js
rm -rf npm-cache npm-tmp npm-prefix
mkdir npm-cache npm-tmp npm-prefix
cd deps/npm ; npm_config_cache="$(shell pwd)/npm-cache" \
npm_config_prefix="$(shell pwd)/npm-prefix" \
npm_config_tmp="$(shell pwd)/npm-tmp" \
../../node cli.js install
cd deps/npm ; npm_config_cache="$(shell pwd)/npm-cache" \
npm_config_prefix="$(shell pwd)/npm-prefix" \
npm_config_tmp="$(shell pwd)/npm-tmp" \
../../node cli.js run-script test-all && \
../../node cli.js prune --prod && \
cd ../.. && \
rm -rf npm-cache npm-tmp npm-prefix
test-npm-publish: node
npm_package_config_publishtest=true ./node deps/npm/test/run.js
@@ -176,6 +190,9 @@ website_files = \
doc: $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/ out/doc/changelog.html node
doc-branch: NODE_DOC_VERSION = v$(shell $(PYTHON) tools/getnodeversion.py | cut -f1,2 -d.)
doc-branch: doc
$(apidoc_dirs):
mkdir -p $@
@@ -189,10 +206,10 @@ out/doc/%: doc/%
cp -r $< $@
out/doc/api/%.json: doc/api/%.markdown node
out/Release/node tools/doc/generate.js --format=json $< > $@
NODE_DOC_VERSION=$(NODE_DOC_VERSION) out/Release/node tools/doc/generate.js --format=json $< > $@
out/doc/api/%.html: doc/api/%.markdown node
out/Release/node tools/doc/generate.js --format=html --template=doc/template.html $< > $@
NODE_DOC_VERSION=$(NODE_DOC_VERSION) 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 | sed 's|^\* #|* \\#|g' > $@
@@ -211,6 +228,11 @@ website-upload: doc
rm -f ~/web/nodejs.org/dist/node-latest.tar.gz &&\
ln -s $(VERSION)/node-$(VERSION).tar.gz ~/web/nodejs.org/dist/node-latest.tar.gz'
doc-branch-upload: NODE_DOC_VERSION = v$(shell $(PYTHON) tools/getnodeversion.py | cut -f1,2 -d.)
doc-branch-upload: doc-branch
echo $(NODE_DOC_VERSION)
rsync -r out/doc/api/ node@nodejs.org:~/web/nodejs.org/$(NODE_DOC_VERSION)
docopen: out/doc/api/all.html
-google-chrome out/doc/api/all.html
@@ -219,6 +241,7 @@ docclean:
RAWVER=$(shell $(PYTHON) tools/getnodeversion.py)
VERSION=v$(RAWVER)
NODE_DOC_VERSION=$(VERSION)
RELEASE=$(shell $(PYTHON) tools/getnodeisrelease.py)
PLATFORM=$(shell uname | tr '[:upper:]' '[:lower:]')
ifeq ($(findstring x86_64,$(shell uname -m)),x86_64)
@@ -244,7 +267,7 @@ TARBALL=$(TARNAME).tar.gz
BINARYNAME=$(TARNAME)-$(PLATFORM)-$(ARCH)
BINARYTAR=$(BINARYNAME).tar.gz
PKG=out/$(TARNAME).pkg
packagemaker=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
PACKAGEMAKER ?= /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
PKGSRC=nodejs-$(DESTCPU)-$(RAWVER).tgz
ifdef NIGHTLY
@@ -282,10 +305,12 @@ pkg: $(PKG)
$(PKG): release-only
rm -rf $(PKGDIR)
rm -rf out/deps out/Release
$(PYTHON) ./configure --without-snapshot --dest-cpu=ia32 --tag=$(TAG)
$(PYTHON) ./configure --download=all --with-intl=small-icu \
--without-snapshot --dest-cpu=ia32 --tag=$(TAG)
$(MAKE) install V=$(V) DESTDIR=$(PKGDIR)/32
rm -rf out/deps out/Release
$(PYTHON) ./configure --without-snapshot --dest-cpu=x64 --tag=$(TAG)
$(PYTHON) ./configure --download=all --with-intl=small-icu \
--without-snapshot --dest-cpu=x64 --tag=$(TAG)
$(MAKE) install V=$(V) DESTDIR=$(PKGDIR)
SIGN="$(APP_SIGN)" PKGDIR="$(PKGDIR)" bash tools/osx-codesign.sh
lipo $(PKGDIR)/32/usr/local/bin/node \
@@ -294,7 +319,7 @@ $(PKG): release-only
-create
mv $(PKGDIR)/usr/local/bin/node-universal $(PKGDIR)/usr/local/bin/node
rm -rf $(PKGDIR)/32
$(packagemaker) \
$(PACKAGEMAKER) \
--id "org.nodejs.Node" \
--doc tools/osx-pkg.pmdoc \
--out $(PKG)
@@ -317,7 +342,8 @@ tar: $(TARBALL)
$(BINARYTAR): release-only
rm -rf $(BINARYNAME)
rm -rf out/deps out/Release
$(PYTHON) ./configure --prefix=/ --without-snapshot --dest-cpu=$(DESTCPU) --tag=$(TAG) $(CONFIG_FLAGS)
$(PYTHON) ./configure --prefix=/ --download=all --with-intl=small-icu \
--without-snapshot --dest-cpu=$(DESTCPU) --tag=$(TAG) $(CONFIG_FLAGS)
$(MAKE) install DESTDIR=$(BINARYNAME) V=$(V) PORTABLE=1
cp README.md $(BINARYNAME)
cp LICENSE $(BINARYNAME)
@@ -330,8 +356,9 @@ binary: $(BINARYTAR)
$(PKGSRC): release-only
rm -rf dist out
$(PYTHON) configure --prefix=/ --without-snapshot \
--dest-cpu=$(DESTCPU) --tag=$(TAG) $(CONFIG_FLAGS)
$(PYTHON) configure --prefix=/ --without-snapshot --download=all \
--with-intl=small-icu --dest-cpu=$(DESTCPU) --tag=$(TAG) \
$(CONFIG_FLAGS)
$(MAKE) install DESTDIR=dist
(cd dist; find * -type f | sort) > packlist
pkg_info -X pkg_install | \

View File

@@ -83,30 +83,103 @@ make doc
man doc/node.1
```
### To build `Intl` (ECMA-402) support:
### `Intl` (ECMA-402) support:
*Note:* more docs, including how to reduce disk footprint, are on
[Intl](https://github.com/joyent/node/wiki/Intl) support is not
enabled by default.
#### "small" (English only) support
This option will build with "small" (English only) support, but
the full `Intl` (ECMA-402) APIs. With `--download=all` it will
download the ICU library as needed.
Unix/Macintosh:
```sh
./configure --with-intl=small-icu --download=all
```
Windows:
```sh
vcbuild small-icu download-all
```
The `small-icu` mode builds
with English-only data. You can add full data at runtime.
*Note:* more docs are on
[the wiki](https://github.com/joyent/node/wiki/Intl).
#### Build with full ICU support (all locales supported by ICU):
With the `--download=all`, this may download ICU if you don't
have an ICU in `deps/icu`.
Unix/Macintosh:
```sh
./configure --with-intl=full-icu --download=all
```
Windows:
```sh
vcbuild full-icu download-all
```
#### Build with no Intl support `:-(`
The `Intl` object will not be available.
This is the default at present, so this option is not normally needed.
Unix/Macintosh:
```sh
./configure --with-intl=none
```
Windows:
```sh
vcbuild intl-none
```
#### Use existing installed ICU (Unix/Macintosh only):
```sh
pkg-config --modversion icu-i18n && ./configure --with-intl=system-icu
```
#### Build ICU from source:
#### Build with a specific ICU:
First: Unpack latest ICU
[icu4c-**##.#**-src.tgz](http://icu-project.org/download) (or `.zip`)
as `deps/icu` (You'll have: `deps/icu/source/...`)
You can find other ICU releases at
[the ICU homepage](http://icu-project.org/download).
Download the file named something like `icu4c-**##.#**-src.tgz` (or
`.zip`).
Unix/Macintosh:
Unix/Macintosh: from an already-unpacked ICU
```sh
./configure --with-intl=full-icu
./configure --with-intl=[small-icu,full-icu] --with-icu-source=/path/to/icu
```
Windows:
Unix/Macintosh: from a local ICU tarball
```sh
./configure --with-intl=[small-icu,full-icu] --with-icu-source=/path/to/icu.tgz
```
Unix/Macintosh: from a tarball URL
```sh
./configure --with-intl=full-icu --with-icu-source=http://url/to/icu.tgz
```
Windows: first unpack latest ICU to `deps/icu`
[icu4c-**##.#**-src.tgz](http://icu-project.org/download) (or `.zip`)
as `deps/icu` (You'll have: `deps/icu/source/...`)
```sh
vcbuild full-icu

161
configure vendored
View File

@@ -6,6 +6,8 @@ import re
import shlex
import subprocess
import sys
import shutil
import string
CC = os.environ.get('CC', 'cc')
@@ -13,6 +15,10 @@ root_dir = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(root_dir, 'tools', 'gyp', 'pylib'))
from gyp.common import GetFlavor
# imports in tools/configure.d
sys.path.insert(0, os.path.join(root_dir, 'tools', 'configure.d'))
import nodedownload
# parse our options
parser = optparse.OptionParser()
@@ -236,26 +242,36 @@ parser.add_option('--with-etw',
dest='with_etw',
help='build with ETW (default is true on Windows)')
parser.add_option('--download',
action='store',
dest='download_list',
help=nodedownload.help())
parser.add_option('--with-icu-path',
action='store',
dest='with_icu_path',
help='Path to icu.gyp (ICU i18n, Chromium version only.)')
parser.add_option('--with-icu-locales',
action='store',
dest='with_icu_locales',
help='Comma-separated list of locales for "small-icu". Default: "root,en". "root" is assumed.')
parser.add_option('--with-intl',
action='store',
dest='with_intl',
help='Intl mode: none, full-icu, small-icu (default is none)')
parser.add_option('--with-icu-source',
action='store',
dest='with_icu_source',
help='Intl mode: optional local path to icu/ dir, or path/URL of icu source archive.')
parser.add_option('--with-perfctr',
action='store_true',
dest='with_perfctr',
help='build with performance counters (default is true on Windows)')
parser.add_option('--with-sslv2',
action='store_true',
dest='with_sslv2',
help='enable SSL v2')
parser.add_option('--without-dtrace',
action='store_true',
dest='without_dtrace',
@@ -287,6 +303,16 @@ parser.add_option('--without-ssl',
dest='without_ssl',
help='build without SSL')
parser.add_option('--without-ssl2',
action='store_true',
dest='ssl2',
help='Disable SSL v2')
parser.add_option('--without-ssl3',
action='store_true',
dest='ssl3',
help='Disable SSL v3')
parser.add_option('--xcode',
action='store_true',
dest='use_xcode',
@@ -294,6 +320,8 @@ parser.add_option('--xcode',
(options, args) = parser.parse_args()
# set up auto-download list
auto_downloads = nodedownload.parse(options.download_list)
def b(value):
"""Returns the string 'true' if value is truthy, 'false' otherwise."""
@@ -645,11 +673,12 @@ def configure_openssl(o):
if options.without_ssl:
return
# OpenSSL uses `#ifndef OPENSSL_NO_SSL2` checks so only define the
# macro when we want to _disable_ SSL2.
if not options.with_sslv2:
if options.ssl2:
o['defines'] += ['OPENSSL_NO_SSL2=1']
if options.ssl3:
o['defines'] += ['OPENSSL_NO_SSL3=1']
if options.shared_openssl:
(libs, cflags) = pkg_config('openssl') or ('-lssl -lcrypto', '')
@@ -712,6 +741,35 @@ def glob_to_var(dir_base, dir_sub):
return list
def configure_intl(o):
icus = [
{
'url': 'http://download.icu-project.org/files/icu4c/54.1/icu4c-54_1-src.zip',
# from https://ssl.icu-project.org/files/icu4c/54.1/icu4c-src-54_1.md5:
'md5': '6b89d60e2f0e140898ae4d7f72323bca',
},
]
def icu_download(path):
# download ICU, if needed
for icu in icus:
url = icu['url']
md5 = icu['md5']
local = url.split('/')[-1]
targetfile = os.path.join(root_dir, 'deps', local)
if not os.path.isfile(targetfile):
if nodedownload.candownload(auto_downloads, "icu"):
nodedownload.retrievefile(url, targetfile)
else:
print ' Re-using existing %s' % targetfile
if os.path.isfile(targetfile):
sys.stdout.write(' Checking file integrity with MD5:\r')
gotmd5 = nodedownload.md5sum(targetfile)
print ' MD5: %s %s' % (gotmd5, targetfile)
if (md5 == gotmd5):
return targetfile
else:
print ' Expected: %s *MISMATCH*' % md5
print '\n ** Corrupted ZIP? Delete %s to retry download.\n' % targetfile
return None
icu_config = {
'variables': {}
}
@@ -723,11 +781,11 @@ def configure_intl(o):
write(icu_config_name, do_not_edit +
pprint.pformat(icu_config, indent=2) + '\n')
# small ICU is off by default.
# always set icu_small, node.gyp depends on it being defined.
o['variables']['icu_small'] = b(False)
with_intl = options.with_intl
with_icu_source = options.with_icu_source
have_icu_path = bool(options.with_icu_path)
if have_icu_path and with_intl:
print 'Error: Cannot specify both --with-icu-path and --with-intl'
@@ -739,6 +797,13 @@ def configure_intl(o):
o['variables']['icu_gyp_path'] = options.with_icu_path
return
# --with-intl=<with_intl>
# set the default
if with_intl is None:
with_intl = 'none' # The default mode of Intl
# sanity check localelist
if options.with_icu_locales and (with_intl != 'small-icu'):
print 'Error: --with-icu-locales only makes sense with --with-intl=small-icu'
sys.exit(1)
if with_intl == 'none' or with_intl is None:
o['variables']['v8_enable_i18n_support'] = 0
return # no Intl
@@ -746,6 +811,12 @@ def configure_intl(o):
# small ICU (English only)
o['variables']['v8_enable_i18n_support'] = 1
o['variables']['icu_small'] = b(True)
with_icu_locales = options.with_icu_locales
if not with_icu_locales:
with_icu_locales = 'root,en'
locs = set(with_icu_locales.split(','))
locs.add('root') # must have root
o['variables']['icu_locales'] = string.join(locs,',')
elif with_intl == 'full-icu':
# full ICU
o['variables']['v8_enable_i18n_support'] = 1
@@ -769,20 +840,78 @@ def configure_intl(o):
# Note: non-ICU implementations could use other 'with_intl'
# values.
# this is just the 'deps' dir. Used for unpacking.
icu_parent_path = os.path.join(root_dir, 'deps')
# The full path to the ICU source directory.
icu_full_path = os.path.join(icu_parent_path, 'icu')
# icu-tmp is used to download and unpack the ICU tarball.
icu_tmp_path = os.path.join(icu_parent_path, 'icu-tmp')
# --with-icu-source processing
# first, check that they didn't pass --with-icu-source=deps/icu
if with_icu_source and os.path.abspath(icu_full_path) == os.path.abspath(with_icu_source):
print 'Ignoring redundant --with-icu-source=%s' % (with_icu_source)
with_icu_source = None
# if with_icu_source is still set, try to use it.
if with_icu_source:
if os.path.isdir(icu_full_path):
print 'Deleting old ICU source: %s' % (icu_full_path)
shutil.rmtree(icu_full_path)
# now, what path was given?
if os.path.isdir(with_icu_source):
# it's a path. Copy it.
print '%s -> %s' % (with_icu_source, icu_full_path)
shutil.copytree(with_icu_source, icu_full_path)
else:
# could be file or URL.
# Set up temporary area
if os.path.isdir(icu_tmp_path):
shutil.rmtree(icu_tmp_path)
os.mkdir(icu_tmp_path)
icu_tarball = None
if os.path.isfile(with_icu_source):
# it's a file. Try to unpack it.
icu_tarball = with_icu_source
else:
# Can we download it?
local = os.path.join(icu_tmp_path, with_icu_source.split('/')[-1]) # local part
icu_tarball = nodedownload.retrievefile(with_icu_source, local)
# continue with "icu_tarball"
nodedownload.unpack(icu_tarball, icu_tmp_path)
# Did it unpack correctly? Should contain 'icu'
tmp_icu = os.path.join(icu_tmp_path, 'icu')
if os.path.isdir(tmp_icu):
os.rename(tmp_icu, icu_full_path)
shutil.rmtree(icu_tmp_path)
else:
print ' Error: --with-icu-source=%s did not result in an "icu" dir.' % with_icu_source
shutil.rmtree(icu_tmp_path)
sys.exit(1)
# ICU mode. (icu-generic.gyp)
byteorder = sys.byteorder
o['variables']['icu_gyp_path'] = 'tools/icu/icu-generic.gyp'
# ICU source dir relative to root
icu_full_path = os.path.join(root_dir, 'deps/icu')
o['variables']['icu_path'] = icu_full_path
if not os.path.isdir(icu_full_path):
print 'Error: ICU path is not a directory: %s' % (icu_full_path)
print '* ECMA-402 (Intl) support didn\'t find ICU in %s..' % (icu_full_path)
# can we download (or find) a zipfile?
localzip = icu_download(icu_full_path)
if localzip:
nodedownload.unpack(localzip, icu_parent_path)
if not os.path.isdir(icu_full_path):
print ' Cannot build Intl without ICU in %s.' % (icu_full_path)
print ' (Fix, or disable with "--with-intl=none" )'
sys.exit(1)
else:
print '* Using ICU in %s' % (icu_full_path)
# Now, what version of ICU is it? We just need the "major", such as 54.
# uvernum.h contains it as a #define.
uvernum_h = os.path.join(icu_full_path, 'source/common/unicode/uvernum.h')
if not os.path.isfile(uvernum_h):
print 'Error: could not load %s - is ICU installed?' % uvernum_h
print ' Error: could not load %s - is ICU installed?' % uvernum_h
sys.exit(1)
icu_ver_major = None
matchVerExp = r'^\s*#define\s+U_ICU_VERSION_SHORT\s+"([^"]*)".*'
@@ -792,7 +921,7 @@ def configure_intl(o):
if m:
icu_ver_major = m.group(1)
if not icu_ver_major:
print 'Could not read U_ICU_VERSION_SHORT version from %s' % uvernum_h
print ' Could not read U_ICU_VERSION_SHORT version from %s' % uvernum_h
sys.exit(1)
icu_endianness = sys.byteorder[0]; # TODO(srl295): EBCDIC should be 'e'
o['variables']['icu_ver_major'] = icu_ver_major
@@ -819,8 +948,8 @@ def configure_intl(o):
# this is the icudt*.dat file which node will be using (platform endianness)
o['variables']['icu_data_file'] = icu_data_file
if not os.path.isfile(icu_data_path):
print 'Error: ICU prebuilt data file %s does not exist.' % icu_data_path
print 'See the README.md.'
print ' Error: ICU prebuilt data file %s does not exist.' % icu_data_path
print ' See the README.md.'
# .. and we're not about to build it from .gyp!
sys.exit(1)
# map from variable name to subdirs
@@ -912,4 +1041,4 @@ else:
gyp_args += args
subprocess.call(gyp_args)
sys.exit(subprocess.call(gyp_args))

17
deps/npm/.eslintrc vendored Normal file
View File

@@ -0,0 +1,17 @@
{
"env" : {
"node" : true
},
"rules" : {
"semi": [2, "never"],
"strict": 0,
"quotes": [1, "double", "avoid-escape"],
"no-use-before-define": 0,
"curly": 0,
"no-underscore-dangle": 0,
"no-lonely-if": 1,
"no-unused-vars": [2, {"vars" : "all", "args" : "after-used"}],
"no-mixed-requires": 0,
"space-infix-ops": 0
}
}

2
deps/npm/.npmignore vendored
View File

@@ -25,3 +25,5 @@ html/*.png
/npm-*.tgz
*.pyc
/test/tap/builtin-config

315
deps/npm/CHANGELOG.md vendored
View File

@@ -1,3 +1,318 @@
### v2.1.6 (2014-10-23):
* [`681b398`](https://github.com/npm/npm/commit/681b3987a18e7aba0aaf78c91a23c7cc0ab82ce8)
[#6523](https://github.com/npm/npm/issues/6523) fix default `logelevel` doc
([@KenanY](https://github.com/KenanY))
* [`80b368f`](https://github.com/npm/npm/commit/80b368ffd786d4d008734b56c4a6fe12d2cb2926)
[#6528](https://github.com/npm/npm/issues/6528) `npm version` should work in
a git directory without git ([@terinjokes](https://github.com/terinjokes))
* [`5f5f9e4`](https://github.com/npm/npm/commit/5f5f9e4ddf544c2da6adf3f8c885238b0e745076)
[#6483](https://github.com/npm/npm/issues/6483) `init-package-json@1.1.1`:
Properly pick up default values from environment variables.
([@othiym23](https://github.com/othiym23))
* [`a114870`](https://github.com/npm/npm/commit/a1148702f53f82d49606b2e4dac7581261fff442)
perl 5.18.x doesn't like -pi without filenames
([@othiym23](https://github.com/othiym23))
* [`de5ba00`](https://github.com/npm/npm/commit/de5ba007a48db876eb5bfb6156435f3512d58977)
`request@2.46.0`: Tests and cleanup.
([@othiym23](https://github.com/othiym23))
* [`76933f1`](https://github.com/npm/npm/commit/76933f169f17b5273b32e924a7b392d5729931a7)
`fstream-npm@1.0.1`: Always include `LICENSE[.*]`, `LICENCE[.*]`,
`CHANGES[.*]`, `CHANGELOG[.*]`, and `HISTORY[.*]`.
([@jonathanong](https://github.com/jonathanong))
### v2.1.5 (2014-10-16):
* [`6a14b23`](https://github.com/npm/npm/commit/6a14b232a0e34158bd95bb25c607167be995c204)
[#6397](https://github.com/npm/npm/issues/6397) Defactor npmconf back into
npm. ([@othiym23](https://github.com/othiym23))
* [`4000e33`](https://github.com/npm/npm/commit/4000e3333a76ca4844681efa8737cfac24b7c2c8)
[#6323](https://github.com/npm/npm/issues/6323) Install `peerDependencies`
from top. ([@othiym23](https://github.com/othiym23))
* [`5d119ae`](https://github.com/npm/npm/commit/5d119ae246f27353b14ff063559d1ba8c616bb89)
[#6498](https://github.com/npm/npm/issues/6498) Better error messages on
malformed `.npmrc` properties. ([@nicks](https://github.com/nicks))
* [`ae18efb`](https://github.com/npm/npm/commit/ae18efb65fed427b1ef18e4862885bf60b87b92e)
[#6093](https://github.com/npm/npm/issues/6093) Replace instances of 'hash'
with 'object' in documentation. ([@zeke](https://github.com/zeke))
* [`53108b2`](https://github.com/npm/npm/commit/53108b276fec5f97a38250933a2768d58b6928da)
[#1558](https://github.com/npm/npm/issues/1558) Clarify how local paths
should be used. ([@KenanY](https://github.com/KenanY))
* [`344fa1a`](https://github.com/npm/npm/commit/344fa1a219ac8867022df3dc58a47636dde8a242)
[#6488](https://github.com/npm/npm/issues/6488) Work around bug in marked.
([@othiym23](https://github.com/othiym23))
OUTDATED DEPENDENCY CLEANUP JAMBOREE
* [`60c2942`](https://github.com/npm/npm/commit/60c2942e13655d9ecdf6e0f1f97f10cb71a75255)
`realize-package-specifier@1.2.0`: Handle names and rawSpecs more
consistently. ([@iarna](https://github.com/iarna))
* [`1b5c95f`](https://github.com/npm/npm/commit/1b5c95fbda77b87342bd48c5ecac5b1fd571ccfe)
`sha@1.3.0`: Change line endings?
([@ForbesLindesay](https://github.com/ForbesLindesay))
* [`d7dee3f`](https://github.com/npm/npm/commit/d7dee3f3f7d9e7c2061a4ecb4dd93e3e4bfe4f2e)
`request@2.45.0`: Dependency updates, better proxy support, better compressed
response handling, lots of 'use strict'.
([@mikeal](https://github.com/mikeal))
* [`3d75180`](https://github.com/npm/npm/commit/3d75180c2cc79fa3adfa0e4cb783a27192189a65)
`opener@1.4.0`: Added gratuitous return.
([@Domenic](https://github.com/Domenic))
* [`8e2703f`](https://github.com/npm/npm/commit/8e2703f78d280d1edeb749e257dda1f288bad6e3)
`retry@0.6.1` / `npm-registry-client@3.2.4`: Change of ownership.
([@tim-kos](https://github.com/tim-kos))
* [`c87b00f`](https://github.com/npm/npm/commit/c87b00f82f92434ee77831915012c77a6c244c39)
`once@1.3.1`: Wrap once with wrappy. ([@isaacs](https://github.com/isaacs))
* [`01ec790`](https://github.com/npm/npm/commit/01ec790fd47def56eda6abb3b8d809093e8f493f)
`npm-user-validate@0.1.1`: Correct repository URL.
([@robertkowalski](https://github.com/robertkowalski))
* [`389e52c`](https://github.com/npm/npm/commit/389e52c2d94c818ca8935ccdcf392994fec564a2)
`glob@4.0.6`: Now absolutely requires `graceful-fs`.
([@isaacs](https://github.com/isaacs))
* [`e15ab15`](https://github.com/npm/npm/commit/e15ab15a27a8f14cf0d9dc6f11dee452080378a0)
`ini@1.3.0`: Tighten up whitespace handling.
([@isaacs](https://github.com/isaacs))
* [`7610f3e`](https://github.com/npm/npm/commit/7610f3e62e699292ece081bfd33084d436e3246d)
`archy@1.0.0` ([@substack](https://github.com/substack))
* [`9c13149`](https://github.com/npm/npm/commit/9c1314985e513e20ffa3ea0ca333ba2ab78299c9)
`semver@4.1.0`: Add support for prerelease identifiers.
([@bromanko](https://github.com/bromanko))
* [`f096c25`](https://github.com/npm/npm/commit/f096c250441b031d758f03afbe8d2321f94c7703)
`graceful-fs@3.0.4`: Add a bunch of additional tests, skip the unfortunate
complications of `graceful-fs@3.0.3`. ([@isaacs](https://github.com/isaacs))
### v2.1.4 (2014-10-09):
* [`3aeb440`](https://github.com/npm/npm/commit/3aeb4401444fad83cc7a8d11bf2507658afa5248)
[#6442](https://github.com/npm/npm/issues/6442) proxying git needs `GIT_SSL_CAINFO`
([@wmertens](https://github.com/wmertens))
* [`a8da8d6`](https://github.com/npm/npm/commit/a8da8d6e0cd56d97728c0b76b51604ee06ef6264)
[#6413](https://github.com/npm/npm/issues/6413) write builtin config on any
global npm install ([@isaacs](https://github.com/isaacs))
* [`9e4d632`](https://github.com/npm/npm/commit/9e4d632c0142ba55df07d624667738b8727336fc)
[#6343](https://github.com/npm/npm/issues/6343) don't pass run arguments to
pre & post scripts ([@TheLudd](https://github.com/TheLudd))
* [`d831b1f`](https://github.com/npm/npm/commit/d831b1f7ca1a9921ea5b394e39b7130ecbc6d7b4)
[#6399](https://github.com/npm/npm/issues/6399) race condition: inflight
installs, prevent `peerDependency` problems
([@othiym23](https://github.com/othiym23))
* [`82b775d`](https://github.com/npm/npm/commit/82b775d6ff34c4beb6c70b2344d491a9f2026577)
[#6384](https://github.com/npm/npm/issues/6384) race condition: inflight
caching by URL rather than semver range
([@othiym23](https://github.com/othiym23))
* [`7bee042`](https://github.com/npm/npm/commit/7bee0429066fedcc9e6e962c043eb740b3792809)
`inflight@1.0.4`: callback can take arbitrary number of parameters
([@othiym23](https://github.com/othiym23))
* [`3bff494`](https://github.com/npm/npm/commit/3bff494f4abf17d6d7e0e4a3a76cf7421ecec35a)
[#5195](https://github.com/npm/npm/issues/5195) fixed regex color regression
for `npm search` ([@chrismeyersfsu](https://github.com/chrismeyersfsu))
* [`33ba2d5`](https://github.com/npm/npm/commit/33ba2d585160a0a2a322cb76c4cd989acadcc984)
[#6387](https://github.com/npm/npm/issues/6387) allow `npm view global` if
package is specified ([@evanlucas](https://github.com/evanlucas))
* [`99c4cfc`](https://github.com/npm/npm/commit/99c4cfceed413396d952cf05f4e3c710f9682c23)
[#6388](https://github.com/npm/npm/issues/6388) npm-publish →
npm-developers(7) ([@kennydude](https://github.com/kennydude))
TEST CLEANUP EXTRAVAGANZA:
* [`8d6bfcb`](https://github.com/npm/npm/commit/8d6bfcb88408f5885a2a67409854c43e5c3a23f6)
tap tests run with no system-wide side effects
([@chrismeyersfsu](https://github.com/chrismeyersfsu))
* [`7a1472f`](https://github.com/npm/npm/commit/7a1472fbdbe99956ad19f629e7eb1cc07ba026ef)
added npm cache cleanup script
([@chrismeyersfsu](https://github.com/chrismeyersfsu))
* [`0ce6a37`](https://github.com/npm/npm/commit/0ce6a3752fa9119298df15671254db6bc1d8e64c)
stripped out dead test code (othiym23)
* replace spawn with common.npm (@chrismeyersfsu):
* [`0dcd614`](https://github.com/npm/npm/commit/0dcd61446335eaf541bf5f2d5186ec1419f86a42)
test/tap/cache-shasum-fork.js
* [`97f861c`](https://github.com/npm/npm/commit/97f861c967606a7e51e3d5047cf805d9d1adea5a)
test/tap/false_name.js
* [`d01b3de`](https://github.com/npm/npm/commit/d01b3de6ce03f25bbf3db97bfcd3cc85830d6801)
test/tap/git-cache-locking.js
* [`7b63016`](https://github.com/npm/npm/commit/7b63016778124c6728d6bd89a045c841ae3900b6)
test/tap/pack-scoped.js
* [`c877553`](https://github.com/npm/npm/commit/c877553265c39673e03f0a97972f692af81a595d)
test/tap/scripts-whitespace-windows.js
* [`df98525`](https://github.com/npm/npm/commit/df98525331e964131299d457173c697cfb3d95b9)
test/tap/prepublish.js
* [`99c4cfc`](https://github.com/npm/npm/commit/99c4cfceed413396d952cf05f4e3c710f9682c23)
test/tap/prune.js
### v2.1.3 (2014-10-02):
BREAKING CHANGE FOR THE SQRT(i) PEOPLE ACTUALLY USING `npm submodule`:
* [`1e64473`](https://github.com/npm/npm/commit/1e6447360207f45ad6188e5780fdf4517de6e23d)
`rm -rf npm submodule` command, which has been broken since the Carter
Administration ([@isaacs](https://github.com/isaacs))
BREAKING CHANGE IF YOU ARE FOR SOME REASON STILL USING NODE 0.6 AND YOU SHOULD
NOT BE DOING THAT CAN YOU NOT:
* [`3e431f9`](https://github.com/npm/npm/commit/3e431f9d6884acb4cde8bcb8a0b122a76b33ee1d)
[joyent/node#8492](https://github.com/joyent/node/issues/8492) bye bye
customFds, hello stdio ([@othiym23](https://github.com/othiym23))
Other changes:
* [`ea607a8`](https://github.com/npm/npm/commit/ea607a8a20e891ad38eed11b5ce2c3c0a65484b9)
[#6372](https://github.com/npm/npm/issues/6372) noisily error (without
aborting) on multi-{install,build} ([@othiym23](https://github.com/othiym23))
* [`3ee2799`](https://github.com/npm/npm/commit/3ee2799b629fd079d2db21d7e8f25fa7fa1660d0)
[#6372](https://github.com/npm/npm/issues/6372) only make cache creation
requests in flight ([@othiym23](https://github.com/othiym23))
* [`1a90ec2`](https://github.com/npm/npm/commit/1a90ec2f2cfbefc8becc6ef0c480e5edacc8a4cb)
[#6372](https://github.com/npm/npm/issues/6372) wait to put Git URLs in
flight until normalized ([@othiym23](https://github.com/othiym23))
* [`664795b`](https://github.com/npm/npm/commit/664795bb7d8da7142417b3f4ef5986db3a394071)
[#6372](https://github.com/npm/npm/issues/6372) log what is and isn't in
flight ([@othiym23](https://github.com/othiym23))
* [`00ef580`](https://github.com/npm/npm/commit/00ef58025a1f52dfabf2c4dc3898621d16a6e062)
`inflight@1.0.3`: fix largely theoretical race condition, because we really
really hate race conditions ([@isaacs](https://github.com/isaacs))
* [`1cde465`](https://github.com/npm/npm/commit/1cde4658d897ae0f93ff1d65b258e1571b391182)
[#6363](https://github.com/npm/npm/issues/6363)
`realize-package-specifier@1.1.0`: handle local dependencies better
([@iarna](https://github.com/iarna))
* [`86f084c`](https://github.com/npm/npm/commit/86f084c6c6d7935cd85d72d9d94b8784c914d51e)
`realize-package-specifier@1.0.2`: dependency realization! in its own module!
([@iarna](https://github.com/iarna))
* [`553d830`](https://github.com/npm/npm/commit/553d830334552b83606b6bebefd821c9ea71e964)
`npm-package-arg@2.1.3`: simplified semver, better tests
([@iarna](https://github.com/iarna))
* [`bec9b61`](https://github.com/npm/npm/commit/bec9b61a316c19f5240657594f0905a92a474352)
`readable-stream@1.0.32`: for some reason
([@rvagg](https://github.com/rvagg))
* [`ff08ec5`](https://github.com/npm/npm/commit/ff08ec5f6d717bdbd559de0b2ede769306a9a763)
`dezalgo@1.0.1`: use wrappy for instrumentability
([@isaacs](https://github.com/isaacs))
### v2.1.2 (2014-09-29):
* [`a1aa20e`](https://github.com/npm/npm/commit/a1aa20e44bb8285c6be1e7fa63b9da920e3a70ed)
[#6282](https://github.com/npm/npm/issues/6282)
`normalize-package-data@1.0.3`: don't prune bundledDependencies
([@isaacs](https://github.com/isaacs))
* [`a1f5fe1`](https://github.com/npm/npm/commit/a1f5fe1005043ce20a06e8b17a3e201aa3215357)
move locks back into cache, now path-aware
([@othiym23](https://github.com/othiym23))
* [`a432c4b`](https://github.com/npm/npm/commit/a432c4b48c881294d6d79b5f41c2e1c16ad15a8a)
convert lib/utils/tar.js to use atomic streams
([@othiym23](https://github.com/othiym23))
* [`b8c3c74`](https://github.com/npm/npm/commit/b8c3c74a3c963564233204161cc263e0912c930b)
`fs-write-stream-atomic@1.0.2`: Now works with streams1 fs.WriteStreams.
([@isaacs](https://github.com/isaacs))
* [`c7ab76f`](https://github.com/npm/npm/commit/c7ab76f44cce5f42add5e3ba879bd10e7e00c3e6)
logging cleanup ([@othiym23](https://github.com/othiym23))
* [`4b2d95d`](https://github.com/npm/npm/commit/4b2d95d0641435b09d047ae5cb2226f292bf38f0)
[#6329](https://github.com/npm/npm/issues/6329) efficiently validate tmp
tarballs safely ([@othiym23](https://github.com/othiym23))
### v2.1.1 (2014-09-26):
* [`563225d`](https://github.com/npm/npm/commit/563225d813ea4c12f46d4f7821ac7f76ba8ee2d6)
[#6318](https://github.com/npm/npm/issues/6318) clean up locking; prefix
lockfile with "." ([@othiym23](https://github.com/othiym23))
* [`c7f30e4`](https://github.com/npm/npm/commit/c7f30e4550fea882d31fcd4a55b681cd30713c44)
[#6318](https://github.com/npm/npm/issues/6318) remove locking code around
tarball packing and unpacking ([@othiym23](https://github.com/othiym23))
### v2.1.0 (2014-09-25):
NEW FEATURE:
* [`3635601`](https://github.com/npm/npm/commit/36356011b6f2e6a5a81490e85a0a44eb27199dd7)
[#5520](https://github.com/npm/npm/issues/5520) Add `'npm view .'`.
([@evanlucas](https://github.com/evanlucas))
Other changes:
* [`f24b552`](https://github.com/npm/npm/commit/f24b552b596d0627549cdd7c2d68fcf9006ea50a)
[#6294](https://github.com/npm/npm/issues/6294) Lock cache → lock cache
target. ([@othiym23](https://github.com/othiym23))
* [`ad54450`](https://github.com/npm/npm/commit/ad54450104f94c82c501138b4eee488ce3a4555e)
[#6296](https://github.com/npm/npm/issues/6296) Ensure that npm-debug.log
file is created when rollbacks are done.
([@isaacs](https://github.com/isaacs))
* [`6810071`](https://github.com/npm/npm/commit/681007155a40ac9d165293bd6ec5d8a1423ccfca)
docs: Default loglevel "http" → "warn".
([@othiym23](https://github.com/othiym23))
* [`35ac89a`](https://github.com/npm/npm/commit/35ac89a940f23db875e882ce2888208395130336)
Skip installation of installed scoped packages.
([@timoxley](https://github.com/timoxley))
* [`e468527`](https://github.com/npm/npm/commit/e468527256ec599892b9b88d61205e061d1ab735)
Ensure cleanup executes for scripts-whitespace-windows test.
([@timoxley](https://github.com/timoxley))
* [`ef9101b`](https://github.com/npm/npm/commit/ef9101b7f346797749415086956a0394528a12c4)
Ensure cleanup executes for packed-scope test.
([@timoxley](https://github.com/timoxley))
* [`69b4d18`](https://github.com/npm/npm/commit/69b4d18cdbc2ae04c9afaffbd273b436a394f398)
`fs-write-stream-atomic@1.0.1`: Fix a race condition in our race-condition
fixer. ([@isaacs](https://github.com/isaacs))
* [`26b17ff`](https://github.com/npm/npm/commit/26b17ff2e3b21ee26c6fdbecc8273520cff45718)
[#6272](https://github.com/npm/npm/issues/6272) `npmconf` decides what the
default prefix is. ([@othiym23](https://github.com/othiym23))
* [`846faca`](https://github.com/npm/npm/commit/846facacc6427dafcf5756dcd36d9036539938de)
Fix development dependency is preferred over dependency.
([@andersjanmyr](https://github.com/andersjanmyr))
* [`9d1a9db`](https://github.com/npm/npm/commit/9d1a9db3af5adc48a7158a5a053eeb89ee41a0e7)
[#3265](https://github.com/npm/npm/issues/3265) Re-apply a71615a. Fixes
[#3265](https://github.com/npm/npm/issues/3265) again, with a test!
([@glasser](https://github.com/glasser))
* [`1d41db0`](https://github.com/npm/npm/commit/1d41db0b2744a7bd50971c35cc060ea0600fb4bf)
`marked-man@0.1.4`: Fixes formatting of synopsis blocks in man docs.
([@kapouer](https://github.com/kapouer))
* [`a623da0`](https://github.com/npm/npm/commit/a623da01bea1b2d3f3a18b9117cfd2d8e3cbdd77)
[#5867](https://github.com/npm/npm/issues/5867) Specify dummy git template
dir when cloning to prevent copying hooks.
([@boneskull](https://github.com/boneskull))
### v2.0.2 (2014-09-19):
* [`42c872b`](https://github.com/npm/npm/commit/42c872b32cadc0e555638fc78eab3a38a04401d8)
[#5920](https://github.com/npm/npm/issues/5920)
`fs-write-stream-atomic@1.0.0` ([@isaacs](https://github.com/isaacs))
* [`6784767`](https://github.com/npm/npm/commit/6784767fe15e28b44c81a1d4bb1738c642a65d78)
[#5920](https://github.com/npm/npm/issues/5920) make all write streams atomic
([@isaacs](https://github.com/isaacs))
* [`f6fac00`](https://github.com/npm/npm/commit/f6fac000dd98ebdd5ea1d5921175735d463d328b)
[#5920](https://github.com/npm/npm/issues/5920) barf on 0-length cached
tarballs ([@isaacs](https://github.com/isaacs))
* [`3b37592`](https://github.com/npm/npm/commit/3b37592a92ea98336505189ae8ca29248b0589f4)
`write-file-atomic@1.1.0`: use graceful-fs
([@iarna](https://github.com/iarna))
### v2.0.1 (2014-09-18):
* [`74c5ab0`](https://github.com/npm/npm/commit/74c5ab0a676793c6dc19a3fd5fe149f85fecb261)
[#6201](https://github.com/npm/npm/issues/6201) `npmconf@2.1.0`: scope
always-auth to registry URI ([@othiym23](https://github.com/othiym23))
* [`774b127`](https://github.com/npm/npm/commit/774b127da1dd6fefe2f1299e73505d9146f00294)
[#6201](https://github.com/npm/npm/issues/6201) `npm-registry-client@3.2.2`:
use scoped always-auth settings ([@othiym23](https://github.com/othiym23))
* [`f2d2190`](https://github.com/npm/npm/commit/f2d2190aa365d22378d03afab0da13f95614a583)
[#6201](https://github.com/npm/npm/issues/6201) support saving
`--always-auth` when logging in ([@othiym23](https://github.com/othiym23))
* [`17c941a`](https://github.com/npm/npm/commit/17c941a2d583210fe97ed47e2968d94ce9f774ba)
[#6163](https://github.com/npm/npm/issues/6163) use `write-file-atomic`
instead of `fs.writeFile()` ([@fiws](https://github.com/fiws))
* [`fb5724f`](https://github.com/npm/npm/commit/fb5724fd98e1509c939693568df83d11417ea337)
[#5925](https://github.com/npm/npm/issues/5925) `npm init -f`: allow `npm
init` to run without prompting
([@michaelnisi](https://github.com/michaelnisi))
* [`b706d63`](https://github.com/npm/npm/commit/b706d637d5965dbf8f7ce07dc5c4bc80887f30d8)
[#3059](https://github.com/npm/npm/issues/3059) disable prepublish when
running `npm install --production`
([@jussi](https://github.com/jussi)-kalliokoski)
* [`119f068`](https://github.com/npm/npm/commit/119f068eae2a36fa8b9c9ca557c70377792243a4)
attach the node version used when publishing a package to its registry
metadata ([@othiym23](https://github.com/othiym23))
* [`8fe0081`](https://github.com/npm/npm/commit/8fe008181665519c2ac201ee432a3ece9798c31f)
seriously, don't use `npm -g update npm`
([@thomblake](https://github.com/thomblake))
* [`ea5b3d4`](https://github.com/npm/npm/commit/ea5b3d446b86dcabb0dbc6dba374d3039342ecb3)
`request@2.44.0` ([@othiym23](https://github.com/othiym23))
### v2.0.0 (2014-09-12):
BREAKING CHANGES:

96
deps/npm/Makefile vendored
View File

@@ -31,6 +31,28 @@ misc_mandocs = $(shell find doc/misc -name '*.md' \
|sed 's|doc/misc/|man/man7/|g' ) \
man/man7/npm-index.7
cli_partdocs = $(shell find doc/cli -name '*.md' \
|sed 's|.md|.html|g' \
|sed 's|doc/cli/|html/partial/doc/cli/|g' ) \
html/partial/doc/README.html
api_partdocs = $(shell find doc/api -name '*.md' \
|sed 's|.md|.html|g' \
|sed 's|doc/api/|html/partial/doc/api/|g' )
files_partdocs = $(shell find doc/files -name '*.md' \
|sed 's|.md|.html|g' \
|sed 's|doc/files/|html/partial/doc/files/|g' ) \
html/partial/doc/files/npm-json.html \
html/partial/doc/files/npm-global.html
misc_partdocs = $(shell find doc/misc -name '*.md' \
|sed 's|.md|.html|g' \
|sed 's|doc/misc/|html/partial/doc/misc/|g' ) \
html/partial/doc/index.html
cli_htmldocs = $(shell find doc/cli -name '*.md' \
|sed 's|.md|.html|g' \
|sed 's|doc/cli/|html/doc/cli/|g' ) \
@@ -53,6 +75,8 @@ misc_htmldocs = $(shell find doc/misc -name '*.md' \
mandocs = $(api_mandocs) $(cli_mandocs) $(files_mandocs) $(misc_mandocs)
partdocs = $(api_partdocs) $(cli_partdocs) $(files_partdocs) $(misc_partdocs)
htmldocs = $(api_htmldocs) $(cli_htmldocs) $(files_htmldocs) $(misc_htmldocs)
all: doc
@@ -63,7 +87,7 @@ latest:
@echo "in this folder that you're looking at right now."
node cli.js install -g -f npm
install: docclean all
install: all
node cli.js install -g -f
# backwards compat
@@ -79,7 +103,7 @@ clean: markedclean marked-manclean doc-clean uninstall
uninstall:
node cli.js rm npm -g -f
doc: $(mandocs) $(htmldocs)
doc: $(mandocs) $(htmldocs) $(partdocs)
markedclean:
rm -rf node_modules/marked node_modules/.bin/marked .building_marked
@@ -119,43 +143,73 @@ man/man5/%.5: doc/files/%.md scripts/doc-build.sh package.json
@[ -d man/man5 ] || mkdir -p man/man5
scripts/doc-build.sh $< $@
doc/misc/npm-index.md: scripts/index-build.js package.json
node scripts/index-build.js > $@
html/doc/index.html: doc/misc/npm-index.md $(html_docdeps)
@[ -d html/doc ] || mkdir -p html/doc
scripts/doc-build.sh $< $@
man/man7/%.7: doc/misc/%.md scripts/doc-build.sh package.json
@[ -d man/man7 ] || mkdir -p man/man7
scripts/doc-build.sh $< $@
html/doc/README.html: README.md $(html_docdeps)
doc/misc/npm-index.md: scripts/index-build.js package.json
node scripts/index-build.js > $@
# html/doc depends on html/partial/doc
html/doc/%.html: html/partial/doc/%.html
@[ -d html/doc ] || mkdir -p html/doc
scripts/doc-build.sh $< $@
html/doc/cli/%.html: doc/cli/%.md $(html_docdeps)
html/doc/README.html: html/partial/doc/README.html
@[ -d html/doc ] || mkdir -p html/doc
scripts/doc-build.sh $< $@
html/doc/cli/%.html: html/partial/doc/cli/%.html
@[ -d html/doc/cli ] || mkdir -p html/doc/cli
scripts/doc-build.sh $< $@
html/doc/api/%.html: doc/api/%.md $(html_docdeps)
@[ -d html/doc/api ] || mkdir -p html/doc/api
html/doc/misc/%.html: html/partial/doc/misc/%.html
@[ -d html/doc/misc ] || mkdir -p html/doc/misc
scripts/doc-build.sh $< $@
html/doc/files/npm-json.html: html/doc/files/package.json.html
cp $< $@
html/doc/files/npm-global.html: html/doc/files/npm-folders.html
cp $< $@
html/doc/files/%.html: doc/files/%.md $(html_docdeps)
html/doc/files/%.html: html/partial/doc/files/%.html
@[ -d html/doc/files ] || mkdir -p html/doc/files
scripts/doc-build.sh $< $@
html/doc/misc/%.html: doc/misc/%.md $(html_docdeps)
@[ -d html/doc/misc ] || mkdir -p html/doc/misc
html/doc/api/%.html: html/partial/doc/api/%.html
@[ -d html/doc/api ] || mkdir -p html/doc/api
scripts/doc-build.sh $< $@
html/partial/doc/index.html: doc/misc/npm-index.md $(html_docdeps)
@[ -d html/partial/doc ] || mkdir -p html/partial/doc
scripts/doc-build.sh $< $@
html/partial/doc/README.html: README.md $(html_docdeps)
@[ -d html/partial/doc ] || mkdir -p html/partial/doc
scripts/doc-build.sh $< $@
html/partial/doc/cli/%.html: doc/cli/%.md $(html_docdeps)
@[ -d html/partial/doc/cli ] || mkdir -p html/partial/doc/cli
scripts/doc-build.sh $< $@
html/partial/doc/api/%.html: doc/api/%.md $(html_docdeps)
@[ -d html/partial/doc/api ] || mkdir -p html/partial/doc/api
scripts/doc-build.sh $< $@
html/partial/doc/files/npm-json.html: html/partial/doc/files/package.json.html
cp $< $@
html/partial/doc/files/npm-global.html: html/partial/doc/files/npm-folders.html
cp $< $@
html/partial/doc/files/%.html: doc/files/%.md $(html_docdeps)
@[ -d html/partial/doc/files ] || mkdir -p html/partial/doc/files
scripts/doc-build.sh $< $@
html/partial/doc/misc/%.html: doc/misc/%.md $(html_docdeps)
@[ -d html/partial/doc/misc ] || mkdir -p html/partial/doc/misc
scripts/doc-build.sh $< $@
marked: node_modules/.bin/marked
node_modules/.bin/marked:

2
deps/npm/README.md vendored
View File

@@ -154,7 +154,7 @@ use npm itself to do.
if (er) return commandFailed(er)
// command succeeded, and data might have some info
})
npm.on("log", function (message) { .... })
npm.registry.log.on("log", function (message) { .... })
})
The `load` function takes an object hash of the command-line configs.

View File

@@ -21,7 +21,7 @@ log.info("it worked if it ends with", "ok")
var path = require("path")
, npm = require("../lib/npm.js")
, npmconf = require("npmconf")
, npmconf = require("../lib/config/core.js")
, errorHandler = require("../lib/utils/error-handler.js")
, configDefs = npmconf.defs

View File

@@ -10,4 +10,4 @@ npm-bin(3) -- Display npm bin folder
Print the folder where npm will install executables.
This function should not be used programmatically. Instead, just refer
to the `npm.bin` member.
to the `npm.bin` property.

View File

@@ -27,4 +27,4 @@ array of results is returned. Each result is an object with these properties:
* file:
Name of the file that matched
The silent parameter is not neccessary not used, but it may in the future.
The silent parameter is not necessary not used, but it may in the future.

View File

@@ -10,9 +10,9 @@ npm-load(3) -- Load config settings
npm.load() must be called before any other function call. Both parameters are
optional, but the second is recommended.
The first parameter is an object hash of command-line config params, and the
second parameter is a callback that will be called when npm is loaded and
ready to serve.
The first parameter is an object containing command-line config params, and the
second parameter is a callback that will be called when npm is loaded and ready
to serve.
The first parameter should follow a similar structure as the package.json
config object.

View File

@@ -1,28 +0,0 @@
npm-submodule(3) -- Add a package as a git submodule
====================================================
## SYNOPSIS
npm.commands.submodule(packages, callback)
## DESCRIPTION
For each package specified, npm will check if it has a git repository url
in its package.json description then add it as a git submodule at
`node_modules/<pkg name>`.
This is a convenience only. From then on, it's up to you to manage
updates by using the appropriate git commands. npm will stubbornly
refuse to update, modify, or remove anything with a `.git` subfolder
in it.
This command also does not install missing dependencies, if the package
does not include them in its git repository. If `npm ls` reports that
things are missing, you can either install, link, or submodule them yourself,
or you can do `npm explore <pkgname> -- npm install` to install the
dependencies into the submodule folder.
## SEE ALSO
* npm help json
* git help submodule

View File

@@ -25,13 +25,12 @@ This is the API documentation for npm.
To find documentation of the command line
client, see `npm(1)`.
Prior to using npm's commands, `npm.load()` must be called.
If you provide `configObject` as an object hash of top-level
configs, they override the values stored in the various config
locations. In the npm command line client, this set of configs
is parsed from the command line options. Additional configuration
params are loaded from two configuration files. See `npm-config(1)`,
`npm-config(7)`, and `npmrc(5)` for more information.
Prior to using npm's commands, `npm.load()` must be called. If you provide
`configObject` as an object map of top-level configs, they override the values
stored in the various config locations. In the npm command line client, this
set of configs is parsed from the command line options. Additional
configuration params are loaded from two configuration files. See
`npm-config(1)`, `npm-config(7)`, and `npmrc(5)` for more information.
After that, each of the functions are accessible in the
commands object: `npm.commands.<cmd>`. See `npm-index(7)` for a list of
@@ -88,9 +87,9 @@ command.
## MAGIC
For each of the methods in the `npm.commands` hash, a method is added to
the npm object, which takes a set of positional string arguments rather
than an array and a callback.
For each of the methods in the `npm.commands` object, a method is added to the
npm object, which takes a set of positional string arguments rather than an
array and a callback.
If the last argument is a callback, then it will use the supplied
callback. However, if no callback is provided, then it will print out

View File

@@ -3,7 +3,7 @@ npm-adduser(1) -- Add a registry user account
## SYNOPSIS
npm adduser [--registry=url] [--scope=@orgname]
npm adduser [--registry=url] [--scope=@orgname] [--always-auth]
## DESCRIPTION
@@ -45,6 +45,21 @@ e.g.
This will set a registry for the given scope and login or create a user for
that registry at the same time.
### always-auth
Default: false
If specified, save configuration indicating that all requests to the given
registry should include authorization information. Useful for private
registries. Can be used with `--registry` and / or `--scope`, e.g.
npm adduser --registry=http://private-registry.example.com --always-auth
This will ensure that all requests to that registry (including for tarballs)
include an authorization header. See `always-auth` in `npm-config(7)` for more
details on always-auth. Registry-specific configuaration of `always-auth` takes
precedence over any global configuration.
## SEE ALSO
* npm-registry(7)

View File

@@ -32,7 +32,6 @@ The shell to run for the `npm explore` command.
## SEE ALSO
* npm-submodule(1)
* npm-folders(5)
* npm-edit(1)
* npm-rebuild(1)

View File

@@ -3,7 +3,7 @@ npm-init(1) -- Interactively create a package.json file
## SYNOPSIS
npm init
npm init [-f|--force|-y|--yes]
## DESCRIPTION
@@ -18,6 +18,9 @@ the options in there.
It is strictly additive, so it does not delete options from your package.json
without a really good reason to do so.
If you invoke it with `-f`, `--force`, `-y`, or `--yes`, it will use only
defaults and not prompt you for any options.
## SEE ALSO
* <https://github.com/isaacs/init-package-json>

View File

@@ -9,7 +9,9 @@ npm-publish(1) -- Publish a package
## DESCRIPTION
Publishes a package to the registry so that it can be installed by name.
Publishes a package to the registry so that it can be installed by name. See
`npm-developers(7)` for details on what's included in the published package, as
well as details on how the package is built.
By default npm will publish to the public registry. This can be overridden by
specifying a different default registry or using a `npm-scope(7)` in the name

View File

@@ -7,11 +7,8 @@ npm-restart(1) -- Start a package
## DESCRIPTION
This runs a package's "restart" script, if one was provided.
Otherwise it runs package's "stop" script, if one was provided, and then
the "start" script.
If no version is specified, then it restarts the "active" version.
This runs a package's "restart" script, if one was provided. Otherwise it runs
package's "stop" script, if one was provided, and then the "start" script.
## SEE ALSO

View File

@@ -16,6 +16,16 @@ is provided, it will list the available top level scripts.
It is used by the test, start, restart, and stop commands, but can be
called directly, as well.
As of [`npm@2.0.0`](http://blog.npmjs.org/post/98131109725/npm-2-0-0), you can
use custom arguments when executing scripts. The special option `--` is used by
[getopt](http://goo.gl/KxMmtG) to delimit the end of the options. npm will pass
all the arguments after the `--` directly to your script:
npm run test -- --grep="pattern"
The arguments will only be passed to the script specified after ```npm run```
and not to any pre or post script.
## SEE ALSO
* npm-scripts(7)

View File

@@ -1,28 +0,0 @@
npm-submodule(1) -- Add a package as a git submodule
====================================================
## SYNOPSIS
npm submodule <pkg>
## DESCRIPTION
If the specified package has a git repository url in its package.json
description, then this command will add it as a git submodule at
`node_modules/<pkg name>`.
This is a convenience only. From then on, it's up to you to manage
updates by using the appropriate git commands. npm will stubbornly
refuse to update, modify, or remove anything with a `.git` subfolder
in it.
This command also does not install missing dependencies, if the package
does not include them in its git repository. If `npm ls` reports that
things are missing, you can either install, link, or submodule them yourself,
or you can do `npm explore <pkgname> -- npm install` to install the
dependencies into the submodule folder.
## SEE ALSO
* package.json(5)
* git help submodule

View File

@@ -219,7 +219,7 @@ will create entries for `man foo` and `man 2 foo`
The CommonJS [Packages](http://wiki.commonjs.org/wiki/Packages/1.0) spec details a
few ways that you can indicate the structure of your package using a `directories`
hash. If you look at [npm's package.json](http://registry.npmjs.org/npm/latest),
object. If you look at [npm's package.json](http://registry.npmjs.org/npm/latest),
you'll see that it has directories for doc, lib, and man.
In the future, this information may be used in other creative ways.
@@ -231,10 +231,10 @@ with the lib folder in any way, but it's useful meta info.
### directories.bin
If you specify a "bin" directory, then all the files in that folder will
be used as the "bin" hash.
If you specify a `bin` directory, then all the files in that folder will
be added as children of the `bin` path.
If you have a "bin" hash already, then this has no effect.
If you have a `bin` path already, then this has no effect.
### directories.man
@@ -274,7 +274,7 @@ html project page that you put in your browser. It's for computers.
## scripts
The "scripts" member is an object hash of script commands that are run
The "scripts" property is a dictionary containing script commands that are run
at various times in the lifecycle of your package. The key is the lifecycle
event, and the value is the command to run at that point.
@@ -282,9 +282,9 @@ See `npm-scripts(7)` to find out more about writing package scripts.
## config
A "config" hash can be used to set configuration
parameters used in package scripts that persist across upgrades. For
instance, if a package had the following:
A "config" object can be used to set configuration parameters used in package
scripts that persist across upgrades. For instance, if a package had the
following:
{ "name" : "foo"
, "config" : { "port" : "8080" } }
@@ -298,13 +298,13 @@ configs.
## dependencies
Dependencies are specified with a simple hash of package name to
Dependencies are specified in a simple object that maps a package name to a
version range. The version range is a string which has one or more
space-separated descriptors. Dependencies can also be identified with
a tarball or git URL.
space-separated descriptors. Dependencies can also be identified with a
tarball or git URL.
**Please do not put test harnesses or transpilers in your
`dependencies` hash.** See `devDependencies`, below.
`dependencies` object.** See `devDependencies`, below.
See semver(7) for more details about specifying version ranges.
@@ -340,7 +340,7 @@ For example, these are all valid:
, "two" : "2.x"
, "thr" : "3.3.x"
, "lat" : "latest"
, "dyl" : "~/projects/dyl"
, "dyl" : "file:../dyl"
}
}
@@ -378,14 +378,25 @@ As of version 1.1.65, you can refer to GitHub urls as just "foo": "user/foo-proj
## Local Paths
As of version 2.0.0 you can provide a path to a local directory that
contains a package. Local paths can be in the form:
As of version 2.0.0 you can provide a path to a local directory that contains a
package. Local paths can be saved using `npm install --save`, using any of
these forms:
../foo/bar
~/foo/bar
./foo/bar
/foo/bar
in which case they will be normalized to a relative path and added to your
`package.json`. For example:
{
"name": "baz",
"dependencies": {
"bar": "file:../foo/bar"
}
}
This feature is helpful for local offline development and creating
tests that require npm installing where you don't want to hit an
external server, but should not be used when publishing packages
@@ -397,8 +408,8 @@ If someone is planning on downloading and using your module in their
program, then they probably don't want or need to download and build
the external test or documentation framework that you use.
In this case, it's best to list these additional items in a
`devDependencies` hash.
In this case, it's best to map these additional items in a `devDependencies`
object.
These things will be installed when doing `npm link` or `npm install`
from the root of a package, and can be managed like any other npm
@@ -469,11 +480,11 @@ If this is spelled `"bundleDependencies"`, then that is also honorable.
## optionalDependencies
If a dependency can be used, but you would like npm to proceed if it
cannot be found or fails to install, then you may put it in the
`optionalDependencies` hash. This is a map of package name to version
or url, just like the `dependencies` hash. The difference is that
failure is tolerated.
If a dependency can be used, but you would like npm to proceed if it cannot be
found or fails to install, then you may put it in the `optionalDependencies`
object. This is a map of package name to version or url, just like the
`dependencies` object. The difference is that build failures do not cause
installation to fail.
It is still your program's responsibility to handle the lack of the
dependency. For example, something like this:
@@ -521,12 +532,12 @@ field is advisory only.
## engineStrict
If you are sure that your module will *definitely not* run properly on
versions of Node/npm other than those specified in the `engines` hash,
versions of Node/npm other than those specified in the `engines` object,
then you can set `"engineStrict": true` in your package.json file.
This will override the user's `engine-strict` config setting.
Please do not do this unless you are really very very sure. If your
engines hash is something overly restrictive, you can quite easily and
engines object is something overly restrictive, you can quite easily and
inadvertently lock yourself into obscurity and prevent your users from
updating to new versions of Node. Consider this choice carefully. If
people abuse it, it will be removed in a future version of npm.
@@ -575,11 +586,11 @@ does help prevent some confusion if it doesn't work as expected.
If you set `"private": true` in your package.json, then npm will refuse
to publish it.
This is a way to prevent accidental publication of private repositories.
If you would like to ensure that a given package is only ever published
to a specific registry (for example, an internal registry),
then use the `publishConfig` hash described below
to override the `registry` config param at publish-time.
This is a way to prevent accidental publication of private repositories. If
you would like to ensure that a given package is only ever published to a
specific registry (for example, an internal registry), then use the
`publishConfig` dictionary described below to override the `registry` config
param at publish-time.
## publishConfig

View File

@@ -147,7 +147,7 @@ Use appropriate log levels. See `npm-config(7)` and search for
## Case, naming, etc.
Use `lowerCamelCase` for multiword identifiers when they refer to objects,
functions, methods, members, or anything not specified in this section.
functions, methods, properties, or anything not specified in this section.
Use `UpperCamelCase` for class names (things that you'd pass to "new").

View File

@@ -384,35 +384,35 @@ documentation for the
[init-package-json](https://github.com/isaacs/init-package-json) module
for more information, or npm-init(1).
### init.author.name
### init-author-name
* Default: ""
* Type: String
The value `npm init` should use by default for the package author's name.
### init.author.email
### init-author-email
* Default: ""
* Type: String
The value `npm init` should use by default for the package author's email.
### init.author.url
### init-author-url
* Default: ""
* Type: String
The value `npm init` should use by default for the package author's homepage.
### init.license
### init-license
* Default: "ISC"
* Type: String
The value `npm init` should use by default for the package license.
### init.version
### init-version
* Default: "0.0.0"
* Type: semver
@@ -464,7 +464,7 @@ to the npm registry. Must be IPv4 in versions of Node prior to 0.12.
### loglevel
* Default: "http"
* Default: "warn"
* Type: String
* Values: "silent", "error", "warn", "http", "info", "verbose", "silly"
@@ -472,7 +472,7 @@ What level of logs to report. On failure, *all* logs are written to
`npm-debug.log` in the current working directory.
Any logs of a higher level than the setting are shown.
The default is "http", which shows http, warn, and error output.
The default is "warn", which shows warn and error output.
### logstream
@@ -510,7 +510,7 @@ Any "%s" in the message will be replaced with the version number.
* Default: process.version
* Type: semver or false
The node version to use when checking package's "engines" hash.
The node version to use when checking a package's `engines` map.
### npat
@@ -532,7 +532,7 @@ usage.
* Default: true
* Type: Boolean
Attempt to install packages in the `optionalDependencies` hash. Note
Attempt to install packages in the `optionalDependencies` object. Note
that if these packages fail to install, the overall installation
process is not aborted.
@@ -610,8 +610,8 @@ Remove failed installs.
Save installed packages to a package.json file as dependencies.
When used with the `npm rm` command, it removes it from the dependencies
hash.
When used with the `npm rm` command, it removes it from the `dependencies`
object.
Only works if there is already a package.json file present.
@@ -632,10 +632,10 @@ bundledDependencies list.
* Default: false
* Type: Boolean
Save installed packages to a package.json file as devDependencies.
Save installed packages to a package.json file as `devDependencies`.
When used with the `npm rm` command, it removes it from the
devDependencies hash.
`devDependencies` object.
Only works if there is already a package.json file present.
@@ -657,7 +657,7 @@ Save installed packages to a package.json file as
optionalDependencies.
When used with the `npm rm` command, it removes it from the
devDependencies hash.
`devDependencies` object.
Only works if there is already a package.json file present.
@@ -848,8 +848,8 @@ Only relevant when specified explicitly on the command line.
* Default: false
* Type: boolean
If true, output the npm version as well as node's `process.versions`
hash, and exit successfully.
If true, output the npm version as well as node's `process.versions` map, and
exit successfully.
Only relevant when specified explicitly on the command line.

View File

@@ -76,7 +76,7 @@ least, you need:
* scripts:
If you have a special compilation or installation script, then you
should put it in the `scripts` hash. You should definitely have at
should put it in the `scripts` object. You should definitely have at
least a basic smoke-test command as the "scripts.test" field.
See npm-scripts(7).
@@ -86,8 +86,8 @@ least, you need:
then you need to specify that in the "main" field.
* directories:
This is a hash of folders. The best ones to include are "lib" and
"doc", but if you specify a folder full of man pages in "man", then
This is an object mapping names to folders. The best ones to include are
"lib" and "doc", but if you use "man" to specify a folder full of man pages,
they'll get installed just like these ones.
You can use `npm init` in the root of your package in order to get you

View File

@@ -135,7 +135,7 @@ Arguments are greps. `npm search jsdom` shows jsdom packages.
## How do I update npm?
npm update npm -g
npm install npm -g
You can also update all outdated local packages by doing `npm update` without
any arguments, or global packages by doing `npm update -g`.

View File

@@ -161,10 +161,6 @@ Start a package
Stop a package
### npm-submodule(1)
Add a package as a git submodule
### npm-tag(1)
Tag a published version
@@ -325,10 +321,6 @@ Start a package
Stop a package
### npm-submodule(3)
Add a package as a git submodule
### npm-tag(3)
Tag a published version

View File

@@ -25,8 +25,8 @@ scoped modules will be in `node_modules/@myorg/packagename`. The scope folder
(`@myorg`) is simply the name of the scope preceded by an @-symbol, and can
contain any number of scoped packages.
A scoped package is install by referencing it by name, preceded by an @-symbol,
in `npm install`:
A scoped package is installed by referencing it by name, preceded by an
@-symbol, in `npm install`:
npm install @myorg/mypackage

View File

@@ -3,7 +3,7 @@ npm-scripts(7) -- How npm handles the "scripts" field
## DESCRIPTION
npm supports the "scripts" member of the package.json script, for the
npm supports the "scripts" property of the package.json script, for the
following scripts:
* prepublish:
@@ -33,9 +33,10 @@ following scripts:
Run by the `npm restart` command. Note: `npm restart` will run the
stop and start scripts if no `restart` script is provided.
Additionally, arbitrary scripts can be executed by running `npm run-script
<pkg> <stage>`. *Pre* and *post* commands with matching names will be run for
those as well (e.g. `premyscript`, `myscript`, `postmyscript`).
Additionally, arbitrary scripts can be executed by running `npm
run-script <pkg> <stage>`. *Pre* and *post* commands with matching
names will be run for those as well (e.g. `premyscript`, `myscript`,
`postmyscript`).
## NOTE: INSTALL SCRIPTS ARE AN ANTIPATTERN
@@ -136,7 +137,7 @@ Configuration parameters are put in the environment with the
`npm_config_` prefix. For instance, you can view the effective `root`
config by checking the `npm_config_root` environment variable.
### Special: package.json "config" hash
### Special: package.json "config" object
The package.json "config" keys are overwritten in the environment if
there is a config param of `<name>[@<version>]:<key>`. For example,

View File

@@ -140,7 +140,7 @@ numeric values in the `[major, minor, patch]` tuple.
A partial version range is treated as an X-Range, so the special
character is in fact optional.
* `` (empty string) := `*` := `>=0.0.0`
* `""` (empty string) := `*` := `>=0.0.0`
* `1` := `1.x.x` := `>=1.0.0 <2.0.0`
* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0`

View File

@@ -108,7 +108,7 @@ npm.load(myConfigObject, function (er) {
if (er) return commandFailed(er)
// command succeeded, and data might have some info
})
npm.on(&quot;log&quot;, function (message) { .... })
npm.registry.log.on(&quot;log&quot;, function (message) { .... })
})
</code></pre><p>The <code>load</code> function takes an object hash of the command-line configs.
The various <code>npm.commands.&lt;cmd&gt;</code> functions take an <strong>array</strong> of
@@ -141,7 +141,7 @@ specific purpose, or lack of malice in any given npm package.</p>
<p>If you have a complaint about a package in the public npm registry,
and cannot <a href="https://www.npmjs.org/doc/misc/npm-disputes.html">resolve it with the package
owner</a>, please email
<a href="&#x6d;&#97;&#105;&#108;&#x74;&#x6f;&#58;&#x73;&#117;&#112;&#x70;&#x6f;&#114;&#x74;&#x40;&#x6e;&#x70;&#109;&#x6a;&#115;&#x2e;&#x63;&#111;&#x6d;">&#x73;&#117;&#112;&#x70;&#x6f;&#114;&#x74;&#x40;&#x6e;&#x70;&#109;&#x6a;&#115;&#x2e;&#x63;&#111;&#x6d;</a> and explain the situation.</p>
<a href="&#x6d;&#x61;&#x69;&#108;&#116;&#x6f;&#58;&#x73;&#x75;&#x70;&#112;&#x6f;&#x72;&#116;&#64;&#110;&#x70;&#x6d;&#106;&#115;&#x2e;&#x63;&#111;&#109;">&#x73;&#x75;&#x70;&#112;&#x6f;&#x72;&#116;&#64;&#110;&#x70;&#x6d;&#106;&#115;&#x2e;&#x63;&#111;&#109;</a> and explain the situation.</p>
<p>Any data published to The npm Registry (including user account
information) may be removed or modified at the sole discretion of the
npm server administrators.</p>
@@ -161,7 +161,7 @@ ban your account in extreme cases. So don&#39;t do that.</p>
<li>web:
<a href="https://github.com/npm/npm/issues">https://github.com/npm/npm/issues</a></li>
<li>email:
<a href="&#x6d;&#97;&#105;&#108;&#x74;&#111;&#58;&#110;&#112;&#109;&#45;&#x40;&#x67;&#111;&#111;&#103;&#108;&#x65;&#x67;&#x72;&#111;&#117;&#112;&#115;&#x2e;&#x63;&#x6f;&#109;">&#110;&#112;&#109;&#45;&#x40;&#x67;&#111;&#111;&#103;&#108;&#x65;&#x67;&#x72;&#111;&#117;&#112;&#115;&#x2e;&#x63;&#x6f;&#109;</a></li>
<a href="&#109;&#x61;&#x69;&#108;&#116;&#x6f;&#58;&#110;&#112;&#x6d;&#x2d;&#x40;&#103;&#111;&#111;&#103;&#108;&#101;&#103;&#114;&#x6f;&#117;&#x70;&#x73;&#46;&#x63;&#111;&#109;">&#110;&#112;&#x6d;&#x2d;&#x40;&#103;&#111;&#111;&#103;&#108;&#101;&#103;&#114;&#x6f;&#117;&#x70;&#x73;&#46;&#x63;&#111;&#109;</a></li>
</ul>
<p>Be sure to include <em>all</em> of the output from the npm command that didn&#39;t work
as expected. The <code>npm-debug.log</code> file is also helpful to provide.</p>
@@ -169,10 +169,10 @@ as expected. The <code>npm-debug.log</code> file is also helpful to provide.</p
will no doubt tell you to put the output in a gist or email.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="cli/npm.html">npm(1)</a></li>
<li><a href="misc/npm-faq.html">npm-faq(7)</a></li>
<li><a href="cli/npm-help.html">npm-help(1)</a></li>
<li><a href="misc/npm-index.html">npm-index(7)</a></li>
<li><a href="cli/npm.html"><a href="cli/npm.html">npm(1)</a></a></li>
<li><a href="misc/npm-faq.html"><a href="misc/npm-faq.html">npm-faq(7)</a></a></li>
<li><a href="cli/npm-help.html"><a href="cli/npm-help.html">npm-help(1)</a></a></li>
<li><a href="misc/npm-index.html"><a href="misc/npm-index.html">npm-index(7)</a></a></li>
</ul>
</div>
@@ -186,5 +186,5 @@ will no doubt tell you to put the output in a gist or email.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@2.0.0</p>
<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@2.1.6</p>

View File

@@ -15,7 +15,7 @@
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>Print the folder where npm will install executables.</p>
<p>This function should not be used programmatically. Instead, just refer
to the <code>npm.bin</code> member.</p>
to the <code>npm.bin</code> property.</p>
</div>
@@ -28,5 +28,5 @@ to the <code>npm.bin</code> member.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-bin &mdash; npm@2.0.0</p>
<p id="footer">npm-bin &mdash; npm@2.1.6</p>

View File

@@ -33,5 +33,5 @@ friendly for programmatic use.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-bugs &mdash; npm@2.0.0</p>
<p id="footer">npm-bugs &mdash; npm@2.1.6</p>

View File

@@ -18,7 +18,7 @@ npm.commands.cache.clean([args], callback)
npm.commands.cache.add([args], callback)
npm.commands.cache.read(name, version, forceBypass, callback)
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>This acts much the same ways as the <a href="../cli/npm-cache.html">npm-cache(1)</a> command line
<p>This acts much the same ways as the <a href="../cli/npm-cache.html"><a href="../cli/npm-cache.html">npm-cache(1)</a></a> command line
functionality.</p>
<p>The callback is called with the package.json data of the thing that is
eventually added to or read from the cache.</p>
@@ -42,5 +42,5 @@ incrementation.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-cache &mdash; npm@2.0.0</p>
<p id="footer">npm-cache &mdash; npm@2.1.6</p>

View File

@@ -22,7 +22,7 @@ commands are special and take other optional arguments.</p>
usage, or <code>man 3 npm-&lt;command&gt;</code> for programmatic usage.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../misc/npm-index.html">npm-index(7)</a></li>
<li><a href="../misc/npm-index.html"><a href="../misc/npm-index.html">npm-index(7)</a></a></li>
</ul>
</div>
@@ -36,5 +36,5 @@ usage, or <code>man 3 npm-&lt;command&gt;</code> for programmatic usage.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-commands &mdash; npm@2.0.0</p>
<p id="footer">npm-commands &mdash; npm@2.1.6</p>

View File

@@ -43,7 +43,7 @@ the duration of a program, use the <code>npm.config.set</code> and <code>npm.con
functions instead.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../api/npm.html">npm(3)</a></li>
<li><a href="../api/npm.html"><a href="../api/npm.html">npm(3)</a></a></li>
</ul>
</div>
@@ -57,5 +57,5 @@ functions instead.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-config &mdash; npm@2.0.0</p>
<p id="footer">npm-config &mdash; npm@2.1.6</p>

View File

@@ -31,9 +31,9 @@ a deprecation warning to all who attempt to install it.</p>
<p>To un-deprecate a package, specify an empty string (<code>&quot;&quot;</code>) for the <code>message</code> argument.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../api/npm-publish.html">npm-publish(3)</a></li>
<li><a href="../api/npm-unpublish.html">npm-unpublish(3)</a></li>
<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
<li><a href="../api/npm-publish.html"><a href="../api/npm-publish.html">npm-publish(3)</a></a></li>
<li><a href="../api/npm-unpublish.html"><a href="../api/npm-unpublish.html">npm-unpublish(3)</a></a></li>
<li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
</ul>
</div>
@@ -47,5 +47,5 @@ a deprecation warning to all who attempt to install it.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-deprecate &mdash; npm@2.0.0</p>
<p id="footer">npm-deprecate &mdash; npm@2.1.6</p>

View File

@@ -33,5 +33,5 @@ friendly for programmatic use.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-docs &mdash; npm@2.0.0</p>
<p id="footer">npm-docs &mdash; npm@2.1.6</p>

View File

@@ -36,5 +36,5 @@ and how this is used.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-edit &mdash; npm@2.0.0</p>
<p id="footer">npm-edit &mdash; npm@2.1.6</p>

View File

@@ -31,5 +31,5 @@ sure to use <code>npm rebuild &lt;pkg&gt;</code> if you make any changes.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-explore &mdash; npm@2.0.0</p>
<p id="footer">npm-explore &mdash; npm@2.1.6</p>

View File

@@ -31,7 +31,7 @@ An array of all matching lines (and some adjacent lines).</li>
<li>file:
Name of the file that matched</li>
</ul>
<p>The silent parameter is not neccessary not used, but it may in the future.</p>
<p>The silent parameter is not necessary not used, but it may in the future.</p>
</div>
@@ -44,5 +44,5 @@ Name of the file that matched</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-help-search &mdash; npm@2.0.0</p>
<p id="footer">npm-help-search &mdash; npm@2.1.6</p>

View File

@@ -26,7 +26,7 @@ JavaScript makes it stupid simple to output formatted JSON, that is the
preferred method. If you&#39;re sure you want to handle command-line prompting,
then go ahead and use this programmatically.</p>
<h2 id="see-also">SEE ALSO</h2>
<p><a href="../files/package.json.html">package.json(5)</a></p>
<p><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></p>
</div>
@@ -39,5 +39,5 @@ then go ahead and use this programmatically.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-init &mdash; npm@2.0.0</p>
<p id="footer">npm-init &mdash; npm@2.1.6</p>

View File

@@ -32,5 +32,5 @@ installed or when an error has been encountered.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-install &mdash; npm@2.0.0</p>
<p id="footer">npm-install &mdash; npm@2.1.6</p>

View File

@@ -42,5 +42,5 @@ the package in the current working directory</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-link &mdash; npm@2.0.0</p>
<p id="footer">npm-link &mdash; npm@2.1.6</p>

View File

@@ -15,9 +15,9 @@
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>npm.load() must be called before any other function call. Both parameters are
optional, but the second is recommended.</p>
<p>The first parameter is an object hash of command-line config params, and the
second parameter is a callback that will be called when npm is loaded and
ready to serve.</p>
<p>The first parameter is an object containing command-line config params, and the
second parameter is a callback that will be called when npm is loaded and ready
to serve.</p>
<p>The first parameter should follow a similar structure as the package.json
config object.</p>
<p>For example, to emulate the --dev flag, pass an object that looks like this:</p>
@@ -37,5 +37,5 @@ config object.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-load &mdash; npm@2.0.0</p>
<p id="footer">npm-load &mdash; npm@2.1.6</p>

View File

@@ -63,5 +63,5 @@ dependency will only be output once.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-ls &mdash; npm@2.0.0</p>
<p id="footer">npm-ls &mdash; npm@2.1.6</p>

View File

@@ -28,5 +28,5 @@ currently outdated.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-outdated &mdash; npm@2.0.0</p>
<p id="footer">npm-outdated &mdash; npm@2.1.6</p>

View File

@@ -32,8 +32,8 @@ or you can&#39;t. Future versions may contain more fine-grained access levels,
that is not implemented at this time.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../api/npm-publish.html">npm-publish(3)</a></li>
<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
<li><a href="../api/npm-publish.html"><a href="../api/npm-publish.html">npm-publish(3)</a></a></li>
<li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
</ul>
</div>
@@ -47,5 +47,5 @@ that is not implemented at this time.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-owner &mdash; npm@2.0.0</p>
<p id="footer">npm-owner &mdash; npm@2.1.6</p>

View File

@@ -33,5 +33,5 @@ overwritten the second time.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-pack &mdash; npm@2.0.0</p>
<p id="footer">npm-pack &mdash; npm@2.1.6</p>

View File

@@ -29,5 +29,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-prefix &mdash; npm@2.0.0</p>
<p id="footer">npm-prefix &mdash; npm@2.1.6</p>

View File

@@ -30,5 +30,5 @@ package&#39;s dependencies list.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-prune &mdash; npm@2.0.0</p>
<p id="footer">npm-prune &mdash; npm@2.1.6</p>

View File

@@ -30,9 +30,9 @@ current working directory.</p>
the registry. Overwrites when the &quot;force&quot; environment variable is set.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
<li><a href="../cli/npm-adduser.html">npm-adduser(1)</a></li>
<li><a href="../api/npm-owner.html">npm-owner(3)</a></li>
<li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
<li><a href="../cli/npm-adduser.html"><a href="../cli/npm-adduser.html">npm-adduser(1)</a></a></li>
<li><a href="../api/npm-owner.html"><a href="../api/npm-owner.html">npm-owner(3)</a></a></li>
</ul>
</div>
@@ -46,5 +46,5 @@ the registry. Overwrites when the &quot;force&quot; environment variable is set
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-publish &mdash; npm@2.0.0</p>
<p id="footer">npm-publish &mdash; npm@2.1.6</p>

View File

@@ -30,5 +30,5 @@ the new binary. If no &#39;packages&#39; parameter is specify, every package wil
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-rebuild &mdash; npm@2.0.0</p>
<p id="footer">npm-rebuild &mdash; npm@2.1.6</p>

View File

@@ -33,5 +33,5 @@ friendly for programmatic use.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-repo &mdash; npm@2.0.0</p>
<p id="footer">npm-repo &mdash; npm@2.1.6</p>

View File

@@ -21,8 +21,8 @@ the &quot;start&quot; script.</p>
in the <code>packages</code> parameter.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../api/npm-start.html">npm-start(3)</a></li>
<li><a href="../api/npm-stop.html">npm-stop(3)</a></li>
<li><a href="../api/npm-start.html"><a href="../api/npm-start.html">npm-start(3)</a></a></li>
<li><a href="../api/npm-stop.html"><a href="../api/npm-stop.html">npm-stop(3)</a></a></li>
</ul>
</div>
@@ -36,5 +36,5 @@ in the <code>packages</code> parameter.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-restart &mdash; npm@2.0.0</p>
<p id="footer">npm-restart &mdash; npm@2.1.6</p>

View File

@@ -29,5 +29,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-root &mdash; npm@2.0.0</p>
<p id="footer">npm-root &mdash; npm@2.1.6</p>

View File

@@ -23,11 +23,11 @@ one element, then the first is assumed to be the package and the second is
assumed to be the command to run. All other elements are ignored.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../misc/npm-scripts.html">npm-scripts(7)</a></li>
<li><a href="../api/npm-test.html">npm-test(3)</a></li>
<li><a href="../api/npm-start.html">npm-start(3)</a></li>
<li><a href="../api/npm-restart.html">npm-restart(3)</a></li>
<li><a href="../api/npm-stop.html">npm-stop(3)</a></li>
<li><a href="../misc/npm-scripts.html"><a href="../misc/npm-scripts.html">npm-scripts(7)</a></a></li>
<li><a href="../api/npm-test.html"><a href="../api/npm-test.html">npm-test(3)</a></a></li>
<li><a href="../api/npm-start.html"><a href="../api/npm-start.html">npm-start(3)</a></a></li>
<li><a href="../api/npm-restart.html"><a href="../api/npm-restart.html">npm-restart(3)</a></a></li>
<li><a href="../api/npm-stop.html"><a href="../api/npm-stop.html">npm-stop(3)</a></a></li>
</ul>
</div>
@@ -41,5 +41,5 @@ assumed to be the command to run. All other elements are ignored.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-run-script &mdash; npm@2.0.0</p>
<p id="footer">npm-run-script &mdash; npm@2.1.6</p>

View File

@@ -53,5 +53,5 @@ like).</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-search &mdash; npm@2.0.0</p>
<p id="footer">npm-search &mdash; npm@2.1.6</p>

View File

@@ -33,5 +33,5 @@ been saved.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-shrinkwrap &mdash; npm@2.0.0</p>
<p id="footer">npm-shrinkwrap &mdash; npm@2.1.6</p>

View File

@@ -28,5 +28,5 @@ in the <code>packages</code> parameter.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-start &mdash; npm@2.0.0</p>
<p id="footer">npm-start &mdash; npm@2.1.6</p>

View File

@@ -28,5 +28,5 @@ in the <code>packages</code> parameter.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-stop &mdash; npm@2.0.0</p>
<p id="footer">npm-stop &mdash; npm@2.1.6</p>

View File

@@ -42,5 +42,5 @@ dependencies into the submodule folder.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-submodule &mdash; npm@2.0.0</p>
<p id="footer">npm-submodule &mdash; npm@2.1.2</p>

View File

@@ -36,5 +36,5 @@ used. For more information about how to set this config, check
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-tag &mdash; npm@2.0.0</p>
<p id="footer">npm-tag &mdash; npm@2.1.6</p>

View File

@@ -30,5 +30,5 @@ in the <code>packages</code> parameter.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-test &mdash; npm@2.0.0</p>
<p id="footer">npm-test &mdash; npm@2.1.6</p>

View File

@@ -30,5 +30,5 @@ uninstalled or when an error has been encountered.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-uninstall &mdash; npm@2.0.0</p>
<p id="footer">npm-uninstall &mdash; npm@2.1.6</p>

View File

@@ -33,5 +33,5 @@ the root package entry is removed from the registry entirely.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-unpublish &mdash; npm@2.0.0</p>
<p id="footer">npm-unpublish &mdash; npm@2.1.6</p>

View File

@@ -27,5 +27,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-update &mdash; npm@2.0.0</p>
<p id="footer">npm-update &mdash; npm@2.1.6</p>

View File

@@ -32,5 +32,5 @@ not have exactly one element. The only element should be a version number.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-version &mdash; npm@2.0.0</p>
<p id="footer">npm-version &mdash; npm@2.1.6</p>

View File

@@ -81,5 +81,5 @@ the field name.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-view &mdash; npm@2.0.0</p>
<p id="footer">npm-view &mdash; npm@2.1.6</p>

View File

@@ -29,5 +29,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-whoami &mdash; npm@2.0.0</p>
<p id="footer">npm-whoami &mdash; npm@2.1.6</p>

View File

@@ -23,20 +23,19 @@ npm.load([configObject, ]function (er, npm) {
npm.commands.install([&quot;package&quot;], cb)
})
</code></pre><h2 id="version">VERSION</h2>
<p>2.0.0</p>
<p>2.1.6</p>
<h2 id="description">DESCRIPTION</h2>
<p>This is the API documentation for npm.
To find documentation of the command line
client, see <code><a href="../cli/npm.html">npm(1)</a></code>.</p>
<p>Prior to using npm&#39;s commands, <code>npm.load()</code> must be called.
If you provide <code>configObject</code> as an object hash of top-level
configs, they override the values stored in the various config
locations. In the npm command line client, this set of configs
is parsed from the command line options. Additional configuration
params are loaded from two configuration files. See <code><a href="../cli/npm-config.html">npm-config(1)</a></code>,
<code><a href="../misc/npm-config.html">npm-config(7)</a></code>, and <code><a href="../files/npmrc.html">npmrc(5)</a></code> for more information.</p>
client, see <code><a href="../cli/npm.html"><a href="../cli/npm.html">npm(1)</a></a></code>.</p>
<p>Prior to using npm&#39;s commands, <code>npm.load()</code> must be called. If you provide
<code>configObject</code> as an object map of top-level configs, they override the values
stored in the various config locations. In the npm command line client, this
set of configs is parsed from the command line options. Additional
configuration params are loaded from two configuration files. See
<code><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></code>, <code><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></code>, and <code><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></code> for more information.</p>
<p>After that, each of the functions are accessible in the
commands object: <code>npm.commands.&lt;cmd&gt;</code>. See <code><a href="../misc/npm-index.html">npm-index(7)</a></code> for a list of
commands object: <code>npm.commands.&lt;cmd&gt;</code>. See <code><a href="../misc/npm-index.html"><a href="../misc/npm-index.html">npm-index(7)</a></a></code> for a list of
all possible commands.</p>
<p>All commands on the command object take an <strong>array</strong> of positional argument
<strong>strings</strong>. The last argument to any function is a callback. Some
@@ -80,9 +79,9 @@ command.</p>
</li>
</ul>
<h2 id="magic">MAGIC</h2>
<p>For each of the methods in the <code>npm.commands</code> hash, a method is added to
the npm object, which takes a set of positional string arguments rather
than an array and a callback.</p>
<p>For each of the methods in the <code>npm.commands</code> object, a method is added to the
npm object, which takes a set of positional string arguments rather than an
array and a callback.</p>
<p>If the last argument is a callback, then it will use the supplied
callback. However, if no callback is provided, then it will print out
the error or results.</p>
@@ -110,5 +109,5 @@ method names. Use the <code>npm.deref</code> method to find the real name.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm &mdash; npm@2.0.0</p>
<p id="footer">npm &mdash; npm@2.1.6</p>

View File

@@ -11,11 +11,11 @@
<h1><a href="../cli/npm-adduser.html">npm-adduser</a></h1> <p>Add a registry user account</p>
<h2 id="synopsis">SYNOPSIS</h2>
<pre><code>npm adduser [--registry=url] [--scope=@orgname]
<pre><code>npm adduser [--registry=url] [--scope=@orgname] [--always-auth]
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>Create or verify a user named <code>&lt;username&gt;</code> in the specified registry, and
save the credentials to the <code>.npmrc</code> file. If no registry is specified,
the default registry will be used (see <code><a href="../misc/npm-config.html">npm-config(7)</a></code>).</p>
the default registry will be used (see <code><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></code>).</p>
<p>The username, password, and email are read in from prompts.</p>
<p>You may use this command to change your email address, but not username
or password.</p>
@@ -27,23 +27,33 @@ authorize on a new machine.</p>
<h3 id="registry">registry</h3>
<p>Default: <a href="http://registry.npmjs.org/">http://registry.npmjs.org/</a></p>
<p>The base URL of the npm package registry. If <code>scope</code> is also specified,
this registry will only be used for packages with that scope. See <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>.</p>
this registry will only be used for packages with that scope. See <code><a href="../misc/npm-scope.html"><a href="../misc/npm-scope.html">npm-scope(7)</a></a></code>.</p>
<h3 id="scope">scope</h3>
<p>Default: none</p>
<p>If specified, the user and login credentials given will be associated
with the specified scope. See <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>. You can use both at the same time,
with the specified scope. See <code><a href="../misc/npm-scope.html"><a href="../misc/npm-scope.html">npm-scope(7)</a></a></code>. You can use both at the same time,
e.g.</p>
<pre><code>npm adduser --registry=http://myregistry.example.com --scope=@myco
</code></pre><p>This will set a registry for the given scope and login or create a user for
that registry at the same time.</p>
<h3 id="always-auth">always-auth</h3>
<p>Default: false</p>
<p>If specified, save configuration indicating that all requests to the given
registry should include authorization information. Useful for private
registries. Can be used with <code>--registry</code> and / or <code>--scope</code>, e.g.</p>
<pre><code>npm adduser --registry=http://private-registry.example.com --always-auth
</code></pre><p>This will ensure that all requests to that registry (including for tarballs)
include an authorization header. See <code>always-auth</code> in <code><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></code> for more
details on always-auth. Registry-specific configuaration of <code>always-auth</code> takes
precedence over any global configuration.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../cli/npm-owner.html">npm-owner(1)</a></li>
<li><a href="../cli/npm-whoami.html">npm-whoami(1)</a></li>
<li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
<li><a href="../cli/npm-owner.html"><a href="../cli/npm-owner.html">npm-owner(1)</a></a></li>
<li><a href="../cli/npm-whoami.html"><a href="../cli/npm-whoami.html">npm-whoami(1)</a></a></li>
</ul>
</div>
@@ -57,5 +67,5 @@ that registry at the same time.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-adduser &mdash; npm@2.0.0</p>
<p id="footer">npm-adduser &mdash; npm@2.1.6</p>

View File

@@ -16,12 +16,12 @@
<p>Print the folder where npm will install executables.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-prefix.html">npm-prefix(1)</a></li>
<li><a href="../cli/npm-root.html">npm-root(1)</a></li>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../cli/npm-prefix.html"><a href="../cli/npm-prefix.html">npm-prefix(1)</a></a></li>
<li><a href="../cli/npm-root.html"><a href="../cli/npm-root.html">npm-root(1)</a></a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
</ul>
</div>
@@ -35,5 +35,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-bin &mdash; npm@2.0.0</p>
<p id="footer">npm-bin &mdash; npm@2.1.6</p>

View File

@@ -33,14 +33,14 @@ a <code>package.json</code> in the current folder and use the <code>name</code>
<p>The base URL of the npm package registry.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-docs.html">npm-docs(1)</a></li>
<li><a href="../cli/npm-view.html">npm-view(1)</a></li>
<li><a href="../cli/npm-publish.html">npm-publish(1)</a></li>
<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../files/package.json.html">package.json(5)</a></li>
<li><a href="../cli/npm-docs.html"><a href="../cli/npm-docs.html">npm-docs(1)</a></a></li>
<li><a href="../cli/npm-view.html"><a href="../cli/npm-view.html">npm-view(1)</a></a></li>
<li><a href="../cli/npm-publish.html"><a href="../cli/npm-publish.html">npm-publish(1)</a></a></li>
<li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
<li><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></li>
</ul>
</div>
@@ -54,5 +54,5 @@ a <code>package.json</code> in the current folder and use the <code>name</code>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-bugs &mdash; npm@2.0.0</p>
<p id="footer">npm-bugs &mdash; npm@2.1.6</p>

View File

@@ -21,10 +21,10 @@ A folder containing a <code>package.json</code> file in its root.</li>
<p>It should generally not be called directly.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
<li><a href="../cli/npm-link.html">npm-link(1)</a></li>
<li><a href="../misc/npm-scripts.html">npm-scripts(7)</a></li>
<li><a href="../files/package.json.html">package.json(5)</a></li>
<li><a href="../cli/npm-install.html"><a href="../cli/npm-install.html">npm-install(1)</a></a></li>
<li><a href="../cli/npm-link.html"><a href="../cli/npm-link.html">npm-link(1)</a></a></li>
<li><a href="../misc/npm-scripts.html"><a href="../misc/npm-scripts.html">npm-scripts(7)</a></a></li>
<li><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></li>
</ul>
</div>
@@ -38,5 +38,5 @@ A folder containing a <code>package.json</code> file in its root.</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-build &mdash; npm@2.0.0</p>
<p id="footer">npm-build &mdash; npm@2.1.6</p>

View File

@@ -17,7 +17,7 @@ install packages into the local space.</p>
<p>Just use <code>npm install</code> now to do what <code>npm bundle</code> used to do.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
<li><a href="../cli/npm-install.html"><a href="../cli/npm-install.html">npm-install(1)</a></a></li>
</ul>
</div>
@@ -31,5 +31,5 @@ install packages into the local space.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-bundle &mdash; npm@2.0.0</p>
<p id="footer">npm-bundle &mdash; npm@2.1.6</p>

View File

@@ -61,13 +61,13 @@ they do not make an HTTP request to the registry.</p>
<p>The root cache folder.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
<li><a href="../cli/npm-publish.html">npm-publish(1)</a></li>
<li><a href="../cli/npm-pack.html">npm-pack(1)</a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
<li><a href="../cli/npm-install.html"><a href="../cli/npm-install.html">npm-install(1)</a></a></li>
<li><a href="../cli/npm-publish.html"><a href="../cli/npm-publish.html">npm-publish(1)</a></a></li>
<li><a href="../cli/npm-pack.html"><a href="../cli/npm-pack.html">npm-pack(1)</a></a></li>
</ul>
</div>
@@ -81,5 +81,5 @@ they do not make an HTTP request to the registry.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-cache &mdash; npm@2.0.0</p>
<p id="footer">npm-cache &mdash; npm@2.1.6</p>

View File

@@ -26,9 +26,9 @@ environment, <code>npm completion</code> acts in &quot;plumbing mode&quot;, and
completions based on the arguments.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../misc/npm-developers.html">npm-developers(7)</a></li>
<li><a href="../misc/npm-faq.html">npm-faq(7)</a></li>
<li><a href="../cli/npm.html">npm(1)</a></li>
<li><a href="../misc/npm-developers.html"><a href="../misc/npm-developers.html">npm-developers(7)</a></a></li>
<li><a href="../misc/npm-faq.html"><a href="../misc/npm-faq.html">npm-faq(7)</a></a></li>
<li><a href="../cli/npm.html"><a href="../cli/npm.html">npm(1)</a></a></li>
</ul>
</div>
@@ -42,5 +42,5 @@ completions based on the arguments.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-completion &mdash; npm@2.0.0</p>
<p id="footer">npm-completion &mdash; npm@2.1.6</p>

View File

@@ -22,8 +22,8 @@ npm set &lt;key&gt; &lt;value&gt; [--global]
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>npm gets its config settings from the command line, environment
variables, <code>npmrc</code> files, and in some cases, the <code>package.json</code> file.</p>
<p>See <a href="../files/npmrc.html">npmrc(5)</a> for more information about the npmrc files.</p>
<p>See <code><a href="../misc/npm-config.html">npm-config(7)</a></code> for a more thorough discussion of the mechanisms
<p>See <a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a> for more information about the npmrc files.</p>
<p>See <code><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></code> for a more thorough discussion of the mechanisms
involved.</p>
<p>The <code>npm config</code> command can be used to update and edit the contents
of the user and global npmrc files.</p>
@@ -48,11 +48,11 @@ of the user and global npmrc files.</p>
global config.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/package.json.html">package.json(5)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../cli/npm.html">npm(1)</a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
<li><a href="../cli/npm.html"><a href="../cli/npm.html">npm(1)</a></a></li>
</ul>
</div>
@@ -66,5 +66,5 @@ global config.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-config &mdash; npm@2.0.0</p>
<p id="footer">npm-config &mdash; npm@2.1.6</p>

View File

@@ -23,7 +23,7 @@ be more effectively shared by multiple dependent packages.</p>
| `-- c@1.0.3
`-- d &lt;-- depends on c@~1.0.9
`-- c@1.0.10
</code></pre><p>In this case, <code><a href="../cli/npm-dedupe.html">npm-dedupe(1)</a></code> will transform the tree to:</p>
</code></pre><p>In this case, <code><a href="../cli/npm-dedupe.html"><a href="../cli/npm-dedupe.html">npm-dedupe(1)</a></a></code> will transform the tree to:</p>
<pre><code>a
+-- b
+-- d
@@ -47,9 +47,9 @@ tag with the given name exists, the tagged version is preferred over newer
versions.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-ls.html">npm-ls(1)</a></li>
<li><a href="../cli/npm-update.html">npm-update(1)</a></li>
<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
<li><a href="../cli/npm-ls.html"><a href="../cli/npm-ls.html">npm-ls(1)</a></a></li>
<li><a href="../cli/npm-update.html"><a href="../cli/npm-update.html">npm-update(1)</a></a></li>
<li><a href="../cli/npm-install.html"><a href="../cli/npm-install.html">npm-install(1)</a></a></li>
</ul>
</div>
@@ -63,5 +63,5 @@ versions.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-dedupe &mdash; npm@2.0.0</p>
<p id="footer">npm-dedupe &mdash; npm@2.1.6</p>

View File

@@ -23,8 +23,8 @@ something like this:</p>
<p>To un-deprecate a package, specify an empty string (<code>&quot;&quot;</code>) for the <code>message</code> argument.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-publish.html">npm-publish(1)</a></li>
<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
<li><a href="../cli/npm-publish.html"><a href="../cli/npm-publish.html">npm-publish(1)</a></a></li>
<li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
</ul>
</div>
@@ -38,5 +38,5 @@ something like this:</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-deprecate &mdash; npm@2.0.0</p>
<p id="footer">npm-deprecate &mdash; npm@2.1.6</p>

View File

@@ -36,13 +36,13 @@ the current folder and use the <code>name</code> property.</p>
<p>The base URL of the npm package registry.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-view.html">npm-view(1)</a></li>
<li><a href="../cli/npm-publish.html">npm-publish(1)</a></li>
<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../files/package.json.html">package.json(5)</a></li>
<li><a href="../cli/npm-view.html"><a href="../cli/npm-view.html">npm-view(1)</a></a></li>
<li><a href="../cli/npm-publish.html"><a href="../cli/npm-publish.html">npm-publish(1)</a></a></li>
<li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
<li><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></li>
</ul>
</div>
@@ -56,5 +56,5 @@ the current folder and use the <code>name</code> property.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-docs &mdash; npm@2.0.0</p>
<p id="footer">npm-docs &mdash; npm@2.1.6</p>

View File

@@ -14,7 +14,7 @@
<pre><code>npm edit &lt;name&gt;[@&lt;version&gt;]
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>Opens the package folder in the default editor (or whatever you&#39;ve
configured as the npm <code>editor</code> config -- see <code><a href="../misc/npm-config.html">npm-config(7)</a></code>.)</p>
configured as the npm <code>editor</code> config -- see <code><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></code>.)</p>
<p>After it has been edited, the package is rebuilt so as to pick up any
changes in compiled packages.</p>
<p>For instance, you can do <code>npm install connect</code> to install connect
@@ -30,12 +30,12 @@ or <code>&quot;notepad&quot;</code> on Windows.</li>
<p>The command to run for <code>npm edit</code> or <code>npm config edit</code>.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-explore.html">npm-explore(1)</a></li>
<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
<li><a href="../cli/npm-explore.html"><a href="../cli/npm-explore.html">npm-explore(1)</a></a></li>
<li><a href="../cli/npm-install.html"><a href="../cli/npm-install.html">npm-install(1)</a></a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
</ul>
</div>
@@ -49,5 +49,5 @@ or <code>&quot;notepad&quot;</code> on Windows.</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-edit &mdash; npm@2.0.0</p>
<p id="footer">npm-edit &mdash; npm@2.1.6</p>

View File

@@ -31,12 +31,11 @@ Windows</li>
<p>The shell to run for the <code>npm explore</code> command.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-submodule.html">npm-submodule(1)</a></li>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-edit.html">npm-edit(1)</a></li>
<li><a href="../cli/npm-rebuild.html">npm-rebuild(1)</a></li>
<li><a href="../cli/npm-build.html">npm-build(1)</a></li>
<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
<li><a href="../cli/npm-edit.html"><a href="../cli/npm-edit.html">npm-edit(1)</a></a></li>
<li><a href="../cli/npm-rebuild.html"><a href="../cli/npm-rebuild.html">npm-rebuild(1)</a></a></li>
<li><a href="../cli/npm-build.html"><a href="../cli/npm-build.html">npm-build(1)</a></a></li>
<li><a href="../cli/npm-install.html"><a href="../cli/npm-install.html">npm-install(1)</a></a></li>
</ul>
</div>
@@ -50,5 +49,5 @@ Windows</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-explore &mdash; npm@2.0.0</p>
<p id="footer">npm-explore &mdash; npm@2.1.6</p>

View File

@@ -30,9 +30,9 @@ where the terms were found in the documentation.</p>
<p>If false, then help-search will just list out the help topics found.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm.html">npm(1)</a></li>
<li><a href="../misc/npm-faq.html">npm-faq(7)</a></li>
<li><a href="../cli/npm-help.html">npm-help(1)</a></li>
<li><a href="../cli/npm.html"><a href="../cli/npm.html">npm(1)</a></a></li>
<li><a href="../misc/npm-faq.html"><a href="../misc/npm-faq.html">npm-faq(7)</a></a></li>
<li><a href="../cli/npm-help.html"><a href="../cli/npm-help.html">npm-help(1)</a></a></li>
</ul>
</div>
@@ -46,5 +46,5 @@ where the terms were found in the documentation.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-help-search &mdash; npm@2.0.0</p>
<p id="footer">npm-help-search &mdash; npm@2.1.6</p>

View File

@@ -29,16 +29,16 @@ matches are equivalent to specifying a topic name.</p>
<p>Set to <code>&quot;browser&quot;</code> to view html help content in the default web browser.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm.html">npm(1)</a></li>
<li><a href="../../doc/README.html">README</a></li>
<li><a href="../misc/npm-faq.html">npm-faq(7)</a></li>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../files/package.json.html">package.json(5)</a></li>
<li><a href="../cli/npm-help-search.html">npm-help-search(1)</a></li>
<li><a href="../misc/npm-index.html">npm-index(7)</a></li>
<li><a href="../cli/npm.html"><a href="../cli/npm.html">npm(1)</a></a></li>
<li><a href="../../doc/README.html"><a href="../../doc/README.html">README</a></a></li>
<li><a href="../misc/npm-faq.html"><a href="../misc/npm-faq.html">npm-faq(7)</a></a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
<li><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></li>
<li><a href="../cli/npm-help-search.html"><a href="../cli/npm-help-search.html">npm-help-search(1)</a></a></li>
<li><a href="../misc/npm-index.html"><a href="../misc/npm-index.html">npm-index(7)</a></a></li>
</ul>
</div>
@@ -52,5 +52,5 @@ matches are equivalent to specifying a topic name.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-help &mdash; npm@2.0.0</p>
<p id="footer">npm-help &mdash; npm@2.1.6</p>

View File

@@ -11,7 +11,7 @@
<h1><a href="../cli/npm-init.html">npm-init</a></h1> <p>Interactively create a package.json file</p>
<h2 id="synopsis">SYNOPSIS</h2>
<pre><code>npm init
<pre><code>npm init [-f|--force|-y|--yes]
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>This will ask you a bunch of questions, and then write a package.json for you.</p>
<p>It attempts to make reasonable guesses about what you want things to be set to,
@@ -20,11 +20,13 @@ and then writes a package.json file with the options you&#39;ve selected.</p>
the options in there.</p>
<p>It is strictly additive, so it does not delete options from your package.json
without a really good reason to do so.</p>
<p>If you invoke it with <code>-f</code>, <code>--force</code>, <code>-y</code>, or <code>--yes</code>, it will use only
defaults and not prompt you for any options.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="https://github.com/isaacs/init-package-json">https://github.com/isaacs/init-package-json</a></li>
<li><a href="../files/package.json.html">package.json(5)</a></li>
<li><a href="../cli/npm-version.html">npm-version(1)</a></li>
<li><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></li>
<li><a href="../cli/npm-version.html"><a href="../cli/npm-version.html">npm-version(1)</a></a></li>
</ul>
</div>
@@ -38,5 +40,5 @@ without a really good reason to do so.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-init &mdash; npm@2.0.0</p>
<p id="footer">npm-init &mdash; npm@2.1.6</p>

View File

@@ -23,13 +23,13 @@ npm i (with any of the previous argument usage)
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>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 <a href="../cli/npm-shrinkwrap.html">npm-shrinkwrap(1)</a>.</p>
by that. See <a href="../cli/npm-shrinkwrap.html"><a href="../cli/npm-shrinkwrap.html">npm-shrinkwrap(1)</a></a>.</p>
<p>A <code>package</code> 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>&lt;name&gt;@&lt;version&gt;</code> that is published on the registry (see <code><a href="../misc/npm-registry.html">npm-registry(7)</a></code>) with (c)</li>
<li>d) a <code>&lt;name&gt;@&lt;version&gt;</code> that is published on the registry (see <code><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></code>) with (c)</li>
<li>e) a <code>&lt;name&gt;@&lt;tag&gt;</code> that points to (d)</li>
<li>f) a <code>&lt;name&gt;</code> that has a &quot;latest&quot; tag satisfying (e)</li>
<li>g) a <code>&lt;git remote url&gt;</code> that resolves to (b)</li>
@@ -66,7 +66,7 @@ after packing it up into a tarball (b).</p>
</code></pre></li>
<li><p><code>npm install [@&lt;scope&gt;/]&lt;name&gt; [--save|--save-dev|--save-optional]</code>:</p>
<p> Do a <code>&lt;name&gt;@&lt;tag&gt;</code> install, where <code>&lt;tag&gt;</code> is the &quot;tag&quot; config. (See
<code><a href="../misc/npm-config.html">npm-config(7)</a></code>.)</p>
<code><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></code>.)</p>
<p> In most cases, this will install the latest version
of the module published on npm.</p>
<p> Example:</p>
@@ -87,7 +87,7 @@ exact version rather than using npm&#39;s default semver range
operator.</p>
<p><code>&lt;scope&gt;</code> is optional. The package will be downloaded from the registry
associated with the specified scope. If no registry is associated with
the given scope the default registry is assumed. See <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>.</p>
the given scope the default registry is assumed. See <code><a href="../misc/npm-scope.html"><a href="../misc/npm-scope.html">npm-scope(7)</a></a></code>.</p>
<p>Note: if you do not include the @-symbol on your scope name, npm will
interpret this as a GitHub repository instead, see below. Scopes names
must also be followed by a slash.</p>
@@ -123,7 +123,7 @@ fetch the package by name if it is not valid.
</code></pre></li>
<li><p><code>npm install [@&lt;scope&gt;/]&lt;name&gt;@&lt;version range&gt;</code>:</p>
<p> Install a version of the package matching the specified version range. This
will follow the same rules for resolving dependencies described in <code><a href="../files/package.json.html">package.json(5)</a></code>.</p>
will follow the same rules for resolving dependencies described in <code><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></code>.</p>
<p> Note that most version ranges must be put in quotes so that your shell will
treat it as a single argument.</p>
<p> Example:</p>
@@ -161,7 +161,7 @@ versions.</p>
local copy exists on disk.</p>
<pre><code>npm install sax --force
</code></pre><p>The <code>--global</code> argument will cause npm to install the package globally
rather than locally. See <code><a href="../files/npm-folders.html">npm-folders(5)</a></code>.</p>
rather than locally. See <code><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></code>.</p>
<p>The <code>--link</code> argument will cause npm to link global installs into the
local space in some cases.</p>
<p>The <code>--no-bin-links</code> argument will prevent npm from creating symlinks for
@@ -172,7 +172,7 @@ being installed.</p>
shrinkwrap file and use the package.json instead.</p>
<p>The <code>--nodedir=/path/to/node/source</code> argument will allow npm to find the
node source code so that npm can compile native modules.</p>
<p>See <code><a href="../misc/npm-config.html">npm-config(7)</a></code>. Many of the configuration params have some
<p>See <code><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></code>. Many of the configuration params have some
effect on installation, since that&#39;s most of what npm does.</p>
<h2 id="algorithm">ALGORITHM</h2>
<p>To install a package, npm uses the following algorithm:</p>
@@ -193,7 +193,7 @@ this algorithm produces:</p>
`-- D
</code></pre><p>That is, the dependency from B to C is satisfied by the fact that A
already caused C to be installed at a higher level.</p>
<p>See <a href="../files/npm-folders.html">npm-folders(5)</a> for a more detailed description of the specific
<p>See <a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a> for a more detailed description of the specific
folder structures that npm creates.</p>
<h3 id="limitations-of-npm-s-install-algorithm">Limitations of npm&#39;s Install Algorithm</h3>
<p>There are some very rare and pathological edge-cases where a cycle can
@@ -213,19 +213,19 @@ to symlink the existing version into the new location. If this ever
affects a real use-case, it will be investigated.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-update.html">npm-update(1)</a></li>
<li><a href="../cli/npm-link.html">npm-link(1)</a></li>
<li><a href="../cli/npm-rebuild.html">npm-rebuild(1)</a></li>
<li><a href="../misc/npm-scripts.html">npm-scripts(7)</a></li>
<li><a href="../cli/npm-build.html">npm-build(1)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
<li><a href="../cli/npm-tag.html">npm-tag(1)</a></li>
<li><a href="../cli/npm-rm.html">npm-rm(1)</a></li>
<li><a href="../cli/npm-shrinkwrap.html">npm-shrinkwrap(1)</a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
<li><a href="../cli/npm-update.html"><a href="../cli/npm-update.html">npm-update(1)</a></a></li>
<li><a href="../cli/npm-link.html"><a href="../cli/npm-link.html">npm-link(1)</a></a></li>
<li><a href="../cli/npm-rebuild.html"><a href="../cli/npm-rebuild.html">npm-rebuild(1)</a></a></li>
<li><a href="../misc/npm-scripts.html"><a href="../misc/npm-scripts.html">npm-scripts(7)</a></a></li>
<li><a href="../cli/npm-build.html"><a href="../cli/npm-build.html">npm-build(1)</a></a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
<li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
<li><a href="../cli/npm-tag.html"><a href="../cli/npm-tag.html">npm-tag(1)</a></a></li>
<li><a href="../cli/npm-rm.html"><a href="../cli/npm-rm.html">npm-rm(1)</a></a></li>
<li><a href="../cli/npm-shrinkwrap.html"><a href="../cli/npm-shrinkwrap.html">npm-shrinkwrap(1)</a></a></li>
</ul>
</div>
@@ -239,5 +239,5 @@ affects a real use-case, it will be investigated.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-install &mdash; npm@2.0.0</p>
<p id="footer">npm-install &mdash; npm@2.1.6</p>

View File

@@ -18,12 +18,12 @@ npm ln (with any of the previous argument usage)
<p>Package linking is a two-step process.</p>
<p>First, <code>npm link</code> in a package folder will create a globally-installed
symbolic link from <code>prefix/package-name</code> to the current folder (see
<code><a href="../misc/npm-config.html">npm-config(7)</a></code> for the value of <code>prefix</code>).</p>
<code><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></code> for the value of <code>prefix</code>).</p>
<p>Next, in some other location, <code>npm link package-name</code> will create a
symlink from the local <code>node_modules</code> folder to the global symlink.</p>
<p>Note that <code>package-name</code> is taken from <code>package.json</code>,
not from directory name.</p>
<p>The package name can be optionally prefixed with a scope. See <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>.
<p>The package name can be optionally prefixed with a scope. See <code><a href="../misc/npm-scope.html"><a href="../misc/npm-scope.html">npm-scope(7)</a></a></code>.
The scope must by preceded by an @-symbol and followed by a slash.</p>
<p>When creating tarballs for <code>npm publish</code>, the linked packages are
&quot;snapshotted&quot; to their current state by resolving the symbolic links.</p>
@@ -45,19 +45,19 @@ npm link ../node-redis # link the dir of your dependency
npm link redis
</code></pre><p>That is, it first creates a global link, and then links the global
installation target into your project&#39;s <code>node_modules</code> folder.</p>
<p>If your linked package is scoped (see <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>) your link command must
<p>If your linked package is scoped (see <code><a href="../misc/npm-scope.html"><a href="../misc/npm-scope.html">npm-scope(7)</a></a></code>) your link command must
include that scope, e.g.</p>
<pre><code>npm link @myorg/privatepackage
</code></pre><h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../misc/npm-developers.html">npm-developers(7)</a></li>
<li><a href="../misc/npm-faq.html">npm-faq(7)</a></li>
<li><a href="../files/package.json.html">package.json(5)</a></li>
<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../misc/npm-developers.html"><a href="../misc/npm-developers.html">npm-developers(7)</a></a></li>
<li><a href="../misc/npm-faq.html"><a href="../misc/npm-faq.html">npm-faq(7)</a></a></li>
<li><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></li>
<li><a href="../cli/npm-install.html"><a href="../cli/npm-install.html">npm-install(1)</a></a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
</ul>
</div>
@@ -71,5 +71,5 @@ include that scope, e.g.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-link &mdash; npm@2.0.0</p>
<p id="footer">npm-link &mdash; npm@2.1.6</p>

View File

@@ -22,7 +22,7 @@ installed, as well as their dependencies, in a tree-structure.</p>
limit the results to only the paths to the packages named. Note that
nested packages will <em>also</em> show the paths to the specified packages.
For example, running <code>npm ls promzard</code> in npm&#39;s source tree will show:</p>
<pre><code>npm@2.0.0 /path/to/npm
<pre><code>npm@2.1.6 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5
</code></pre><p>It will print out extraneous, missing, and invalid packages.</p>
@@ -63,15 +63,15 @@ project.</p>
<p>Max display depth of the dependency tree.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
<li><a href="../cli/npm-link.html">npm-link(1)</a></li>
<li><a href="../cli/npm-prune.html">npm-prune(1)</a></li>
<li><a href="../cli/npm-outdated.html">npm-outdated(1)</a></li>
<li><a href="../cli/npm-update.html">npm-update(1)</a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
<li><a href="../cli/npm-install.html"><a href="../cli/npm-install.html">npm-install(1)</a></a></li>
<li><a href="../cli/npm-link.html"><a href="../cli/npm-link.html">npm-link(1)</a></a></li>
<li><a href="../cli/npm-prune.html"><a href="../cli/npm-prune.html">npm-prune(1)</a></a></li>
<li><a href="../cli/npm-outdated.html"><a href="../cli/npm-outdated.html">npm-outdated(1)</a></a></li>
<li><a href="../cli/npm-update.html"><a href="../cli/npm-update.html">npm-update(1)</a></a></li>
</ul>
</div>
@@ -85,5 +85,5 @@ project.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-ls &mdash; npm@2.0.0</p>
<p id="footer">npm-ls &mdash; npm@2.1.6</p>

View File

@@ -51,9 +51,9 @@ project.</p>
<p>Max depth for checking dependency tree.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-update.html">npm-update(1)</a></li>
<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-update.html"><a href="../cli/npm-update.html">npm-update(1)</a></a></li>
<li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
</ul>
</div>
@@ -67,5 +67,5 @@ project.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-outdated &mdash; npm@2.0.0</p>
<p id="footer">npm-outdated &mdash; npm@2.1.6</p>

View File

@@ -32,10 +32,10 @@ or you can&#39;t. Future versions may contain more fine-grained access levels,
that is not implemented at this time.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-publish.html">npm-publish(1)</a></li>
<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
<li><a href="../cli/npm-adduser.html">npm-adduser(1)</a></li>
<li><a href="../misc/npm-disputes.html">npm-disputes(7)</a></li>
<li><a href="../cli/npm-publish.html"><a href="../cli/npm-publish.html">npm-publish(1)</a></a></li>
<li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
<li><a href="../cli/npm-adduser.html"><a href="../cli/npm-adduser.html">npm-adduser(1)</a></a></li>
<li><a href="../misc/npm-disputes.html"><a href="../misc/npm-disputes.html">npm-disputes(7)</a></a></li>
</ul>
</div>
@@ -49,5 +49,5 @@ that is not implemented at this time.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-owner &mdash; npm@2.0.0</p>
<p id="footer">npm-owner &mdash; npm@2.1.6</p>

View File

@@ -23,11 +23,11 @@ overwritten the second time.</p>
<p>If no arguments are supplied, then npm packs the current package folder.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-cache.html">npm-cache(1)</a></li>
<li><a href="../cli/npm-publish.html">npm-publish(1)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../cli/npm-cache.html"><a href="../cli/npm-cache.html">npm-cache(1)</a></a></li>
<li><a href="../cli/npm-publish.html"><a href="../cli/npm-publish.html">npm-publish(1)</a></a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
</ul>
</div>
@@ -41,5 +41,5 @@ overwritten the second time.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-pack &mdash; npm@2.0.0</p>
<p id="footer">npm-pack &mdash; npm@2.1.6</p>

View File

@@ -16,15 +16,15 @@
<p>Print the local prefix to standard out. This is the closest parent directory
to contain a package.json file unless <code>-g</code> is also specified.</p>
<p>If <code>-g</code> is specified, this will be the value of the global prefix. See
<code><a href="../misc/npm-config.html">npm-config(7)</a></code> for more detail.</p>
<code><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></code> for more detail.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-root.html">npm-root(1)</a></li>
<li><a href="../cli/npm-bin.html">npm-bin(1)</a></li>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/npmrc.html">npmrc(5)</a></li>
<li><a href="../cli/npm-root.html"><a href="../cli/npm-root.html">npm-root(1)</a></a></li>
<li><a href="../cli/npm-bin.html"><a href="../cli/npm-bin.html">npm-bin(1)</a></a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
<li><a href="../cli/npm-config.html"><a href="../cli/npm-config.html">npm-config(1)</a></a></li>
<li><a href="../misc/npm-config.html"><a href="../misc/npm-config.html">npm-config(7)</a></a></li>
<li><a href="../files/npmrc.html"><a href="../files/npmrc.html">npmrc(5)</a></a></li>
</ul>
</div>
@@ -38,5 +38,5 @@ to contain a package.json file unless <code>-g</code> is also specified.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-prefix &mdash; npm@2.0.0</p>
<p id="footer">npm-prefix &mdash; npm@2.1.6</p>

View File

@@ -23,9 +23,9 @@ package&#39;s dependencies list.</p>
packages specified in your <code>devDependencies</code>.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-rm.html">npm-rm(1)</a></li>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-ls.html">npm-ls(1)</a></li>
<li><a href="../cli/npm-rm.html"><a href="../cli/npm-rm.html">npm-rm(1)</a></a></li>
<li><a href="../files/npm-folders.html"><a href="../files/npm-folders.html">npm-folders(5)</a></a></li>
<li><a href="../cli/npm-ls.html"><a href="../cli/npm-ls.html">npm-ls(1)</a></a></li>
</ul>
</div>
@@ -39,5 +39,5 @@ packages specified in your <code>devDependencies</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-prune &mdash; npm@2.0.0</p>
<p id="footer">npm-prune &mdash; npm@2.1.6</p>

View File

@@ -14,10 +14,12 @@
<pre><code>npm publish &lt;tarball&gt; [--tag &lt;tag&gt;]
npm publish &lt;folder&gt; [--tag &lt;tag&gt;]
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>Publishes a package to the registry so that it can be installed by name.</p>
<p>Publishes a package to the registry so that it can be installed by name. See
<code><a href="../misc/npm-developers.html"><a href="../misc/npm-developers.html">npm-developers(7)</a></a></code> for details on what&#39;s included in the published package, as
well as details on how the package is built.</p>
<p>By default npm will publish to the public registry. This can be overridden by
specifying a different default registry or using a <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code> in the name
(see <code><a href="../files/package.json.html">package.json(5)</a></code>).</p>
specifying a different default registry or using a <code><a href="../misc/npm-scope.html"><a href="../misc/npm-scope.html">npm-scope(7)</a></a></code> in the name
(see <code><a href="../files/package.json.html"><a href="../files/package.json.html">package.json(5)</a></a></code>).</p>
<ul>
<li><p><code>&lt;folder&gt;</code>:
A folder containing a package.json file</p>
@@ -36,14 +38,14 @@ and <code>npm install</code> installs the <code>latest</code> tag.</p>
the specified registry.</p>
<p>Once a package is published with a given name and version, that
specific name and version combination can never be used again, even if
it is removed with <a href="../cli/npm-unpublish.html">npm-unpublish(1)</a>.</p>
it is removed with <a href="../cli/npm-unpublish.html"><a href="../cli/npm-unpublish.html">npm-unpublish(1)</a></a>.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../misc/npm-registry.html">npm-registry(7)</a></li>
<li><a href="../cli/npm-adduser.html">npm-adduser(1)</a></li>
<li><a href="../cli/npm-owner.html">npm-owner(1)</a></li>
<li><a href="../cli/npm-deprecate.html">npm-deprecate(1)</a></li>
<li><a href="../cli/npm-tag.html">npm-tag(1)</a></li>
<li><a href="../misc/npm-registry.html"><a href="../misc/npm-registry.html">npm-registry(7)</a></a></li>
<li><a href="../cli/npm-adduser.html"><a href="../cli/npm-adduser.html">npm-adduser(1)</a></a></li>
<li><a href="../cli/npm-owner.html"><a href="../cli/npm-owner.html">npm-owner(1)</a></a></li>
<li><a href="../cli/npm-deprecate.html"><a href="../cli/npm-deprecate.html">npm-deprecate(1)</a></a></li>
<li><a href="../cli/npm-tag.html"><a href="../cli/npm-tag.html">npm-tag(1)</a></a></li>
</ul>
</div>
@@ -57,5 +59,5 @@ it is removed with <a href="../cli/npm-unpublish.html">npm-unpublish(1)</a>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
<p id="footer">npm-publish &mdash; npm@2.0.0</p>
<p id="footer">npm-publish &mdash; npm@2.1.6</p>

Some files were not shown because too many files have changed in this diff Show More