mirror of
https://github.com/nodejs/node-v0.x-archive.git
synced 2026-04-28 03:01:10 -04:00
Compare commits
1 Commits
move-debug
...
reviewme
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
33d746c656 |
8
.gitignore
vendored
8
.gitignore
vendored
@@ -52,14 +52,8 @@ deps/openssl/openssl.props
|
||||
deps/openssl/openssl.targets
|
||||
deps/openssl/openssl.xml
|
||||
|
||||
# generated by gyp on android
|
||||
/*.target.mk
|
||||
/*.host.mk
|
||||
deps/openssl/openssl.target.mk
|
||||
deps/zlib/zlib.target.mk
|
||||
|
||||
# build/release artifacts
|
||||
/*.tar.gz
|
||||
/SHASUMS*.txt*
|
||||
/SHASUMS.txt*
|
||||
|
||||
/tools/wrk/wrk
|
||||
|
||||
51
AUTHORS
51
AUTHORS
@@ -437,7 +437,6 @@ Suwon Chae <doortts@gmail.com>
|
||||
David Braun <NodeJS-box@snkmail.com>
|
||||
Mitar Milutinovic <mitar.git@tnode.com>
|
||||
Michael Hart <michael.hart.au@gmail.com>
|
||||
Jeff Barczewski <jeff.barczewski@gmail.com>
|
||||
Andrew Hart <hartandrewr@gmail.com>
|
||||
Rafael Garcia <rgarcia2009@gmail.com>
|
||||
Tobias Müllerleile <tobias@muellerleile.net>
|
||||
@@ -465,52 +464,4 @@ Yuan Chuan <yuanchuan23@gmail.com>
|
||||
Krzysztof Chrapka <chrapka.k@gmail.com>
|
||||
Linus Mårtensson <linus.martensson@sonymobile.com>
|
||||
Peter Rust <peter@cornerstonenw.com>
|
||||
Shuan Wang <shuanwang@gmail.com>
|
||||
Wyatt Preul <wpreul@gmail.com>
|
||||
David Björklund <david.bjorklund@gmail.com>
|
||||
Dav Glass <davglass@gmail.com>
|
||||
Andrew Chilton <andychilton@gmail.com>
|
||||
Antony Bailey <support@antonybailey.net>
|
||||
Forrest L Norvell <ogd@aoaioxxysz.net>
|
||||
Evan Solomon <evan@evanalyze.com>
|
||||
Eran Hammer <eran@hueniverse.com>
|
||||
Daniel Chatfield <chatfielddaniel@gmail.com>
|
||||
Eivind Uggedal <eivind@uggedal.com>
|
||||
Edward Hutchins <eahutchins@gmail.com>
|
||||
Chris Wren <cthewren@gmail.com>
|
||||
Duan Yao <duanyao@ustc.edu>
|
||||
Matthias Bartelmeß <mba@fourplusone.de>
|
||||
James Halliday <mail@substack.net>
|
||||
Matthew Aynalem <maynalem@gmail.com>
|
||||
Vsevolod Strukchinsky <floatdrop@yandex-team.ru>
|
||||
Jay Beavers <jay@hikinghomeschoolers.org>
|
||||
Eric Schrock <Eric.Schrock@delphix.com>
|
||||
Jeff Switzer <git@skratchdot.com>
|
||||
Glen Mailer <glenjamin@gmail.com>
|
||||
Jason Gerfen <jason.gerfen@gmail.com>
|
||||
Patrik Stutz <patrik.stutz@gmail.com>
|
||||
Zarko Stankovic <stankovic.zarko@gmail.com>
|
||||
Maxim Bogushevich <boga1@mail.ru>
|
||||
Phillip Alexander <git@phillipalexander.io>
|
||||
Thom Seddon <thom@nightworld.com>
|
||||
Nick Simmons <nick.simmons@jadedpixel.com>
|
||||
Jacob Groundwater <groundwater@gmail.com>
|
||||
Jackson Tian <shyvo1987@gmail.com>
|
||||
fengmk2 <fengmk2@gmail.com>
|
||||
Tim Wood <washwithcare@gmail.com>
|
||||
Linus Unnebäck <linus@folkdatorn.se>
|
||||
Nikolai Vavilov <vvnicholas@gmail.com>
|
||||
Michael Ridgway <mcridgway@gmail.com>
|
||||
Yazhong Liu <yorkiefixer@gmail.com>
|
||||
Gabriel Falkenberg <gabriel.falkenberg@gmail.com>
|
||||
Kai Groner <kai@gronr.com>
|
||||
Steven Kabbes <stevenkabbes@gmail.com>
|
||||
Gabriel Farrell <g@grrawr.com>
|
||||
Nicolas Kaiser <nikai@nikai.net>
|
||||
Ahamed Nafeez <ahamed.nafeez@gmail.com>
|
||||
Cam Swords <cam.swords@gmail.com>
|
||||
Paul Loyd <pavelko95@gmail.com>
|
||||
Benjamin Waters <benjamin.waters@outlook.com>
|
||||
Lev Gimelfarb <lev.gimelfarb@gmail.com>
|
||||
Peter Flannery <flannery.peter@ntlworld.com>
|
||||
Tuğrul Topuz <tugrultopuz@gmail.com>
|
||||
Jeff Barczewski <jeff.barczewski@gmail.com>
|
||||
|
||||
442
ChangeLog
442
ChangeLog
@@ -1,270 +1,4 @@
|
||||
2013.12.31, Version 0.11.10 (Unstable)
|
||||
|
||||
* http_parser: update to 2.2
|
||||
|
||||
* uv: Upgrade to v0.11.17
|
||||
|
||||
* v8: Upgrade to 3.22.24.10
|
||||
|
||||
* buffer: optimize writeInt* methods (Paul Loyd)
|
||||
|
||||
* child_process: better error handling (Alexis Campailla)
|
||||
|
||||
* cluster: do not synchronously emit 'setup' event (Sam Roberts)
|
||||
|
||||
* cluster: restore backwards compatibility and various fixes (Sam Roberts)
|
||||
|
||||
* crypto: remove unnecessary OpenSSL_add_all_digests (Yorkie)
|
||||
|
||||
* crypto: support GCM authenticated encryption mode. (Ingmar Runge)
|
||||
|
||||
* dns: add resolveSoa and 'SOA' rrtype (Tuğrul Topuz)
|
||||
|
||||
* events: move EE c'tor guts to EventEmitter.init (Bert Belder)
|
||||
|
||||
* http: DELETE shouldn't default to chunked encoding (Lalit Kapoor)
|
||||
|
||||
* http: parse the status message in a http response. (Cam Swords)
|
||||
|
||||
* node: fix removing AsyncListener in callback (Vladimir Kurchatkin)
|
||||
|
||||
* node: follow specification, zero-fill ArrayBuffers (Trevor Norris)
|
||||
|
||||
* openssl: use ASM optimized routines (Fedor Indutny)
|
||||
|
||||
* process: allow nextTick infinite recursion (Trevor Norris)
|
||||
|
||||
* querystring: remove `name` from `stringify()` (Yorkie)
|
||||
|
||||
* timers: setImmediate v8 optimization fix (pflannery)
|
||||
|
||||
* tls: add serialNumber to getPeerCertificate() (Ben Noordhuis)
|
||||
|
||||
* tls: reintroduce socket.encrypted (Fedor Indutny)
|
||||
|
||||
* tls: fix handling of asterisk in SNI context (Fedor Indutny)
|
||||
|
||||
* util: Format negative zero as '-0' (David Chan)
|
||||
|
||||
* vm: fix race condition in timeout (Alexis Campailla)
|
||||
|
||||
* windows: fix dns lookup of localhost with ipv6 (Alexis Campailla)
|
||||
|
||||
|
||||
2013.11.20, Version 0.11.9 (Unstable), dcfd032bdd69dfb38c120e18438d6316ae522edc
|
||||
|
||||
* uv: upgrade to v0.11.15 (Timothy J Fontaine)
|
||||
|
||||
* v8: upgrade to 3.22.24.5 (Timothy J Fontaine)
|
||||
|
||||
* buffer: remove warning when no encoding is passed (Trevor Norris)
|
||||
|
||||
* build: make v8 use random seed for hash tables (Ben Noordhuis)
|
||||
|
||||
* crypto: build with shared openssl without NPN (Ben Noordhuis)
|
||||
|
||||
* crypto: update root certificates (Ben Noordhuis)
|
||||
|
||||
* debugger: pass on v8 debug switches (Ben Noordhuis)
|
||||
|
||||
* domain: use AsyncListener API (Trevor Norris)
|
||||
|
||||
* fs: add recursive subdirectory support to fs.watch (Nick Simmons)
|
||||
|
||||
* fs: make fs.watch() non-recursive by default (Ben Noordhuis)
|
||||
|
||||
* http: cleanup freeSockets when socket destroyed (fengmk2)
|
||||
|
||||
* http: force socket encoding to be null (isaacs)
|
||||
|
||||
* http: make DELETE requests set `req.method` (Nathan Rajlich)
|
||||
|
||||
* node: add AsyncListener support (Trevor Norris)
|
||||
|
||||
* src: remove global HandleScope that hid memory leaks (Ben Noordhuis)
|
||||
|
||||
* tls: add ECDH ciphers support (Erik Dubbelboer)
|
||||
|
||||
* tls: do not default to 'localhost' servername (Fedor Indutny)
|
||||
|
||||
* tls: more accurate wrapping of connecting socket (Fedor Indutny)
|
||||
|
||||
|
||||
2013.10.30, Version 0.11.8 (Unstable), f8d86e24f3463c36f7f3f4c3b3ec779e5b6201e1
|
||||
|
||||
* uv: Upgrade to v0.11.14
|
||||
|
||||
* v8: upgrade 3.21.18.3
|
||||
|
||||
* assert: indicate if exception message is generated (Glen Mailer)
|
||||
|
||||
* buffer: add buf.toArrayBuffer() API (Trevor Norris)
|
||||
|
||||
* cluster: fix premature 'disconnect' event (Ben Noordhuis)
|
||||
|
||||
* crypto: add SPKAC support (Jason Gerfen)
|
||||
|
||||
* debugger: count space for line numbers correctly (Alex Kocharin)
|
||||
|
||||
* debugger: make busy loops SIGUSR1-interruptible (Ben Noordhuis)
|
||||
|
||||
* debugger: repeat last command (Alex Kocharin)
|
||||
|
||||
* debugger: show current line, fix for #6150 (Alex Kocharin)
|
||||
|
||||
* dgram: send() can accept strings (Trevor Norris)
|
||||
|
||||
* dns: rename domain to hostname (Ben Noordhuis)
|
||||
|
||||
* dns: set hostname property on error object (Ben Noordhuis)
|
||||
|
||||
* dtrace, mdb_v8: support more string, frame types (Dave Pacheco)
|
||||
|
||||
* http: add statusMessage (Patrik Stutz)
|
||||
|
||||
* http: expose supported methods (Ben Noordhuis)
|
||||
|
||||
* http: provide backpressure for pipeline flood (isaacs)
|
||||
|
||||
* process: Add exitCode property (isaacs)
|
||||
|
||||
* tls: socket.renegotiate(options, callback) (Fedor Indutny)
|
||||
|
||||
* util: format as Error if instanceof Error (Rod Vagg)
|
||||
|
||||
|
||||
2013.08.21, Version 0.11.7 (Unstable), be52549bfa5311208b5fcdb3ba09210460fa9ceb
|
||||
|
||||
* uv: upgrade to v0.11.13
|
||||
|
||||
* v8: upgrade to 3.20.17
|
||||
|
||||
* buffer: adhere to INSPECT_MAX_BYTES (Timothy J Fontaine)
|
||||
|
||||
* buffer: fix regression for large buffer creation (Trevor Norris)
|
||||
|
||||
* buffer: don't throw if slice length too long (Trevor Norris)
|
||||
|
||||
* buffer: Buffer(buf) constructor copies into the proper buffer (Ben Noordhuis)
|
||||
|
||||
* cli: remove --max-stack-size (Ben Noordhuis)
|
||||
|
||||
* cli: unknown command line options are errors (Ben Noordhuis)
|
||||
|
||||
* child_process: exec accept buffer as an encoding (Seth Fitzsimmons)
|
||||
|
||||
* crypto: make randomBytes/pbkdf2 callbacks domain aware (Ben Noordhuis)
|
||||
|
||||
* domain: deprecate domain.dispose(). (Forrest L Norvell)
|
||||
|
||||
* fs: Expose birthtime on stat objects (isaacs)
|
||||
|
||||
* http: Only send connection:keep-alive if necessary (isaacs)
|
||||
|
||||
* repl: Catch syntax errors better (isaacs, Nathan Rajlich)
|
||||
|
||||
* stream: change default highWaterMark for objectMode to 16 (Mathias Buus)
|
||||
|
||||
* stream: make setEncoding/pause/resume chainable (Julian Gruber, isaacs)
|
||||
|
||||
* util: pass opts to custom inspect functions (Timothy J Fontaine)
|
||||
|
||||
* vm: rewritten to behave like Contextify (Domenic Denicola)
|
||||
|
||||
|
||||
2013.08.21, Version 0.11.6 (Unstable), 04018d4b3938fd30ba14822e79195e4af2be36f6
|
||||
|
||||
* uv: Upgrade to v0.11.8
|
||||
|
||||
* v8: upgrade v8 to 3.20.14.1
|
||||
|
||||
* build: disable SSLv2 by default (Ben Noordhuis)
|
||||
|
||||
* build: don't auto-destroy existing configuration (Ben Noordhuis)
|
||||
|
||||
* crypto: add TLS 1.1 and 1.2 to secureProtocol list (Matthias Bartelmeß)
|
||||
|
||||
* crypto: fix memory leak in randomBytes() error path (Ben Noordhuis)
|
||||
|
||||
* dgram: don't call into js when send cb is omitted (Ben Noordhuis)
|
||||
|
||||
* dgram: fix regression in string argument handling (Ben Noordhuis)
|
||||
|
||||
* domains: performance improvements (Trevor Norris)
|
||||
|
||||
* events: EventEmitter = require('events') (Jake Verbaten)
|
||||
|
||||
* http: Add write()/end() callbacks (isaacs)
|
||||
|
||||
* http: Consistent 'finish' event semantics (isaacs)
|
||||
|
||||
* http: Prefer 'binary' over 'ascii' (isaacs)
|
||||
|
||||
* http: Support legacy agent.addRequest API (isaacs)
|
||||
|
||||
* http: Write hex/base64 chunks properly (isaacs)
|
||||
|
||||
* http: add agent.maxFreeSockets option (isaacs)
|
||||
|
||||
* http: provide access to raw headers/trailers (isaacs)
|
||||
|
||||
* http: removed headers stay removed (James Halliday)
|
||||
|
||||
* http,timers: improve callback performance (Ben Noordhuis)
|
||||
|
||||
* net: family option in net.connect (Vsevolod Strukchinsky)
|
||||
|
||||
* readline: pause stdin before turning off terminal raw mode (Daniel Chatfield)
|
||||
|
||||
* smalloc: allow different external array types (Trevor Norris)
|
||||
|
||||
* smalloc: expose ExternalArraySize (Trevor Norris)
|
||||
|
||||
* stream: Short-circuit buffer pushes when flowing (isaacs)
|
||||
|
||||
* tls: handle errors on socket before releasing it (Fedor Indutny)
|
||||
|
||||
* util: fix isPrimitive check (Trevor Norris)
|
||||
|
||||
* util: isObject should always return boolean (Trevor Norris)
|
||||
|
||||
|
||||
2013.08.06, Version 0.11.5 (Unstable), 6f92da2dd106b0c63fde563284f83e08e2a521b5
|
||||
|
||||
* v8: upgrade to 3.20.11
|
||||
|
||||
* uv: upgrade to v0.11.7
|
||||
|
||||
* buffer: return offset for end of last write (Trevor Norris)
|
||||
|
||||
* build: embed the mdb_v8.so into the binary (Timothy J Fontaine)
|
||||
|
||||
* build: fix --without-ssl build (Ben Noordhuis)
|
||||
|
||||
* child_process: add 'shell' option to .exec() (Ben Noordhuis)
|
||||
|
||||
* dgram: report send errors to cb, don't pass bytes (Ben Noordhuis)
|
||||
|
||||
* fs: write strings directly to disk (Trevor Norris)
|
||||
|
||||
* https: fix default port (Koichi Kobayashi)
|
||||
|
||||
* openssl: use asm for sha, md5, rmd (Fedor Indutny)
|
||||
|
||||
* os: add mac address to networkInterfaces() output (Brian White)
|
||||
|
||||
* smalloc: introduce smalloc module (Trevor Norris)
|
||||
|
||||
* stream: Simplify flowing, passive data listening (streams3) (isaacs)
|
||||
|
||||
* tls: asynchronous SNICallback (Fedor Indutny)
|
||||
|
||||
* tls: share tls tickets key between cluster workers (Fedor Indutny)
|
||||
|
||||
* util: don't throw on circular %j input to format() (Ben Noordhuis)
|
||||
|
||||
|
||||
2013.07.12, Version 0.11.4 (Unstable), b5b84197ed037918fd1a26e5cb87cce7c812ca55
|
||||
2013.07.12, Version 0.11.4 (Unstable)
|
||||
|
||||
* npm: Upgrade to 1.3.4
|
||||
|
||||
@@ -445,180 +179,6 @@
|
||||
* console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)
|
||||
|
||||
|
||||
2013.12.18, Version 0.10.24 (Stable), b7fd6bc899ccb629d790c47aee06aba87e535c41
|
||||
|
||||
* uv: Upgrade to v0.10.21
|
||||
|
||||
* npm: upgrade to 1.3.21
|
||||
|
||||
* v8: backport fix for CVE-2013-{6639|6640}
|
||||
|
||||
* build: unix install node and dep library headers (Timothy J Fontaine)
|
||||
|
||||
* cluster, v8: fix --logfile=%p.log (Ben Noordhuis)
|
||||
|
||||
* module: only cache package main (Wyatt Preul)
|
||||
|
||||
|
||||
2013.12.12, Version 0.10.23 (Stable), 0462bc23564e7e950a70ae4577a840b04db6c7c6
|
||||
|
||||
* uv: Upgrade to v0.10.20 (Timothy J Fontaine)
|
||||
|
||||
* npm: Upgrade to 1.3.17 (isaacs)
|
||||
|
||||
* gyp: update to 78b26f7 (Timothy J Fontaine)
|
||||
|
||||
* build: include postmortem symbols on linux (Timothy J Fontaine)
|
||||
|
||||
* crypto: Make Decipher._flush() emit errors. (Kai Groner)
|
||||
|
||||
* dgram: fix abort when getting `fd` of closed dgram (Fedor Indutny)
|
||||
|
||||
* events: do not accept NaN in setMaxListeners (Fedor Indutny)
|
||||
|
||||
* events: avoid calling `once` functions twice (Tim Wood)
|
||||
|
||||
* events: fix TypeError in removeAllListeners (Jeremy Martin)
|
||||
|
||||
* fs: report correct path when EEXIST (Fedor Indutny)
|
||||
|
||||
* process: enforce allowed signals for kill (Sam Roberts)
|
||||
|
||||
* tls: emit 'end' on .receivedShutdown (Fedor Indutny)
|
||||
|
||||
* tls: fix potential data corruption (Fedor Indutny)
|
||||
|
||||
* tls: handle `ssl.start()` errors appropriately (Fedor Indutny)
|
||||
|
||||
* tls: reset NPN callbacks after SNI (Fedor Indutny)
|
||||
|
||||
|
||||
2013.11.12, Version 0.10.22 (Stable), cbff8f091c22fb1df6b238c7a1b9145db950fa65
|
||||
|
||||
* npm: Upgrade to 1.3.14
|
||||
|
||||
* uv: Upgrade to v0.10.19
|
||||
|
||||
* child_process: don't assert on stale file descriptor events (Fedor Indutny)
|
||||
|
||||
* darwin: Fix "Not Responding" in Mavericks activity monitor (Fedor Indutny)
|
||||
|
||||
* debugger: Fix bug in sb() with unnamed script (Maxim Bogushevich)
|
||||
|
||||
* repl: do not insert duplicates into completions (Maciej Małecki)
|
||||
|
||||
* src: Fix memory leak on closed handles (Timothy J Fontaine)
|
||||
|
||||
* tls: prevent stalls by using read(0) (Fedor Indutny)
|
||||
|
||||
* v8: use correct timezone information on Solaris (Maciej Małecki)
|
||||
|
||||
|
||||
2013.10.18, Version 0.10.21 (Stable), e2da042844a830fafb8031f6c477eb4f96195210
|
||||
|
||||
* uv: Upgrade to v0.10.18
|
||||
|
||||
* crypto: clear errors from verify failure (Timothy J Fontaine)
|
||||
|
||||
* dtrace: interpret two byte strings (Dave Pacheco)
|
||||
|
||||
* fs: fix fs.truncate() file content zeroing bug (Ben Noordhuis)
|
||||
|
||||
* http: provide backpressure for pipeline flood (isaacs)
|
||||
|
||||
* tls: fix premature connection termination (Ben Noordhuis)
|
||||
|
||||
|
||||
2013.09.30, Version 0.10.20 (Stable), d7234c8d50a1af73f60d2d3c0cc7eed17429a481
|
||||
|
||||
* tls: fix sporadic hang and partial reads (Fedor Indutny)
|
||||
- fixes "npm ERR! cb() never called!"
|
||||
|
||||
|
||||
2013.09.24, Version 0.10.19 (Stable), 6b5e6a5a3ec8d994c9aab3b800b9edbf1b287904
|
||||
|
||||
* uv: Upgrade to v0.10.17
|
||||
|
||||
* npm: upgrade to 1.3.11
|
||||
|
||||
* readline: handle input starting with control chars (Eric Schrock)
|
||||
|
||||
* configure: add mips-float-abi (soft, hard) option (Andrei Sedoi)
|
||||
|
||||
* stream: objectMode transforms allow falsey values (isaacs)
|
||||
|
||||
* tls: prevent duplicate values returned from read (Nathan Rajlich)
|
||||
|
||||
* tls: NPN protocols are now local to connections (Fedor Indutny)
|
||||
|
||||
|
||||
2013.09.04, Version 0.10.18 (Stable), 67a1f0c52e0708e2596f3f2134b8386d6112561e
|
||||
|
||||
* uv: Upgrade to v0.10.15
|
||||
|
||||
* stream: Don't crash on unset _events property (isaacs)
|
||||
|
||||
* stream: Pass 'buffer' encoding with decoded writable chunks (isaacs)
|
||||
|
||||
|
||||
2013.08.21, Version 0.10.17 (Stable), 469a4a5091a677df62be319675056b869c31b35c
|
||||
|
||||
* uv: Upgrade v0.10.14
|
||||
|
||||
* http_parser: Do not accept PUN/GEM methods as PUT/GET (Chris Dickinson)
|
||||
|
||||
* tls: fix assertion when ssl is destroyed at read (Fedor Indutny)
|
||||
|
||||
* stream: Throw on 'error' if listeners removed (isaacs)
|
||||
|
||||
* dgram: fix assertion on bad send() arguments (Ben Noordhuis)
|
||||
|
||||
* readline: pause stdin before turning off terminal raw mode (Daniel Chatfield)
|
||||
|
||||
|
||||
2013.08.16, Version 0.10.16 (Stable), 50b4c905a4425430ae54db4906f88982309e128d
|
||||
|
||||
* v8: back-port fix for CVE-2013-2882
|
||||
|
||||
* npm: Upgrade to 1.3.8
|
||||
|
||||
* crypto: fix assert() on malformed hex input (Ben Noordhuis)
|
||||
|
||||
* crypto: fix memory leak in randomBytes() error path (Ben Noordhuis)
|
||||
|
||||
* events: fix memory leak, don't leak event names (Ben Noordhuis)
|
||||
|
||||
* http: Handle hex/base64 encodings properly (isaacs)
|
||||
|
||||
* http: improve chunked res.write(buf) performance (Ben Noordhuis)
|
||||
|
||||
* stream: Fix double pipe error emit (Eran Hammer)
|
||||
|
||||
|
||||
2013.07.25, Version 0.10.15 (Stable), 2426d65af860bda7be9f0832a99601cc43c6cf63
|
||||
|
||||
* src: fix process.getuid() return value (Ben Noordhuis)
|
||||
|
||||
|
||||
2013.07.25, Version 0.10.14 (Stable), fdf57f811f9683a4ec49a74dc7226517e32e6c9d
|
||||
|
||||
* uv: Upgrade to v0.10.13
|
||||
|
||||
* npm: Upgrade to v1.3.5
|
||||
|
||||
* os: Don't report negative times in cpu info (Ben Noordhuis)
|
||||
|
||||
* fs: Handle large UID and GID (Ben Noordhuis)
|
||||
|
||||
* url: Fix edge-case when protocol is non-lowercase (Shuan Wang)
|
||||
|
||||
* doc: Streams API Doc Rewrite (isaacs)
|
||||
|
||||
* node: call MakeDomainCallback in all domain cases (Trevor Norris)
|
||||
|
||||
* crypto: fix memory leak in LoadPKCS12 (Fedor Indutny)
|
||||
|
||||
|
||||
2013.07.09, Version 0.10.13 (Stable), e32660a984427d46af6a144983cf7b8045b7299c
|
||||
|
||||
* uv: Upgrade to v0.10.12
|
||||
|
||||
265
LICENSE
265
LICENSE
@@ -323,241 +323,70 @@ maintained libraries. The externally maintained libraries used by Node are:
|
||||
- npm is a package manager program located at deps/npm.
|
||||
npm's license follows:
|
||||
"""
|
||||
Copyright (c) Isaac Z. Schlueter
|
||||
Copyright 2009-2012, Isaac Z. Schlueter (the "Original Author")
|
||||
All rights reserved.
|
||||
|
||||
npm is released under the Artistic 2.0 License.
|
||||
The text of the License follows:
|
||||
MIT +no-false-attribs License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
Distributions of all or part of the Software intended to be used
|
||||
by the recipients as they would use the unmodified Software,
|
||||
containing modifications that substantially alter, remove, or
|
||||
disable functionality of the Software, outside of the documented
|
||||
configuration mechanisms provided by the Software, shall be
|
||||
modified such that the Original Author's bug reporting email
|
||||
addresses and urls are either replaced with the contact information
|
||||
of the parties responsible for the changes, or removed entirely.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
--------
|
||||
|
||||
|
||||
The Artistic License 2.0
|
||||
|
||||
Copyright (c) 2000-2006, The Perl Foundation.
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
This license establishes the terms under which a given free software
|
||||
Package may be copied, modified, distributed, and/or redistributed.
|
||||
The intent is that the Copyright Holder maintains some artistic
|
||||
control over the development of that Package while still keeping the
|
||||
Package available as open source and free software.
|
||||
|
||||
You are always permitted to make arrangements wholly outside of this
|
||||
license directly with the Copyright Holder of a given Package. If the
|
||||
terms of this license do not permit the full use that you propose to
|
||||
make of the Package, you should contact the Copyright Holder and seek
|
||||
a different licensing arrangement.
|
||||
|
||||
Definitions
|
||||
|
||||
"Copyright Holder" means the individual(s) or organization(s)
|
||||
named in the copyright notice for the entire Package.
|
||||
|
||||
"Contributor" means any party that has contributed code or other
|
||||
material to the Package, in accordance with the Copyright Holder's
|
||||
procedures.
|
||||
|
||||
"You" and "your" means any person who would like to copy,
|
||||
distribute, or modify the Package.
|
||||
|
||||
"Package" means the collection of files distributed by the
|
||||
Copyright Holder, and derivatives of that collection and/or of
|
||||
those files. A given Package may consist of either the Standard
|
||||
Version, or a Modified Version.
|
||||
|
||||
"Distribute" means providing a copy of the Package or making it
|
||||
accessible to anyone else, or in the case of a company or
|
||||
organization, to others outside of your company or organization.
|
||||
|
||||
"Distributor Fee" means any fee that you charge for Distributing
|
||||
this Package or providing support for this Package to another
|
||||
party. It does not mean licensing fees.
|
||||
|
||||
"Standard Version" refers to the Package if it has not been
|
||||
modified, or has been modified only in ways explicitly requested
|
||||
by the Copyright Holder.
|
||||
|
||||
"Modified Version" means the Package, if it has been changed, and
|
||||
such changes were not explicitly requested by the Copyright
|
||||
Holder.
|
||||
|
||||
"Original License" means this Artistic License as Distributed with
|
||||
the Standard Version of the Package, in its current version or as
|
||||
it may be modified by The Perl Foundation in the future.
|
||||
|
||||
"Source" form means the source code, documentation source, and
|
||||
configuration files for the Package.
|
||||
|
||||
"Compiled" form means the compiled bytecode, object code, binary,
|
||||
or any other form resulting from mechanical transformation or
|
||||
translation of the Source form.
|
||||
|
||||
|
||||
Permission for Use and Modification Without Distribution
|
||||
|
||||
(1) You are permitted to use the Standard Version and create and use
|
||||
Modified Versions for any purpose without restriction, provided that
|
||||
you do not Distribute the Modified Version.
|
||||
|
||||
|
||||
Permissions for Redistribution of the Standard Version
|
||||
|
||||
(2) You may Distribute verbatim copies of the Source form of the
|
||||
Standard Version of this Package in any medium without restriction,
|
||||
either gratis or for a Distributor Fee, provided that you duplicate
|
||||
all of the original copyright notices and associated disclaimers. At
|
||||
your discretion, such verbatim copies may or may not include a
|
||||
Compiled form of the Package.
|
||||
|
||||
(3) You may apply any bug fixes, portability changes, and other
|
||||
modifications made available from the Copyright Holder. The resulting
|
||||
Package will still be considered the Standard Version, and as such
|
||||
will be subject to the Original License.
|
||||
|
||||
|
||||
Distribution of Modified Versions of the Package as Source
|
||||
|
||||
(4) You may Distribute your Modified Version as Source (either gratis
|
||||
or for a Distributor Fee, and with or without a Compiled form of the
|
||||
Modified Version) provided that you clearly document how it differs
|
||||
from the Standard Version, including, but not limited to, documenting
|
||||
any non-standard features, executables, or modules, and provided that
|
||||
you do at least ONE of the following:
|
||||
|
||||
(a) make the Modified Version available to the Copyright Holder
|
||||
of the Standard Version, under the Original License, so that the
|
||||
Copyright Holder may include your modifications in the Standard
|
||||
Version.
|
||||
|
||||
(b) ensure that installation of your Modified Version does not
|
||||
prevent the user installing or running the Standard Version. In
|
||||
addition, the Modified Version must bear a name that is different
|
||||
from the name of the Standard Version.
|
||||
|
||||
(c) allow anyone who receives a copy of the Modified Version to
|
||||
make the Source form of the Modified Version available to others
|
||||
under
|
||||
|
||||
(i) the Original License or
|
||||
|
||||
(ii) a license that permits the licensee to freely copy,
|
||||
modify and redistribute the Modified Version using the same
|
||||
licensing terms that apply to the copy that the licensee
|
||||
received, and requires that the Source form of the Modified
|
||||
Version, and of any works derived from it, be made freely
|
||||
available in that license fees are prohibited but Distributor
|
||||
Fees are allowed.
|
||||
|
||||
|
||||
Distribution of Compiled Forms of the Standard Version
|
||||
or Modified Versions without the Source
|
||||
|
||||
(5) You may Distribute Compiled forms of the Standard Version without
|
||||
the Source, provided that you include complete instructions on how to
|
||||
get the Source of the Standard Version. Such instructions must be
|
||||
valid at the time of your distribution. If these instructions, at any
|
||||
time while you are carrying out such distribution, become invalid, you
|
||||
must provide new instructions on demand or cease further distribution.
|
||||
If you provide valid instructions or cease distribution within thirty
|
||||
days after you become aware that the instructions are invalid, then
|
||||
you do not forfeit any of your rights under this license.
|
||||
|
||||
(6) You may Distribute a Modified Version in Compiled form without
|
||||
the Source, provided that you comply with Section 4 with respect to
|
||||
the Source of the Modified Version.
|
||||
|
||||
|
||||
Aggregating or Linking the Package
|
||||
|
||||
(7) You may aggregate the Package (either the Standard Version or
|
||||
Modified Version) with other packages and Distribute the resulting
|
||||
aggregation provided that you do not charge a licensing fee for the
|
||||
Package. Distributor Fees are permitted, and licensing fees for other
|
||||
components in the aggregation are permitted. The terms of this license
|
||||
apply to the use and Distribution of the Standard or Modified Versions
|
||||
as included in the aggregation.
|
||||
|
||||
(8) You are permitted to link Modified and Standard Versions with
|
||||
other works, to embed the Package in a larger work of your own, or to
|
||||
build stand-alone binary or bytecode versions of applications that
|
||||
include the Package, and Distribute the result without restriction,
|
||||
provided the result does not expose a direct interface to the Package.
|
||||
|
||||
|
||||
Items That are Not Considered Part of a Modified Version
|
||||
|
||||
(9) Works (including, but not limited to, modules and scripts) that
|
||||
merely extend or make use of the Package, do not, by themselves, cause
|
||||
the Package to be a Modified Version. In addition, such works are not
|
||||
considered parts of the Package itself, and are not subject to the
|
||||
terms of this license.
|
||||
|
||||
|
||||
General Provisions
|
||||
|
||||
(10) Any use, modification, and distribution of the Standard or
|
||||
Modified Versions is governed by this Artistic License. By using,
|
||||
modifying or distributing the Package, you accept this license. Do not
|
||||
use, modify, or distribute the Package, if you do not accept this
|
||||
license.
|
||||
|
||||
(11) If your Modified Version has been derived from a Modified
|
||||
Version made by someone other than you, you are nevertheless required
|
||||
to ensure that your Modified Version complies with the requirements of
|
||||
this license.
|
||||
|
||||
(12) This license does not grant you the right to use any trademark,
|
||||
service mark, tradename, or logo of the Copyright Holder.
|
||||
|
||||
(13) This license includes the non-exclusive, worldwide,
|
||||
free-of-charge patent license to make, have made, use, offer to sell,
|
||||
sell, import and otherwise transfer the Package with respect to any
|
||||
patent claims licensable by the Copyright Holder that are necessarily
|
||||
infringed by the Package. If you institute patent litigation
|
||||
(including a cross-claim or counterclaim) against any party alleging
|
||||
that the Package constitutes direct or contributory patent
|
||||
infringement, then this Artistic License to you shall terminate on the
|
||||
date that such litigation is filed.
|
||||
|
||||
(14) Disclaimer of Warranty:
|
||||
THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
|
||||
IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
|
||||
NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
|
||||
LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
--------
|
||||
|
||||
Except where noted, this license applies to any and all software
|
||||
programs and associated documentation files created by the
|
||||
Original Author, when distributed with the Software.
|
||||
|
||||
"Node.js" and "node" trademark Joyent, Inc. npm is not officially
|
||||
part of the Node.js project, and is neither owned by nor
|
||||
officially affiliated with Joyent, Inc.
|
||||
|
||||
Packages published in the npm registry (other than the Software and
|
||||
its included dependencies) are not part of npm itself, are the sole
|
||||
property of their respective maintainers, and are not covered by
|
||||
this license.
|
||||
Packages published in the npm registry are not part of npm
|
||||
itself, are the sole property of their respective maintainers,
|
||||
and are not covered by this license.
|
||||
|
||||
"npm Logo" created by Mathias Pettersson and Brian Hammond,
|
||||
used with permission.
|
||||
|
||||
"Gubblebum Blocky" font
|
||||
Copyright (c) by Tjarda Koster, http://jelloween.deviantart.com
|
||||
Copyright (c) 2007 by Tjarda Koster, http://jelloween.deviantart.com
|
||||
included for use in the npm website and documentation,
|
||||
used with permission.
|
||||
|
||||
This program uses several Node modules contained in the node_modules/
|
||||
subdirectory, according to the terms of their respective licenses.
|
||||
This program uses "node-uuid", Copyright (c) 2010 Robert Kieffer,
|
||||
according to the terms of the MIT license.
|
||||
|
||||
This program uses "request", Copyright (c) 2011 Mikeal Rogers,
|
||||
according to the terms of the Apache license.
|
||||
|
||||
This program uses "mkdirp", Copyright (c) 2010 James Halliday,
|
||||
according to the terms of the MIT/X11 license.
|
||||
"""
|
||||
|
||||
- tools/doc/node_modules/marked. Marked is a Markdown parser. Marked's
|
||||
|
||||
41
Makefile
41
Makefile
@@ -14,12 +14,6 @@ NODE ?= ./node
|
||||
# or set the V environment variable to an empty string.
|
||||
V ?= 1
|
||||
|
||||
ifeq ($(USE_NINJA),1)
|
||||
ifneq ($(V),)
|
||||
NINJA := $(NINJA) -v
|
||||
endif
|
||||
endif
|
||||
|
||||
# BUILDTYPE=Debug builds both release and debug builds. If you want to compile
|
||||
# just the debug build, run `make -C out BUILDTYPE=Debug` instead.
|
||||
ifeq ($(BUILDTYPE),Release)
|
||||
@@ -50,20 +44,16 @@ node_g: config.gypi out/Makefile
|
||||
ln -fs out/Debug/node $@
|
||||
endif
|
||||
|
||||
out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp deps/v8/build/toolchain.gypi deps/v8/build/features.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi
|
||||
out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp deps/v8/build/common.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi
|
||||
ifeq ($(USE_NINJA),1)
|
||||
touch out/Makefile
|
||||
$(PYTHON) tools/gyp_node.py -f ninja
|
||||
$(PYTHON) tools/gyp_node -f ninja
|
||||
else
|
||||
$(PYTHON) tools/gyp_node.py -f make
|
||||
$(PYTHON) tools/gyp_node -f make
|
||||
endif
|
||||
|
||||
config.gypi: configure
|
||||
if [ -f $@ ]; then
|
||||
$(error Stale $@, please re-run ./configure)
|
||||
else
|
||||
$(error No $@, please run ./configure first)
|
||||
fi
|
||||
$(PYTHON) ./configure
|
||||
|
||||
install: all
|
||||
$(PYTHON) tools/install.py $@ '$(DESTDIR)' '$(PREFIX)'
|
||||
@@ -86,7 +76,6 @@ distclean:
|
||||
test: all
|
||||
$(PYTHON) tools/test.py --mode=release simple message
|
||||
$(MAKE) jslint
|
||||
$(MAKE) cpplint
|
||||
|
||||
test-http1: all
|
||||
$(PYTHON) tools/test.py --mode=release --use-http1 simple message
|
||||
@@ -94,16 +83,16 @@ test-http1: all
|
||||
test-valgrind: all
|
||||
$(PYTHON) tools/test.py --mode=release --valgrind simple message
|
||||
|
||||
test/gc/node_modules/weak/build/Release/weakref.node:
|
||||
test/gc/node_modules/weak/build:
|
||||
@if [ ! -f node ]; then make all; fi
|
||||
./node deps/npm/node_modules/node-gyp/bin/node-gyp rebuild \
|
||||
--directory="$(shell pwd)/test/gc/node_modules/weak" \
|
||||
--nodedir="$(shell pwd)"
|
||||
|
||||
test-gc: all test/gc/node_modules/weak/build/Release/weakref.node
|
||||
test-gc: all test/gc/node_modules/weak/build
|
||||
$(PYTHON) tools/test.py --mode=release gc
|
||||
|
||||
test-all: all test/gc/node_modules/weak/build/Release/weakref.node
|
||||
test-all: all test/gc/node_modules/weak/build
|
||||
$(PYTHON) tools/test.py --mode=debug,release
|
||||
make test-npm
|
||||
|
||||
@@ -131,9 +120,6 @@ test-pummel: all
|
||||
test-internet: all
|
||||
$(PYTHON) tools/test.py internet
|
||||
|
||||
test-debugger: all
|
||||
$(PYTHON) tools/test.py debugger
|
||||
|
||||
test-npm: node
|
||||
./node deps/npm/test/run.js
|
||||
|
||||
@@ -402,19 +388,8 @@ jslintfix:
|
||||
jslint:
|
||||
PYTHONPATH=tools/closure_linter/ $(PYTHON) tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ --exclude_files lib/punycode.js
|
||||
|
||||
CPPLINT_EXCLUDE ?=
|
||||
CPPLINT_EXCLUDE += src/node_dtrace.cc
|
||||
CPPLINT_EXCLUDE += src/node_dtrace.cc
|
||||
CPPLINT_EXCLUDE += src/node_root_certs.h
|
||||
CPPLINT_EXCLUDE += src/node_win32_perfctr_provider.cc
|
||||
CPPLINT_EXCLUDE += src/queue.h
|
||||
CPPLINT_EXCLUDE += src/tree.h
|
||||
CPPLINT_EXCLUDE += src/v8abbr.h
|
||||
|
||||
CPPLINT_FILES = $(filter-out $(CPPLINT_EXCLUDE), $(wildcard src/*.cc src/*.h src/*.c))
|
||||
|
||||
cpplint:
|
||||
@$(PYTHON) tools/cpplint.py $(CPPLINT_FILES)
|
||||
@$(PYTHON) tools/cpplint.py $(wildcard src/*.cc src/*.h src/*.c)
|
||||
|
||||
lint: jslint cpplint
|
||||
|
||||
|
||||
35
README.md
35
README.md
@@ -1,4 +1,4 @@
|
||||
Evented I/O for V8 javascript.
|
||||
Evented I/O for V8 javascript. [](http://travis-ci.org/joyent/node)
|
||||
===
|
||||
|
||||
### To build:
|
||||
@@ -16,15 +16,6 @@ Unix/Macintosh:
|
||||
make
|
||||
make install
|
||||
|
||||
With libicu i18n support:
|
||||
|
||||
svn checkout --force --revision 214189 \
|
||||
http://src.chromium.org/svn/trunk/deps/third_party/icu46 \
|
||||
deps/v8/third_party/icu46
|
||||
./configure --with-icu-path=deps/v8/third_party/icu46/icu.gyp
|
||||
make
|
||||
make install
|
||||
|
||||
If your python binary is in a non-standard location or has a
|
||||
non-standard name, run the following instead:
|
||||
|
||||
@@ -33,27 +24,9 @@ non-standard name, run the following instead:
|
||||
make
|
||||
make install
|
||||
|
||||
Prerequisites (Windows only):
|
||||
|
||||
* Python 2.6 or 2.7
|
||||
* Visual Studio 2010 or 2012
|
||||
|
||||
Windows:
|
||||
|
||||
vcbuild nosign
|
||||
|
||||
You can download pre-built binaries for various operating systems from
|
||||
[http://nodejs.org/download/](http://nodejs.org/download/). The Windows
|
||||
and OS X installers will prompt you for the location to install to.
|
||||
The tarballs are self-contained; you can extract them to a local directory
|
||||
with:
|
||||
|
||||
tar xzf /path/to/node-<version>-<platform>-<arch>.tar.gz
|
||||
|
||||
Or system-wide with:
|
||||
|
||||
cd /usr/local && tar --strip-components 1 -xzf \
|
||||
/path/to/node-<version>-<platform>-<arch>.tar.gz
|
||||
vcbuild.bat
|
||||
|
||||
### To run the tests:
|
||||
|
||||
@@ -63,7 +36,7 @@ Unix/Macintosh:
|
||||
|
||||
Windows:
|
||||
|
||||
vcbuild test
|
||||
vcbuild.bat test
|
||||
|
||||
### To build the documentation:
|
||||
|
||||
@@ -77,7 +50,7 @@ Resources for Newcomers
|
||||
---
|
||||
- [The Wiki](https://github.com/joyent/node/wiki)
|
||||
- [nodejs.org](http://nodejs.org/)
|
||||
- [how to install node.js and npm (node package manager)](http://www.joyent.com/blog/installing-node-and-npm/)
|
||||
- [how to install node.js and npm (node package manager)](http://joyeur.com/2010/12/10/installing-node-and-npm/)
|
||||
- [list of modules](https://github.com/joyent/node/wiki/modules)
|
||||
- [searching the npm registry](http://npmjs.org/)
|
||||
- [list of companies and projects using node](https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node)
|
||||
|
||||
@@ -18,29 +18,28 @@ if (module === require.main) {
|
||||
var spawn = require('child_process').spawn;
|
||||
|
||||
runBenchmarks();
|
||||
}
|
||||
|
||||
function runBenchmarks() {
|
||||
var test = tests.shift();
|
||||
if (!test)
|
||||
return;
|
||||
function runBenchmarks() {
|
||||
var test = tests.shift();
|
||||
if (!test)
|
||||
return;
|
||||
|
||||
if (test.match(/^[\._]/))
|
||||
return process.nextTick(runBenchmarks);
|
||||
if (test.match(/^[\._]/))
|
||||
return process.nextTick(runBenchmarks);
|
||||
|
||||
console.error(type + '/' + test);
|
||||
test = path.resolve(dir, test);
|
||||
console.error(type + '/' + test);
|
||||
test = path.resolve(dir, test);
|
||||
|
||||
var a = (process.execArgv || []).concat(test);
|
||||
var child = spawn(process.execPath, a, { stdio: 'inherit' });
|
||||
child.on('close', function(code) {
|
||||
if (code)
|
||||
process.exit(code);
|
||||
else {
|
||||
console.log('');
|
||||
runBenchmarks();
|
||||
}
|
||||
});
|
||||
var child = spawn(process.execPath, [ test ], { stdio: 'inherit' });
|
||||
child.on('close', function(code) {
|
||||
if (code)
|
||||
process.exit(code);
|
||||
else {
|
||||
console.log('');
|
||||
runBenchmarks();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
exports.createBenchmark = function(fn, options) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// test the throughput of the fs.WriteStream class.
|
||||
// test the througput of the fs.WriteStream class.
|
||||
|
||||
var path = require('path');
|
||||
var common = require('../common.js');
|
||||
@@ -38,7 +38,7 @@ function main(conf) {
|
||||
function runTest() {
|
||||
assert(fs.statSync(filename).size === filesize);
|
||||
var rs = fs.createReadStream(filename, {
|
||||
highWaterMark: size,
|
||||
bufferSize: size,
|
||||
encoding: encoding
|
||||
});
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// test the throughput of the fs.WriteStream class.
|
||||
// test the througput of the fs.WriteStream class.
|
||||
|
||||
var path = require('path');
|
||||
var common = require('../common.js');
|
||||
|
||||
@@ -5,7 +5,6 @@ var bench = common.createBenchmark(main, {
|
||||
// unicode confuses ab on os x.
|
||||
type: ['bytes', 'buffer'],
|
||||
length: [4, 1024, 102400],
|
||||
chunks: [0, 1, 4], // chunks=0 means 'no chunked encoding'.
|
||||
c: [50, 500]
|
||||
});
|
||||
|
||||
@@ -14,7 +13,7 @@ function main(conf) {
|
||||
var spawn = require('child_process').spawn;
|
||||
var server = require('../http_simple.js');
|
||||
setTimeout(function() {
|
||||
var path = '/' + conf.type + '/' + conf.length + '/' + conf.chunks;
|
||||
var path = '/' + conf.type + '/' + conf.length; //+ '/' + conf.chunks;
|
||||
var args = ['-r', 5000, '-t', 8, '-c', conf.c];
|
||||
|
||||
bench.http(path, args, function() {
|
||||
|
||||
@@ -5,12 +5,13 @@ using namespace v8;
|
||||
|
||||
static int c = 0;
|
||||
|
||||
void Hello(const FunctionCallbackInfo<Value>& args) {
|
||||
args.GetReturnValue().Set(c++);
|
||||
static Handle<Value> Hello(const Arguments& args) {
|
||||
HandleScope scope;
|
||||
return scope.Close(Integer::New(c++));
|
||||
}
|
||||
|
||||
extern "C" void init (Handle<Object> target) {
|
||||
HandleScope scope(Isolate::GetCurrent());
|
||||
HandleScope scope;
|
||||
NODE_SET_METHOD(target, "hello", Hello);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// as many bytes as we can in the specified time (default = 10s)
|
||||
|
||||
var common = require('../common.js');
|
||||
var util = require('util');
|
||||
|
||||
// if there are --dur=N and --len=N args, then
|
||||
// run the function with those settings.
|
||||
@@ -28,23 +27,26 @@ function main(conf) {
|
||||
}
|
||||
|
||||
|
||||
function fail(err, syscall) {
|
||||
throw util._errnoException(err, syscall);
|
||||
function fail(syscall) {
|
||||
var e = new Error(syscall + ' ' + errno);
|
||||
e.errno = e.code = errno;
|
||||
e.syscall = syscall;
|
||||
throw e;
|
||||
}
|
||||
|
||||
function server() {
|
||||
var serverHandle = new TCP();
|
||||
var err = serverHandle.bind('127.0.0.1', PORT);
|
||||
if (err)
|
||||
fail(err, 'bind');
|
||||
var r = serverHandle.bind('127.0.0.1', PORT);
|
||||
if (r)
|
||||
fail('bind');
|
||||
|
||||
err = serverHandle.listen(511);
|
||||
if (err)
|
||||
fail(err, 'listen');
|
||||
var r = serverHandle.listen(511);
|
||||
if (r)
|
||||
fail('listen');
|
||||
|
||||
serverHandle.onconnection = function(err, clientHandle) {
|
||||
if (err)
|
||||
fail(err, 'connect');
|
||||
serverHandle.onconnection = function(clientHandle) {
|
||||
if (!clientHandle)
|
||||
fail('connect');
|
||||
|
||||
// the meat of the benchmark is right here:
|
||||
bench.start();
|
||||
@@ -55,11 +57,11 @@ function server() {
|
||||
bench.end((bytes * 8) / (1024 * 1024 * 1024));
|
||||
}, dur * 1000);
|
||||
|
||||
clientHandle.onread = function(nread, buffer) {
|
||||
clientHandle.onread = function(buffer) {
|
||||
// we're not expecting to ever get an EOF from the client.
|
||||
// just lots of data forever.
|
||||
if (nread < 0)
|
||||
fail(nread, 'read');
|
||||
if (!buffer)
|
||||
fail('read');
|
||||
|
||||
// don't slice the buffer. the point of this is to isolate, not
|
||||
// simulate real traffic.
|
||||
@@ -91,44 +93,41 @@ function client() {
|
||||
}
|
||||
|
||||
var clientHandle = new TCP();
|
||||
var connectReq = {};
|
||||
var err = clientHandle.connect(connectReq, '127.0.0.1', PORT);
|
||||
var connectReq = clientHandle.connect('127.0.0.1', PORT);
|
||||
|
||||
if (err)
|
||||
fail(err, 'connect');
|
||||
if (!connectReq)
|
||||
fail('connect');
|
||||
|
||||
clientHandle.readStart();
|
||||
|
||||
connectReq.oncomplete = function(err) {
|
||||
if (err)
|
||||
fail(err, 'connect');
|
||||
|
||||
connectReq.oncomplete = function() {
|
||||
while (clientHandle.writeQueueSize === 0)
|
||||
write();
|
||||
};
|
||||
|
||||
function write() {
|
||||
var writeReq = { oncomplete: afterWrite };
|
||||
var err;
|
||||
var writeReq
|
||||
switch (type) {
|
||||
case 'buf':
|
||||
err = clientHandle.writeBuffer(writeReq, chunk);
|
||||
writeReq = clientHandle.writeBuffer(chunk);
|
||||
break;
|
||||
case 'utf':
|
||||
err = clientHandle.writeUtf8String(writeReq, chunk);
|
||||
writeReq = clientHandle.writeUtf8String(chunk);
|
||||
break;
|
||||
case 'asc':
|
||||
err = clientHandle.writeAsciiString(writeReq, chunk);
|
||||
writeReq = clientHandle.writeAsciiString(chunk);
|
||||
break;
|
||||
}
|
||||
|
||||
if (err)
|
||||
fail(err, 'write');
|
||||
if (!writeReq)
|
||||
fail('write');
|
||||
|
||||
writeReq.oncomplete = afterWrite;
|
||||
}
|
||||
|
||||
function afterWrite(err, handle, req) {
|
||||
if (err)
|
||||
fail(err, 'write');
|
||||
function afterWrite(status, handle, req) {
|
||||
if (status)
|
||||
fail('write');
|
||||
|
||||
while (clientHandle.writeQueueSize === 0)
|
||||
write();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// as many bytes as we can in the specified time (default = 10s)
|
||||
|
||||
var common = require('../common.js');
|
||||
var util = require('util');
|
||||
|
||||
// if there are --dur=N and --len=N args, then
|
||||
// run the function with those settings.
|
||||
@@ -27,39 +26,42 @@ function main(conf) {
|
||||
server();
|
||||
}
|
||||
|
||||
function fail(err, syscall) {
|
||||
throw util._errnoException(err, syscall);
|
||||
|
||||
function fail(syscall) {
|
||||
var e = new Error(syscall + ' ' + errno);
|
||||
e.errno = e.code = errno;
|
||||
e.syscall = syscall;
|
||||
throw e;
|
||||
}
|
||||
|
||||
function server() {
|
||||
var serverHandle = new TCP();
|
||||
var err = serverHandle.bind('127.0.0.1', PORT);
|
||||
if (err)
|
||||
fail(err, 'bind');
|
||||
var r = serverHandle.bind('127.0.0.1', PORT);
|
||||
if (r)
|
||||
fail('bind');
|
||||
|
||||
err = serverHandle.listen(511);
|
||||
if (err)
|
||||
fail(err, 'listen');
|
||||
var r = serverHandle.listen(511);
|
||||
if (r)
|
||||
fail('listen');
|
||||
|
||||
serverHandle.onconnection = function(err, clientHandle) {
|
||||
if (err)
|
||||
fail(err, 'connect');
|
||||
serverHandle.onconnection = function(clientHandle) {
|
||||
if (!clientHandle)
|
||||
fail('connect');
|
||||
|
||||
clientHandle.onread = function(nread, buffer) {
|
||||
clientHandle.onread = function(buffer) {
|
||||
// we're not expecting to ever get an EOF from the client.
|
||||
// just lots of data forever.
|
||||
if (nread < 0)
|
||||
fail(nread, 'read');
|
||||
if (!buffer)
|
||||
fail('read');
|
||||
|
||||
var writeReq = {};
|
||||
err = clientHandle.writeBuffer(writeReq, buffer);
|
||||
var writeReq = clientHandle.writeBuffer(buffer);
|
||||
|
||||
if (err)
|
||||
fail(err, 'write');
|
||||
if (!writeReq)
|
||||
fail('write');
|
||||
|
||||
writeReq.oncomplete = function(status, handle, req) {
|
||||
if (status)
|
||||
fail(err, 'write');
|
||||
fail('write');
|
||||
};
|
||||
};
|
||||
|
||||
@@ -88,26 +90,22 @@ function client() {
|
||||
}
|
||||
|
||||
var clientHandle = new TCP();
|
||||
var connectReq = {};
|
||||
var err = clientHandle.connect(connectReq, '127.0.0.1', PORT);
|
||||
var connectReq = clientHandle.connect('127.0.0.1', PORT);
|
||||
var bytes = 0;
|
||||
|
||||
if (err)
|
||||
fail(err, 'connect');
|
||||
if (!connectReq)
|
||||
fail('connect');
|
||||
|
||||
clientHandle.readStart();
|
||||
|
||||
clientHandle.onread = function(nread, buffer) {
|
||||
if (nread < 0)
|
||||
fail(nread, 'read');
|
||||
clientHandle.onread = function(buffer) {
|
||||
if (!buffer)
|
||||
fail('read');
|
||||
|
||||
bytes += buffer.length;
|
||||
};
|
||||
|
||||
connectReq.oncomplete = function(err) {
|
||||
if (err)
|
||||
fail(err, 'connect');
|
||||
|
||||
connectReq.oncomplete = function() {
|
||||
bench.start();
|
||||
|
||||
setTimeout(function() {
|
||||
@@ -121,27 +119,28 @@ function client() {
|
||||
};
|
||||
|
||||
function write() {
|
||||
var writeReq = { oncomplete: afterWrite };
|
||||
var err;
|
||||
var writeReq
|
||||
switch (type) {
|
||||
case 'buf':
|
||||
err = clientHandle.writeBuffer(writeReq, chunk);
|
||||
writeReq = clientHandle.writeBuffer(chunk);
|
||||
break;
|
||||
case 'utf':
|
||||
err = clientHandle.writeUtf8String(writeReq, chunk);
|
||||
writeReq = clientHandle.writeUtf8String(chunk);
|
||||
break;
|
||||
case 'asc':
|
||||
err = clientHandle.writeAsciiString(writeReq, chunk);
|
||||
writeReq = clientHandle.writeAsciiString(chunk);
|
||||
break;
|
||||
}
|
||||
|
||||
if (err)
|
||||
fail(err, 'write');
|
||||
if (!writeReq)
|
||||
fail('write');
|
||||
|
||||
writeReq.oncomplete = afterWrite;
|
||||
}
|
||||
|
||||
function afterWrite(err, handle, req) {
|
||||
if (err)
|
||||
fail(err, 'write');
|
||||
function afterWrite(status, handle, req) {
|
||||
if (status)
|
||||
fail('write');
|
||||
|
||||
while (clientHandle.writeQueueSize === 0)
|
||||
write();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// as many bytes as we can in the specified time (default = 10s)
|
||||
|
||||
var common = require('../common.js');
|
||||
var util = require('util');
|
||||
|
||||
// if there are dur=N and len=N args, then
|
||||
// run the function with those settings.
|
||||
@@ -27,23 +26,27 @@ function main(conf) {
|
||||
server();
|
||||
}
|
||||
|
||||
function fail(err, syscall) {
|
||||
throw util._errnoException(err, syscall);
|
||||
|
||||
function fail(syscall) {
|
||||
var e = new Error(syscall + ' ' + errno);
|
||||
e.errno = e.code = errno;
|
||||
e.syscall = syscall;
|
||||
throw e;
|
||||
}
|
||||
|
||||
function server() {
|
||||
var serverHandle = new TCP();
|
||||
var err = serverHandle.bind('127.0.0.1', PORT);
|
||||
if (err)
|
||||
fail(err, 'bind');
|
||||
var r = serverHandle.bind('127.0.0.1', PORT);
|
||||
if (r)
|
||||
fail('bind');
|
||||
|
||||
err = serverHandle.listen(511);
|
||||
if (err)
|
||||
fail(err, 'listen');
|
||||
var r = serverHandle.listen(511);
|
||||
if (r)
|
||||
fail('listen');
|
||||
|
||||
serverHandle.onconnection = function(err, clientHandle) {
|
||||
if (err)
|
||||
fail(err, 'connect');
|
||||
serverHandle.onconnection = function(clientHandle) {
|
||||
if (!clientHandle)
|
||||
fail('connect');
|
||||
|
||||
var chunk;
|
||||
switch (type) {
|
||||
@@ -68,27 +71,28 @@ function server() {
|
||||
write();
|
||||
|
||||
function write() {
|
||||
var writeReq = { oncomplete: afterWrite };
|
||||
var err;
|
||||
var writeReq
|
||||
switch (type) {
|
||||
case 'buf':
|
||||
err = clientHandle.writeBuffer(writeReq, chunk);
|
||||
writeReq = clientHandle.writeBuffer(chunk);
|
||||
break;
|
||||
case 'utf':
|
||||
err = clientHandle.writeUtf8String(writeReq, chunk);
|
||||
writeReq = clientHandle.writeUtf8String(chunk);
|
||||
break;
|
||||
case 'asc':
|
||||
err = clientHandle.writeAsciiString(writeReq, chunk);
|
||||
writeReq = clientHandle.writeAsciiString(chunk);
|
||||
break;
|
||||
}
|
||||
|
||||
if (err)
|
||||
fail(err, 'write');
|
||||
if (!writeReq)
|
||||
fail('write');
|
||||
|
||||
writeReq.oncomplete = afterWrite;
|
||||
}
|
||||
|
||||
function afterWrite(err, handle, req) {
|
||||
if (err)
|
||||
fail(err, 'write');
|
||||
function afterWrite(status, handle, req) {
|
||||
if (status)
|
||||
fail('write');
|
||||
|
||||
while (clientHandle.writeQueueSize === 0)
|
||||
write();
|
||||
@@ -100,19 +104,18 @@ function server() {
|
||||
|
||||
function client() {
|
||||
var clientHandle = new TCP();
|
||||
var connectReq = {};
|
||||
var err = clientHandle.connect(connectReq, '127.0.0.1', PORT);
|
||||
var connectReq = clientHandle.connect('127.0.0.1', PORT);
|
||||
|
||||
if (err)
|
||||
fail(err, 'connect');
|
||||
if (!connectReq)
|
||||
fail('connect');
|
||||
|
||||
connectReq.oncomplete = function() {
|
||||
var bytes = 0;
|
||||
clientHandle.onread = function(nread, buffer) {
|
||||
clientHandle.onread = function(buffer) {
|
||||
// we're not expecting to ever get an EOF from the client.
|
||||
// just lots of data forever.
|
||||
if (nread < 0)
|
||||
fail(nread, 'read');
|
||||
if (!buffer)
|
||||
fail('read');
|
||||
|
||||
// don't slice the buffer. the point of this is to isolate, not
|
||||
// simulate real traffic.
|
||||
|
||||
@@ -39,8 +39,7 @@ function main(conf) {
|
||||
|
||||
options = { key: fs.readFileSync(cert_dir + '/test_key.pem'),
|
||||
cert: fs.readFileSync(cert_dir + '/test_cert.pem'),
|
||||
ca: [ fs.readFileSync(cert_dir + '/test_ca.pem') ],
|
||||
ciphers: 'AES256-GCM-SHA384' };
|
||||
ca: [ fs.readFileSync(cert_dir + '/test_ca.pem') ] };
|
||||
|
||||
server = tls.createServer(options, onConnection);
|
||||
setTimeout(done, dur * 1000);
|
||||
|
||||
@@ -23,8 +23,7 @@ function main(conf) {
|
||||
var cert_dir = path.resolve(__dirname, '../../test/fixtures'),
|
||||
options = { key: fs.readFileSync(cert_dir + '/test_key.pem'),
|
||||
cert: fs.readFileSync(cert_dir + '/test_cert.pem'),
|
||||
ca: [ fs.readFileSync(cert_dir + '/test_ca.pem') ],
|
||||
ciphers: 'AES256-GCM-SHA384' };
|
||||
ca: [ fs.readFileSync(cert_dir + '/test_ca.pem') ] };
|
||||
|
||||
server = tls.createServer(options, onConnection);
|
||||
server.listen(common.PORT, onListening);
|
||||
|
||||
11
common.gypi
11
common.gypi
@@ -14,10 +14,8 @@
|
||||
# Enable V8's post-mortem debugging only on unix flavors.
|
||||
'conditions': [
|
||||
['OS == "win"', {
|
||||
'os_posix': 0,
|
||||
'v8_postmortem_support': 'false'
|
||||
}, {
|
||||
'os_posix': 1,
|
||||
'v8_postmortem_support': 'true'
|
||||
}]
|
||||
],
|
||||
@@ -57,6 +55,7 @@
|
||||
'msvs_configuration_platform': 'x64',
|
||||
}],
|
||||
['OS=="solaris"', {
|
||||
'cflags': [ '-fno-omit-frame-pointer' ],
|
||||
# pull in V8's postmortem metadata
|
||||
'ldflags': [ '-Wl,-z,allextract' ]
|
||||
}, {
|
||||
@@ -69,9 +68,6 @@
|
||||
['clang == 0 and gcc_version <= 44', {
|
||||
'cflags': [ '-fno-tree-sink' ], # Work around compiler bug.
|
||||
}],
|
||||
['OS!="mac" and OS!="win"', {
|
||||
'cflags': [ '-fno-omit-frame-pointer' ],
|
||||
}],
|
||||
],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
@@ -103,10 +99,6 @@
|
||||
},
|
||||
}
|
||||
},
|
||||
# Forcibly disable -Werror. We support a wide range of compilers, it's
|
||||
# simply not feasible to squelch all warnings, never mind that the
|
||||
# libraries in deps/ are not under our control.
|
||||
'cflags!': ['-Werror'],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'StringPooling': 'true', # pool string literals
|
||||
@@ -137,7 +129,6 @@
|
||||
],
|
||||
},
|
||||
},
|
||||
'msvs_disabled_warnings': [4351, 4355, 4800],
|
||||
'conditions': [
|
||||
['OS == "win"', {
|
||||
'msvs_cygwin_shell': 0, # prevent actions from trying to use cygwin
|
||||
|
||||
535
configure
vendored
535
configure
vendored
@@ -16,260 +16,254 @@ from gyp.common import GetFlavor
|
||||
# parse our options
|
||||
parser = optparse.OptionParser()
|
||||
|
||||
# Options should be in alphabetical order but keep --prefix at the top,
|
||||
# that's arguably the one people will be looking for most.
|
||||
parser.add_option('--prefix',
|
||||
action='store',
|
||||
dest='prefix',
|
||||
help='select the install prefix (defaults to /usr/local)')
|
||||
parser.add_option("--debug",
|
||||
action="store_true",
|
||||
dest="debug",
|
||||
help="Also build debug build")
|
||||
|
||||
parser.add_option('--debug',
|
||||
action='store_true',
|
||||
dest='debug',
|
||||
help='also build debug build')
|
||||
parser.add_option("--prefix",
|
||||
action="store",
|
||||
dest="prefix",
|
||||
help="Select the install prefix (defaults to /usr/local)")
|
||||
|
||||
parser.add_option('--dest-cpu',
|
||||
action='store',
|
||||
dest='dest_cpu',
|
||||
help='CPU architecture to build for. Valid values are: arm, ia32, x64')
|
||||
parser.add_option("--without-npm",
|
||||
action="store_true",
|
||||
dest="without_npm",
|
||||
help="Don\'t install the bundled npm package manager")
|
||||
|
||||
parser.add_option('--dest-os',
|
||||
action='store',
|
||||
dest='dest_os',
|
||||
help='operating system to build for. Valid values are: '
|
||||
'win, mac, solaris, freebsd, openbsd, linux, android')
|
||||
parser.add_option("--without-ssl",
|
||||
action="store_true",
|
||||
dest="without_ssl",
|
||||
help="Build without SSL")
|
||||
|
||||
parser.add_option('--gdb',
|
||||
action='store_true',
|
||||
dest='gdb',
|
||||
help='add gdb support')
|
||||
parser.add_option("--without-snapshot",
|
||||
action="store_true",
|
||||
dest="without_snapshot",
|
||||
help="Build without snapshotting V8 libraries. You might want to set"
|
||||
" this for cross-compiling. [Default: False]")
|
||||
|
||||
parser.add_option('--ninja',
|
||||
action='store_true',
|
||||
dest='use_ninja',
|
||||
help='generate files for the ninja build system')
|
||||
parser.add_option("--shared-v8",
|
||||
action="store_true",
|
||||
dest="shared_v8",
|
||||
help="Link to a shared V8 DLL instead of static linking")
|
||||
|
||||
parser.add_option('--no-ifaddrs',
|
||||
action='store_true',
|
||||
dest='no_ifaddrs',
|
||||
help='use on deprecated SunOS systems that do not support ifaddrs.h')
|
||||
parser.add_option("--shared-v8-includes",
|
||||
action="store",
|
||||
dest="shared_v8_includes",
|
||||
help="Directory containing V8 header files")
|
||||
|
||||
parser.add_option("--shared-v8-libpath",
|
||||
action="store",
|
||||
dest="shared_v8_libpath",
|
||||
help="A directory to search for the shared V8 DLL")
|
||||
|
||||
parser.add_option("--shared-v8-libname",
|
||||
action="store",
|
||||
dest="shared_v8_libname",
|
||||
help="Alternative lib name to link to (default: 'v8')")
|
||||
|
||||
parser.add_option("--shared-openssl",
|
||||
action="store_true",
|
||||
dest="shared_openssl",
|
||||
help="Link to a shared OpenSSl DLL instead of static linking")
|
||||
|
||||
parser.add_option("--shared-openssl-includes",
|
||||
action="store",
|
||||
dest="shared_openssl_includes",
|
||||
help="Directory containing OpenSSL header files")
|
||||
|
||||
parser.add_option("--shared-openssl-libpath",
|
||||
action="store",
|
||||
dest="shared_openssl_libpath",
|
||||
help="A directory to search for the shared OpenSSL DLLs")
|
||||
|
||||
parser.add_option("--shared-openssl-libname",
|
||||
action="store",
|
||||
dest="shared_openssl_libname",
|
||||
help="Alternative lib name to link to (default: 'crypto,ssl')")
|
||||
|
||||
# deprecated
|
||||
parser.add_option('--openssl-includes',
|
||||
action='store',
|
||||
dest='shared_openssl_includes',
|
||||
parser.add_option("--openssl-use-sys",
|
||||
action="store_true",
|
||||
dest="shared_openssl",
|
||||
help=optparse.SUPPRESS_HELP)
|
||||
|
||||
# deprecated
|
||||
parser.add_option('--openssl-libpath',
|
||||
action='store',
|
||||
dest='shared_openssl_libpath',
|
||||
parser.add_option("--openssl-includes",
|
||||
action="store",
|
||||
dest="shared_openssl_includes",
|
||||
help=optparse.SUPPRESS_HELP)
|
||||
|
||||
# deprecated
|
||||
parser.add_option('--openssl-use-sys',
|
||||
action='store_true',
|
||||
dest='shared_openssl',
|
||||
parser.add_option("--openssl-libpath",
|
||||
action="store",
|
||||
dest="shared_openssl_libpath",
|
||||
help=optparse.SUPPRESS_HELP)
|
||||
|
||||
parser.add_option('--shared-cares',
|
||||
action='store_true',
|
||||
dest='shared_cares',
|
||||
help='link to a shared cares DLL instead of static linking')
|
||||
|
||||
parser.add_option('--shared-cares-includes',
|
||||
action='store',
|
||||
dest='shared_cares_includes',
|
||||
help='directory containing cares header files')
|
||||
|
||||
parser.add_option('--shared-cares-libname',
|
||||
action='store',
|
||||
dest='shared_cares_libname',
|
||||
help='alternative lib name to link to (default: \'cares\')')
|
||||
|
||||
parser.add_option('--shared-cares-libpath',
|
||||
action='store',
|
||||
dest='shared_cares_libpath',
|
||||
help='a directory to search for the shared cares DLL')
|
||||
|
||||
parser.add_option('--shared-http-parser',
|
||||
action='store_true',
|
||||
dest='shared_http_parser',
|
||||
help='link to a shared http_parser DLL instead of static linking')
|
||||
|
||||
parser.add_option('--shared-http-parser-includes',
|
||||
action='store',
|
||||
dest='shared_http_parser_includes',
|
||||
help='directory containing http_parser header files')
|
||||
|
||||
parser.add_option('--shared-http-parser-libname',
|
||||
action='store',
|
||||
dest='shared_http_parser_libname',
|
||||
help='alternative lib name to link to (default: \'http_parser\')')
|
||||
|
||||
parser.add_option('--shared-http-parser-libpath',
|
||||
action='store',
|
||||
dest='shared_http_parser_libpath',
|
||||
help='a directory to search for the shared http_parser DLL')
|
||||
|
||||
parser.add_option('--shared-libuv',
|
||||
action='store_true',
|
||||
dest='shared_libuv',
|
||||
help='link to a shared libuv DLL instead of static linking')
|
||||
|
||||
parser.add_option('--shared-libuv-includes',
|
||||
action='store',
|
||||
dest='shared_libuv_includes',
|
||||
help='directory containing libuv header files')
|
||||
|
||||
parser.add_option('--shared-libuv-libname',
|
||||
action='store',
|
||||
dest='shared_libuv_libname',
|
||||
help='alternative lib name to link to (default: \'uv\')')
|
||||
|
||||
parser.add_option('--shared-libuv-libpath',
|
||||
action='store',
|
||||
dest='shared_libuv_libpath',
|
||||
help='a directory to search for the shared libuv DLL')
|
||||
|
||||
parser.add_option('--shared-openssl',
|
||||
action='store_true',
|
||||
dest='shared_openssl',
|
||||
help='link to a shared OpenSSl DLL instead of static linking')
|
||||
|
||||
parser.add_option('--shared-openssl-includes',
|
||||
action='store',
|
||||
dest='shared_openssl_includes',
|
||||
help='directory containing OpenSSL header files')
|
||||
|
||||
parser.add_option('--shared-openssl-libname',
|
||||
action='store',
|
||||
dest='shared_openssl_libname',
|
||||
help='alternative lib name to link to (default: \'crypto,ssl\')')
|
||||
|
||||
parser.add_option('--shared-openssl-libpath',
|
||||
action='store',
|
||||
dest='shared_openssl_libpath',
|
||||
help='a directory to search for the shared OpenSSL DLLs')
|
||||
|
||||
parser.add_option('--shared-v8',
|
||||
action='store_true',
|
||||
dest='shared_v8',
|
||||
help='link to a shared V8 DLL instead of static linking')
|
||||
|
||||
parser.add_option('--shared-v8-includes',
|
||||
action='store',
|
||||
dest='shared_v8_includes',
|
||||
help='directory containing V8 header files')
|
||||
|
||||
parser.add_option('--shared-v8-libname',
|
||||
action='store',
|
||||
dest='shared_v8_libname',
|
||||
help='alternative lib name to link to (default: \'v8\')')
|
||||
|
||||
parser.add_option('--shared-v8-libpath',
|
||||
action='store',
|
||||
dest='shared_v8_libpath',
|
||||
help='a directory to search for the shared V8 DLL')
|
||||
|
||||
parser.add_option('--shared-zlib',
|
||||
action='store_true',
|
||||
dest='shared_zlib',
|
||||
help='link to a shared zlib DLL instead of static linking')
|
||||
|
||||
parser.add_option('--shared-zlib-includes',
|
||||
action='store',
|
||||
dest='shared_zlib_includes',
|
||||
help='directory containing zlib header files')
|
||||
|
||||
parser.add_option('--shared-zlib-libname',
|
||||
action='store',
|
||||
dest='shared_zlib_libname',
|
||||
help='alternative lib name to link to (default: \'z\')')
|
||||
|
||||
parser.add_option('--shared-zlib-libpath',
|
||||
action='store',
|
||||
dest='shared_zlib_libpath',
|
||||
help='a directory to search for the shared zlib DLL')
|
||||
|
||||
# TODO document when we've decided on what the tracing API and its options will
|
||||
# look like
|
||||
parser.add_option('--systemtap-includes',
|
||||
action='store',
|
||||
dest='systemtap_includes',
|
||||
parser.add_option("--systemtap-includes",
|
||||
action="store",
|
||||
dest="systemtap_includes",
|
||||
help=optparse.SUPPRESS_HELP)
|
||||
|
||||
parser.add_option('--tag',
|
||||
action='store',
|
||||
dest='tag',
|
||||
help='custom build tag')
|
||||
parser.add_option("--no-ssl2",
|
||||
action="store_true",
|
||||
dest="no_ssl2",
|
||||
help="Disable OpenSSL v2")
|
||||
|
||||
parser.add_option('--with-arm-float-abi',
|
||||
action='store',
|
||||
dest='arm_float_abi',
|
||||
help='specifies which floating-point ABI to use. Valid values are: '
|
||||
'soft, softfp, hard')
|
||||
parser.add_option("--shared-zlib",
|
||||
action="store_true",
|
||||
dest="shared_zlib",
|
||||
help="Link to a shared zlib DLL instead of static linking")
|
||||
|
||||
parser.add_option('--with-dtrace',
|
||||
action='store_true',
|
||||
dest='with_dtrace',
|
||||
help='build with DTrace (default is true on sunos)')
|
||||
parser.add_option("--shared-zlib-includes",
|
||||
action="store",
|
||||
dest="shared_zlib_includes",
|
||||
help="Directory containing zlib header files")
|
||||
|
||||
parser.add_option('--with-etw',
|
||||
action='store_true',
|
||||
dest='with_etw',
|
||||
help='build with ETW (default is true on Windows)')
|
||||
parser.add_option("--shared-zlib-libpath",
|
||||
action="store",
|
||||
dest="shared_zlib_libpath",
|
||||
help="A directory to search for the shared zlib DLL")
|
||||
|
||||
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("--shared-zlib-libname",
|
||||
action="store",
|
||||
dest="shared_zlib_libname",
|
||||
help="Alternative lib name to link to (default: 'z')")
|
||||
|
||||
parser.add_option('--with-perfctr',
|
||||
action='store_true',
|
||||
dest='with_perfctr',
|
||||
help='build with performance counters (default is true on Windows)')
|
||||
parser.add_option("--shared-http-parser",
|
||||
action="store_true",
|
||||
dest="shared_http_parser",
|
||||
help="Link to a shared http_parser DLL instead of static linking")
|
||||
|
||||
parser.add_option('--with-sslv2',
|
||||
action='store_true',
|
||||
dest='with_sslv2',
|
||||
help='enable SSL v2')
|
||||
parser.add_option("--shared-http-parser-includes",
|
||||
action="store",
|
||||
dest="shared_http_parser_includes",
|
||||
help="Directory containing http_parser header files")
|
||||
|
||||
parser.add_option('--without-dtrace',
|
||||
action='store_true',
|
||||
dest='without_dtrace',
|
||||
help='build without DTrace')
|
||||
parser.add_option("--shared-http-parser-libpath",
|
||||
action="store",
|
||||
dest="shared_http_parser_libpath",
|
||||
help="A directory to search for the shared http_parser DLL")
|
||||
|
||||
parser.add_option('--without-etw',
|
||||
action='store_true',
|
||||
dest='without_etw',
|
||||
help='build without ETW')
|
||||
parser.add_option("--shared-http-parser-libname",
|
||||
action="store",
|
||||
dest="shared_http_parser_libname",
|
||||
help="Alternative lib name to link to (default: 'http_parser')")
|
||||
|
||||
parser.add_option('--without-npm',
|
||||
action='store_true',
|
||||
dest='without_npm',
|
||||
help='don\'t install the bundled npm package manager')
|
||||
parser.add_option("--shared-cares",
|
||||
action="store_true",
|
||||
dest="shared_cares",
|
||||
help="Link to a shared cares DLL instead of static linking")
|
||||
|
||||
parser.add_option('--without-perfctr',
|
||||
action='store_true',
|
||||
dest='without_perfctr',
|
||||
help='build without performance counters')
|
||||
parser.add_option("--shared-cares-includes",
|
||||
action="store",
|
||||
dest="shared_cares_includes",
|
||||
help="Directory containing cares header files")
|
||||
|
||||
parser.add_option('--without-snapshot',
|
||||
action='store_true',
|
||||
dest='without_snapshot',
|
||||
help='build without snapshotting V8 libraries. You might want to set'
|
||||
' this for cross-compiling. [Default: False]')
|
||||
parser.add_option("--shared-cares-libpath",
|
||||
action="store",
|
||||
dest="shared_cares_libpath",
|
||||
help="A directory to search for the shared cares DLL")
|
||||
|
||||
parser.add_option('--without-ssl',
|
||||
action='store_true',
|
||||
dest='without_ssl',
|
||||
help='build without SSL')
|
||||
parser.add_option("--shared-cares-libname",
|
||||
action="store",
|
||||
dest="shared_cares_libname",
|
||||
help="Alternative lib name to link to (default: 'cares')")
|
||||
|
||||
parser.add_option('--xcode',
|
||||
action='store_true',
|
||||
dest='use_xcode',
|
||||
help='generate build files for use with xcode')
|
||||
parser.add_option("--shared-libuv",
|
||||
action="store_true",
|
||||
dest="shared_libuv",
|
||||
help="Link to a shared libuv DLL instead of static linking")
|
||||
|
||||
parser.add_option("--shared-libuv-includes",
|
||||
action="store",
|
||||
dest="shared_libuv_includes",
|
||||
help="Directory containing libuv header files")
|
||||
|
||||
parser.add_option("--shared-libuv-libpath",
|
||||
action="store",
|
||||
dest="shared_libuv_libpath",
|
||||
help="A directory to search for the shared libuv DLL")
|
||||
|
||||
parser.add_option("--shared-libuv-libname",
|
||||
action="store",
|
||||
dest="shared_libuv_libname",
|
||||
help="Alternative lib name to link to (default: 'uv')")
|
||||
|
||||
parser.add_option("--with-dtrace",
|
||||
action="store_true",
|
||||
dest="with_dtrace",
|
||||
help="Build with DTrace (default is true on sunos)")
|
||||
|
||||
parser.add_option("--without-dtrace",
|
||||
action="store_true",
|
||||
dest="without_dtrace",
|
||||
help="Build without DTrace")
|
||||
|
||||
parser.add_option("--with-etw",
|
||||
action="store_true",
|
||||
dest="with_etw",
|
||||
help="Build with ETW (default is true on Windows)")
|
||||
|
||||
parser.add_option("--without-etw",
|
||||
action="store_true",
|
||||
dest="without_etw",
|
||||
help="Build without ETW")
|
||||
|
||||
parser.add_option("--with-perfctr",
|
||||
action="store_true",
|
||||
dest="with_perfctr",
|
||||
help="Build with performance counters (default is true on Windows)")
|
||||
|
||||
parser.add_option("--without-perfctr",
|
||||
action="store_true",
|
||||
dest="without_perfctr",
|
||||
help="Build without performance counters")
|
||||
|
||||
# CHECKME does this still work with recent releases of V8?
|
||||
parser.add_option("--gdb",
|
||||
action="store_true",
|
||||
dest="gdb",
|
||||
help="add gdb support")
|
||||
|
||||
parser.add_option("--dest-cpu",
|
||||
action="store",
|
||||
dest="dest_cpu",
|
||||
help="CPU architecture to build for. Valid values are: arm, ia32, x64")
|
||||
|
||||
parser.add_option("--dest-os",
|
||||
action="store",
|
||||
dest="dest_os",
|
||||
help="Operating system to build for. Valid values are: "
|
||||
"win, mac, solaris, freebsd, openbsd, linux, android")
|
||||
|
||||
parser.add_option("--no-ifaddrs",
|
||||
action="store_true",
|
||||
dest="no_ifaddrs",
|
||||
help="Use on deprecated SunOS systems that do not support ifaddrs.h")
|
||||
|
||||
parser.add_option("--with-arm-float-abi",
|
||||
action="store",
|
||||
dest="arm_float_abi",
|
||||
help="Specifies which floating-point ABI to use. Valid values are: "
|
||||
"soft, softfp, hard")
|
||||
|
||||
parser.add_option("--ninja",
|
||||
action="store_true",
|
||||
dest="use_ninja",
|
||||
help="Generate files for the ninja build system")
|
||||
|
||||
parser.add_option("--xcode",
|
||||
action="store_true",
|
||||
dest="use_xcode",
|
||||
help="Generate build files for use with xcode")
|
||||
|
||||
parser.add_option("--tag",
|
||||
action="store",
|
||||
dest="tag",
|
||||
help="Custom build tag")
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
@@ -411,15 +405,13 @@ def host_arch_win():
|
||||
|
||||
def compiler_version():
|
||||
try:
|
||||
proc = subprocess.Popen(shlex.split(CC) + ['--version'],
|
||||
stdout=subprocess.PIPE)
|
||||
proc = subprocess.Popen(shlex.split(CC) + ['--version'], stdout=subprocess.PIPE)
|
||||
except WindowsError:
|
||||
return (0, False)
|
||||
|
||||
is_clang = 'clang' in proc.communicate()[0].split('\n')[0]
|
||||
|
||||
proc = subprocess.Popen(shlex.split(CC) + ['-dumpversion'],
|
||||
stdout=subprocess.PIPE)
|
||||
proc = subprocess.Popen(shlex.split(CC) + ['-dumpversion'], stdout=subprocess.PIPE)
|
||||
version = tuple(map(int, proc.communicate()[0].split('.')))
|
||||
|
||||
return (version, is_clang)
|
||||
@@ -428,10 +420,8 @@ def compiler_version():
|
||||
def configure_arm(o):
|
||||
if options.arm_float_abi:
|
||||
arm_float_abi = options.arm_float_abi
|
||||
elif is_arm_hard_float_abi():
|
||||
arm_float_abi = 'hard'
|
||||
else:
|
||||
arm_float_abi = 'default'
|
||||
arm_float_abi = 'hard' if is_arm_hard_float_abi() else 'default'
|
||||
o['variables']['armv7'] = int(is_arch_armv7())
|
||||
o['variables']['arm_fpu'] = 'vfpv3' # V8 3.18 no longer supports VFP2.
|
||||
o['variables']['arm_neon'] = int(is_arm_neon())
|
||||
@@ -441,7 +431,9 @@ def configure_arm(o):
|
||||
|
||||
def configure_node(o):
|
||||
if options.dest_os == 'android':
|
||||
o['variables']['OS'] = 'android'
|
||||
o['variables']['OS'] = "android"
|
||||
o['variables']['v8_enable_gdbjit'] = 1 if options.gdb else 0
|
||||
o['variables']['v8_no_strict_aliasing'] = 1 # work around compiler bugs
|
||||
o['variables']['node_prefix'] = os.path.expanduser(options.prefix or '')
|
||||
o['variables']['node_install_npm'] = b(not options.without_npm)
|
||||
o['default_configuration'] = 'Debug' if options.debug else 'Release'
|
||||
@@ -464,35 +456,31 @@ def configure_node(o):
|
||||
if not is_clang and cc_version < (4,0,0):
|
||||
o['variables']['visibility'] = ''
|
||||
|
||||
if flavor in ('solaris', 'mac', 'linux'):
|
||||
use_dtrace = not options.without_dtrace
|
||||
# Don't enable by default on linux, it needs the sdt-devel package.
|
||||
if flavor == 'linux':
|
||||
if options.systemtap_includes:
|
||||
o['include_dirs'] += [options.systemtap_includes]
|
||||
use_dtrace = options.with_dtrace
|
||||
o['variables']['node_use_dtrace'] = b(use_dtrace)
|
||||
o['variables']['uv_use_dtrace'] = b(use_dtrace)
|
||||
# By default, enable DTrace on SunOS systems. Don't allow it on other
|
||||
# systems, since it won't work. (The MacOS build process is different than
|
||||
# SunOS, and we haven't implemented it.)
|
||||
if flavor in ('solaris', 'mac'):
|
||||
o['variables']['node_use_dtrace'] = b(not options.without_dtrace)
|
||||
o['variables']['uv_use_dtrace'] = o['variables']['node_use_dtrace']
|
||||
o['variables']['uv_parent_path'] = '/deps/uv/'
|
||||
elif flavor == 'linux':
|
||||
o['variables']['node_use_dtrace'] = 'false'
|
||||
o['variables']['node_use_systemtap'] = b(options.with_dtrace)
|
||||
if options.systemtap_includes:
|
||||
o['include_dirs'] += [options.systemtap_includes]
|
||||
elif options.with_dtrace:
|
||||
raise Exception(
|
||||
'DTrace is currently only supported on SunOS, MacOS or Linux systems.')
|
||||
else:
|
||||
o['variables']['node_use_dtrace'] = 'false'
|
||||
|
||||
# if we're on illumos based systems wrap the helper library into the
|
||||
# executable
|
||||
if flavor == 'solaris':
|
||||
o['variables']['node_use_mdb'] = 'true'
|
||||
else:
|
||||
o['variables']['node_use_mdb'] = 'false'
|
||||
o['variables']['node_use_systemtap'] = 'false'
|
||||
|
||||
if options.no_ifaddrs:
|
||||
o['defines'] += ['SUNOS_NO_IFADDRS']
|
||||
|
||||
# By default, enable ETW on Windows.
|
||||
if flavor == 'win':
|
||||
o['variables']['node_use_etw'] = b(not options.without_etw)
|
||||
o['variables']['node_use_etw'] = b(not options.without_etw);
|
||||
elif options.with_etw:
|
||||
raise Exception('ETW is only supported on Windows.')
|
||||
else:
|
||||
@@ -500,7 +488,7 @@ def configure_node(o):
|
||||
|
||||
# By default, enable Performance counters on Windows.
|
||||
if flavor == 'win':
|
||||
o['variables']['node_use_perfctr'] = b(not options.without_perfctr)
|
||||
o['variables']['node_use_perfctr'] = b(not options.without_perfctr);
|
||||
elif options.with_perfctr:
|
||||
raise Exception('Performance counter is only supported on Windows.')
|
||||
else:
|
||||
@@ -569,12 +557,8 @@ def configure_libuv(o):
|
||||
|
||||
|
||||
def configure_v8(o):
|
||||
o['variables']['node_shared_v8'] = b(options.shared_v8)
|
||||
o['variables']['v8_enable_gdbjit'] = 1 if options.gdb else 0
|
||||
o['variables']['v8_no_strict_aliasing'] = 1 # Work around compiler bugs.
|
||||
o['variables']['v8_optimized_debug'] = 0 # Compile with -O0 in debug builds.
|
||||
o['variables']['v8_random_seed'] = 0 # Use a random seed for hash tables.
|
||||
o['variables']['v8_use_snapshot'] = b(not options.without_snapshot)
|
||||
o['variables']['node_shared_v8'] = b(options.shared_v8)
|
||||
|
||||
# assume shared_v8 if one of these is set?
|
||||
if options.shared_v8_libpath:
|
||||
@@ -594,9 +578,7 @@ 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.no_ssl2:
|
||||
o['defines'] += ['OPENSSL_NO_SSL2=1']
|
||||
|
||||
if options.shared_openssl:
|
||||
@@ -621,31 +603,22 @@ def configure_winsdk(o):
|
||||
if flavor != 'win':
|
||||
return
|
||||
|
||||
winsdk_dir = os.environ.get('WindowsSdkDir')
|
||||
winsdk_dir = os.environ.get("WindowsSdkDir")
|
||||
|
||||
if winsdk_dir and os.path.isfile(winsdk_dir + '\\bin\\ctrpp.exe'):
|
||||
print('Found ctrpp in WinSDK--will build generated files '
|
||||
'into tools/msvs/genfiles.')
|
||||
print "Found ctrpp in WinSDK--will build generated files into tools/msvs/genfiles."
|
||||
o['variables']['node_has_winsdk'] = 'true'
|
||||
return
|
||||
|
||||
print('ctrpp not found in WinSDK path--using pre-gen files '
|
||||
'from tools/msvs/genfiles.')
|
||||
|
||||
|
||||
def configure_icu(o):
|
||||
have_icu_path = bool(options.with_icu_path)
|
||||
o['variables']['v8_enable_i18n_support'] = int(have_icu_path)
|
||||
if have_icu_path:
|
||||
o['variables']['icu_gyp_path'] = options.with_icu_path
|
||||
print "ctrpp not found in WinSDK path--using pre-gen files from tools/msvs/genfiles."
|
||||
|
||||
|
||||
# determine the "flavor" (operating system) we're building for,
|
||||
# leveraging gyp's GetFlavor function
|
||||
flavor_params = {}
|
||||
flavor_params = {};
|
||||
if (options.dest_os):
|
||||
flavor_params['flavor'] = options.dest_os
|
||||
flavor = GetFlavor(flavor_params)
|
||||
flavor_params['flavor'] = options.dest_os;
|
||||
flavor = GetFlavor(flavor_params);
|
||||
|
||||
output = {
|
||||
'variables': { 'python': sys.executable },
|
||||
@@ -663,7 +636,7 @@ configure_libuv(output)
|
||||
configure_v8(output)
|
||||
configure_openssl(output)
|
||||
configure_winsdk(output)
|
||||
configure_icu(output)
|
||||
|
||||
|
||||
# variables should be a root level element,
|
||||
# move everything else to target_defaults
|
||||
@@ -677,12 +650,12 @@ pprint.pprint(output, indent=2)
|
||||
|
||||
def write(filename, data):
|
||||
filename = os.path.join(root_dir, filename)
|
||||
print 'creating ', filename
|
||||
print "creating ", filename
|
||||
f = open(filename, 'w+')
|
||||
f.write(data)
|
||||
|
||||
write('config.gypi', '# Do not edit. Generated by the configure script.\n' +
|
||||
pprint.pformat(output, indent=2) + '\n')
|
||||
write('config.gypi', "# Do not edit. Generated by the configure script.\n" +
|
||||
pprint.pformat(output, indent=2) + "\n")
|
||||
|
||||
config = {
|
||||
'BUILDTYPE': 'Debug' if options.debug else 'Release',
|
||||
@@ -699,17 +672,13 @@ config = '\n'.join(map('='.join, config.iteritems())) + '\n'
|
||||
write('config.mk',
|
||||
'# Do not edit. Generated by the configure script.\n' + config)
|
||||
|
||||
gyp_args = [sys.executable, 'tools/gyp_node.py', '--no-parallel']
|
||||
|
||||
if options.use_ninja:
|
||||
gyp_args += ['-f', 'ninja-' + flavor]
|
||||
gyp_args = ['-f', 'ninja-' + flavor]
|
||||
elif options.use_xcode:
|
||||
gyp_args += ['-f', 'xcode']
|
||||
gyp_args = ['-f', 'xcode']
|
||||
elif flavor == 'win':
|
||||
gyp_args += ['-f', 'msvs', '-G', 'msvs_version=auto']
|
||||
gyp_args = ['-f', 'msvs', '-G', 'msvs_version=auto']
|
||||
else:
|
||||
gyp_args += ['-f', 'make-' + flavor]
|
||||
gyp_args = ['-f', 'make-' + flavor]
|
||||
|
||||
gyp_args += args
|
||||
|
||||
subprocess.call(gyp_args)
|
||||
subprocess.call([sys.executable, 'tools/gyp_node'] + gyp_args)
|
||||
|
||||
5
deps/http_parser/.gitignore
vendored
5
deps/http_parser/.gitignore
vendored
@@ -1,4 +1,3 @@
|
||||
/out/
|
||||
core
|
||||
tags
|
||||
*.o
|
||||
@@ -6,9 +5,7 @@ test
|
||||
test_g
|
||||
test_fast
|
||||
url_parser
|
||||
parsertrace
|
||||
parsertrace_g
|
||||
*.mk
|
||||
*.Makefile
|
||||
*.so.*
|
||||
*.so
|
||||
*.a
|
||||
|
||||
2
deps/http_parser/.mailmap
vendored
2
deps/http_parser/.mailmap
vendored
@@ -3,5 +3,3 @@
|
||||
Ryan Dahl <ry@tinyclouds.org>
|
||||
Salman Haq <salman.haq@asti-usa.com>
|
||||
Simon Zimmermann <simonz05@gmail.com>
|
||||
Thomas LE ROUX <thomas@november-eleven.fr> LE ROUX Thomas <thomas@procheo.fr>
|
||||
Thomas LE ROUX <thomas@november-eleven.fr> Thomas LE ROUX <thomas@procheo.fr>
|
||||
|
||||
13
deps/http_parser/.travis.yml
vendored
13
deps/http_parser/.travis.yml
vendored
@@ -1,13 +0,0 @@
|
||||
language: c
|
||||
|
||||
compiler:
|
||||
- clang
|
||||
- gcc
|
||||
|
||||
script:
|
||||
- "make"
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
irc:
|
||||
- "irc.freenode.net#libuv"
|
||||
12
deps/http_parser/AUTHORS
vendored
12
deps/http_parser/AUTHORS
vendored
@@ -28,20 +28,10 @@ Andre Caron <andre.l.caron@gmail.com>
|
||||
Ivo Raisr <ivosh@ivosh.net>
|
||||
James McLaughlin <jamie@lacewing-project.org>
|
||||
David Gwynne <loki@animata.net>
|
||||
Thomas LE ROUX <thomas@november-eleven.fr>
|
||||
LE ROUX Thomas <thomas@procheo.fr>
|
||||
Randy Rizun <rrizun@ortivawireless.com>
|
||||
Andre Louis Caron <andre.louis.caron@usherbrooke.ca>
|
||||
Simon Zimmermann <simonz05@gmail.com>
|
||||
Erik Dubbelboer <erik@dubbelboer.com>
|
||||
Martell Malone <martellmalone@gmail.com>
|
||||
Bertrand Paquet <bpaquet@octo.com>
|
||||
BogDan Vatra <bogdan@kde.org>
|
||||
Peter Faiman <peter@thepicard.org>
|
||||
Corey Richardson <corey@octayn.net>
|
||||
Tóth Tamás <tomika_nospam@freemail.hu>
|
||||
Patrik Stutz <patrik.stutz@gmail.com>
|
||||
Cam Swords <cam.swords@gmail.com>
|
||||
Chris Dickinson <christopher.s.dickinson@gmail.com>
|
||||
Uli Köhler <ukoehler@btronik.de>
|
||||
Charlie Somerville <charlie@charliesomerville.com>
|
||||
Fedor Indutny <fedor.indutny@gmail.com>
|
||||
|
||||
61
deps/http_parser/Makefile
vendored
61
deps/http_parser/Makefile
vendored
@@ -1,33 +1,10 @@
|
||||
# Copyright Joyent, Inc. and other Node contributors. 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, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
PLATFORM ?= $(shell sh -c 'uname -s | tr "[A-Z]" "[a-z]"')
|
||||
SONAME ?= libhttp_parser.so.2.2
|
||||
|
||||
CC?=gcc
|
||||
AR?=ar
|
||||
|
||||
CPPFLAGS += -I.
|
||||
CPPFLAGS_DEBUG = $(CPPFLAGS) -DHTTP_PARSER_STRICT=1
|
||||
CPPFLAGS_DEBUG = $(CPPFLAGS) -DHTTP_PARSER_STRICT=1 -DHTTP_PARSER_DEBUG=1
|
||||
CPPFLAGS_DEBUG += $(CPPFLAGS_DEBUG_EXTRA)
|
||||
CPPFLAGS_FAST = $(CPPFLAGS) -DHTTP_PARSER_STRICT=0
|
||||
CPPFLAGS_FAST = $(CPPFLAGS) -DHTTP_PARSER_STRICT=0 -DHTTP_PARSER_DEBUG=0
|
||||
CPPFLAGS_FAST += $(CPPFLAGS_FAST_EXTRA)
|
||||
|
||||
CFLAGS += -Wall -Wextra -Werror
|
||||
@@ -35,13 +12,6 @@ CFLAGS_DEBUG = $(CFLAGS) -O0 -g $(CFLAGS_DEBUG_EXTRA)
|
||||
CFLAGS_FAST = $(CFLAGS) -O3 $(CFLAGS_FAST_EXTRA)
|
||||
CFLAGS_LIB = $(CFLAGS_FAST) -fPIC
|
||||
|
||||
LDFLAGS_LIB = $(LDFLAGS) -shared
|
||||
|
||||
ifneq (darwin,$(PLATFORM))
|
||||
# TODO(bnoordhuis) The native SunOS linker expects -h rather than -soname...
|
||||
LDFLAGS_LIB += -Wl,-soname=$(SONAME)
|
||||
endif
|
||||
|
||||
test: test_g test_fast
|
||||
./test_g
|
||||
./test_fast
|
||||
@@ -61,6 +31,12 @@ test_fast: http_parser.o test.o http_parser.h
|
||||
test.o: test.c http_parser.h Makefile
|
||||
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) -c test.c -o $@
|
||||
|
||||
url_parser: http_parser_g.o url_parser.o
|
||||
$(CC) $(CFLAGS_DEBUG) $(LDFLAGS) http_parser_g.o url_parser.o -o $@
|
||||
|
||||
url_parser.o: url_parser.c http_parser.h Makefile
|
||||
$(CC) $(CPPFLAGS_DEBUG) $(CFLAGS_DEBUG) -c url_parser.c -o $@
|
||||
|
||||
http_parser.o: http_parser.c http_parser.h Makefile
|
||||
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) -c http_parser.c
|
||||
|
||||
@@ -74,32 +50,15 @@ libhttp_parser.o: http_parser.c http_parser.h Makefile
|
||||
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_LIB) -c http_parser.c -o libhttp_parser.o
|
||||
|
||||
library: libhttp_parser.o
|
||||
$(CC) $(LDFLAGS_LIB) -o $(SONAME) $<
|
||||
$(CC) -shared -o libhttp_parser.so libhttp_parser.o
|
||||
|
||||
package: http_parser.o
|
||||
$(AR) rcs libhttp_parser.a http_parser.o
|
||||
|
||||
url_parser: http_parser.o contrib/url_parser.c
|
||||
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) $^ -o $@
|
||||
|
||||
url_parser_g: http_parser_g.o contrib/url_parser.c
|
||||
$(CC) $(CPPFLAGS_DEBUG) $(CFLAGS_DEBUG) $^ -o $@
|
||||
|
||||
parsertrace: http_parser.o contrib/parsertrace.c
|
||||
$(CC) $(CPPFLAGS_FAST) $(CFLAGS_FAST) $^ -o parsertrace
|
||||
|
||||
parsertrace_g: http_parser_g.o contrib/parsertrace.c
|
||||
$(CC) $(CPPFLAGS_DEBUG) $(CFLAGS_DEBUG) $^ -o parsertrace_g
|
||||
|
||||
tags: http_parser.c http_parser.h test.c
|
||||
ctags $^
|
||||
|
||||
clean:
|
||||
rm -f *.o *.a tags test test_fast test_g \
|
||||
http_parser.tar libhttp_parser.so.* \
|
||||
url_parser url_parser_g parsertrace parsertrace_g
|
||||
|
||||
contrib/url_parser.c: http_parser.h
|
||||
contrib/parsertrace.c: http_parser.h
|
||||
rm -f *.o *.a test test_fast test_g url_parser http_parser.tar tags libhttp_parser.so libhttp_parser.o
|
||||
|
||||
.PHONY: clean package test-run test-run-timed test-valgrind
|
||||
|
||||
53
deps/http_parser/README.md
vendored
53
deps/http_parser/README.md
vendored
@@ -1,8 +1,6 @@
|
||||
HTTP Parser
|
||||
===========
|
||||
|
||||
[](https://travis-ci.org/joyent/http-parser)
|
||||
|
||||
This is a parser for HTTP messages written in C. It parses both requests and
|
||||
responses. The parser is designed to be used in performance HTTP
|
||||
applications. It does not make any syscalls nor allocations, it does not
|
||||
@@ -36,41 +34,38 @@ Usage
|
||||
One `http_parser` object is used per TCP connection. Initialize the struct
|
||||
using `http_parser_init()` and set the callbacks. That might look something
|
||||
like this for a request parser:
|
||||
```c
|
||||
http_parser_settings settings;
|
||||
settings.on_url = my_url_callback;
|
||||
settings.on_header_field = my_header_field_callback;
|
||||
/* ... */
|
||||
|
||||
http_parser *parser = malloc(sizeof(http_parser));
|
||||
http_parser_init(parser, HTTP_REQUEST);
|
||||
parser->data = my_socket;
|
||||
```
|
||||
http_parser_settings settings;
|
||||
settings.on_path = my_path_callback;
|
||||
settings.on_header_field = my_header_field_callback;
|
||||
/* ... */
|
||||
|
||||
http_parser *parser = malloc(sizeof(http_parser));
|
||||
http_parser_init(parser, HTTP_REQUEST);
|
||||
parser->data = my_socket;
|
||||
|
||||
When data is received on the socket execute the parser and check for errors.
|
||||
|
||||
```c
|
||||
size_t len = 80*1024, nparsed;
|
||||
char buf[len];
|
||||
ssize_t recved;
|
||||
size_t len = 80*1024, nparsed;
|
||||
char buf[len];
|
||||
ssize_t recved;
|
||||
|
||||
recved = recv(fd, buf, len, 0);
|
||||
recved = recv(fd, buf, len, 0);
|
||||
|
||||
if (recved < 0) {
|
||||
/* Handle error. */
|
||||
}
|
||||
if (recved < 0) {
|
||||
/* Handle error. */
|
||||
}
|
||||
|
||||
/* Start up / continue the parser.
|
||||
* Note we pass recved==0 to signal that EOF has been recieved.
|
||||
*/
|
||||
nparsed = http_parser_execute(parser, &settings, buf, recved);
|
||||
/* Start up / continue the parser.
|
||||
* Note we pass recved==0 to signal that EOF has been recieved.
|
||||
*/
|
||||
nparsed = http_parser_execute(parser, &settings, buf, recved);
|
||||
|
||||
if (parser->upgrade) {
|
||||
/* handle new protocol */
|
||||
} else if (nparsed != recved) {
|
||||
/* Handle error. Usually just close the connection. */
|
||||
}
|
||||
```
|
||||
if (parser->upgrade) {
|
||||
/* handle new protocol */
|
||||
} else if (nparsed != recved) {
|
||||
/* Handle error. Usually just close the connection. */
|
||||
}
|
||||
|
||||
HTTP needs to know where the end of the stream is. For example, sometimes
|
||||
servers send responses without Content-Length and expect the client to
|
||||
|
||||
156
deps/http_parser/contrib/parsertrace.c
vendored
156
deps/http_parser/contrib/parsertrace.c
vendored
@@ -1,156 +0,0 @@
|
||||
/* Based on src/http/ngx_http_parse.c from NGINX copyright Igor Sysoev
|
||||
*
|
||||
* Additional changes are licensed under the same terms as NGINX and
|
||||
* copyright Joyent, Inc. and other Node contributors. 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, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* Dump what the parser finds to stdout as it happen */
|
||||
|
||||
#include "http_parser.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
int on_message_begin(http_parser* _) {
|
||||
(void)_;
|
||||
printf("\n***MESSAGE BEGIN***\n\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int on_headers_complete(http_parser* _) {
|
||||
(void)_;
|
||||
printf("\n***HEADERS COMPLETE***\n\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int on_message_complete(http_parser* _) {
|
||||
(void)_;
|
||||
printf("\n***MESSAGE COMPLETE***\n\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int on_url(http_parser* _, const char* at, size_t length) {
|
||||
(void)_;
|
||||
printf("Url: %.*s\n", (int)length, at);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int on_header_field(http_parser* _, const char* at, size_t length) {
|
||||
(void)_;
|
||||
printf("Header field: %.*s\n", (int)length, at);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int on_header_value(http_parser* _, const char* at, size_t length) {
|
||||
(void)_;
|
||||
printf("Header value: %.*s\n", (int)length, at);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int on_body(http_parser* _, const char* at, size_t length) {
|
||||
(void)_;
|
||||
printf("Body: %.*s\n", (int)length, at);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void usage(const char* name) {
|
||||
fprintf(stderr,
|
||||
"Usage: %s $type $filename\n"
|
||||
" type: -x, where x is one of {r,b,q}\n"
|
||||
" parses file as a Response, reQuest, or Both\n",
|
||||
name);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
enum http_parser_type file_type;
|
||||
|
||||
if (argc != 3) {
|
||||
usage(argv[0]);
|
||||
}
|
||||
|
||||
char* type = argv[1];
|
||||
if (type[0] != '-') {
|
||||
usage(argv[0]);
|
||||
}
|
||||
|
||||
switch (type[1]) {
|
||||
/* in the case of "-", type[1] will be NUL */
|
||||
case 'r':
|
||||
file_type = HTTP_RESPONSE;
|
||||
break;
|
||||
case 'q':
|
||||
file_type = HTTP_REQUEST;
|
||||
break;
|
||||
case 'b':
|
||||
file_type = HTTP_BOTH;
|
||||
break;
|
||||
default:
|
||||
usage(argv[0]);
|
||||
}
|
||||
|
||||
char* filename = argv[2];
|
||||
FILE* file = fopen(filename, "r");
|
||||
if (file == NULL) {
|
||||
perror("fopen");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
fseek(file, 0, SEEK_END);
|
||||
long file_length = ftell(file);
|
||||
if (file_length == -1) {
|
||||
perror("ftell");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
fseek(file, 0, SEEK_SET);
|
||||
|
||||
char* data = malloc(file_length);
|
||||
if (fread(data, 1, file_length, file) != (size_t)file_length) {
|
||||
fprintf(stderr, "couldn't read entire file\n");
|
||||
free(data);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
http_parser_settings settings;
|
||||
memset(&settings, 0, sizeof(settings));
|
||||
settings.on_message_begin = on_message_begin;
|
||||
settings.on_url = on_url;
|
||||
settings.on_header_field = on_header_field;
|
||||
settings.on_header_value = on_header_value;
|
||||
settings.on_headers_complete = on_headers_complete;
|
||||
settings.on_body = on_body;
|
||||
settings.on_message_complete = on_message_complete;
|
||||
|
||||
http_parser parser;
|
||||
http_parser_init(&parser, file_type);
|
||||
size_t nparsed = http_parser_execute(&parser, &settings, data, file_length);
|
||||
free(data);
|
||||
|
||||
if (nparsed != (size_t)file_length) {
|
||||
fprintf(stderr,
|
||||
"Error: %s (%s)\n",
|
||||
http_errno_description(HTTP_PARSER_ERRNO(&parser)),
|
||||
http_errno_name(HTTP_PARSER_ERRNO(&parser)));
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
89
deps/http_parser/http_parser.c
vendored
89
deps/http_parser/http_parser.c
vendored
@@ -51,10 +51,18 @@
|
||||
# define ELEM_AT(a, i, v) ((unsigned int) (i) < ARRAY_SIZE(a) ? (a)[(i)] : (v))
|
||||
#endif
|
||||
|
||||
#if HTTP_PARSER_DEBUG
|
||||
#define SET_ERRNO(e) \
|
||||
do { \
|
||||
parser->http_errno = (e); \
|
||||
parser->error_lineno = __LINE__; \
|
||||
} while (0)
|
||||
#else
|
||||
#define SET_ERRNO(e) \
|
||||
do { \
|
||||
parser->http_errno = (e); \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
|
||||
/* Run the notify callback FOR, returning ER if it fails */
|
||||
@@ -248,7 +256,6 @@ enum state
|
||||
, s_res_http_minor
|
||||
, s_res_first_status_code
|
||||
, s_res_status_code
|
||||
, s_res_status_start
|
||||
, s_res_status
|
||||
, s_res_line_almost_done
|
||||
|
||||
@@ -582,7 +589,6 @@ size_t http_parser_execute (http_parser *parser,
|
||||
const char *header_value_mark = 0;
|
||||
const char *url_mark = 0;
|
||||
const char *body_mark = 0;
|
||||
const char *status_mark = 0;
|
||||
|
||||
/* We're in an error state. Don't bother doing anything. */
|
||||
if (HTTP_PARSER_ERRNO(parser) != HPE_OK) {
|
||||
@@ -629,9 +635,6 @@ size_t http_parser_execute (http_parser *parser,
|
||||
case s_req_fragment:
|
||||
url_mark = data;
|
||||
break;
|
||||
case s_res_status:
|
||||
status_mark = data;
|
||||
break;
|
||||
}
|
||||
|
||||
for (p=data; p != data + len; p++) {
|
||||
@@ -639,17 +642,7 @@ size_t http_parser_execute (http_parser *parser,
|
||||
|
||||
if (PARSING_HEADER(parser->state)) {
|
||||
++parser->nread;
|
||||
/* Don't allow the total size of the HTTP headers (including the status
|
||||
* line) to exceed HTTP_MAX_HEADER_SIZE. This check is here to protect
|
||||
* embedders against denial-of-service attacks where the attacker feeds
|
||||
* us a never-ending header that the embedder keeps buffering.
|
||||
*
|
||||
* This check is arguably the responsibility of embedders but we're doing
|
||||
* it on the embedder's behalf because most won't bother and this way we
|
||||
* make the web a little safer. HTTP_MAX_HEADER_SIZE is still far bigger
|
||||
* than any reasonable request or response so this should never affect
|
||||
* day-to-day operation.
|
||||
*/
|
||||
/* Buffer overflow attack */
|
||||
if (parser->nread > HTTP_MAX_HEADER_SIZE) {
|
||||
SET_ERRNO(HPE_HEADER_OVERFLOW);
|
||||
goto error;
|
||||
@@ -838,7 +831,7 @@ size_t http_parser_execute (http_parser *parser,
|
||||
if (!IS_NUM(ch)) {
|
||||
switch (ch) {
|
||||
case ' ':
|
||||
parser->state = s_res_status_start;
|
||||
parser->state = s_res_status;
|
||||
break;
|
||||
case CR:
|
||||
parser->state = s_res_line_almost_done;
|
||||
@@ -864,37 +857,18 @@ size_t http_parser_execute (http_parser *parser,
|
||||
break;
|
||||
}
|
||||
|
||||
case s_res_status_start:
|
||||
{
|
||||
if (ch == CR) {
|
||||
parser->state = s_res_line_almost_done;
|
||||
break;
|
||||
}
|
||||
|
||||
if (ch == LF) {
|
||||
parser->state = s_header_field_start;
|
||||
break;
|
||||
}
|
||||
|
||||
MARK(status);
|
||||
parser->state = s_res_status;
|
||||
parser->index = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
case s_res_status:
|
||||
/* the human readable status. e.g. "NOT FOUND"
|
||||
* we are not humans so just ignore this */
|
||||
if (ch == CR) {
|
||||
parser->state = s_res_line_almost_done;
|
||||
CALLBACK_DATA(status);
|
||||
break;
|
||||
}
|
||||
|
||||
if (ch == LF) {
|
||||
parser->state = s_header_field_start;
|
||||
CALLBACK_DATA(status);
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case s_res_line_almost_done:
|
||||
@@ -962,7 +936,6 @@ size_t http_parser_execute (http_parser *parser,
|
||||
} else if (parser->index == 2 && ch == 'P') {
|
||||
parser->method = HTTP_COPY;
|
||||
} else {
|
||||
SET_ERRNO(HPE_INVALID_METHOD);
|
||||
goto error;
|
||||
}
|
||||
} else if (parser->method == HTTP_MKCOL) {
|
||||
@@ -975,14 +948,12 @@ size_t http_parser_execute (http_parser *parser,
|
||||
} else if (parser->index == 2 && ch == 'A') {
|
||||
parser->method = HTTP_MKACTIVITY;
|
||||
} else {
|
||||
SET_ERRNO(HPE_INVALID_METHOD);
|
||||
goto error;
|
||||
}
|
||||
} else if (parser->method == HTTP_SUBSCRIBE) {
|
||||
if (parser->index == 1 && ch == 'E') {
|
||||
parser->method = HTTP_SEARCH;
|
||||
} else {
|
||||
SET_ERRNO(HPE_INVALID_METHOD);
|
||||
goto error;
|
||||
}
|
||||
} else if (parser->index == 1 && parser->method == HTTP_POST) {
|
||||
@@ -993,27 +964,13 @@ size_t http_parser_execute (http_parser *parser,
|
||||
} else if (ch == 'A') {
|
||||
parser->method = HTTP_PATCH;
|
||||
} else {
|
||||
SET_ERRNO(HPE_INVALID_METHOD);
|
||||
goto error;
|
||||
}
|
||||
} else if (parser->index == 2) {
|
||||
if (parser->method == HTTP_PUT) {
|
||||
if (ch == 'R') {
|
||||
parser->method = HTTP_PURGE;
|
||||
} else {
|
||||
SET_ERRNO(HPE_INVALID_METHOD);
|
||||
goto error;
|
||||
}
|
||||
if (ch == 'R') parser->method = HTTP_PURGE;
|
||||
} else if (parser->method == HTTP_UNLOCK) {
|
||||
if (ch == 'S') {
|
||||
parser->method = HTTP_UNSUBSCRIBE;
|
||||
} else {
|
||||
SET_ERRNO(HPE_INVALID_METHOD);
|
||||
goto error;
|
||||
}
|
||||
} else {
|
||||
SET_ERRNO(HPE_INVALID_METHOD);
|
||||
goto error;
|
||||
if (ch == 'S') parser->method = HTTP_UNSUBSCRIBE;
|
||||
}
|
||||
} else if (parser->index == 4 && parser->method == HTTP_PROPFIND && ch == 'P') {
|
||||
parser->method = HTTP_PROPPATCH;
|
||||
@@ -1877,14 +1834,12 @@ size_t http_parser_execute (http_parser *parser,
|
||||
assert(((header_field_mark ? 1 : 0) +
|
||||
(header_value_mark ? 1 : 0) +
|
||||
(url_mark ? 1 : 0) +
|
||||
(body_mark ? 1 : 0) +
|
||||
(status_mark ? 1 : 0)) <= 1);
|
||||
(body_mark ? 1 : 0)) <= 1);
|
||||
|
||||
CALLBACK_DATA_NOADVANCE(header_field);
|
||||
CALLBACK_DATA_NOADVANCE(header_value);
|
||||
CALLBACK_DATA_NOADVANCE(url);
|
||||
CALLBACK_DATA_NOADVANCE(body);
|
||||
CALLBACK_DATA_NOADVANCE(status);
|
||||
|
||||
return len;
|
||||
|
||||
@@ -2015,7 +1970,7 @@ http_parse_host_char(enum http_host_state s, const char ch) {
|
||||
|
||||
/* FALLTHROUGH */
|
||||
case s_http_host_v6_start:
|
||||
if (IS_HEX(ch) || ch == ':' || ch == '.') {
|
||||
if (IS_HEX(ch) || ch == ':') {
|
||||
return s_http_host_v6;
|
||||
}
|
||||
|
||||
@@ -2220,15 +2175,3 @@ http_parser_pause(http_parser *parser, int paused) {
|
||||
assert(0 && "Attempting to pause parser in error state");
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
http_body_is_final(const struct http_parser *parser) {
|
||||
return parser->state == s_message_done;
|
||||
}
|
||||
|
||||
unsigned long
|
||||
http_parser_version(void) {
|
||||
return HTTP_PARSER_VERSION_MAJOR * 0x10000 |
|
||||
HTTP_PARSER_VERSION_MINOR * 0x00100 |
|
||||
HTTP_PARSER_VERSION_PATCH * 0x00001;
|
||||
}
|
||||
|
||||
36
deps/http_parser/http_parser.gyp
vendored
36
deps/http_parser/http_parser.gyp
vendored
@@ -12,7 +12,6 @@
|
||||
# RuntimeLibrary MUST MATCH across the entire project
|
||||
'Debug': {
|
||||
'defines': [ 'DEBUG', '_DEBUG' ],
|
||||
'cflags': [ '-Wall', '-Wextra', '-O0', '-g', '-ftrapv' ],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'RuntimeLibrary': 1, # static debug
|
||||
@@ -21,7 +20,6 @@
|
||||
},
|
||||
'Release': {
|
||||
'defines': [ 'NDEBUG' ],
|
||||
'cflags': [ '-Wall', '-Wextra', '-O3' ],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'RuntimeLibrary': 0, # static release
|
||||
@@ -53,7 +51,6 @@
|
||||
'type': 'static_library',
|
||||
'include_dirs': [ '.' ],
|
||||
'direct_dependent_settings': {
|
||||
'defines': [ 'HTTP_PARSER_STRICT=0' ],
|
||||
'include_dirs': [ '.' ],
|
||||
},
|
||||
'defines': [ 'HTTP_PARSER_STRICT=0' ],
|
||||
@@ -72,40 +69,11 @@
|
||||
},
|
||||
|
||||
{
|
||||
'target_name': 'http_parser_strict',
|
||||
'type': 'static_library',
|
||||
'include_dirs': [ '.' ],
|
||||
'direct_dependent_settings': {
|
||||
'defines': [ 'HTTP_PARSER_STRICT=1' ],
|
||||
'include_dirs': [ '.' ],
|
||||
},
|
||||
'defines': [ 'HTTP_PARSER_STRICT=1' ],
|
||||
'sources': [ './http_parser.c', ],
|
||||
'conditions': [
|
||||
['OS=="win"', {
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
# Compile as C++. http_parser.c is actually C99, but C++ is
|
||||
# close enough in this case.
|
||||
'CompileAs': 2,
|
||||
},
|
||||
},
|
||||
}]
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
'target_name': 'test-nonstrict',
|
||||
'target_name': 'test',
|
||||
'type': 'executable',
|
||||
'dependencies': [ 'http_parser' ],
|
||||
'sources': [ 'test.c' ]
|
||||
},
|
||||
|
||||
{
|
||||
'target_name': 'test-strict',
|
||||
'type': 'executable',
|
||||
'dependencies': [ 'http_parser_strict' ],
|
||||
'sources': [ 'test.c' ]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
65
deps/http_parser/http_parser.h
vendored
65
deps/http_parser/http_parser.h
vendored
@@ -24,15 +24,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Also update SONAME in the Makefile whenever you change these. */
|
||||
#define HTTP_PARSER_VERSION_MAJOR 2
|
||||
#define HTTP_PARSER_VERSION_MINOR 2
|
||||
#define HTTP_PARSER_VERSION_PATCH 0
|
||||
#define HTTP_PARSER_VERSION_MAJOR 1
|
||||
#define HTTP_PARSER_VERSION_MINOR 0
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(_WIN32) && !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER<1600)
|
||||
#include <BaseTsd.h>
|
||||
#include <stddef.h>
|
||||
typedef __int8 int8_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef __int16 int16_t;
|
||||
@@ -41,6 +38,8 @@ typedef __int32 int32_t;
|
||||
typedef unsigned __int32 uint32_t;
|
||||
typedef __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
typedef SIZE_T size_t;
|
||||
typedef SSIZE_T ssize_t;
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
@@ -52,6 +51,14 @@ typedef unsigned __int64 uint64_t;
|
||||
# define HTTP_PARSER_STRICT 1
|
||||
#endif
|
||||
|
||||
/* Compile with -DHTTP_PARSER_DEBUG=1 to add extra debugging information to
|
||||
* the error reporting facility.
|
||||
*/
|
||||
#ifndef HTTP_PARSER_DEBUG
|
||||
# define HTTP_PARSER_DEBUG 0
|
||||
#endif
|
||||
|
||||
|
||||
/* Maximium header size allowed */
|
||||
#define HTTP_MAX_HEADER_SIZE (80*1024)
|
||||
|
||||
@@ -70,7 +77,7 @@ typedef struct http_parser_settings http_parser_settings;
|
||||
* chunked' headers that indicate the presence of a body.
|
||||
*
|
||||
* http_data_cb does not return data chunks. It will be call arbitrarally
|
||||
* many times for each string. E.G. you might get 10 callbacks for "on_url"
|
||||
* many times for each string. E.G. you might get 10 callbacks for "on_path"
|
||||
* each providing just a few characters more data.
|
||||
*/
|
||||
typedef int (*http_data_cb) (http_parser*, const char *at, size_t length);
|
||||
@@ -149,7 +156,6 @@ enum flags
|
||||
XX(CB_headers_complete, "the on_headers_complete callback failed") \
|
||||
XX(CB_body, "the on_body callback failed") \
|
||||
XX(CB_message_complete, "the on_message_complete callback failed") \
|
||||
XX(CB_status, "the on_status callback failed") \
|
||||
\
|
||||
/* Parsing-related errors */ \
|
||||
XX(INVALID_EOF_STATE, "stream ended at an unexpected time") \
|
||||
@@ -190,14 +196,21 @@ enum http_errno {
|
||||
/* Get an http_errno value from an http_parser */
|
||||
#define HTTP_PARSER_ERRNO(p) ((enum http_errno) (p)->http_errno)
|
||||
|
||||
/* Get the line number that generated the current error */
|
||||
#if HTTP_PARSER_DEBUG
|
||||
#define HTTP_PARSER_ERRNO_LINE(p) ((p)->error_lineno)
|
||||
#else
|
||||
#define HTTP_PARSER_ERRNO_LINE(p) 0
|
||||
#endif
|
||||
|
||||
|
||||
struct http_parser {
|
||||
/** PRIVATE **/
|
||||
unsigned int type : 2; /* enum http_parser_type */
|
||||
unsigned int flags : 6; /* F_* values from 'flags' enum; semi-public */
|
||||
unsigned int state : 8; /* enum state from http_parser.c */
|
||||
unsigned int header_state : 8; /* enum header_state from http_parser.c */
|
||||
unsigned int index : 8; /* index into current matcher */
|
||||
unsigned char type : 2; /* enum http_parser_type */
|
||||
unsigned char flags : 6; /* F_* values from 'flags' enum; semi-public */
|
||||
unsigned char state; /* enum state from http_parser.c */
|
||||
unsigned char header_state; /* enum header_state from http_parser.c */
|
||||
unsigned char index; /* index into current matcher */
|
||||
|
||||
uint32_t nread; /* # bytes read in various scenarios */
|
||||
uint64_t content_length; /* # bytes in body (0 if no Content-Length header) */
|
||||
@@ -205,16 +218,20 @@ struct http_parser {
|
||||
/** READ-ONLY **/
|
||||
unsigned short http_major;
|
||||
unsigned short http_minor;
|
||||
unsigned int status_code : 16; /* responses only */
|
||||
unsigned int method : 8; /* requests only */
|
||||
unsigned int http_errno : 7;
|
||||
unsigned short status_code; /* responses only */
|
||||
unsigned char method; /* requests only */
|
||||
unsigned char http_errno : 7;
|
||||
|
||||
/* 1 = Upgrade header was present and the parser has exited because of that.
|
||||
* 0 = No upgrade header present.
|
||||
* Should be checked when http_parser_execute() returns in addition to
|
||||
* error checking.
|
||||
*/
|
||||
unsigned int upgrade : 1;
|
||||
unsigned char upgrade : 1;
|
||||
|
||||
#if HTTP_PARSER_DEBUG
|
||||
uint32_t error_lineno;
|
||||
#endif
|
||||
|
||||
/** PUBLIC **/
|
||||
void *data; /* A pointer to get hook to the "connection" or "socket" object */
|
||||
@@ -224,7 +241,6 @@ struct http_parser {
|
||||
struct http_parser_settings {
|
||||
http_cb on_message_begin;
|
||||
http_data_cb on_url;
|
||||
http_data_cb on_status;
|
||||
http_data_cb on_header_field;
|
||||
http_data_cb on_header_value;
|
||||
http_cb on_headers_complete;
|
||||
@@ -263,18 +279,6 @@ struct http_parser_url {
|
||||
};
|
||||
|
||||
|
||||
/* Returns the library version. Bits 16-23 contain the major version number,
|
||||
* bits 8-15 the minor version number and bits 0-7 the patch level.
|
||||
* Usage example:
|
||||
*
|
||||
* unsigned long version = http_parser_version();
|
||||
* unsigned major = (version >> 16) & 255;
|
||||
* unsigned minor = (version >> 8) & 255;
|
||||
* unsigned patch = version & 255;
|
||||
* printf("http_parser v%u.%u.%u\n", major, minor, version);
|
||||
*/
|
||||
unsigned long http_parser_version(void);
|
||||
|
||||
void http_parser_init(http_parser *parser, enum http_parser_type type);
|
||||
|
||||
|
||||
@@ -309,9 +313,6 @@ int http_parser_parse_url(const char *buf, size_t buflen,
|
||||
/* Pause or un-pause the parser; a nonzero value pauses */
|
||||
void http_parser_pause(http_parser *parser, int paused);
|
||||
|
||||
/* Checks if this is the final chunk of the body. */
|
||||
int http_body_is_final(const http_parser *parser);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
290
deps/http_parser/test.c
vendored
290
deps/http_parser/test.c
vendored
@@ -26,19 +26,13 @@
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#if defined(__APPLE__)
|
||||
# undef strlcat
|
||||
# undef strlncpy
|
||||
# undef strlcpy
|
||||
#endif /* defined(__APPLE__) */
|
||||
|
||||
#undef TRUE
|
||||
#define TRUE 1
|
||||
#undef FALSE
|
||||
#define FALSE 0
|
||||
|
||||
#define MAX_HEADERS 13
|
||||
#define MAX_ELEMENT_SIZE 2048
|
||||
#define MAX_ELEMENT_SIZE 500
|
||||
|
||||
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
||||
|
||||
@@ -50,7 +44,6 @@ struct message {
|
||||
enum http_parser_type type;
|
||||
enum http_method method;
|
||||
int status_code;
|
||||
char response_status[MAX_ELEMENT_SIZE];
|
||||
char request_path[MAX_ELEMENT_SIZE];
|
||||
char request_url[MAX_ELEMENT_SIZE];
|
||||
char fragment[MAX_ELEMENT_SIZE];
|
||||
@@ -74,7 +67,6 @@ struct message {
|
||||
int headers_complete_cb_called;
|
||||
int message_complete_cb_called;
|
||||
int message_complete_on_eof;
|
||||
int body_is_final;
|
||||
};
|
||||
|
||||
static int currently_parsing_eof;
|
||||
@@ -934,7 +926,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 301
|
||||
,.response_status= "Moved Permanently"
|
||||
,.num_headers= 8
|
||||
,.headers=
|
||||
{ { "Location", "http://www.google.com/" }
|
||||
@@ -983,7 +974,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 5
|
||||
,.headers=
|
||||
{ { "Date", "Tue, 04 Aug 2009 07:59:32 GMT" }
|
||||
@@ -1012,7 +1002,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 404
|
||||
,.response_status= "Not Found"
|
||||
,.num_headers= 0
|
||||
,.headers= {}
|
||||
,.body_size= 0
|
||||
@@ -1028,7 +1017,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 301
|
||||
,.response_status= ""
|
||||
,.num_headers= 0
|
||||
,.headers= {}
|
||||
,.body= ""
|
||||
@@ -1054,7 +1042,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 2
|
||||
,.headers=
|
||||
{ {"Content-Type", "text/plain" }
|
||||
@@ -1080,7 +1067,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 2
|
||||
,.headers=
|
||||
{ {"Content-Type", "text/html; charset=utf-8" }
|
||||
@@ -1104,7 +1090,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 4
|
||||
,.headers=
|
||||
{ {"Content-Type", "text/html; charset=UTF-8" }
|
||||
@@ -1130,7 +1115,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 4
|
||||
,.headers=
|
||||
{ {"Server", "DCLK-AdSvr" }
|
||||
@@ -1163,7 +1147,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 0
|
||||
,.status_code= 301
|
||||
,.response_status= "Moved Permanently"
|
||||
,.num_headers= 9
|
||||
,.headers=
|
||||
{ { "Date", "Thu, 03 Jun 2010 09:56:32 GMT" }
|
||||
@@ -1202,7 +1185,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 11
|
||||
,.headers=
|
||||
{ { "Date", "Tue, 28 Sep 2010 01:14:13 GMT" }
|
||||
@@ -1234,7 +1216,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 500
|
||||
,.response_status= "Oriëntatieprobleem"
|
||||
,.num_headers= 3
|
||||
,.headers=
|
||||
{ { "Date", "Fri, 5 Nov 2010 23:07:12 GMT+2" }
|
||||
@@ -1255,7 +1236,6 @@ const struct message responses[] =
|
||||
,.http_major= 0
|
||||
,.http_minor= 9
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 0
|
||||
,.headers=
|
||||
{}
|
||||
@@ -1278,7 +1258,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 1
|
||||
,.headers=
|
||||
{ { "Content-Type", "text/plain" }
|
||||
@@ -1297,7 +1276,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 0
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 1
|
||||
,.headers=
|
||||
{ { "Connection", "keep-alive" }
|
||||
@@ -1317,7 +1295,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 0
|
||||
,.status_code= 204
|
||||
,.response_status= "No content"
|
||||
,.num_headers= 1
|
||||
,.headers=
|
||||
{ { "Connection", "keep-alive" }
|
||||
@@ -1336,7 +1313,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 0
|
||||
,.headers={}
|
||||
,.body_size= 0
|
||||
@@ -1353,7 +1329,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 204
|
||||
,.response_status= "No content"
|
||||
,.num_headers= 0
|
||||
,.headers={}
|
||||
,.body_size= 0
|
||||
@@ -1371,7 +1346,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 204
|
||||
,.response_status= "No content"
|
||||
,.num_headers= 1
|
||||
,.headers=
|
||||
{ { "Connection", "close" }
|
||||
@@ -1393,7 +1367,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 1
|
||||
,.headers=
|
||||
{ { "Transfer-Encoding", "chunked" }
|
||||
@@ -1422,7 +1395,6 @@ const struct message responses[] =
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 7
|
||||
,.headers=
|
||||
{ { "Server", "Microsoft-IIS/6.0" }
|
||||
@@ -1437,138 +1409,14 @@ const struct message responses[] =
|
||||
}
|
||||
#endif /* !HTTP_PARSER_STRICT */
|
||||
|
||||
#define AMAZON_COM 20
|
||||
, {.name= "amazon.com"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/1.1 301 MovedPermanently\r\n"
|
||||
"Date: Wed, 15 May 2013 17:06:33 GMT\r\n"
|
||||
"Server: Server\r\n"
|
||||
"x-amz-id-1: 0GPHKXSJQ826RK7GZEB2\r\n"
|
||||
"p3p: policyref=\"http://www.amazon.com/w3c/p3p.xml\",CP=\"CAO DSP LAW CUR ADM IVAo IVDo CONo OTPo OUR DELi PUBi OTRi BUS PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA HEA PRE LOC GOV OTC \"\r\n"
|
||||
"x-amz-id-2: STN69VZxIFSz9YJLbz1GDbxpbjG6Qjmmq5E3DxRhOUw+Et0p4hr7c/Q8qNcx4oAD\r\n"
|
||||
"Location: http://www.amazon.com/Dan-Brown/e/B000AP9DSU/ref=s9_pop_gw_al1?_encoding=UTF8&refinementId=618073011&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=0SHYY5BZXN3KR20BNFAY&pf_rd_t=101&pf_rd_p=1263340922&pf_rd_i=507846\r\n"
|
||||
"Vary: Accept-Encoding,User-Agent\r\n"
|
||||
"Content-Type: text/html; charset=ISO-8859-1\r\n"
|
||||
"Transfer-Encoding: chunked\r\n"
|
||||
"\r\n"
|
||||
"1\r\n"
|
||||
"\n\r\n"
|
||||
"0\r\n"
|
||||
"\r\n"
|
||||
,.should_keep_alive= TRUE
|
||||
,.message_complete_on_eof= FALSE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 301
|
||||
,.response_status= "MovedPermanently"
|
||||
,.num_headers= 9
|
||||
,.headers= { { "Date", "Wed, 15 May 2013 17:06:33 GMT" }
|
||||
, { "Server", "Server" }
|
||||
, { "x-amz-id-1", "0GPHKXSJQ826RK7GZEB2" }
|
||||
, { "p3p", "policyref=\"http://www.amazon.com/w3c/p3p.xml\",CP=\"CAO DSP LAW CUR ADM IVAo IVDo CONo OTPo OUR DELi PUBi OTRi BUS PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA HEA PRE LOC GOV OTC \"" }
|
||||
, { "x-amz-id-2", "STN69VZxIFSz9YJLbz1GDbxpbjG6Qjmmq5E3DxRhOUw+Et0p4hr7c/Q8qNcx4oAD" }
|
||||
, { "Location", "http://www.amazon.com/Dan-Brown/e/B000AP9DSU/ref=s9_pop_gw_al1?_encoding=UTF8&refinementId=618073011&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=0SHYY5BZXN3KR20BNFAY&pf_rd_t=101&pf_rd_p=1263340922&pf_rd_i=507846" }
|
||||
, { "Vary", "Accept-Encoding,User-Agent" }
|
||||
, { "Content-Type", "text/html; charset=ISO-8859-1" }
|
||||
, { "Transfer-Encoding", "chunked" }
|
||||
}
|
||||
,.body= "\n"
|
||||
}
|
||||
|
||||
#define EMPTY_REASON_PHRASE_AFTER_SPACE 20
|
||||
, {.name= "empty reason phrase after space"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/1.1 200 \r\n"
|
||||
"\r\n"
|
||||
,.should_keep_alive= FALSE
|
||||
,.message_complete_on_eof= TRUE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.response_status= ""
|
||||
,.num_headers= 0
|
||||
,.headers= {}
|
||||
,.body= ""
|
||||
}
|
||||
|
||||
, {.name= NULL } /* sentinel */
|
||||
};
|
||||
|
||||
/* strnlen() is a POSIX.2008 addition. Can't rely on it being available so
|
||||
* define it ourselves.
|
||||
*/
|
||||
size_t
|
||||
strnlen(const char *s, size_t maxlen)
|
||||
{
|
||||
const char *p;
|
||||
|
||||
p = memchr(s, '\0', maxlen);
|
||||
if (p == NULL)
|
||||
return maxlen;
|
||||
|
||||
return p - s;
|
||||
}
|
||||
|
||||
size_t
|
||||
strlncat(char *dst, size_t len, const char *src, size_t n)
|
||||
{
|
||||
size_t slen;
|
||||
size_t dlen;
|
||||
size_t rlen;
|
||||
size_t ncpy;
|
||||
|
||||
slen = strnlen(src, n);
|
||||
dlen = strnlen(dst, len);
|
||||
|
||||
if (dlen < len) {
|
||||
rlen = len - dlen;
|
||||
ncpy = slen < rlen ? slen : (rlen - 1);
|
||||
memcpy(dst + dlen, src, ncpy);
|
||||
dst[dlen + ncpy] = '\0';
|
||||
}
|
||||
|
||||
assert(len > slen + dlen);
|
||||
return slen + dlen;
|
||||
}
|
||||
|
||||
size_t
|
||||
strlcat(char *dst, const char *src, size_t len)
|
||||
{
|
||||
return strlncat(dst, len, src, (size_t) -1);
|
||||
}
|
||||
|
||||
size_t
|
||||
strlncpy(char *dst, size_t len, const char *src, size_t n)
|
||||
{
|
||||
size_t slen;
|
||||
size_t ncpy;
|
||||
|
||||
slen = strnlen(src, n);
|
||||
|
||||
if (len > 0) {
|
||||
ncpy = slen < len ? slen : (len - 1);
|
||||
memcpy(dst, src, ncpy);
|
||||
dst[ncpy] = '\0';
|
||||
}
|
||||
|
||||
assert(len > slen);
|
||||
return slen;
|
||||
}
|
||||
|
||||
size_t
|
||||
strlcpy(char *dst, const char *src, size_t len)
|
||||
{
|
||||
return strlncpy(dst, len, src, (size_t) -1);
|
||||
}
|
||||
|
||||
int
|
||||
request_url_cb (http_parser *p, const char *buf, size_t len)
|
||||
{
|
||||
assert(p == parser);
|
||||
strlncat(messages[num_messages].request_url,
|
||||
sizeof(messages[num_messages].request_url),
|
||||
buf,
|
||||
len);
|
||||
strncat(messages[num_messages].request_url, buf, len);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1581,10 +1429,7 @@ header_field_cb (http_parser *p, const char *buf, size_t len)
|
||||
if (m->last_header_element != FIELD)
|
||||
m->num_headers++;
|
||||
|
||||
strlncat(m->headers[m->num_headers-1][0],
|
||||
sizeof(m->headers[m->num_headers-1][0]),
|
||||
buf,
|
||||
len);
|
||||
strncat(m->headers[m->num_headers-1][0], buf, len);
|
||||
|
||||
m->last_header_element = FIELD;
|
||||
|
||||
@@ -1597,39 +1442,19 @@ header_value_cb (http_parser *p, const char *buf, size_t len)
|
||||
assert(p == parser);
|
||||
struct message *m = &messages[num_messages];
|
||||
|
||||
strlncat(m->headers[m->num_headers-1][1],
|
||||
sizeof(m->headers[m->num_headers-1][1]),
|
||||
buf,
|
||||
len);
|
||||
strncat(m->headers[m->num_headers-1][1], buf, len);
|
||||
|
||||
m->last_header_element = VALUE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
check_body_is_final (const http_parser *p)
|
||||
{
|
||||
if (messages[num_messages].body_is_final) {
|
||||
fprintf(stderr, "\n\n *** Error http_body_is_final() should return 1 "
|
||||
"on last on_body callback call "
|
||||
"but it doesn't! ***\n\n");
|
||||
assert(0);
|
||||
abort();
|
||||
}
|
||||
messages[num_messages].body_is_final = http_body_is_final(p);
|
||||
}
|
||||
|
||||
int
|
||||
body_cb (http_parser *p, const char *buf, size_t len)
|
||||
{
|
||||
assert(p == parser);
|
||||
strlncat(messages[num_messages].body,
|
||||
sizeof(messages[num_messages].body),
|
||||
buf,
|
||||
len);
|
||||
strncat(messages[num_messages].body, buf, len);
|
||||
messages[num_messages].body_size += len;
|
||||
check_body_is_final(p);
|
||||
// printf("body_cb: '%s'\n", requests[num_messages].body);
|
||||
return 0;
|
||||
}
|
||||
@@ -1640,7 +1465,6 @@ count_body_cb (http_parser *p, const char *buf, size_t len)
|
||||
assert(p == parser);
|
||||
assert(buf);
|
||||
messages[num_messages].body_size += len;
|
||||
check_body_is_final(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1677,18 +1501,6 @@ message_complete_cb (http_parser *p)
|
||||
assert(0);
|
||||
abort();
|
||||
}
|
||||
|
||||
if (messages[num_messages].body_size &&
|
||||
http_body_is_final(p) &&
|
||||
!messages[num_messages].body_is_final)
|
||||
{
|
||||
fprintf(stderr, "\n\n *** Error http_body_is_final() should return 1 "
|
||||
"on last on_body callback call "
|
||||
"but it doesn't! ***\n\n");
|
||||
assert(0);
|
||||
abort();
|
||||
}
|
||||
|
||||
messages[num_messages].message_complete_cb_called = TRUE;
|
||||
|
||||
messages[num_messages].message_complete_on_eof = currently_parsing_eof;
|
||||
@@ -1697,17 +1509,6 @@ message_complete_cb (http_parser *p)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
response_status_cb (http_parser *p, const char *buf, size_t len)
|
||||
{
|
||||
assert(p == parser);
|
||||
strlncat(messages[num_messages].response_status,
|
||||
sizeof(messages[num_messages].response_status),
|
||||
buf,
|
||||
len);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* These dontcall_* callbacks exist so that we can verify that when we're
|
||||
* paused, no additional callbacks are invoked */
|
||||
int
|
||||
@@ -1768,20 +1569,11 @@ dontcall_message_complete_cb (http_parser *p)
|
||||
abort();
|
||||
}
|
||||
|
||||
int
|
||||
dontcall_response_status_cb (http_parser *p, const char *buf, size_t len)
|
||||
{
|
||||
if (p || buf || len) { } // gcc
|
||||
fprintf(stderr, "\n\n*** on_status() called on paused parser ***\n\n");
|
||||
abort();
|
||||
}
|
||||
|
||||
static http_parser_settings settings_dontcall =
|
||||
{.on_message_begin = dontcall_message_begin_cb
|
||||
,.on_header_field = dontcall_header_field_cb
|
||||
,.on_header_value = dontcall_header_value_cb
|
||||
,.on_url = dontcall_request_url_cb
|
||||
,.on_status = dontcall_response_status_cb
|
||||
,.on_body = dontcall_body_cb
|
||||
,.on_headers_complete = dontcall_headers_complete_cb
|
||||
,.on_message_complete = dontcall_message_complete_cb
|
||||
@@ -1847,20 +1639,11 @@ pause_message_complete_cb (http_parser *p)
|
||||
return message_complete_cb(p);
|
||||
}
|
||||
|
||||
int
|
||||
pause_response_status_cb (http_parser *p, const char *buf, size_t len)
|
||||
{
|
||||
http_parser_pause(p, 1);
|
||||
*current_pause_parser = settings_dontcall;
|
||||
return response_status_cb(p, buf, len);
|
||||
}
|
||||
|
||||
static http_parser_settings settings_pause =
|
||||
{.on_message_begin = pause_message_begin_cb
|
||||
,.on_header_field = pause_header_field_cb
|
||||
,.on_header_value = pause_header_value_cb
|
||||
,.on_url = pause_request_url_cb
|
||||
,.on_status = pause_response_status_cb
|
||||
,.on_body = pause_body_cb
|
||||
,.on_headers_complete = pause_headers_complete_cb
|
||||
,.on_message_complete = pause_message_complete_cb
|
||||
@@ -1871,7 +1654,6 @@ static http_parser_settings settings =
|
||||
,.on_header_field = header_field_cb
|
||||
,.on_header_value = header_value_cb
|
||||
,.on_url = request_url_cb
|
||||
,.on_status = response_status_cb
|
||||
,.on_body = body_cb
|
||||
,.on_headers_complete = headers_complete_cb
|
||||
,.on_message_complete = message_complete_cb
|
||||
@@ -1882,7 +1664,6 @@ static http_parser_settings settings_count_body =
|
||||
,.on_header_field = header_field_cb
|
||||
,.on_header_value = header_value_cb
|
||||
,.on_url = request_url_cb
|
||||
,.on_status = response_status_cb
|
||||
,.on_body = count_body_cb
|
||||
,.on_headers_complete = headers_complete_cb
|
||||
,.on_message_complete = message_complete_cb
|
||||
@@ -1893,7 +1674,6 @@ static http_parser_settings settings_null =
|
||||
,.on_header_field = 0
|
||||
,.on_header_value = 0
|
||||
,.on_url = 0
|
||||
,.on_status = 0
|
||||
,.on_body = 0
|
||||
,.on_headers_complete = 0
|
||||
,.on_message_complete = 0
|
||||
@@ -2017,7 +1797,6 @@ message_eq (int index, const struct message *expected)
|
||||
MESSAGE_CHECK_NUM_EQ(expected, m, method);
|
||||
} else {
|
||||
MESSAGE_CHECK_NUM_EQ(expected, m, status_code);
|
||||
MESSAGE_CHECK_STR_EQ(expected, m, response_status);
|
||||
}
|
||||
|
||||
MESSAGE_CHECK_NUM_EQ(expected, m, should_keep_alive);
|
||||
@@ -2147,7 +1926,8 @@ upgrade_message_fix(char *body, const size_t nread, const size_t nmsgs, ...) {
|
||||
static void
|
||||
print_error (const char *raw, size_t error_location)
|
||||
{
|
||||
fprintf(stderr, "\n*** %s ***\n\n",
|
||||
fprintf(stderr, "\n*** %s:%d -- %s ***\n\n",
|
||||
"http_parser.c", HTTP_PARSER_ERRNO_LINE(parser),
|
||||
http_errno_description(HTTP_PARSER_ERRNO(parser)));
|
||||
|
||||
int this_line = 0, char_len = 0;
|
||||
@@ -2328,25 +2108,6 @@ const struct url_test url_tests[] =
|
||||
,.rv=0
|
||||
}
|
||||
|
||||
, {.name="ipv4 in ipv6 address"
|
||||
,.url="http://[2001:0000:0000:0000:0000:0000:1.9.1.1]/"
|
||||
,.is_connect=0
|
||||
,.u=
|
||||
{.field_set=(1 << UF_SCHEMA) | (1 << UF_HOST) | (1 << UF_PATH)
|
||||
,.port=0
|
||||
,.field_data=
|
||||
{{ 0, 4 } /* UF_SCHEMA */
|
||||
,{ 8, 37 } /* UF_HOST */
|
||||
,{ 0, 0 } /* UF_PORT */
|
||||
,{ 46, 1 } /* UF_PATH */
|
||||
,{ 0, 0 } /* UF_QUERY */
|
||||
,{ 0, 0 } /* UF_FRAGMENT */
|
||||
,{ 0, 0 } /* UF_USERINFO */
|
||||
}
|
||||
}
|
||||
,.rv=0
|
||||
}
|
||||
|
||||
, {.name="extra ? in query string"
|
||||
,.url="http://a.tbcdn.cn/p/fp/2010c/??fp-header-min.css,fp-base-min.css,"
|
||||
"fp-channel-min.css,fp-product-min.css,fp-mall-min.css,fp-category-min.css,"
|
||||
@@ -2701,7 +2462,7 @@ dump_url (const char *url, const struct http_parser_url *u)
|
||||
continue;
|
||||
}
|
||||
|
||||
printf("\tfield_data[%u]: off: %u len: %u part: \"%.*s\n\"",
|
||||
printf("\tfield_data[%u]: off: %u len: %u part: \"%.*s\n",
|
||||
i,
|
||||
u->field_data[i].off,
|
||||
u->field_data[i].len,
|
||||
@@ -3091,15 +2852,15 @@ test_scan (const struct message *r1, const struct message *r2, const struct mess
|
||||
parser_init(type_both ? HTTP_BOTH : r1->type);
|
||||
|
||||
buf1_len = i;
|
||||
strlncpy(buf1, sizeof(buf1), total, buf1_len);
|
||||
strncpy(buf1, total, buf1_len);
|
||||
buf1[buf1_len] = 0;
|
||||
|
||||
buf2_len = j - i;
|
||||
strlncpy(buf2, sizeof(buf1), total+i, buf2_len);
|
||||
strncpy(buf2, total+i, buf2_len);
|
||||
buf2[buf2_len] = 0;
|
||||
|
||||
buf3_len = total_len - j;
|
||||
strlncpy(buf3, sizeof(buf1), total+j, buf3_len);
|
||||
strncpy(buf3, total+j, buf3_len);
|
||||
buf3[buf3_len] = 0;
|
||||
|
||||
read = parse(buf1, buf1_len);
|
||||
@@ -3263,16 +3024,6 @@ main (void)
|
||||
int i, j, k;
|
||||
int request_count;
|
||||
int response_count;
|
||||
unsigned long version;
|
||||
unsigned major;
|
||||
unsigned minor;
|
||||
unsigned patch;
|
||||
|
||||
version = http_parser_version();
|
||||
major = (version >> 16) & 255;
|
||||
minor = (version >> 8) & 255;
|
||||
patch = version & 255;
|
||||
printf("http_parser v%u.%u.%u (0x%06lx)\n", major, minor, patch, version);
|
||||
|
||||
printf("sizeof(http_parser) = %u\n", (unsigned int)sizeof(http_parser));
|
||||
|
||||
@@ -3336,7 +3087,6 @@ main (void)
|
||||
,.http_major= 1
|
||||
,.http_minor= 0
|
||||
,.status_code= 200
|
||||
,.response_status= "OK"
|
||||
,.num_headers= 2
|
||||
,.headers=
|
||||
{ { "Transfer-Encoding", "chunked" }
|
||||
@@ -3367,8 +3117,14 @@ main (void)
|
||||
|
||||
/// REQUESTS
|
||||
|
||||
test_simple("hello world", HPE_INVALID_METHOD);
|
||||
test_simple("GET / HTP/1.1\r\n\r\n", HPE_INVALID_VERSION);
|
||||
|
||||
|
||||
test_simple("ASDF / HTTP/1.1\r\n\r\n", HPE_INVALID_METHOD);
|
||||
test_simple("PROPPATCHA / HTTP/1.1\r\n\r\n", HPE_INVALID_METHOD);
|
||||
test_simple("GETA / HTTP/1.1\r\n\r\n", HPE_INVALID_METHOD);
|
||||
|
||||
// Well-formed but incomplete
|
||||
test_simple("GET / HTTP/1.1\r\n"
|
||||
"Content-Type: text/plain\r\n"
|
||||
@@ -3411,23 +3167,13 @@ main (void)
|
||||
}
|
||||
|
||||
static const char *bad_methods[] = {
|
||||
"ASDF",
|
||||
"C******",
|
||||
"COLA",
|
||||
"GEM",
|
||||
"GETA",
|
||||
"M****",
|
||||
"MKCOLA",
|
||||
"PROPPATCHA",
|
||||
"PUN",
|
||||
"PX",
|
||||
"SA",
|
||||
"hello world",
|
||||
0 };
|
||||
for (this_method = bad_methods; *this_method; this_method++) {
|
||||
char buf[200];
|
||||
sprintf(buf, "%s / HTTP/1.1\r\n\r\n", *this_method);
|
||||
test_simple(buf, HPE_INVALID_METHOD);
|
||||
test_simple(buf, HPE_UNKNOWN);
|
||||
}
|
||||
|
||||
const char *dumbfuck2 =
|
||||
|
||||
4242
deps/mdb_v8/mdb_v8.c
vendored
4242
deps/mdb_v8/mdb_v8.c
vendored
File diff suppressed because it is too large
Load Diff
22
deps/mdb_v8/mdb_v8.gyp
vendored
22
deps/mdb_v8/mdb_v8.gyp
vendored
@@ -1,22 +0,0 @@
|
||||
{
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'mdb_v8',
|
||||
'product_prefix': '',
|
||||
'type': 'loadable_module',
|
||||
'cflags': [ '-fPIC' ],
|
||||
'sources': [
|
||||
'mdb_v8.c',
|
||||
'mdb_v8_cfg.c',
|
||||
'v8cfg.h',
|
||||
'v8dbg.h',
|
||||
],
|
||||
'link_settings': {
|
||||
'libraries': [
|
||||
'-lproc',
|
||||
'-lavl',
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
725
deps/mdb_v8/mdb_v8_cfg.c
vendored
725
deps/mdb_v8/mdb_v8_cfg.c
vendored
@@ -1,725 +0,0 @@
|
||||
/* Copyright Joyent, Inc. and other Node contributors. 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, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* mdb_v8_cfg.c: canned configurations for previous V8 versions.
|
||||
*
|
||||
* The functions and data defined here enable this dmod to support debugging
|
||||
* Node.js binaries that predated V8's built-in postmortem debugging support.
|
||||
*/
|
||||
|
||||
#include "v8cfg.h"
|
||||
|
||||
/*ARGSUSED*/
|
||||
static int
|
||||
v8cfg_target_iter(v8_cfg_t *cfgp, int (*func)(mdb_symbol_t *, void *),
|
||||
void *arg)
|
||||
{
|
||||
return (mdb_symbol_iter(MDB_OBJ_EVERY, MDB_DYNSYM,
|
||||
MDB_BIND_GLOBAL | MDB_TYPE_OBJECT | MDB_TYPE_FUNC,
|
||||
func, arg));
|
||||
}
|
||||
|
||||
/*ARGSUSED*/
|
||||
static int
|
||||
v8cfg_target_readsym(v8_cfg_t *cfgp, const char *name, intptr_t *valp)
|
||||
{
|
||||
int val, rval;
|
||||
|
||||
if ((rval = mdb_readsym(&val, sizeof (val), name)) != -1)
|
||||
*valp = (intptr_t)val;
|
||||
|
||||
return (rval);
|
||||
}
|
||||
|
||||
/*
|
||||
* Analog of mdb_symbol_iter() for a canned configuration.
|
||||
*/
|
||||
static int
|
||||
v8cfg_canned_iter(v8_cfg_t *cfgp, int (*func)(mdb_symbol_t *, void *),
|
||||
void *arg)
|
||||
{
|
||||
v8_cfg_symbol_t *v8sym;
|
||||
mdb_symbol_t mdbsym;
|
||||
int rv;
|
||||
|
||||
for (v8sym = cfgp->v8cfg_symbols; v8sym->v8cs_name != NULL; v8sym++) {
|
||||
mdbsym.sym_name = v8sym->v8cs_name;
|
||||
mdbsym.sym_object = NULL;
|
||||
mdbsym.sym_sym = NULL;
|
||||
mdbsym.sym_table = 0;
|
||||
mdbsym.sym_id = 0;
|
||||
|
||||
if ((rv = func(&mdbsym, arg)) != 0)
|
||||
return (rv);
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Analog of mdb_readsym() for a canned configuration.
|
||||
*/
|
||||
static int
|
||||
v8cfg_canned_readsym(v8_cfg_t *cfgp, const char *name, intptr_t *valp)
|
||||
{
|
||||
v8_cfg_symbol_t *v8sym;
|
||||
|
||||
for (v8sym = cfgp->v8cfg_symbols; v8sym->v8cs_name != NULL; v8sym++) {
|
||||
if (strcmp(name, v8sym->v8cs_name) == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
if (v8sym->v8cs_name == NULL)
|
||||
return (-1);
|
||||
|
||||
*valp = v8sym->v8cs_value;
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Canned configuration for the V8 bundled with Node.js v0.4.8 and later.
|
||||
*/
|
||||
static v8_cfg_symbol_t v8_symbols_node_04[] = {
|
||||
{ "v8dbg_type_AccessCheckInfo__ACCESS_CHECK_INFO_TYPE", 0x91 },
|
||||
{ "v8dbg_type_AccessorInfo__ACCESSOR_INFO_TYPE", 0x90 },
|
||||
{ "v8dbg_type_BreakPointInfo__BREAK_POINT_INFO_TYPE", 0x9b },
|
||||
{ "v8dbg_type_ByteArray__BYTE_ARRAY_TYPE", 0x86 },
|
||||
{ "v8dbg_type_CallHandlerInfo__CALL_HANDLER_INFO_TYPE", 0x93 },
|
||||
{ "v8dbg_type_Code__CODE_TYPE", 0x81 },
|
||||
{ "v8dbg_type_CodeCache__CODE_CACHE_TYPE", 0x99 },
|
||||
{ "v8dbg_type_ConsString__CONS_ASCII_STRING_TYPE", 0x5 },
|
||||
{ "v8dbg_type_ConsString__CONS_ASCII_SYMBOL_TYPE", 0x45 },
|
||||
{ "v8dbg_type_ConsString__CONS_STRING_TYPE", 0x1 },
|
||||
{ "v8dbg_type_ConsString__CONS_SYMBOL_TYPE", 0x41 },
|
||||
{ "v8dbg_type_DebugInfo__DEBUG_INFO_TYPE", 0x9a },
|
||||
{ "v8dbg_type_ExternalAsciiString__EXTERNAL_ASCII_STRING_TYPE", 0x6 },
|
||||
{ "v8dbg_type_ExternalAsciiString__EXTERNAL_ASCII_SYMBOL_TYPE", 0x46 },
|
||||
{ "v8dbg_type_ExternalByteArray__EXTERNAL_BYTE_ARRAY_TYPE", 0x88 },
|
||||
{ "v8dbg_type_ExternalFloatArray__EXTERNAL_FLOAT_ARRAY_TYPE", 0x8e },
|
||||
{ "v8dbg_type_ExternalIntArray__EXTERNAL_INT_ARRAY_TYPE", 0x8c },
|
||||
{ "v8dbg_type_ExternalShortArray__EXTERNAL_SHORT_ARRAY_TYPE", 0x8a },
|
||||
{ "v8dbg_type_ExternalString__EXTERNAL_STRING_TYPE", 0x2 },
|
||||
{ "v8dbg_type_ExternalString__EXTERNAL_SYMBOL_TYPE", 0x42 },
|
||||
{ "v8dbg_type_ExternalUnsignedByteArray__"
|
||||
"EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE", 0x89 },
|
||||
{ "v8dbg_type_ExternalUnsignedIntArray__"
|
||||
"EXTERNAL_UNSIGNED_INT_ARRAY_TYPE", 0x8d },
|
||||
{ "v8dbg_type_ExternalUnsignedShortArray__"
|
||||
"EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE", 0x8b },
|
||||
{ "v8dbg_type_FixedArray__FIXED_ARRAY_TYPE", 0x9c },
|
||||
{ "v8dbg_type_FunctionTemplateInfo__"
|
||||
"FUNCTION_TEMPLATE_INFO_TYPE", 0x94 },
|
||||
{ "v8dbg_type_HeapNumber__HEAP_NUMBER_TYPE", 0x84 },
|
||||
{ "v8dbg_type_InterceptorInfo__INTERCEPTOR_INFO_TYPE", 0x92 },
|
||||
{ "v8dbg_type_JSArray__JS_ARRAY_TYPE", 0xa5 },
|
||||
{ "v8dbg_type_JSBuiltinsObject__JS_BUILTINS_OBJECT_TYPE", 0xa3 },
|
||||
{ "v8dbg_type_JSFunction__JS_FUNCTION_TYPE", 0xa7 },
|
||||
{ "v8dbg_type_JSGlobalObject__JS_GLOBAL_OBJECT_TYPE", 0xa2 },
|
||||
{ "v8dbg_type_JSGlobalPropertyCell__"
|
||||
"JS_GLOBAL_PROPERTY_CELL_TYPE", 0x83 },
|
||||
{ "v8dbg_type_JSGlobalProxy__JS_GLOBAL_PROXY_TYPE", 0xa4 },
|
||||
{ "v8dbg_type_JSMessageObject__JS_MESSAGE_OBJECT_TYPE", 0x9e },
|
||||
{ "v8dbg_type_JSObject__JS_OBJECT_TYPE", 0xa0 },
|
||||
{ "v8dbg_type_JSRegExp__JS_REGEXP_TYPE", 0xa6 },
|
||||
{ "v8dbg_type_JSValue__JS_VALUE_TYPE", 0x9f },
|
||||
{ "v8dbg_type_Map__MAP_TYPE", 0x80 },
|
||||
{ "v8dbg_type_ObjectTemplateInfo__OBJECT_TEMPLATE_INFO_TYPE", 0x95 },
|
||||
{ "v8dbg_type_Oddball__ODDBALL_TYPE", 0x82 },
|
||||
{ "v8dbg_type_Script__SCRIPT_TYPE", 0x98 },
|
||||
{ "v8dbg_type_SeqAsciiString__ASCII_STRING_TYPE", 0x4 },
|
||||
{ "v8dbg_type_SeqAsciiString__ASCII_SYMBOL_TYPE", 0x44 },
|
||||
{ "v8dbg_type_SharedFunctionInfo__SHARED_FUNCTION_INFO_TYPE", 0x9d },
|
||||
{ "v8dbg_type_SignatureInfo__SIGNATURE_INFO_TYPE", 0x96 },
|
||||
{ "v8dbg_type_String__STRING_TYPE", 0x0 },
|
||||
{ "v8dbg_type_String__SYMBOL_TYPE", 0x40 },
|
||||
{ "v8dbg_type_TypeSwitchInfo__TYPE_SWITCH_INFO_TYPE", 0x97 },
|
||||
|
||||
{ "v8dbg_class_AccessCheckInfo__data__Object", 0xc },
|
||||
{ "v8dbg_class_AccessCheckInfo__indexed_callback__Object", 0x8 },
|
||||
{ "v8dbg_class_AccessCheckInfo__named_callback__Object", 0x4 },
|
||||
{ "v8dbg_class_AccessorInfo__data__Object", 0xc },
|
||||
{ "v8dbg_class_AccessorInfo__flag__Smi", 0x14 },
|
||||
{ "v8dbg_class_AccessorInfo__getter__Object", 0x4 },
|
||||
{ "v8dbg_class_AccessorInfo__name__Object", 0x10 },
|
||||
{ "v8dbg_class_AccessorInfo__setter__Object", 0x8 },
|
||||
{ "v8dbg_class_BreakPointInfo__break_point_objects__Object", 0x10 },
|
||||
{ "v8dbg_class_BreakPointInfo__code_position__Smi", 0x4 },
|
||||
{ "v8dbg_class_BreakPointInfo__source_position__Smi", 0x8 },
|
||||
{ "v8dbg_class_BreakPointInfo__statement_position__Smi", 0xc },
|
||||
{ "v8dbg_class_ByteArray__length__SMI", 0x4 },
|
||||
{ "v8dbg_class_CallHandlerInfo__callback__Object", 0x4 },
|
||||
{ "v8dbg_class_CallHandlerInfo__data__Object", 0x8 },
|
||||
{ "v8dbg_class_Code__deoptimization_data__FixedArray", 0xc },
|
||||
{ "v8dbg_class_Code__instruction_size__int", 0x4 },
|
||||
{ "v8dbg_class_Code__instruction_start__int", 0x20 },
|
||||
{ "v8dbg_class_Code__relocation_info__ByteArray", 0x8 },
|
||||
{ "v8dbg_class_CodeCache__default_cache__FixedArray", 0x4 },
|
||||
{ "v8dbg_class_CodeCache__normal_type_cache__Object", 0x8 },
|
||||
{ "v8dbg_class_ConsString__first__String", 0xc },
|
||||
{ "v8dbg_class_ConsString__second__String", 0x10 },
|
||||
{ "v8dbg_class_DebugInfo__break_points__FixedArray", 0x14 },
|
||||
{ "v8dbg_class_DebugInfo__code__Code", 0xc },
|
||||
{ "v8dbg_class_DebugInfo__original_code__Code", 0x8 },
|
||||
{ "v8dbg_class_DebugInfo__shared__SharedFunctionInfo", 0x4 },
|
||||
{ "v8dbg_class_ExternalString__resource__Object", 0xc },
|
||||
{ "v8dbg_class_FixedArray__data__uintptr_t", 0x8 },
|
||||
{ "v8dbg_class_FixedArray__length__SMI", 0x4 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__access_check_info__Object", 0x38 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__call_code__Object", 0x10 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__class_name__Object", 0x2c },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__flag__Smi", 0x3c },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__"
|
||||
"indexed_property_handler__Object", 0x24 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__"
|
||||
"instance_call_handler__Object", 0x34 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__instance_template__Object", 0x28 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__"
|
||||
"named_property_handler__Object", 0x20 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__parent_template__Object", 0x1c },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__"
|
||||
"property_accessors__Object", 0x14 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__"
|
||||
"prototype_template__Object", 0x18 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__serial_number__Object", 0xc },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__signature__Object", 0x30 },
|
||||
{ "v8dbg_class_GlobalObject__builtins__JSBuiltinsObject", 0xc },
|
||||
{ "v8dbg_class_GlobalObject__global_context__Context", 0x10 },
|
||||
{ "v8dbg_class_GlobalObject__global_receiver__JSObject", 0x14 },
|
||||
{ "v8dbg_class_HeapNumber__value__SMI", 0x4 },
|
||||
{ "v8dbg_class_HeapObject__map__Map", 0x0 },
|
||||
{ "v8dbg_class_InterceptorInfo__data__Object", 0x18 },
|
||||
{ "v8dbg_class_InterceptorInfo__deleter__Object", 0x10 },
|
||||
{ "v8dbg_class_InterceptorInfo__enumerator__Object", 0x14 },
|
||||
{ "v8dbg_class_InterceptorInfo__getter__Object", 0x4 },
|
||||
{ "v8dbg_class_InterceptorInfo__query__Object", 0xc },
|
||||
{ "v8dbg_class_InterceptorInfo__setter__Object", 0x8 },
|
||||
{ "v8dbg_class_JSArray__length__Object", 0xc },
|
||||
{ "v8dbg_class_JSFunction__literals__FixedArray", 0x1c },
|
||||
{ "v8dbg_class_JSFunction__next_function_link__Object", 0x20 },
|
||||
{ "v8dbg_class_JSFunction__prototype_or_initial_map__Object", 0x10 },
|
||||
{ "v8dbg_class_JSFunction__shared__SharedFunctionInfo", 0x14 },
|
||||
{ "v8dbg_class_JSGlobalProxy__context__Object", 0xc },
|
||||
{ "v8dbg_class_JSMessageObject__arguments__JSArray", 0x10 },
|
||||
{ "v8dbg_class_JSMessageObject__end_position__SMI", 0x24 },
|
||||
{ "v8dbg_class_JSMessageObject__script__Object", 0x14 },
|
||||
{ "v8dbg_class_JSMessageObject__stack_frames__Object", 0x1c },
|
||||
{ "v8dbg_class_JSMessageObject__stack_trace__Object", 0x18 },
|
||||
{ "v8dbg_class_JSMessageObject__start_position__SMI", 0x20 },
|
||||
{ "v8dbg_class_JSMessageObject__type__String", 0xc },
|
||||
{ "v8dbg_class_JSObject__elements__Object", 0x8 },
|
||||
{ "v8dbg_class_JSObject__properties__FixedArray", 0x4 },
|
||||
{ "v8dbg_class_JSRegExp__data__Object", 0xc },
|
||||
{ "v8dbg_class_JSValue__value__Object", 0xc },
|
||||
{ "v8dbg_class_Map__code_cache__Object", 0x18 },
|
||||
{ "v8dbg_class_Map__constructor__Object", 0x10 },
|
||||
{ "v8dbg_class_Map__inobject_properties__int", 0x5 },
|
||||
{ "v8dbg_class_Map__instance_size__int", 0x4 },
|
||||
{ "v8dbg_class_Map__instance_attributes__int", 0x8 },
|
||||
{ "v8dbg_class_Map__instance_descriptors__DescriptorArray", 0x14 },
|
||||
{ "v8dbg_class_ObjectTemplateInfo__constructor__Object", 0xc },
|
||||
{ "v8dbg_class_ObjectTemplateInfo__"
|
||||
"internal_field_count__Object", 0x10 },
|
||||
{ "v8dbg_class_Oddball__to_number__Object", 0x8 },
|
||||
{ "v8dbg_class_Oddball__to_string__String", 0x4 },
|
||||
{ "v8dbg_class_Script__column_offset__Smi", 0x10 },
|
||||
{ "v8dbg_class_Script__compilation_type__Smi", 0x24 },
|
||||
{ "v8dbg_class_Script__context_data__Object", 0x18 },
|
||||
{ "v8dbg_class_Script__data__Object", 0x14 },
|
||||
{ "v8dbg_class_Script__eval_from_instructions_offset__Smi", 0x34 },
|
||||
{ "v8dbg_class_Script__eval_from_shared__Object", 0x30 },
|
||||
{ "v8dbg_class_Script__id__Object", 0x2c },
|
||||
{ "v8dbg_class_Script__line_ends__Object", 0x28 },
|
||||
{ "v8dbg_class_Script__line_offset__Smi", 0xc },
|
||||
{ "v8dbg_class_Script__name__Object", 0x8 },
|
||||
{ "v8dbg_class_Script__source__Object", 0x4 },
|
||||
{ "v8dbg_class_Script__type__Smi", 0x20 },
|
||||
{ "v8dbg_class_Script__wrapper__Proxy", 0x1c },
|
||||
{ "v8dbg_class_SeqAsciiString__chars__char", 0xc },
|
||||
{ "v8dbg_class_SharedFunctionInfo__code__Code", 0x8 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__compiler_hints__SMI", 0x50 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__construct_stub__Code", 0x10 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__debug_info__Object", 0x20 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__end_position__SMI", 0x48 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__"
|
||||
"expected_nof_properties__SMI", 0x3c },
|
||||
{ "v8dbg_class_SharedFunctionInfo__formal_parameter_count__SMI", 0x38 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__function_data__Object", 0x18 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__"
|
||||
"function_token_position__SMI", 0x4c },
|
||||
{ "v8dbg_class_SharedFunctionInfo__inferred_name__String", 0x24 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__initial_map__Object", 0x28 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__instance_class_name__Object", 0x14 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__length__SMI", 0x34 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__name__Object", 0x4 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__num_literals__SMI", 0x40 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__opt_count__SMI", 0x58 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__script__Object", 0x1c },
|
||||
{ "v8dbg_class_SharedFunctionInfo__"
|
||||
"start_position_and_type__SMI", 0x44 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__"
|
||||
"this_property_assignments__Object", 0x2c },
|
||||
{ "v8dbg_class_SharedFunctionInfo__"
|
||||
"this_property_assignments_count__SMI", 0x54 },
|
||||
{ "v8dbg_class_SignatureInfo__args__Object", 0x8 },
|
||||
{ "v8dbg_class_SignatureInfo__receiver__Object", 0x4 },
|
||||
{ "v8dbg_class_String__length__SMI", 0x4 },
|
||||
{ "v8dbg_class_TemplateInfo__property_list__Object", 0x8 },
|
||||
{ "v8dbg_class_TemplateInfo__tag__Object", 0x4 },
|
||||
{ "v8dbg_class_TypeSwitchInfo__types__Object", 0x4 },
|
||||
|
||||
{ "v8dbg_parent_AccessCheckInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_AccessorInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_BreakPointInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_ByteArray__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_CallHandlerInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_Code__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_CodeCache__Struct", 0x0 },
|
||||
{ "v8dbg_parent_ConsString__String", 0x0 },
|
||||
{ "v8dbg_parent_DebugInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_DeoptimizationInputData__FixedArray", 0x0 },
|
||||
{ "v8dbg_parent_DeoptimizationOutputData__FixedArray", 0x0 },
|
||||
{ "v8dbg_parent_DescriptorArray__FixedArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalArray__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_ExternalAsciiString__ExternalString", 0x0 },
|
||||
{ "v8dbg_parent_ExternalByteArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalFloatArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalIntArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalShortArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalString__String", 0x0 },
|
||||
{ "v8dbg_parent_ExternalTwoByteString__ExternalString", 0x0 },
|
||||
{ "v8dbg_parent_ExternalUnsignedByteArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalUnsignedIntArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalUnsignedShortArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_Failure__MaybeObject", 0x0 },
|
||||
{ "v8dbg_parent_FixedArray__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_FunctionTemplateInfo__TemplateInfo", 0x0 },
|
||||
{ "v8dbg_parent_GlobalObject__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_HeapNumber__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_HeapObject__Object", 0x0 },
|
||||
{ "v8dbg_parent_InterceptorInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_JSArray__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_JSBuiltinsObject__GlobalObject", 0x0 },
|
||||
{ "v8dbg_parent_JSFunction__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_JSFunctionResultCache__FixedArray", 0x0 },
|
||||
{ "v8dbg_parent_JSGlobalObject__GlobalObject", 0x0 },
|
||||
{ "v8dbg_parent_JSGlobalPropertyCell__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_JSGlobalProxy__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_JSMessageObject__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_JSObject__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_JSRegExp__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_JSRegExpResult__JSArray", 0x0 },
|
||||
{ "v8dbg_parent_JSValue__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_Map__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_NormalizedMapCache__FixedArray", 0x0 },
|
||||
{ "v8dbg_parent_Object__MaybeObject", 0x0 },
|
||||
{ "v8dbg_parent_ObjectTemplateInfo__TemplateInfo", 0x0 },
|
||||
{ "v8dbg_parent_Oddball__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_Script__Struct", 0x0 },
|
||||
{ "v8dbg_parent_SeqAsciiString__SeqString", 0x0 },
|
||||
{ "v8dbg_parent_SeqString__String", 0x0 },
|
||||
{ "v8dbg_parent_SeqTwoByteString__SeqString", 0x0 },
|
||||
{ "v8dbg_parent_SharedFunctionInfo__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_SignatureInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_Smi__Object", 0x0 },
|
||||
{ "v8dbg_parent_String__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_Struct__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_TemplateInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_TypeSwitchInfo__Struct", 0x0 },
|
||||
|
||||
{ "v8dbg_frametype_ArgumentsAdaptorFrame", 0x8 },
|
||||
{ "v8dbg_frametype_ConstructFrame", 0x7 },
|
||||
{ "v8dbg_frametype_EntryConstructFrame", 0x2 },
|
||||
{ "v8dbg_frametype_EntryFrame", 0x1 },
|
||||
{ "v8dbg_frametype_ExitFrame", 0x3 },
|
||||
{ "v8dbg_frametype_InternalFrame", 0x6 },
|
||||
{ "v8dbg_frametype_JavaScriptFrame", 0x4 },
|
||||
{ "v8dbg_frametype_OptimizedFrame", 0x5 },
|
||||
|
||||
{ "v8dbg_off_fp_context", -0x4 },
|
||||
{ "v8dbg_off_fp_function", -0x8 },
|
||||
{ "v8dbg_off_fp_marker", -0x8 },
|
||||
{ "v8dbg_off_fp_args", 0x8 },
|
||||
|
||||
{ "v8dbg_prop_idx_content", 0x0 },
|
||||
{ "v8dbg_prop_idx_first", 0x2 },
|
||||
{ "v8dbg_prop_type_field", 0x1 },
|
||||
{ "v8dbg_prop_type_first_phantom", 0x6 },
|
||||
{ "v8dbg_prop_type_mask", 0xf },
|
||||
|
||||
{ "v8dbg_AsciiStringTag", 0x4 },
|
||||
{ "v8dbg_ConsStringTag", 0x1 },
|
||||
{ "v8dbg_ExternalStringTag", 0x2 },
|
||||
{ "v8dbg_FailureTag", 0x3 },
|
||||
{ "v8dbg_FailureTagMask", 0x3 },
|
||||
{ "v8dbg_FirstNonstringType", 0x80 },
|
||||
{ "v8dbg_HeapObjectTag", 0x1 },
|
||||
{ "v8dbg_HeapObjectTagMask", 0x3 },
|
||||
{ "v8dbg_IsNotStringMask", 0x80 },
|
||||
{ "v8dbg_NotStringTag", 0x80 },
|
||||
{ "v8dbg_SeqStringTag", 0x0 },
|
||||
{ "v8dbg_SmiTag", 0x0 },
|
||||
{ "v8dbg_SmiTagMask", 0x1 },
|
||||
{ "v8dbg_SmiValueShift", 0x1 },
|
||||
{ "v8dbg_StringEncodingMask", 0x4 },
|
||||
{ "v8dbg_StringRepresentationMask", 0x3 },
|
||||
{ "v8dbg_StringTag", 0x0 },
|
||||
{ "v8dbg_TwoByteStringTag", 0x0 },
|
||||
{ "v8dbg_PointerSizeLog2", 0x2 },
|
||||
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
/*
|
||||
* Canned configuration for the V8 bundled with Node.js v0.6.5.
|
||||
*/
|
||||
static v8_cfg_symbol_t v8_symbols_node_06[] = {
|
||||
{ "v8dbg_type_AccessCheckInfo__ACCESS_CHECK_INFO_TYPE", 0x93 },
|
||||
{ "v8dbg_type_AccessorInfo__ACCESSOR_INFO_TYPE", 0x92 },
|
||||
{ "v8dbg_type_BreakPointInfo__BREAK_POINT_INFO_TYPE", 0x9e },
|
||||
{ "v8dbg_type_ByteArray__BYTE_ARRAY_TYPE", 0x86 },
|
||||
{ "v8dbg_type_CallHandlerInfo__CALL_HANDLER_INFO_TYPE", 0x95 },
|
||||
{ "v8dbg_type_Code__CODE_TYPE", 0x81 },
|
||||
{ "v8dbg_type_CodeCache__CODE_CACHE_TYPE", 0x9b },
|
||||
{ "v8dbg_type_ConsString__CONS_ASCII_STRING_TYPE", 0x5 },
|
||||
{ "v8dbg_type_ConsString__CONS_ASCII_SYMBOL_TYPE", 0x45 },
|
||||
{ "v8dbg_type_ConsString__CONS_STRING_TYPE", 0x1 },
|
||||
{ "v8dbg_type_ConsString__CONS_SYMBOL_TYPE", 0x41 },
|
||||
{ "v8dbg_type_DebugInfo__DEBUG_INFO_TYPE", 0x9d },
|
||||
{ "v8dbg_type_ExternalAsciiString__EXTERNAL_ASCII_STRING_TYPE", 0x6 },
|
||||
{ "v8dbg_type_ExternalAsciiString__EXTERNAL_ASCII_SYMBOL_TYPE", 0x46 },
|
||||
{ "v8dbg_type_ExternalByteArray__EXTERNAL_BYTE_ARRAY_TYPE", 0x87 },
|
||||
{ "v8dbg_type_ExternalDoubleArray__EXTERNAL_DOUBLE_ARRAY_TYPE", 0x8e },
|
||||
{ "v8dbg_type_ExternalFloatArray__EXTERNAL_FLOAT_ARRAY_TYPE", 0x8d },
|
||||
{ "v8dbg_type_ExternalIntArray__EXTERNAL_INT_ARRAY_TYPE", 0x8b },
|
||||
{ "v8dbg_type_ExternalPixelArray__EXTERNAL_PIXEL_ARRAY_TYPE", 0x8f },
|
||||
{ "v8dbg_type_ExternalShortArray__EXTERNAL_SHORT_ARRAY_TYPE", 0x89 },
|
||||
{ "v8dbg_type_ExternalTwoByteString__EXTERNAL_STRING_TYPE", 0x2 },
|
||||
{ "v8dbg_type_ExternalTwoByteString__EXTERNAL_SYMBOL_TYPE", 0x42 },
|
||||
{ "v8dbg_type_ExternalUnsignedByteArray__"
|
||||
"EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE", 0x88 },
|
||||
{ "v8dbg_type_ExternalUnsignedIntArray__"
|
||||
"EXTERNAL_UNSIGNED_INT_ARRAY_TYPE", 0x8c },
|
||||
{ "v8dbg_type_ExternalUnsignedShortArray__"
|
||||
"EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE", 0x8a },
|
||||
{ "v8dbg_type_FixedArray__FIXED_ARRAY_TYPE", 0x9f },
|
||||
{ "v8dbg_type_FixedDoubleArray__FIXED_DOUBLE_ARRAY_TYPE", 0x90 },
|
||||
{ "v8dbg_type_Foreign__FOREIGN_TYPE", 0x85 },
|
||||
{ "v8dbg_type_FunctionTemplateInfo__FUNCTION_TEMPLATE_INFO_TYPE",
|
||||
0x96 },
|
||||
{ "v8dbg_type_HeapNumber__HEAP_NUMBER_TYPE", 0x84 },
|
||||
{ "v8dbg_type_InterceptorInfo__INTERCEPTOR_INFO_TYPE", 0x94 },
|
||||
{ "v8dbg_type_JSArray__JS_ARRAY_TYPE", 0xa8 },
|
||||
{ "v8dbg_type_JSBuiltinsObject__JS_BUILTINS_OBJECT_TYPE", 0xa6 },
|
||||
{ "v8dbg_type_JSFunction__JS_FUNCTION_TYPE", 0xac },
|
||||
{ "v8dbg_type_JSFunctionProxy__JS_FUNCTION_PROXY_TYPE", 0xad },
|
||||
{ "v8dbg_type_JSGlobalObject__JS_GLOBAL_OBJECT_TYPE", 0xa5 },
|
||||
{ "v8dbg_type_JSGlobalPropertyCell__JS_GLOBAL_PROPERTY_CELL_TYPE",
|
||||
0x83 },
|
||||
{ "v8dbg_type_JSMessageObject__JS_MESSAGE_OBJECT_TYPE", 0xa1 },
|
||||
{ "v8dbg_type_JSObject__JS_OBJECT_TYPE", 0xa3 },
|
||||
{ "v8dbg_type_JSProxy__JS_PROXY_TYPE", 0xa9 },
|
||||
{ "v8dbg_type_JSRegExp__JS_REGEXP_TYPE", 0xab },
|
||||
{ "v8dbg_type_JSValue__JS_VALUE_TYPE", 0xa2 },
|
||||
{ "v8dbg_type_JSWeakMap__JS_WEAK_MAP_TYPE", 0xaa },
|
||||
{ "v8dbg_type_Map__MAP_TYPE", 0x80 },
|
||||
{ "v8dbg_type_ObjectTemplateInfo__OBJECT_TEMPLATE_INFO_TYPE", 0x97 },
|
||||
{ "v8dbg_type_Oddball__ODDBALL_TYPE", 0x82 },
|
||||
{ "v8dbg_type_PolymorphicCodeCache__POLYMORPHIC_CODE_CACHE_TYPE",
|
||||
0x9c },
|
||||
{ "v8dbg_type_Script__SCRIPT_TYPE", 0x9a },
|
||||
{ "v8dbg_type_SeqAsciiString__ASCII_STRING_TYPE", 0x4 },
|
||||
{ "v8dbg_type_SeqAsciiString__ASCII_SYMBOL_TYPE", 0x44 },
|
||||
{ "v8dbg_type_SeqTwoByteString__STRING_TYPE", 0x0 },
|
||||
{ "v8dbg_type_SeqTwoByteString__SYMBOL_TYPE", 0x40 },
|
||||
{ "v8dbg_type_SharedFunctionInfo__SHARED_FUNCTION_INFO_TYPE", 0xa0 },
|
||||
{ "v8dbg_type_SignatureInfo__SIGNATURE_INFO_TYPE", 0x98 },
|
||||
{ "v8dbg_type_SlicedString__SLICED_ASCII_STRING_TYPE", 0x7 },
|
||||
{ "v8dbg_type_SlicedString__SLICED_STRING_TYPE", 0x3 },
|
||||
{ "v8dbg_type_TypeSwitchInfo__TYPE_SWITCH_INFO_TYPE", 0x99 },
|
||||
|
||||
{ "v8dbg_class_AccessCheckInfo__data__Object", 0xc },
|
||||
{ "v8dbg_class_AccessCheckInfo__indexed_callback__Object", 0x8 },
|
||||
{ "v8dbg_class_AccessCheckInfo__named_callback__Object", 0x4 },
|
||||
{ "v8dbg_class_AccessorInfo__data__Object", 0xc },
|
||||
{ "v8dbg_class_AccessorInfo__flag__Smi", 0x14 },
|
||||
{ "v8dbg_class_AccessorInfo__getter__Object", 0x4 },
|
||||
{ "v8dbg_class_AccessorInfo__name__Object", 0x10 },
|
||||
{ "v8dbg_class_AccessorInfo__setter__Object", 0x8 },
|
||||
{ "v8dbg_class_BreakPointInfo__break_point_objects__Object", 0x10 },
|
||||
{ "v8dbg_class_BreakPointInfo__code_position__Smi", 0x4 },
|
||||
{ "v8dbg_class_BreakPointInfo__source_position__Smi", 0x8 },
|
||||
{ "v8dbg_class_BreakPointInfo__statement_position__Smi", 0xc },
|
||||
{ "v8dbg_class_CallHandlerInfo__callback__Object", 0x4 },
|
||||
{ "v8dbg_class_CallHandlerInfo__data__Object", 0x8 },
|
||||
{ "v8dbg_class_Code__deoptimization_data__FixedArray", 0xc },
|
||||
{ "v8dbg_class_Code__instruction_size__int", 0x4 },
|
||||
{ "v8dbg_class_Code__instruction_start__int", 0x20 },
|
||||
{ "v8dbg_class_Code__next_code_flushing_candidate__Object", 0x10 },
|
||||
{ "v8dbg_class_Code__relocation_info__ByteArray", 0x8 },
|
||||
{ "v8dbg_class_CodeCache__default_cache__FixedArray", 0x4 },
|
||||
{ "v8dbg_class_CodeCache__normal_type_cache__Object", 0x8 },
|
||||
{ "v8dbg_class_ConsString__first__String", 0xc },
|
||||
{ "v8dbg_class_ConsString__second__String", 0x10 },
|
||||
{ "v8dbg_class_DebugInfo__break_points__FixedArray", 0x14 },
|
||||
{ "v8dbg_class_DebugInfo__code__Code", 0xc },
|
||||
{ "v8dbg_class_DebugInfo__original_code__Code", 0x8 },
|
||||
{ "v8dbg_class_DebugInfo__shared__SharedFunctionInfo", 0x4 },
|
||||
{ "v8dbg_class_ExternalString__resource__Object", 0xc },
|
||||
{ "v8dbg_class_FixedArray__data__uintptr_t", 0x8 },
|
||||
{ "v8dbg_class_FixedArrayBase__length__SMI", 0x4 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__access_check_info__Object", 0x38 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__call_code__Object", 0x10 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__class_name__Object", 0x2c },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__flag__Smi", 0x3c },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__indexed_property_handler__Object",
|
||||
0x24 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__instance_call_handler__Object",
|
||||
0x34 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__instance_template__Object", 0x28 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__named_property_handler__Object",
|
||||
0x20 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__parent_template__Object", 0x1c },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__property_accessors__Object",
|
||||
0x14 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__prototype_template__Object",
|
||||
0x18 },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__serial_number__Object", 0xc },
|
||||
{ "v8dbg_class_FunctionTemplateInfo__signature__Object", 0x30 },
|
||||
{ "v8dbg_class_GlobalObject__builtins__JSBuiltinsObject", 0xc },
|
||||
{ "v8dbg_class_GlobalObject__global_context__Context", 0x10 },
|
||||
{ "v8dbg_class_GlobalObject__global_receiver__JSObject", 0x14 },
|
||||
{ "v8dbg_class_HeapNumber__value__double", 0x4 },
|
||||
{ "v8dbg_class_HeapObject__map__Map", 0x0 },
|
||||
{ "v8dbg_class_InterceptorInfo__data__Object", 0x18 },
|
||||
{ "v8dbg_class_InterceptorInfo__deleter__Object", 0x10 },
|
||||
{ "v8dbg_class_InterceptorInfo__enumerator__Object", 0x14 },
|
||||
{ "v8dbg_class_InterceptorInfo__getter__Object", 0x4 },
|
||||
{ "v8dbg_class_InterceptorInfo__query__Object", 0xc },
|
||||
{ "v8dbg_class_InterceptorInfo__setter__Object", 0x8 },
|
||||
{ "v8dbg_class_JSArray__length__Object", 0xc },
|
||||
{ "v8dbg_class_JSFunction__literals__FixedArray", 0x1c },
|
||||
{ "v8dbg_class_JSFunction__next_function_link__Object", 0x20 },
|
||||
{ "v8dbg_class_JSFunction__prototype_or_initial_map__Object", 0x10 },
|
||||
{ "v8dbg_class_JSFunction__shared__SharedFunctionInfo", 0x14 },
|
||||
{ "v8dbg_class_JSFunctionProxy__call_trap__Object", 0x8 },
|
||||
{ "v8dbg_class_JSFunctionProxy__construct_trap__Object", 0xc },
|
||||
{ "v8dbg_class_JSGlobalProxy__context__Object", 0xc },
|
||||
{ "v8dbg_class_JSMessageObject__arguments__JSArray", 0x10 },
|
||||
{ "v8dbg_class_JSMessageObject__end_position__SMI", 0x24 },
|
||||
{ "v8dbg_class_JSMessageObject__script__Object", 0x14 },
|
||||
{ "v8dbg_class_JSMessageObject__stack_frames__Object", 0x1c },
|
||||
{ "v8dbg_class_JSMessageObject__stack_trace__Object", 0x18 },
|
||||
{ "v8dbg_class_JSMessageObject__start_position__SMI", 0x20 },
|
||||
{ "v8dbg_class_JSMessageObject__type__String", 0xc },
|
||||
{ "v8dbg_class_JSObject__elements__Object", 0x8 },
|
||||
{ "v8dbg_class_JSObject__properties__FixedArray", 0x4 },
|
||||
{ "v8dbg_class_JSProxy__handler__Object", 0x4 },
|
||||
{ "v8dbg_class_JSRegExp__data__Object", 0xc },
|
||||
{ "v8dbg_class_JSValue__value__Object", 0xc },
|
||||
{ "v8dbg_class_JSWeakMap__next__Object", 0x10 },
|
||||
{ "v8dbg_class_JSWeakMap__table__ObjectHashTable", 0xc },
|
||||
{ "v8dbg_class_Map__code_cache__Object", 0x18 },
|
||||
{ "v8dbg_class_Map__constructor__Object", 0x10 },
|
||||
{ "v8dbg_class_Map__inobject_properties__int", 0x5 },
|
||||
{ "v8dbg_class_Map__instance_attributes__int", 0x8 },
|
||||
{ "v8dbg_class_Map__instance_descriptors__FixedArray", 0x14 },
|
||||
{ "v8dbg_class_Map__instance_size__int", 0x4 },
|
||||
{ "v8dbg_class_Map__prototype_transitions__FixedArray", 0x1c },
|
||||
{ "v8dbg_class_ObjectTemplateInfo__constructor__Object", 0xc },
|
||||
{ "v8dbg_class_ObjectTemplateInfo__internal_field_count__Object",
|
||||
0x10 },
|
||||
{ "v8dbg_class_Oddball__to_number__Object", 0x8 },
|
||||
{ "v8dbg_class_Oddball__to_string__String", 0x4 },
|
||||
{ "v8dbg_class_PolymorphicCodeCache__cache__Object", 0x4 },
|
||||
{ "v8dbg_class_Script__column_offset__Smi", 0x10 },
|
||||
{ "v8dbg_class_Script__compilation_type__Smi", 0x24 },
|
||||
{ "v8dbg_class_Script__context_data__Object", 0x18 },
|
||||
{ "v8dbg_class_Script__data__Object", 0x14 },
|
||||
{ "v8dbg_class_Script__eval_from_instructions_offset__Smi", 0x34 },
|
||||
{ "v8dbg_class_Script__eval_from_shared__Object", 0x30 },
|
||||
{ "v8dbg_class_Script__id__Object", 0x2c },
|
||||
{ "v8dbg_class_Script__line_ends__Object", 0x28 },
|
||||
{ "v8dbg_class_Script__line_offset__Smi", 0xc },
|
||||
{ "v8dbg_class_Script__name__Object", 0x8 },
|
||||
{ "v8dbg_class_Script__source__Object", 0x4 },
|
||||
{ "v8dbg_class_Script__type__Smi", 0x20 },
|
||||
{ "v8dbg_class_Script__wrapper__Foreign", 0x1c },
|
||||
{ "v8dbg_class_SeqAsciiString__chars__char", 0xc },
|
||||
{ "v8dbg_class_SharedFunctionInfo__code__Code", 0x8 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__compiler_hints__SMI", 0x50 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__construct_stub__Code", 0x10 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__debug_info__Object", 0x20 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__end_position__SMI", 0x48 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__expected_nof_properties__SMI",
|
||||
0x3c },
|
||||
{ "v8dbg_class_SharedFunctionInfo__formal_parameter_count__SMI", 0x38 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__function_data__Object", 0x18 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__function_token_position__SMI",
|
||||
0x4c },
|
||||
{ "v8dbg_class_SharedFunctionInfo__inferred_name__String", 0x24 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__initial_map__Object", 0x28 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__instance_class_name__Object", 0x14 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__length__SMI", 0x34 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__name__Object", 0x4 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__num_literals__SMI", 0x40 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__opt_count__SMI", 0x58 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__script__Object", 0x1c },
|
||||
{ "v8dbg_class_SharedFunctionInfo__"
|
||||
"start_position_and_type__SMI", 0x44 },
|
||||
{ "v8dbg_class_SharedFunctionInfo__"
|
||||
"this_property_assignments__Object", 0x2c },
|
||||
{ "v8dbg_class_SharedFunctionInfo__"
|
||||
"this_property_assignments_count__SMI", 0x54 },
|
||||
{ "v8dbg_class_SignatureInfo__args__Object", 0x8 },
|
||||
{ "v8dbg_class_SignatureInfo__receiver__Object", 0x4 },
|
||||
{ "v8dbg_class_SlicedString__offset__SMI", 0x10 },
|
||||
{ "v8dbg_class_String__length__SMI", 0x4 },
|
||||
{ "v8dbg_class_TemplateInfo__property_list__Object", 0x8 },
|
||||
{ "v8dbg_class_TemplateInfo__tag__Object", 0x4 },
|
||||
{ "v8dbg_class_TypeSwitchInfo__types__Object", 0x4 },
|
||||
|
||||
{ "v8dbg_parent_AccessCheckInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_AccessorInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_BreakPointInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_ByteArray__FixedArrayBase", 0x0 },
|
||||
{ "v8dbg_parent_CallHandlerInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_Code__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_CodeCache__Struct", 0x0 },
|
||||
{ "v8dbg_parent_ConsString__String", 0x0 },
|
||||
{ "v8dbg_parent_DebugInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_DeoptimizationInputData__FixedArray", 0x0 },
|
||||
{ "v8dbg_parent_DeoptimizationOutputData__FixedArray", 0x0 },
|
||||
{ "v8dbg_parent_DescriptorArray__FixedArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalArray__FixedArrayBase", 0x0 },
|
||||
{ "v8dbg_parent_ExternalAsciiString__ExternalString", 0x0 },
|
||||
{ "v8dbg_parent_ExternalByteArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalDoubleArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalFloatArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalIntArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalPixelArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalShortArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalString__String", 0x0 },
|
||||
{ "v8dbg_parent_ExternalTwoByteString__ExternalString", 0x0 },
|
||||
{ "v8dbg_parent_ExternalUnsignedByteArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalUnsignedIntArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_ExternalUnsignedShortArray__ExternalArray", 0x0 },
|
||||
{ "v8dbg_parent_Failure__MaybeObject", 0x0 },
|
||||
{ "v8dbg_parent_FixedArray__FixedArrayBase", 0x0 },
|
||||
{ "v8dbg_parent_FixedArrayBase__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_FixedDoubleArray__FixedArrayBase", 0x0 },
|
||||
{ "v8dbg_parent_Foreign__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_FunctionTemplateInfo__TemplateInfo", 0x0 },
|
||||
{ "v8dbg_parent_GlobalObject__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_HashTable__FixedArray", 0x0 },
|
||||
{ "v8dbg_parent_HeapNumber__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_HeapObject__Object", 0x0 },
|
||||
{ "v8dbg_parent_InterceptorInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_JSArray__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_JSBuiltinsObject__GlobalObject", 0x0 },
|
||||
{ "v8dbg_parent_JSFunction__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_JSFunctionProxy__JSProxy", 0x0 },
|
||||
{ "v8dbg_parent_JSFunctionResultCache__FixedArray", 0x0 },
|
||||
{ "v8dbg_parent_JSGlobalObject__GlobalObject", 0x0 },
|
||||
{ "v8dbg_parent_JSGlobalPropertyCell__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_JSMessageObject__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_JSObject__JSReceiver", 0x0 },
|
||||
{ "v8dbg_parent_JSProxy__JSReceiver", 0x0 },
|
||||
{ "v8dbg_parent_JSReceiver__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_JSRegExp__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_JSRegExpResult__JSArray", 0x0 },
|
||||
{ "v8dbg_parent_JSValue__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_JSWeakMap__JSObject", 0x0 },
|
||||
{ "v8dbg_parent_Map__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_NormalizedMapCache__FixedArray", 0x0 },
|
||||
{ "v8dbg_parent_ObjectTemplateInfo__TemplateInfo", 0x0 },
|
||||
{ "v8dbg_parent_Oddball__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_PolymorphicCodeCache__Struct", 0x0 },
|
||||
{ "v8dbg_parent_Script__Struct", 0x0 },
|
||||
{ "v8dbg_parent_SeqAsciiString__SeqString", 0x0 },
|
||||
{ "v8dbg_parent_SeqString__String", 0x0 },
|
||||
{ "v8dbg_parent_SeqTwoByteString__SeqString", 0x0 },
|
||||
{ "v8dbg_parent_SharedFunctionInfo__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_SignatureInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_SlicedString__String", 0x0 },
|
||||
{ "v8dbg_parent_Smi__Object", 0x0 },
|
||||
{ "v8dbg_parent_String__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_Struct__HeapObject", 0x0 },
|
||||
{ "v8dbg_parent_TemplateInfo__Struct", 0x0 },
|
||||
{ "v8dbg_parent_TypeSwitchInfo__Struct", 0x0 },
|
||||
|
||||
{ "v8dbg_frametype_ArgumentsAdaptorFrame", 0x8 },
|
||||
{ "v8dbg_frametype_ConstructFrame", 0x7 },
|
||||
{ "v8dbg_frametype_EntryConstructFrame", 0x2 },
|
||||
{ "v8dbg_frametype_EntryFrame", 0x1 },
|
||||
{ "v8dbg_frametype_ExitFrame", 0x3 },
|
||||
{ "v8dbg_frametype_InternalFrame", 0x6 },
|
||||
{ "v8dbg_frametype_JavaScriptFrame", 0x4 },
|
||||
{ "v8dbg_frametype_OptimizedFrame", 0x5 },
|
||||
|
||||
{ "v8dbg_off_fp_args", 0x8 },
|
||||
{ "v8dbg_off_fp_context", -0x4 },
|
||||
{ "v8dbg_off_fp_function", -0x8 },
|
||||
{ "v8dbg_off_fp_marker", -0x8 },
|
||||
|
||||
{ "v8dbg_prop_idx_content", 0x1 },
|
||||
{ "v8dbg_prop_idx_first", 0x3 },
|
||||
{ "v8dbg_prop_type_field", 0x1 },
|
||||
{ "v8dbg_prop_type_first_phantom", 0x6 },
|
||||
{ "v8dbg_prop_type_mask", 0xf },
|
||||
|
||||
{ "v8dbg_AsciiStringTag", 0x4 },
|
||||
{ "v8dbg_PointerSizeLog2", 0x2 },
|
||||
{ "v8dbg_SeqStringTag", 0x0 },
|
||||
{ "v8dbg_SmiTag", 0x0 },
|
||||
{ "v8dbg_SmiTagMask", 0x1 },
|
||||
{ "v8dbg_SmiValueShift", 0x1 },
|
||||
{ "v8dbg_StringEncodingMask", 0x4 },
|
||||
{ "v8dbg_StringRepresentationMask", 0x3 },
|
||||
{ "v8dbg_StringTag", 0x0 },
|
||||
{ "v8dbg_TwoByteStringTag", 0x0 },
|
||||
{ "v8dbg_ConsStringTag", 0x1 },
|
||||
{ "v8dbg_ExternalStringTag", 0x2 },
|
||||
{ "v8dbg_FailureTag", 0x3 },
|
||||
{ "v8dbg_FailureTagMask", 0x3 },
|
||||
{ "v8dbg_FirstNonstringType", 0x80 },
|
||||
{ "v8dbg_HeapObjectTag", 0x1 },
|
||||
{ "v8dbg_HeapObjectTagMask", 0x3 },
|
||||
{ "v8dbg_IsNotStringMask", 0x80 },
|
||||
{ "v8dbg_NotStringTag", 0x80 },
|
||||
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
v8_cfg_t v8_cfg_04 = { "node-0.4", "node v0.4", v8_symbols_node_04,
|
||||
v8cfg_canned_iter, v8cfg_canned_readsym };
|
||||
|
||||
v8_cfg_t v8_cfg_06 = { "node-0.6", "node v0.6", v8_symbols_node_06,
|
||||
v8cfg_canned_iter, v8cfg_canned_readsym };
|
||||
|
||||
v8_cfg_t *v8_cfgs[] = {
|
||||
&v8_cfg_04,
|
||||
&v8_cfg_06,
|
||||
NULL
|
||||
};
|
||||
|
||||
v8_cfg_t v8_cfg_target = { NULL, NULL, NULL, v8cfg_target_iter,
|
||||
v8cfg_target_readsym };
|
||||
52
deps/mdb_v8/v8cfg.h
vendored
52
deps/mdb_v8/v8cfg.h
vendored
@@ -1,52 +0,0 @@
|
||||
/* Copyright Joyent, Inc. and other Node contributors. 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, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* v8cfg.h: canned configurations for previous V8 versions
|
||||
*/
|
||||
|
||||
#ifndef V8CFG_H
|
||||
#define V8CFG_H
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/mdb_modapi.h>
|
||||
|
||||
typedef struct {
|
||||
const char *v8cs_name; /* symbol name */
|
||||
intptr_t v8cs_value; /* symbol value */
|
||||
} v8_cfg_symbol_t;
|
||||
|
||||
typedef struct v8_cfg {
|
||||
const char *v8cfg_name; /* canned config name */
|
||||
const char *v8cfg_label; /* description */
|
||||
v8_cfg_symbol_t *v8cfg_symbols; /* actual symbol values */
|
||||
|
||||
int (*v8cfg_iter)(struct v8_cfg *, int (*)(mdb_symbol_t *, void *),
|
||||
void *);
|
||||
int (*v8cfg_readsym)(struct v8_cfg *, const char *, intptr_t *);
|
||||
} v8_cfg_t;
|
||||
|
||||
extern v8_cfg_t v8_cfg_04;
|
||||
extern v8_cfg_t v8_cfg_06;
|
||||
extern v8_cfg_t v8_cfg_target;
|
||||
extern v8_cfg_t *v8_cfgs[];
|
||||
|
||||
#endif /* V8CFG_H */
|
||||
80
deps/mdb_v8/v8dbg.h
vendored
80
deps/mdb_v8/v8dbg.h
vendored
@@ -1,80 +0,0 @@
|
||||
/* Copyright Joyent, Inc. and other Node contributors. 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, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* v8dbg.h: macros for use by V8 heap inspection tools. The consumer must
|
||||
* define values for various tags and shifts. The MDB module gets these
|
||||
* constants from information encoded in the binary itself.
|
||||
*/
|
||||
|
||||
#ifndef _V8DBG_H
|
||||
#define _V8DBG_H
|
||||
|
||||
/*
|
||||
* Recall that while V8 heap objects are always 4-byte aligned, heap object
|
||||
* pointers always have the last bit set. So when looking for a field nominally
|
||||
* at offset X, one must be sure to clear the tag bit first.
|
||||
*/
|
||||
#define V8_OFF_HEAP(x) ((x) - V8_HeapObjectTag)
|
||||
|
||||
/*
|
||||
* Determine whether a given pointer refers to a SMI, Failure, or HeapObject.
|
||||
*/
|
||||
#define V8_IS_SMI(ptr) (((ptr) & V8_SmiTagMask) == V8_SmiTag)
|
||||
#define V8_IS_FAILURE(ptr) (((ptr) & V8_FailureTagMask) == V8_FailureTag)
|
||||
#define V8_IS_HEAPOBJECT(ptr) \
|
||||
(((ptr) & V8_HeapObjectTagMask) == V8_HeapObjectTag)
|
||||
|
||||
/*
|
||||
* Extract the value of a SMI "pointer". Recall that small integers are stored
|
||||
* using the upper 31 bits.
|
||||
*/
|
||||
#define V8_SMI_VALUE(smi) ((smi) >> (V8_SmiValueShift + V8_SmiShiftSize))
|
||||
|
||||
/*
|
||||
* Determine the encoding and representation of a V8 string.
|
||||
*/
|
||||
#define V8_TYPE_STRING(type) (((type) & V8_IsNotStringMask) == V8_StringTag)
|
||||
|
||||
#define V8_STRENC_ASCII(type) \
|
||||
(((type) & V8_StringEncodingMask) == V8_AsciiStringTag)
|
||||
|
||||
#define V8_STRREP_SEQ(type) \
|
||||
(((type) & V8_StringRepresentationMask) == V8_SeqStringTag)
|
||||
#define V8_STRREP_CONS(type) \
|
||||
(((type) & V8_StringRepresentationMask) == V8_ConsStringTag)
|
||||
#define V8_STRREP_SLICED(type) \
|
||||
(((type) & V8_StringRepresentationMask) == V8_SlicedStringTag)
|
||||
#define V8_STRREP_EXT(type) \
|
||||
(((type) & V8_StringRepresentationMask) == V8_ExternalStringTag)
|
||||
|
||||
/*
|
||||
* Several of the following constants and transformations are hardcoded in V8 as
|
||||
* well, so there's no way to extract them programmatically from the binary.
|
||||
*/
|
||||
#define V8_DESC_KEYIDX(x) ((x) + V8_PROP_IDX_FIRST)
|
||||
#define V8_DESC_VALIDX(x) ((x) << 1)
|
||||
#define V8_DESC_DETIDX(x) (((x) << 1) + 1)
|
||||
|
||||
#define V8_DESC_ISFIELD(x) \
|
||||
((V8_SMI_VALUE(x) & V8_PROP_TYPE_MASK) == V8_PROP_TYPE_FIELD)
|
||||
|
||||
#endif /* _V8DBG_H */
|
||||
1
deps/npm/.npmignore
vendored
1
deps/npm/.npmignore
vendored
@@ -10,7 +10,6 @@ npm-debug.log
|
||||
node_modules/ronn
|
||||
node_modules/tap
|
||||
node_modules/.bin
|
||||
node_modules/npm-registry-mock
|
||||
/npmrc
|
||||
/release/
|
||||
|
||||
|
||||
93
deps/npm/AUTHORS
vendored
93
deps/npm/AUTHORS
vendored
@@ -1,48 +1,48 @@
|
||||
# Authors sorted by whether or not they're me
|
||||
Isaac Z. Schlueter <i@izs.me>
|
||||
Steve Steiner <ssteinerX@gmail.com>
|
||||
Mikeal Rogers <mikeal.rogers@gmail.com>
|
||||
Aaron Blohowiak <aaron.blohowiak@gmail.com>
|
||||
Martyn Smith <martyn@dollyfish.net.nz>
|
||||
Mathias Pettersson <mape@mape.me>
|
||||
Brian Hammond <brian@fictorial.com>
|
||||
Charlie Robbins <charlie.robbins@gmail.com>
|
||||
Francisco Treacy <francisco.treacy@gmail.com>
|
||||
Cliffano Subagio <cliffano@gmail.com>
|
||||
Christian Eager <christian.eager@nokia.com>
|
||||
Dav Glass <davglass@gmail.com>
|
||||
Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)
|
||||
Steve Steiner <ssteinerX@gmail.com> (http://websaucesoftware.com/blog/)
|
||||
Mikeal Rogers <mikeal.rogers@gmail.com> (http://www.mikealrogers.com/)
|
||||
Aaron Blohowiak <aaron.blohowiak@gmail.com> (http://aaronblohowiak.com/)
|
||||
Martyn Smith <martyn@dollyfish.net.nz> (http://dollyfish.net.nz/)
|
||||
Mathias Pettersson <mape@mape.me> (http://mape.me/)
|
||||
Brian Hammond <brian@fictorial.com> (http://fictorial.com/)
|
||||
Charlie Robbins <charlie.robbins@gmail.com> (http://www.charlierobbins.com/)
|
||||
Francisco Treacy <francisco.treacy@gmail.com> (http://franciscotreacy.com/)
|
||||
Cliffano Subagio <cliffano@gmail.com> (http://blog.cliffano.com/)
|
||||
Christian Eager <christian.eager@nokia.com> (http://perpenduum.com)
|
||||
Dav Glass <davglass@gmail.com> (http://blog.davglass.com)
|
||||
Alex K. Wolfe <alexkwolfe@gmail.com>
|
||||
James Sanders <jimmyjazz14@gmail.com>
|
||||
Reid Burke <me@reidburke.com>
|
||||
Arlo Breault <arlolra@gmail.com>
|
||||
Timo Derstappen <teemow@gmail.com>
|
||||
James Sanders <jimmyjazz14@gmail.com> (http://james-sanders.com/)
|
||||
Reid Burke <me@reidburke.com> (http://reidburke.com/)
|
||||
Arlo Breault <arlolra@gmail.com> (http://thoughtherder.com/)
|
||||
Timo Derstappen <teemow@gmail.com> (http://teemow.com)
|
||||
Bradley Meck <bradley.meck@gmail.com>
|
||||
Bart Teeuwisse <bart.teeuwisse@thecodemill.biz>
|
||||
Ben Noordhuis <info@bnoordhuis.nl>
|
||||
Tor Valamo <tor.valamo@gmail.com>
|
||||
Whyme.Lyu <5longluna@gmail.com>
|
||||
Bart Teeuwisse <bart.teeuwisse@thecodemill.biz> (http://thecodemill.biz/)
|
||||
Ben Noordhuis <info@bnoordhuis.nl> (http://bnoordhuis.nl/)
|
||||
Tor Valamo <tor.valamo@gmail.com> (http://www.magnimedia.no/)
|
||||
Whyme.Lyu <5longluna@gmail.com> (http://whyme.kuantu.com/)
|
||||
Olivier Melcher <olivier.melcher@gmail.com>
|
||||
Tomaž Muraus <kami@k5-storitve.net>
|
||||
Evan Meagher <evan.meagher@gmail.com>
|
||||
Orlando Vazquez <ovazquez@gmail.com>
|
||||
Tomaž Muraus <kami@k5-storitve.net> (http://www.tomaz-muraus.info)
|
||||
Evan Meagher <evan.meagher@gmail.com> (http://evanmeagher.net/)
|
||||
Orlando Vazquez <ovazquez@gmail.com> (http://2wycked.net/)
|
||||
George Miroshnykov <gmiroshnykov@lohika.com>
|
||||
Geoff Flarity <geoff.flarity@gmail.com>
|
||||
Geoff Flarity (http://ca.linkedin.com/pub/geoff-flarity/a/536/43a)
|
||||
Pete Kruckenberg <pete@kruckenberg.com>
|
||||
Laurie Harper <laurie@holoweb.net>
|
||||
Laurie Harper <laurie@holoweb.net> (http://laurie.holoweb.net/)
|
||||
Chris Wong <chris@chriswongstudio.com>
|
||||
Max Goodman <c@chromacode.com>
|
||||
Max Goodman <c@chromacode.com> (http://chromacode.com/)
|
||||
Scott Bronson <brons_github@rinspin.com>
|
||||
Federico Romero <federomero@gmail.com>
|
||||
Visnu Pitiyanuvath <visnupx@gmail.com>
|
||||
Irakli Gozalishvili <rfobic@gmail.com>
|
||||
Mark Cahill <mark@tiemonster.info>
|
||||
Visnu Pitiyanuvath <visnupx@gmail.com> (http://visnup.com)
|
||||
Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com/)
|
||||
Mark Cahill <mark@tiemonster.info> (http://www.tiemonster.info/)
|
||||
Zearin <zearin@gonk.net>
|
||||
Iain Sproat <iainsproat@gmail.com>
|
||||
Trent Mick <trentm@gmail.com>
|
||||
Felix Geisendörfer <felix@debuggable.com>
|
||||
Conny Brunnkvist <cbrunnkvist@gmail.com>
|
||||
Will Elwood <w.elwood08@gmail.com>
|
||||
Oleg Efimov <efimovov@gmail.com>
|
||||
Trent Mick <trentm@gmail.com> (http://trentm.com/)
|
||||
Felix Geisendörfer <felix@debuggable.com> (http://www.debuggable.com/)
|
||||
Conny Brunnkvist <cbrunnkvist@gmail.com> (http://twitter.com/connyb)
|
||||
Will Elwood <w.elwood08@gmail.com> (https://github.com/welwood08)
|
||||
Oleg Efimov <efimovov@gmail.com> (http://sannis.ru)
|
||||
Martin Cooper <mfncooper@gmail.com>
|
||||
Jameson Little <t.jameson.little@gmail.com>
|
||||
cspotcode <cspotcode@gmail.com>
|
||||
@@ -90,28 +90,3 @@ Paul Miller <paul@paulmillr.com>
|
||||
seebees <seebees@gmail.com>
|
||||
Carl Lange <carl@flax.ie>
|
||||
Jan Lehnardt <jan@apache.org>
|
||||
Alexey Kreschuk <akrsch@gmail.com>
|
||||
Di Wu <dwu@palantir.com>
|
||||
Florian Margaine <florian@margaine.com>
|
||||
Forbes Lindesay <forbes@lindesay.co.uk>
|
||||
Ian Babrou <ibobrik@gmail.com>
|
||||
Jaakko Manninen <jaakko@rocketpack.fi>
|
||||
Johan Nordberg <its@johan-nordberg.com>
|
||||
Johan Sköld <johan@skold.cc>
|
||||
Larz Conwell <larz@larz-laptop.(none)>
|
||||
Luke Arduini <luke.arduini@gmail.com>
|
||||
Marcel Klehr <mklehr@gmx.net>
|
||||
Mathias Bynens <mathias@qiwi.be>
|
||||
Matt Lunn <matt@mattlunn.me.uk>
|
||||
Matt McClure <matt.mcclure@mapmyfitness.com>
|
||||
Nirk Niggler <nirk.niggler@gmail.com>
|
||||
Paolo Fragomeni <paolo@async.ly>
|
||||
Jake Verbaten (Raynos) <raynos2@gmail.com>
|
||||
Robert Kowalski <rok@kowalski.gd>
|
||||
Schabse Laks <Dev@SLaks.net>
|
||||
Stuart Knightley <stuart@stuartk.com>
|
||||
Stuart P. Bentley <stuart@testtrack4.com>
|
||||
Vaz Allen <vaz@tryptid.com>
|
||||
elisee <elisee@sparklin.org>
|
||||
Evan You <yyx990803@gmail.com>
|
||||
Wil Moore III <wil.moore@wilmoore.com>
|
||||
|
||||
256
deps/npm/LICENSE
vendored
256
deps/npm/LICENSE
vendored
@@ -1,218 +1,42 @@
|
||||
Copyright (c) Isaac Z. Schlueter
|
||||
Copyright (c) Isaac Z. Schlueter (the "Original Author")
|
||||
All rights reserved.
|
||||
|
||||
npm is released under the Artistic License 2.0.
|
||||
The text of the License follows:
|
||||
MIT +no-false-attribs License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
Distributions of all or part of the Software intended to be used
|
||||
by the recipients as they would use the unmodified Software,
|
||||
containing modifications that substantially alter, remove, or
|
||||
disable functionality of the Software, outside of the documented
|
||||
configuration mechanisms provided by the Software, shall be
|
||||
modified such that the Original Author's bug reporting email
|
||||
addresses and urls are either replaced with the contact information
|
||||
of the parties responsible for the changes, or removed entirely.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
--------
|
||||
|
||||
|
||||
The Artistic License 2.0
|
||||
|
||||
Copyright (c) 2000-2006, The Perl Foundation.
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
This license establishes the terms under which a given free software
|
||||
Package may be copied, modified, distributed, and/or redistributed.
|
||||
The intent is that the Copyright Holder maintains some artistic
|
||||
control over the development of that Package while still keeping the
|
||||
Package available as open source and free software.
|
||||
|
||||
You are always permitted to make arrangements wholly outside of this
|
||||
license directly with the Copyright Holder of a given Package. If the
|
||||
terms of this license do not permit the full use that you propose to
|
||||
make of the Package, you should contact the Copyright Holder and seek
|
||||
a different licensing arrangement.
|
||||
|
||||
Definitions
|
||||
|
||||
"Copyright Holder" means the individual(s) or organization(s)
|
||||
named in the copyright notice for the entire Package.
|
||||
|
||||
"Contributor" means any party that has contributed code or other
|
||||
material to the Package, in accordance with the Copyright Holder's
|
||||
procedures.
|
||||
|
||||
"You" and "your" means any person who would like to copy,
|
||||
distribute, or modify the Package.
|
||||
|
||||
"Package" means the collection of files distributed by the
|
||||
Copyright Holder, and derivatives of that collection and/or of
|
||||
those files. A given Package may consist of either the Standard
|
||||
Version, or a Modified Version.
|
||||
|
||||
"Distribute" means providing a copy of the Package or making it
|
||||
accessible to anyone else, or in the case of a company or
|
||||
organization, to others outside of your company or organization.
|
||||
|
||||
"Distributor Fee" means any fee that you charge for Distributing
|
||||
this Package or providing support for this Package to another
|
||||
party. It does not mean licensing fees.
|
||||
|
||||
"Standard Version" refers to the Package if it has not been
|
||||
modified, or has been modified only in ways explicitly requested
|
||||
by the Copyright Holder.
|
||||
|
||||
"Modified Version" means the Package, if it has been changed, and
|
||||
such changes were not explicitly requested by the Copyright
|
||||
Holder.
|
||||
|
||||
"Original License" means this Artistic License as Distributed with
|
||||
the Standard Version of the Package, in its current version or as
|
||||
it may be modified by The Perl Foundation in the future.
|
||||
|
||||
"Source" form means the source code, documentation source, and
|
||||
configuration files for the Package.
|
||||
|
||||
"Compiled" form means the compiled bytecode, object code, binary,
|
||||
or any other form resulting from mechanical transformation or
|
||||
translation of the Source form.
|
||||
|
||||
|
||||
Permission for Use and Modification Without Distribution
|
||||
|
||||
(1) You are permitted to use the Standard Version and create and use
|
||||
Modified Versions for any purpose without restriction, provided that
|
||||
you do not Distribute the Modified Version.
|
||||
|
||||
|
||||
Permissions for Redistribution of the Standard Version
|
||||
|
||||
(2) You may Distribute verbatim copies of the Source form of the
|
||||
Standard Version of this Package in any medium without restriction,
|
||||
either gratis or for a Distributor Fee, provided that you duplicate
|
||||
all of the original copyright notices and associated disclaimers. At
|
||||
your discretion, such verbatim copies may or may not include a
|
||||
Compiled form of the Package.
|
||||
|
||||
(3) You may apply any bug fixes, portability changes, and other
|
||||
modifications made available from the Copyright Holder. The resulting
|
||||
Package will still be considered the Standard Version, and as such
|
||||
will be subject to the Original License.
|
||||
|
||||
|
||||
Distribution of Modified Versions of the Package as Source
|
||||
|
||||
(4) You may Distribute your Modified Version as Source (either gratis
|
||||
or for a Distributor Fee, and with or without a Compiled form of the
|
||||
Modified Version) provided that you clearly document how it differs
|
||||
from the Standard Version, including, but not limited to, documenting
|
||||
any non-standard features, executables, or modules, and provided that
|
||||
you do at least ONE of the following:
|
||||
|
||||
(a) make the Modified Version available to the Copyright Holder
|
||||
of the Standard Version, under the Original License, so that the
|
||||
Copyright Holder may include your modifications in the Standard
|
||||
Version.
|
||||
|
||||
(b) ensure that installation of your Modified Version does not
|
||||
prevent the user installing or running the Standard Version. In
|
||||
addition, the Modified Version must bear a name that is different
|
||||
from the name of the Standard Version.
|
||||
|
||||
(c) allow anyone who receives a copy of the Modified Version to
|
||||
make the Source form of the Modified Version available to others
|
||||
under
|
||||
|
||||
(i) the Original License or
|
||||
|
||||
(ii) a license that permits the licensee to freely copy,
|
||||
modify and redistribute the Modified Version using the same
|
||||
licensing terms that apply to the copy that the licensee
|
||||
received, and requires that the Source form of the Modified
|
||||
Version, and of any works derived from it, be made freely
|
||||
available in that license fees are prohibited but Distributor
|
||||
Fees are allowed.
|
||||
|
||||
|
||||
Distribution of Compiled Forms of the Standard Version
|
||||
or Modified Versions without the Source
|
||||
|
||||
(5) You may Distribute Compiled forms of the Standard Version without
|
||||
the Source, provided that you include complete instructions on how to
|
||||
get the Source of the Standard Version. Such instructions must be
|
||||
valid at the time of your distribution. If these instructions, at any
|
||||
time while you are carrying out such distribution, become invalid, you
|
||||
must provide new instructions on demand or cease further distribution.
|
||||
If you provide valid instructions or cease distribution within thirty
|
||||
days after you become aware that the instructions are invalid, then
|
||||
you do not forfeit any of your rights under this license.
|
||||
|
||||
(6) You may Distribute a Modified Version in Compiled form without
|
||||
the Source, provided that you comply with Section 4 with respect to
|
||||
the Source of the Modified Version.
|
||||
|
||||
|
||||
Aggregating or Linking the Package
|
||||
|
||||
(7) You may aggregate the Package (either the Standard Version or
|
||||
Modified Version) with other packages and Distribute the resulting
|
||||
aggregation provided that you do not charge a licensing fee for the
|
||||
Package. Distributor Fees are permitted, and licensing fees for other
|
||||
components in the aggregation are permitted. The terms of this license
|
||||
apply to the use and Distribution of the Standard or Modified Versions
|
||||
as included in the aggregation.
|
||||
|
||||
(8) You are permitted to link Modified and Standard Versions with
|
||||
other works, to embed the Package in a larger work of your own, or to
|
||||
build stand-alone binary or bytecode versions of applications that
|
||||
include the Package, and Distribute the result without restriction,
|
||||
provided the result does not expose a direct interface to the Package.
|
||||
|
||||
|
||||
Items That are Not Considered Part of a Modified Version
|
||||
|
||||
(9) Works (including, but not limited to, modules and scripts) that
|
||||
merely extend or make use of the Package, do not, by themselves, cause
|
||||
the Package to be a Modified Version. In addition, such works are not
|
||||
considered parts of the Package itself, and are not subject to the
|
||||
terms of this license.
|
||||
|
||||
|
||||
General Provisions
|
||||
|
||||
(10) Any use, modification, and distribution of the Standard or
|
||||
Modified Versions is governed by this Artistic License. By using,
|
||||
modifying or distributing the Package, you accept this license. Do not
|
||||
use, modify, or distribute the Package, if you do not accept this
|
||||
license.
|
||||
|
||||
(11) If your Modified Version has been derived from a Modified
|
||||
Version made by someone other than you, you are nevertheless required
|
||||
to ensure that your Modified Version complies with the requirements of
|
||||
this license.
|
||||
|
||||
(12) This license does not grant you the right to use any trademark,
|
||||
service mark, tradename, or logo of the Copyright Holder.
|
||||
|
||||
(13) This license includes the non-exclusive, worldwide,
|
||||
free-of-charge patent license to make, have made, use, offer to sell,
|
||||
sell, import and otherwise transfer the Package with respect to any
|
||||
patent claims licensable by the Copyright Holder that are necessarily
|
||||
infringed by the Package. If you institute patent litigation
|
||||
(including a cross-claim or counterclaim) against any party alleging
|
||||
that the Package constitutes direct or contributory patent
|
||||
infringement, then this Artistic License to you shall terminate on the
|
||||
date that such litigation is filed.
|
||||
|
||||
(14) Disclaimer of Warranty:
|
||||
THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
|
||||
IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
|
||||
NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
|
||||
LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
--------
|
||||
|
||||
Except where noted, this license applies to any and all software
|
||||
programs and associated documentation files created by the
|
||||
Original Author, when distributed with the Software.
|
||||
|
||||
"Node.js" and "node" trademark Joyent, Inc. npm is not officially
|
||||
part of the Node.js project, and is neither owned by nor
|
||||
@@ -231,5 +55,11 @@ Copyright (c) by Tjarda Koster, http://jelloween.deviantart.com
|
||||
included for use in the npm website and documentation,
|
||||
used with permission.
|
||||
|
||||
This program uses several Node modules contained in the node_modules/
|
||||
subdirectory, according to the terms of their respective licenses.
|
||||
This program uses "request", Copyright (c) Mikeal Rogers,
|
||||
according to the terms of the Apache license.
|
||||
|
||||
This program uses "mkdirp", Copyright (c) James Halliday,
|
||||
according to the terms of the MIT/X11 license.
|
||||
|
||||
This program uses "opener", Copyright (c) Domenic Denicola,
|
||||
according to the terms of the DWTFPL2 license.
|
||||
|
||||
8
deps/npm/Makefile
vendored
8
deps/npm/Makefile
vendored
@@ -71,7 +71,7 @@ link: uninstall
|
||||
node cli.js link -f
|
||||
|
||||
clean: ronnclean doc-clean uninstall
|
||||
rm -rf npmrc
|
||||
rm npmrc
|
||||
node cli.js cache clean
|
||||
|
||||
uninstall:
|
||||
@@ -154,13 +154,13 @@ html/doc/misc/%.html: doc/misc/%.md $(html_docdeps)
|
||||
ronn: node_modules/.bin/ronn
|
||||
|
||||
node_modules/.bin/ronn:
|
||||
node cli.js install ronn --no-global
|
||||
node cli.js install ronn
|
||||
|
||||
doc: man
|
||||
|
||||
man: $(cli_docs) $(api_docs)
|
||||
|
||||
test: doc
|
||||
test:
|
||||
node cli.js test
|
||||
|
||||
publish: link doc
|
||||
@@ -214,6 +214,6 @@ release:
|
||||
@bash scripts/release.sh
|
||||
|
||||
sandwich:
|
||||
@[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || (echo "make it yourself" && exit 13)
|
||||
@[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || echo "make it yourself" && exit 13
|
||||
|
||||
.PHONY: all latest install dev link doc clean uninstall test man doc-publish doc-clean docclean docpublish release zip-publish
|
||||
|
||||
9
deps/npm/README.md
vendored
9
deps/npm/README.md
vendored
@@ -179,8 +179,9 @@ you should [read this](https://npmjs.org/doc/developers.html)
|
||||
|
||||
## Legal Stuff
|
||||
|
||||
"npm" and "the npm registry" are owned by Isaac Z. Schlueter.
|
||||
All rights reserved. See the included LICENSE file for more details.
|
||||
"npm" and "the npm registry" are owned by Isaac Z. Schlueter. All
|
||||
rights not explicitly granted in the MIT license are reserved. See the
|
||||
included LICENSE file for more details.
|
||||
|
||||
"Node.js" and "node" are trademarks owned by Joyent, Inc. npm is not
|
||||
officially part of the Node.js project, and is neither owned by nor
|
||||
@@ -233,6 +234,6 @@ will no doubt tell you to put the output in a gist or email.
|
||||
## SEE ALSO
|
||||
|
||||
* npm(1)
|
||||
* npm-faq(7)
|
||||
* npm-faq(1)
|
||||
* npm-help(1)
|
||||
* npm-index(7)
|
||||
* npm-index(1)
|
||||
|
||||
19
deps/npm/doc/api/npm-repo.md
vendored
19
deps/npm/doc/api/npm-repo.md
vendored
@@ -1,19 +0,0 @@
|
||||
npm-repo(3) -- Open package repository page in the browser
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.repo(package, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command tries to guess at the likely location of a package's
|
||||
repository URL, and then tries to open it using the `--browser`
|
||||
config param.
|
||||
|
||||
Like other commands, the first parameter is an array. This command only
|
||||
uses the first element, which is expected to be a package name with an
|
||||
optional version number.
|
||||
|
||||
This command will launch a browser, so this command may not be the most
|
||||
friendly for programmatic use.
|
||||
2
deps/npm/doc/api/npm.md
vendored
2
deps/npm/doc/api/npm.md
vendored
@@ -4,7 +4,7 @@ npm(3) -- node package manager
|
||||
## SYNOPSIS
|
||||
|
||||
var npm = require("npm")
|
||||
npm.load([configObject], function (er, npm) {
|
||||
npm.load([configObject,] function (er, npm) {
|
||||
// use the npm object, now that it's loaded.
|
||||
|
||||
npm.config.set(key, val)
|
||||
|
||||
2
deps/npm/doc/cli/npm-adduser.md
vendored
2
deps/npm/doc/cli/npm-adduser.md
vendored
@@ -15,7 +15,7 @@ The username, password, and email are read in from prompts.
|
||||
You may use this command to change your email address, but not username
|
||||
or password.
|
||||
|
||||
To reset your password, go to <https://npmjs.org/forgot>
|
||||
To reset your password, go to <http://admin.npmjs.org/>
|
||||
|
||||
You may use this command multiple times with the same user account to
|
||||
authorize on a new machine.
|
||||
|
||||
2
deps/npm/doc/cli/npm-bin.md
vendored
2
deps/npm/doc/cli/npm-bin.md
vendored
@@ -13,7 +13,7 @@ Print the folder where npm will install executables.
|
||||
|
||||
* npm-prefix(1)
|
||||
* npm-root(1)
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-config(1)
|
||||
* npm-config(7)
|
||||
* npmrc(5)
|
||||
|
||||
4
deps/npm/doc/cli/npm-bugs.md
vendored
4
deps/npm/doc/cli/npm-bugs.md
vendored
@@ -4,14 +4,12 @@ npm-bugs(1) -- Bugs for a package in a web browser maybe
|
||||
## SYNOPSIS
|
||||
|
||||
npm bugs <pkgname>
|
||||
npm bugs (with no args in a package dir)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command tries to guess at the likely location of a package's
|
||||
bug tracker URL, and then tries to open it using the `--browser`
|
||||
config param. If no package name is provided, it will search for
|
||||
a `package.json` in the current folder and use the `name` property.
|
||||
config param.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
|
||||
10
deps/npm/doc/cli/npm-cache.md
vendored
10
deps/npm/doc/cli/npm-cache.md
vendored
@@ -33,9 +33,9 @@ Used to add, list, or clear the npm cache folder.
|
||||
|
||||
## DETAILS
|
||||
|
||||
npm stores cache data in the directory specified in `npm config get cache`.
|
||||
For each package that is added to the cache, three pieces of information are
|
||||
stored in `{cache}/{name}/{version}`:
|
||||
npm stores cache data in `$HOME/.npm`. For each package that is added
|
||||
to the cache, three pieces of information are stored in
|
||||
`{cache}/{name}/{version}`:
|
||||
|
||||
* .../package/:
|
||||
A folder containing the package contents as they appear in the tarball.
|
||||
@@ -57,13 +57,13 @@ they do not make an HTTP request to the registry.
|
||||
|
||||
### cache
|
||||
|
||||
Default: `~/.npm` on Posix, or `%AppData%/npm-cache` on Windows.
|
||||
Default: `$HOME/.npm` on Posix, or `$HOME/npm-cache` on Windows.
|
||||
|
||||
The root cache folder.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-config(1)
|
||||
* npm-config(7)
|
||||
* npmrc(5)
|
||||
|
||||
1
deps/npm/doc/cli/npm-config.md
vendored
1
deps/npm/doc/cli/npm-config.md
vendored
@@ -8,7 +8,6 @@ npm-config(1) -- Manage the npm configuration files
|
||||
npm config delete <key>
|
||||
npm config list
|
||||
npm config edit
|
||||
npm c [set|get|delete|list]
|
||||
npm get <key>
|
||||
npm set <key> <value> [--global]
|
||||
|
||||
|
||||
5
deps/npm/doc/cli/npm-dedupe.md
vendored
5
deps/npm/doc/cli/npm-dedupe.md
vendored
@@ -4,7 +4,6 @@ npm-dedupe(1) -- Reduce duplication
|
||||
## SYNOPSIS
|
||||
|
||||
npm dedupe [package names...]
|
||||
npm ddp [package names...]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
@@ -47,10 +46,6 @@ registry.
|
||||
|
||||
This feature is experimental, and may change in future versions.
|
||||
|
||||
The `--tag` argument will apply to all of the affected dependencies. If a
|
||||
tag with the given name exists, the tagged version is preferred over newer
|
||||
versions.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-ls(1)
|
||||
|
||||
5
deps/npm/doc/cli/npm-docs.md
vendored
5
deps/npm/doc/cli/npm-docs.md
vendored
@@ -4,16 +4,13 @@ npm-docs(1) -- Docs for a package in a web browser maybe
|
||||
## SYNOPSIS
|
||||
|
||||
npm docs <pkgname>
|
||||
npm docs (with no args in a package dir)
|
||||
npm home <pkgname>
|
||||
npm home (with no args in a package dir)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command tries to guess at the likely location of a package's
|
||||
documentation URL, and then tries to open it using the `--browser`
|
||||
config param. If no package name is provided, it will search for
|
||||
a `package.json` in the current folder and use the `name` property.
|
||||
config param.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
|
||||
2
deps/npm/doc/cli/npm-edit.md
vendored
2
deps/npm/doc/cli/npm-edit.md
vendored
@@ -29,7 +29,7 @@ The command to run for `npm edit` or `npm config edit`.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-explore(1)
|
||||
* npm-install(1)
|
||||
* npm-config(1)
|
||||
|
||||
2
deps/npm/doc/cli/npm-explore.md
vendored
2
deps/npm/doc/cli/npm-explore.md
vendored
@@ -33,7 +33,7 @@ The shell to run for the `npm explore` command.
|
||||
## SEE ALSO
|
||||
|
||||
* npm-submodule(1)
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-edit(1)
|
||||
* npm-rebuild(1)
|
||||
* npm-build(1)
|
||||
|
||||
2
deps/npm/doc/cli/npm-help.md
vendored
2
deps/npm/doc/cli/npm-help.md
vendored
@@ -31,7 +31,7 @@ Set to `"browser"` to view html help content in the default web browser.
|
||||
* npm(1)
|
||||
* README
|
||||
* npm-faq(7)
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-config(1)
|
||||
* npm-config(7)
|
||||
* npmrc(5)
|
||||
|
||||
20
deps/npm/doc/cli/npm-install.md
vendored
20
deps/npm/doc/cli/npm-install.md
vendored
@@ -11,7 +11,7 @@ npm-install(1) -- Install a package
|
||||
npm install <name>@<tag>
|
||||
npm install <name>@<version>
|
||||
npm install <name>@<version range>
|
||||
npm i (with any of the previous argument usage)
|
||||
npm install <name>@<version range>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
@@ -43,9 +43,6 @@ after packing it up into a tarball (b).
|
||||
it installs the current package context (ie, the current working
|
||||
directory) as a global package.
|
||||
|
||||
By default, `npm install` will install all modules listed as
|
||||
dependencies. With the `--production` flag,
|
||||
npm will not install modules listed in `devDependencies`.
|
||||
|
||||
* `npm install <folder>`:
|
||||
|
||||
@@ -155,9 +152,7 @@ For example:
|
||||
|
||||
npm install sax@">=0.1.0 <0.2.0" bench supervisor
|
||||
|
||||
The `--tag` argument will apply to all of the specified install targets. If a
|
||||
tag with the given name exists, the tagged version is preferred over newer
|
||||
versions.
|
||||
The `--tag` argument will apply to all of the specified install targets.
|
||||
|
||||
The `--force` argument will force npm to fetch remote resources even if a
|
||||
local copy exists on disk.
|
||||
@@ -165,7 +160,7 @@ local copy exists on disk.
|
||||
npm install sax --force
|
||||
|
||||
The `--global` argument will cause npm to install the package globally
|
||||
rather than locally. See `npm-folders(5)`.
|
||||
rather than locally. See `npm-folders(7)`.
|
||||
|
||||
The `--link` argument will cause npm to link global installs into the
|
||||
local space in some cases.
|
||||
@@ -173,9 +168,6 @@ local space in some cases.
|
||||
The `--no-bin-links` argument will prevent npm from creating symlinks for
|
||||
any binaries the package might contain.
|
||||
|
||||
The `--no-optional` argument will prevent optional dependencies from
|
||||
being installed.
|
||||
|
||||
The `--no-shrinkwrap` argument, which will ignore an available
|
||||
shrinkwrap file and use the package.json instead.
|
||||
|
||||
@@ -210,7 +202,7 @@ this algorithm produces:
|
||||
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.
|
||||
|
||||
See npm-folders(5) for a more detailed description of the specific
|
||||
See npm-folders(7) for a more detailed description of the specific
|
||||
folder structures that npm creates.
|
||||
|
||||
### Limitations of npm's Install Algorithm
|
||||
@@ -236,7 +228,7 @@ affects a real use-case, it will be investigated.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-update(1)
|
||||
* npm-link(1)
|
||||
* npm-rebuild(1)
|
||||
@@ -246,7 +238,7 @@ affects a real use-case, it will be investigated.
|
||||
* npm-config(7)
|
||||
* npmrc(5)
|
||||
* npm-registry(7)
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-tag(1)
|
||||
* npm-rm(1)
|
||||
* npm-shrinkwrap(1)
|
||||
|
||||
5
deps/npm/doc/cli/npm-link.md
vendored
5
deps/npm/doc/cli/npm-link.md
vendored
@@ -5,7 +5,6 @@ npm-link(1) -- Symlink a package folder
|
||||
|
||||
npm link (in package folder)
|
||||
npm link <pkgname>
|
||||
npm ln (with any of the previous argument usage)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
@@ -17,7 +16,7 @@ symbolic link from `prefix/package-name` to the current folder.
|
||||
Next, in some other location, `npm link package-name` will create a
|
||||
symlink from the local `node_modules` folder to the global symlink.
|
||||
|
||||
Note that `package-name` is taken from `package.json`,
|
||||
Note that `package-name` is taken from `package.json` ,
|
||||
not from directory name.
|
||||
|
||||
When creating tarballs for `npm publish`, the linked packages are
|
||||
@@ -57,7 +56,7 @@ installation target into your project's `node_modules` folder.
|
||||
* npm-faq(7)
|
||||
* package.json(5)
|
||||
* npm-install(1)
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-config(1)
|
||||
* npm-config(7)
|
||||
* npmrc(5)
|
||||
|
||||
2
deps/npm/doc/cli/npm-ls.md
vendored
2
deps/npm/doc/cli/npm-ls.md
vendored
@@ -66,7 +66,7 @@ project.
|
||||
* npm-config(1)
|
||||
* npm-config(7)
|
||||
* npmrc(5)
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-install(1)
|
||||
* npm-link(1)
|
||||
* npm-prune(1)
|
||||
|
||||
6
deps/npm/doc/cli/npm-outdated.md
vendored
6
deps/npm/doc/cli/npm-outdated.md
vendored
@@ -10,12 +10,8 @@ npm-outdated(1) -- Check for outdated packages
|
||||
This command will check the registry to see if any (or, specific) installed
|
||||
packages are currently outdated.
|
||||
|
||||
The resulting field 'wanted' shows the latest version according to the
|
||||
version specified in the package.json, the field 'latest' the very latest
|
||||
version of the package.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-update(1)
|
||||
* npm-registry(7)
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
|
||||
2
deps/npm/doc/cli/npm-prefix.md
vendored
2
deps/npm/doc/cli/npm-prefix.md
vendored
@@ -13,7 +13,7 @@ Print the prefix to standard out.
|
||||
|
||||
* npm-root(1)
|
||||
* npm-bin(1)
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-config(1)
|
||||
* npm-config(7)
|
||||
* npmrc(5)
|
||||
|
||||
8
deps/npm/doc/cli/npm-prune.md
vendored
8
deps/npm/doc/cli/npm-prune.md
vendored
@@ -4,7 +4,6 @@ npm-prune(1) -- Remove extraneous packages
|
||||
## SYNOPSIS
|
||||
|
||||
npm prune [<name> [<name ...]]
|
||||
npm prune [<name> [<name ...]] [--production]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
@@ -15,11 +14,8 @@ removed.
|
||||
Extraneous packages are packages that are not listed on the parent
|
||||
package's dependencies list.
|
||||
|
||||
If the `--production` flag is specified, this command will remove the
|
||||
packages specified in your `devDependencies`.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-rm(1)
|
||||
* npm-folders(5)
|
||||
* npm-ls(1)
|
||||
* npm-folders(7)
|
||||
* npm-list(1)
|
||||
|
||||
1
deps/npm/doc/cli/npm-rebuild.md
vendored
1
deps/npm/doc/cli/npm-rebuild.md
vendored
@@ -4,7 +4,6 @@ npm-rebuild(1) -- Rebuild a package
|
||||
## SYNOPSIS
|
||||
|
||||
npm rebuild [<name> [<name> ...]]
|
||||
npm rb [<name> [<name> ...]]
|
||||
|
||||
* `<name>`:
|
||||
The package to rebuild
|
||||
|
||||
28
deps/npm/doc/cli/npm-repo.md
vendored
28
deps/npm/doc/cli/npm-repo.md
vendored
@@ -1,28 +0,0 @@
|
||||
npm-repo(1) -- Open package repository page in the browser
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm repo <pkgname>
|
||||
npm repo (with no args in a package dir)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command tries to guess at the likely location of a package's
|
||||
repository URL, and then tries to open it using the `--browser`
|
||||
config param. If no package name is provided, it will search for
|
||||
a `package.json` in the current folder and use the `name` property.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### browser
|
||||
|
||||
* Default: OS X: `"open"`, Windows: `"start"`, Others: `"xdg-open"`
|
||||
* Type: String
|
||||
|
||||
The browser that is called by the `npm repo` command to open websites.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-docs(1)
|
||||
* npm-config(1)
|
||||
4
deps/npm/doc/cli/npm-rm.md
vendored
4
deps/npm/doc/cli/npm-rm.md
vendored
@@ -4,9 +4,7 @@ npm-rm(1) -- Remove a package
|
||||
## SYNOPSIS
|
||||
|
||||
npm rm <name>
|
||||
npm r <name>
|
||||
npm uninstall <name>
|
||||
npm un <name>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
@@ -17,7 +15,7 @@ on its behalf.
|
||||
|
||||
* npm-prune(1)
|
||||
* npm-install(1)
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-config(1)
|
||||
* npm-config(7)
|
||||
* npmrc(5)
|
||||
|
||||
2
deps/npm/doc/cli/npm-root.md
vendored
2
deps/npm/doc/cli/npm-root.md
vendored
@@ -13,7 +13,7 @@ Print the effective `node_modules` folder to standard out.
|
||||
|
||||
* npm-prefix(1)
|
||||
* npm-bin(1)
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-config(1)
|
||||
* npm-config(7)
|
||||
* npmrc(5)
|
||||
|
||||
2
deps/npm/doc/cli/npm-search.md
vendored
2
deps/npm/doc/cli/npm-search.md
vendored
@@ -4,8 +4,6 @@ npm-search(1) -- Search for packages
|
||||
## SYNOPSIS
|
||||
|
||||
npm search [search terms ...]
|
||||
npm s [search terms ...]
|
||||
npm se [search terms ...]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
|
||||
2
deps/npm/doc/cli/npm-shrinkwrap.md
vendored
2
deps/npm/doc/cli/npm-shrinkwrap.md
vendored
@@ -182,4 +182,4 @@ contents rather than versions.
|
||||
|
||||
* npm-install(1)
|
||||
* package.json(5)
|
||||
* npm-ls(1)
|
||||
* npm-list(1)
|
||||
|
||||
15
deps/npm/doc/cli/npm-tag.md
vendored
15
deps/npm/doc/cli/npm-tag.md
vendored
@@ -10,24 +10,9 @@ npm-tag(1) -- Tag a published version
|
||||
Tags the specified version of the package with the specified tag, or the
|
||||
`--tag` config if not specified.
|
||||
|
||||
A tag can be used when installing packages as a reference to a version instead
|
||||
of using a specific version number:
|
||||
|
||||
npm install <name>@<tag>
|
||||
|
||||
When installing dependencies, a preferred tagged version may be specified:
|
||||
|
||||
npm install --tag <tag>
|
||||
|
||||
This also applies to `npm dedupe`.
|
||||
|
||||
Publishing a package always sets the "latest" tag to the published version.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-publish(1)
|
||||
* npm-install(1)
|
||||
* npm-dedupe(1)
|
||||
* npm-registry(7)
|
||||
* npm-config(1)
|
||||
* npm-config(7)
|
||||
|
||||
1
deps/npm/doc/cli/npm-test.md
vendored
1
deps/npm/doc/cli/npm-test.md
vendored
@@ -4,7 +4,6 @@ npm-test(1) -- Test a package
|
||||
## SYNOPSIS
|
||||
|
||||
npm test <name>
|
||||
npm tst <name>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
|
||||
2
deps/npm/doc/cli/npm-uninstall.md
vendored
2
deps/npm/doc/cli/npm-uninstall.md
vendored
@@ -15,7 +15,7 @@ on its behalf.
|
||||
|
||||
* npm-prune(1)
|
||||
* npm-install(1)
|
||||
* npm-folders(5)
|
||||
* npm-folders(7)
|
||||
* npm-config(1)
|
||||
* npm-config(7)
|
||||
* npmrc(5)
|
||||
|
||||
4
deps/npm/doc/cli/npm-update.md
vendored
4
deps/npm/doc/cli/npm-update.md
vendored
@@ -20,5 +20,5 @@ If no package name is specified, all packages in the specified location (global
|
||||
* npm-install(1)
|
||||
* npm-outdated(1)
|
||||
* npm-registry(7)
|
||||
* npm-folders(5)
|
||||
* npm-ls(1)
|
||||
* npm-folders(7)
|
||||
* npm-list(1)
|
||||
|
||||
6
deps/npm/doc/cli/npm-version.md
vendored
6
deps/npm/doc/cli/npm-version.md
vendored
@@ -3,7 +3,7 @@ npm-version(1) -- Bump a package version
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm version [<newversion> | major | minor | patch]
|
||||
npm version [<newversion> | major | minor | patch | build]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
@@ -11,7 +11,7 @@ Run this in a package directory to bump the version and write the new
|
||||
data back to the package.json file.
|
||||
|
||||
The `newversion` argument should be a valid semver string, *or* a valid
|
||||
second argument to semver.inc (one of "patch", "minor", or
|
||||
second argument to semver.inc (one of "build", "patch", "minor", or
|
||||
"major"). In the second case, the existing version will be incremented
|
||||
by 1 in the specified field.
|
||||
|
||||
@@ -42,4 +42,4 @@ in your git config for this to work properly. For example:
|
||||
|
||||
* npm-init(1)
|
||||
* package.json(5)
|
||||
* semver(7)
|
||||
* npm-semver(7)
|
||||
|
||||
1
deps/npm/doc/cli/npm-view.md
vendored
1
deps/npm/doc/cli/npm-view.md
vendored
@@ -4,7 +4,6 @@ npm-view(1) -- View registry info
|
||||
## SYNOPSIS
|
||||
|
||||
npm view <name>[@<version>] [<field>[.<subfield>]...]
|
||||
npm v <name>[@<version>] [<field>[.<subfield>]...]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
|
||||
6
deps/npm/doc/cli/npm.md
vendored
6
deps/npm/doc/cli/npm.md
vendored
@@ -33,7 +33,7 @@ Use `npm ls` to show everything you've installed.
|
||||
|
||||
## DIRECTORIES
|
||||
|
||||
See `npm-folders(5)` to learn about where npm puts stuff.
|
||||
See `npm-folders(7)` to learn about where npm puts stuff.
|
||||
|
||||
In particular, npm has two modes of operation:
|
||||
|
||||
@@ -132,6 +132,10 @@ as expected. The `npm-debug.log` file is also helpful to provide.
|
||||
You can also look for isaacs in #node.js on irc://irc.freenode.net. He
|
||||
will no doubt tell you to put the output in a gist or email.
|
||||
|
||||
## HISTORY
|
||||
|
||||
See npm-changelog(1)
|
||||
|
||||
## AUTHOR
|
||||
|
||||
[Isaac Z. Schlueter](http://blog.izs.me/) ::
|
||||
|
||||
182
deps/npm/doc/files/package.json.md
vendored
182
deps/npm/doc/files/package.json.md
vendored
@@ -9,6 +9,32 @@ file. It must be actual JSON, not just a JavaScript object literal.
|
||||
A lot of the behavior described in this document is affected by the config
|
||||
settings described in `npm-config(7)`.
|
||||
|
||||
## DEFAULT VALUES
|
||||
|
||||
npm will default some values based on package contents.
|
||||
|
||||
* `"scripts": {"start": "node server.js"}`
|
||||
|
||||
If there is a `server.js` file in the root of your package, then npm
|
||||
will default the `start` command to `node server.js`.
|
||||
|
||||
* `"scripts":{"preinstall": "node-waf clean || true; node-waf configure build"}`
|
||||
|
||||
If there is a `wscript` file in the root of your package, npm will
|
||||
default the `preinstall` command to compile using node-waf.
|
||||
|
||||
* `"scripts":{"preinstall": "node-gyp rebuild"}`
|
||||
|
||||
If there is a `binding.gyp` file in the root of your package, npm will
|
||||
default the `preinstall` command to compile using node-gyp.
|
||||
|
||||
* `"contributors": [...]`
|
||||
|
||||
If there is an `AUTHORS` file in the root of your package, npm will
|
||||
treat each line as a `Name <email> (url)` format, where email and url
|
||||
are optional. Lines which start with a `#` or are blank, will be
|
||||
ignored.
|
||||
|
||||
## name
|
||||
|
||||
The *most* important things in your package.json are the name and version fields.
|
||||
@@ -42,7 +68,18 @@ Version must be parseable by
|
||||
[node-semver](https://github.com/isaacs/node-semver), which is bundled
|
||||
with npm as a dependency. (`npm install semver` to use it yourself.)
|
||||
|
||||
More on version numbers and ranges at semver(7).
|
||||
Here's how npm's semver implementation deviates from what's on semver.org:
|
||||
|
||||
* Versions can start with "v"
|
||||
* A numeric item separated from the main three-number version by a hyphen
|
||||
will be interpreted as a "build" number, and will *increase* the version.
|
||||
But, if the tag is not a number separated by a hyphen, then it's treated
|
||||
as a pre-release tag, and is *less than* the version without a tag.
|
||||
So, `0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta`
|
||||
|
||||
This is a little bit confusing to explain, but matches what you see in practice
|
||||
when people create tags in git like "v1.2.3" and then do "git describe" to generate
|
||||
a patch version.
|
||||
|
||||
## description
|
||||
|
||||
@@ -86,18 +123,21 @@ If a url is provided, it will be used by the `npm bugs` command.
|
||||
You should specify a license for your package so that people know how they are
|
||||
permitted to use it, and any restrictions you're placing on it.
|
||||
|
||||
The simplest way, assuming you're using a common license such as BSD-3-Clause
|
||||
or MIT, is to just specify the standard SPDX ID of the license you're using,
|
||||
like this:
|
||||
The simplest way, assuming you're using a common license such as BSD or MIT, is
|
||||
to just specify the name of the license you're using, like this:
|
||||
|
||||
{ "license" : "BSD-3-Clause" }
|
||||
{ "license" : "BSD" }
|
||||
|
||||
You can check [the full list of SPDX license IDs](https://spdx.org/licenses/).
|
||||
Ideally you should pick one that is
|
||||
[OSI](http://opensource.org/licenses/alphabetical) approved.
|
||||
If you have more complex licensing terms, or you want to provide more detail
|
||||
in your package.json file, you can use the more verbose plural form, like this:
|
||||
|
||||
It's also a good idea to include a LICENSE file at the top level in
|
||||
your package.
|
||||
"licenses" : [
|
||||
{ "type" : "MyLicense"
|
||||
, "url" : "http://github.com/owner/project/path/to/license"
|
||||
}
|
||||
]
|
||||
|
||||
It's also a good idea to include a license file at the top level in your package.
|
||||
|
||||
## people fields: author, contributors
|
||||
|
||||
@@ -295,30 +335,30 @@ configs.
|
||||
|
||||
## dependencies
|
||||
|
||||
Dependencies are specified with a simple hash of package name to
|
||||
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.
|
||||
Dependencies are specified with a simple hash of package name to version
|
||||
range. The version range is EITHER a string which has one or more
|
||||
space-separated descriptors, OR a range like "fromVersion - toVersion"
|
||||
|
||||
**Please do not put test harnesses or transpilers in your
|
||||
`dependencies` hash.** See `devDependencies`, below.
|
||||
**Please do not put test harnesses in your `dependencies` hash.** See
|
||||
`devDependencies`, below.
|
||||
|
||||
See semver(7) for more details about specifying version ranges.
|
||||
Version range descriptors may be any of the following styles, where "version"
|
||||
is a semver compatible version identifier.
|
||||
|
||||
* `version` Must match `version` exactly
|
||||
* `=version` Same as just `version`
|
||||
* `>version` Must be greater than `version`
|
||||
* `>=version` etc
|
||||
* `<version`
|
||||
* `<=version`
|
||||
* `~version` "Approximately equivalent to version" See semver(7)
|
||||
* `1.2.x` 1.2.0, 1.2.1, etc., but not 1.3.0
|
||||
* `~version` See 'Tilde Version Ranges' below
|
||||
* `1.2.x` See 'X Version Ranges' below
|
||||
* `http://...` See 'URLs as Dependencies' below
|
||||
* `*` Matches any version
|
||||
* `""` (just an empty string) Same as `*`
|
||||
* `version1 - version2` Same as `>=version1 <=version2`.
|
||||
* `range1 || range2` Passes if either range1 or range2 are satisfied.
|
||||
* `git...` See 'Git URLs as Dependencies' below
|
||||
* `user/repo` See 'GitHub URLs' below
|
||||
|
||||
For example, these are all valid:
|
||||
|
||||
@@ -336,9 +376,40 @@ For example, these are all valid:
|
||||
}
|
||||
}
|
||||
|
||||
### Tilde Version Ranges
|
||||
|
||||
A range specifier starting with a tilde `~` character is matched against
|
||||
a version in the following fashion.
|
||||
|
||||
* The version must be at least as high as the range.
|
||||
* The version must be less than the next major revision above the range.
|
||||
|
||||
For example, the following are equivalent:
|
||||
|
||||
* `"~1.2.3" = ">=1.2.3 <1.3.0"`
|
||||
* `"~1.2" = ">=1.2.0 <1.3.0"`
|
||||
* `"~1" = ">=1.0.0 <1.1.0"`
|
||||
|
||||
### X Version Ranges
|
||||
|
||||
An "x" in a version range specifies that the version number must start
|
||||
with the supplied digits, but any digit may be used in place of the x.
|
||||
|
||||
The following are equivalent:
|
||||
|
||||
* `"1.2.x" = ">=1.2.0 <1.3.0"`
|
||||
* `"1.x.x" = ">=1.0.0 <2.0.0"`
|
||||
* `"1.2" = "1.2.x"`
|
||||
* `"1.x" = "1.x.x"`
|
||||
* `"1" = "1.x.x"`
|
||||
|
||||
You may not supply a comparator with a version containing an x. Any
|
||||
digits after the first "x" are ignored.
|
||||
|
||||
### URLs as Dependencies
|
||||
|
||||
You may specify a tarball URL in place of a version range.
|
||||
Starting with npm version 0.2.14, you may specify a tarball URL in place
|
||||
of a version range.
|
||||
|
||||
This tarball will be downloaded and installed locally to your package at
|
||||
install time.
|
||||
@@ -356,20 +427,6 @@ Git urls can be of the form:
|
||||
The `commit-ish` can be any tag, sha, or branch which can be supplied as
|
||||
an argument to `git checkout`. The default is `master`.
|
||||
|
||||
## GitHub URLs
|
||||
|
||||
As of version 1.1.65, you can refer to GitHub urls as just "foo": "user/foo-project". For example:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "foo",
|
||||
"version": "0.0.0",
|
||||
"dependencies": {
|
||||
"express": "visionmedia/express"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## devDependencies
|
||||
|
||||
If someone is planning on downloading and using your module in their
|
||||
@@ -379,35 +436,11 @@ the external test or documentation framework that you use.
|
||||
In this case, it's best to list these additional items in a
|
||||
`devDependencies` hash.
|
||||
|
||||
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
|
||||
These things will be installed whenever the `--dev` configuration flag
|
||||
is set. This flag is set automatically when doing `npm link` or when doing
|
||||
`npm install` from the root of a package, and can be managed like any other npm
|
||||
configuration param. See `npm-config(7)` for more on the topic.
|
||||
|
||||
For build steps that are not platform-specific, such as compiling
|
||||
CoffeeScript or other languages to JavaScript, use the `prepublish`
|
||||
script to do this, and make the required package a devDependency.
|
||||
|
||||
For example:
|
||||
|
||||
```json
|
||||
{ "name": "ethopia-waza",
|
||||
"description": "a delightfully fruity coffee varietal",
|
||||
"version": "1.2.3",
|
||||
"devDependencies": {
|
||||
"coffee-script": "~1.6.3"
|
||||
},
|
||||
"scripts": {
|
||||
"prepublish": "coffee -o lib/ -c src/waza.coffee"
|
||||
},
|
||||
"main": "lib/waza.js"
|
||||
}
|
||||
```
|
||||
|
||||
The `prepublish` script will be run before publishing, so that users
|
||||
can consume the functionality without requiring them to compile it
|
||||
themselves. In dev mode (ie, locally running `npm install`), it'll
|
||||
run this script as well, so that you can test it easily.
|
||||
|
||||
## bundledDependencies
|
||||
|
||||
Array of package names that will be bundled when publishing the package.
|
||||
@@ -448,7 +481,7 @@ Entries in `optionalDependencies` will override entries of the same name in
|
||||
|
||||
You can specify the version of node that your stuff works on:
|
||||
|
||||
{ "engines" : { "node" : ">=0.10.3 <0.12" } }
|
||||
{ "engines" : { "node" : ">=0.1.27 <0.1.30" } }
|
||||
|
||||
And, like with dependencies, if you don't specify the version (or if you
|
||||
specify "\*" as the version), then any version of node will do.
|
||||
@@ -541,30 +574,9 @@ Any config values can be overridden, but of course only "tag" and
|
||||
See `npm-config(7)` to see the list of config options that can be
|
||||
overridden.
|
||||
|
||||
## DEFAULT VALUES
|
||||
|
||||
npm will default some values based on package contents.
|
||||
|
||||
* `"scripts": {"start": "node server.js"}`
|
||||
|
||||
If there is a `server.js` file in the root of your package, then npm
|
||||
will default the `start` command to `node server.js`.
|
||||
|
||||
* `"scripts":{"preinstall": "node-gyp rebuild"}`
|
||||
|
||||
If there is a `binding.gyp` file in the root of your package, npm will
|
||||
default the `preinstall` command to compile using node-gyp.
|
||||
|
||||
* `"contributors": [...]`
|
||||
|
||||
If there is an `AUTHORS` file in the root of your package, npm will
|
||||
treat each line as a `Name <email> (url)` format, where email and url
|
||||
are optional. Lines which start with a `#` or are blank, will be
|
||||
ignored.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* semver(7)
|
||||
* npm-semver(7)
|
||||
* npm-init(1)
|
||||
* npm-version(1)
|
||||
* npm-config(1)
|
||||
|
||||
135
deps/npm/doc/misc/npm-config.md
vendored
135
deps/npm/doc/misc/npm-config.md
vendored
@@ -146,7 +146,7 @@ See also the `strict-ssl` config.
|
||||
|
||||
### cache
|
||||
|
||||
* Default: Windows: `%AppData%\npm-cache`, Posix: `~/.npm`
|
||||
* Default: Windows: `%APPDATA%\npm-cache`, Posix: `~/.npm`
|
||||
* Type: path
|
||||
|
||||
The location of npm's cache directory. See `npm-cache(1)`
|
||||
@@ -194,13 +194,6 @@ re-checking against the registry.
|
||||
Note that no purging is done unless the `npm cache clean` command is
|
||||
explicitly used, and that only GET requests use the cache.
|
||||
|
||||
### cert
|
||||
|
||||
* Default: `null`
|
||||
* Type: String
|
||||
|
||||
A client certificate to pass when accessing the registry.
|
||||
|
||||
### color
|
||||
|
||||
* Default: true on Posix, false on Windows
|
||||
@@ -209,6 +202,14 @@ A client certificate to pass when accessing the registry.
|
||||
If false, never shows colors. If `"always"` then always shows colors.
|
||||
If true, then only prints color codes for tty file descriptors.
|
||||
|
||||
### coverage
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
A flag to tell test-harness to run with their coverage options enabled,
|
||||
if they respond to the `npm_config_coverage` environment variable.
|
||||
|
||||
### depth
|
||||
|
||||
* Default: Infinity
|
||||
@@ -242,12 +243,6 @@ set.
|
||||
|
||||
The command to run for `npm edit` or `npm config edit`.
|
||||
|
||||
### email
|
||||
|
||||
The email of the logged-in user.
|
||||
|
||||
Set by the `npm adduser` command. Should not be set explicitly.
|
||||
|
||||
### engine-strict
|
||||
|
||||
* Default: false
|
||||
@@ -310,13 +305,6 @@ The command to use for git commands. If git is installed on the
|
||||
computer, but is not in the `PATH`, then set this to the full path to
|
||||
the git binary.
|
||||
|
||||
### git-tag-version
|
||||
|
||||
* Default: `true`
|
||||
* Type: Boolean
|
||||
|
||||
Tag the commit when using the `npm version` command.
|
||||
|
||||
### global
|
||||
|
||||
* Default: false
|
||||
@@ -324,7 +312,7 @@ Tag the commit when using the `npm version` command.
|
||||
|
||||
Operates in "global" mode, so that packages are installed into the
|
||||
`prefix` folder instead of the current working directory. See
|
||||
`npm-folders(5)` for more on the differences in behavior.
|
||||
`npm-folders(7)` for more on the differences in behavior.
|
||||
|
||||
* packages are installed into the `{prefix}/lib/node_modules` folder, instead of the
|
||||
current working directory.
|
||||
@@ -338,6 +326,17 @@ Operates in "global" mode, so that packages are installed into the
|
||||
|
||||
The config file to read for global config options.
|
||||
|
||||
### globalignorefile
|
||||
|
||||
* Default: {prefix}/etc/npmignore
|
||||
* Type: path
|
||||
|
||||
The config file to read for global ignore patterns to apply to all users
|
||||
and all projects.
|
||||
|
||||
If not found, but there is a "gitignore" file in the
|
||||
same directory, then that will be used instead.
|
||||
|
||||
### group
|
||||
|
||||
* Default: GID of the current process
|
||||
@@ -346,13 +345,6 @@ The config file to read for global config options.
|
||||
The group to use when running package scripts in global mode as the root
|
||||
user.
|
||||
|
||||
### heading
|
||||
|
||||
* Default: `"npm"`
|
||||
* Type: String
|
||||
|
||||
The string that starts all the debugging log output.
|
||||
|
||||
### https-proxy
|
||||
|
||||
* Default: the `HTTPS_PROXY` or `https_proxy` or `HTTP_PROXY` or
|
||||
@@ -361,12 +353,20 @@ The string that starts all the debugging log output.
|
||||
|
||||
A proxy to use for outgoing https requests.
|
||||
|
||||
### ignore-scripts
|
||||
### user-agent
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
* Default: node/{process.version} {process.platform} {process.arch}
|
||||
* Type: String
|
||||
|
||||
If true, npm does not run scripts specified in package.json files.
|
||||
Sets a User-Agent to the request header
|
||||
|
||||
### ignore
|
||||
|
||||
* Default: ""
|
||||
* Type: string
|
||||
|
||||
A white-space separated list of glob patterns of files to always exclude
|
||||
from packages when building tarballs.
|
||||
|
||||
### init-module
|
||||
|
||||
@@ -378,6 +378,13 @@ documentation for the
|
||||
[init-package-json](https://github.com/isaacs/init-package-json) module
|
||||
for more information, or npm-init(1).
|
||||
|
||||
### init.version
|
||||
|
||||
* Default: "0.0.0"
|
||||
* Type: semver
|
||||
|
||||
The value `npm init` should use by default for the package version.
|
||||
|
||||
### init.author.name
|
||||
|
||||
* Default: ""
|
||||
@@ -399,13 +406,6 @@ The value `npm init` should use by default for the package author's email.
|
||||
|
||||
The value `npm init` should use by default for the package author's homepage.
|
||||
|
||||
### init.license
|
||||
|
||||
* Default: "BSD-2-Clause"
|
||||
* Type: String
|
||||
|
||||
The value `npm init` should use by default for the package license.
|
||||
|
||||
### json
|
||||
|
||||
* Default: false
|
||||
@@ -417,13 +417,6 @@ This feature is currently experimental, and the output data structures
|
||||
for many commands is either not implemented in JSON yet, or subject to
|
||||
change. Only the output from `npm ls --json` is currently valid.
|
||||
|
||||
### key
|
||||
|
||||
* Default: `null`
|
||||
* Type: String
|
||||
|
||||
A client key to pass when accessing the registry.
|
||||
|
||||
### link
|
||||
|
||||
* Default: false
|
||||
@@ -440,14 +433,6 @@ if one of the two conditions are met:
|
||||
* the globally installed version is identical to the version that is
|
||||
being installed locally.
|
||||
|
||||
### local-address
|
||||
|
||||
* Default: undefined
|
||||
* Type: IP Address
|
||||
|
||||
The IP address of the local interface to use when making connections
|
||||
to the npm registry. Must be IPv4 in versions of Node prior to 0.12.
|
||||
|
||||
### loglevel
|
||||
|
||||
* Default: "http"
|
||||
@@ -503,7 +488,15 @@ The node version to use when checking package's "engines" hash.
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Run tests on installation.
|
||||
Run tests on installation and report results to the
|
||||
`npaturl`.
|
||||
|
||||
### npaturl
|
||||
|
||||
* Default: Not yet implemented
|
||||
* Type: url
|
||||
|
||||
The url to report npat test results.
|
||||
|
||||
### onload-script
|
||||
|
||||
@@ -532,7 +525,7 @@ standard output.
|
||||
|
||||
### prefix
|
||||
|
||||
* Default: see npm-folders(5)
|
||||
* Default: see npm-folders(7)
|
||||
* Type: path
|
||||
|
||||
The location to install global items. If set on the command line, then
|
||||
@@ -763,6 +756,16 @@ The username on the npm registry. Set with `npm adduser`
|
||||
|
||||
The location of user-level configuration settings.
|
||||
|
||||
### userignorefile
|
||||
|
||||
* Default: ~/.npmignore
|
||||
* Type: path
|
||||
|
||||
The location of a user-level ignore file to apply to all packages.
|
||||
|
||||
If not found, but there is a .gitignore file in the same directory, then
|
||||
that will be used instead.
|
||||
|
||||
### umask
|
||||
|
||||
* Default: 022
|
||||
@@ -775,13 +778,6 @@ Folders and executables are given a mode which is `0777` masked against
|
||||
this value. Other files are given a mode which is `0666` masked against
|
||||
this value. Thus, the defaults are `0755` and `0644` respectively.
|
||||
|
||||
### user-agent
|
||||
|
||||
* Default: node/{process.version} {process.platform} {process.arch}
|
||||
* Type: String
|
||||
|
||||
Sets a User-Agent to the request header
|
||||
|
||||
### version
|
||||
|
||||
* Default: false
|
||||
@@ -810,6 +806,17 @@ The program to use to view help content.
|
||||
|
||||
Set to `"browser"` to view html help content in the default web browser.
|
||||
|
||||
### yes
|
||||
|
||||
* Default: null
|
||||
* Type: Boolean or null
|
||||
|
||||
If set to `null`, then prompt the user for responses in some
|
||||
circumstances.
|
||||
|
||||
If set to `true`, then answer "yes" to any prompt. If set to `false`
|
||||
then answer "no" to any prompt.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-config(1)
|
||||
|
||||
1
deps/npm/doc/misc/npm-faq.md
vendored
1
deps/npm/doc/misc/npm-faq.md
vendored
@@ -277,7 +277,6 @@ Windows:
|
||||
|
||||
* <http://github.com/marcelklehr/nodist>
|
||||
* <https://github.com/hakobera/nvmw>
|
||||
* <https://github.com/nanjingboy/nvmw>
|
||||
|
||||
## How can I use npm for development?
|
||||
|
||||
|
||||
8
deps/npm/doc/misc/npm-index.md
vendored
8
deps/npm/doc/misc/npm-index.md
vendored
@@ -115,10 +115,6 @@ Publish a package
|
||||
|
||||
Rebuild a package
|
||||
|
||||
## npm-repo(1)
|
||||
|
||||
Open package repository page in the browser
|
||||
|
||||
## npm-restart(1)
|
||||
|
||||
Start a package
|
||||
@@ -285,10 +281,6 @@ Publish a package
|
||||
|
||||
Rebuild a package
|
||||
|
||||
## npm-repo(3)
|
||||
|
||||
Open package repository page in the browser
|
||||
|
||||
## npm-restart(3)
|
||||
|
||||
Start a package
|
||||
|
||||
29
deps/npm/doc/misc/npm-registry.md
vendored
29
deps/npm/doc/misc/npm-registry.md
vendored
@@ -53,8 +53,33 @@ otherwise.
|
||||
|
||||
## Do I have to use couchdb to build a registry that npm can talk to?
|
||||
|
||||
No, but it's way easier. Basically, yes, you do, or you have to
|
||||
effectively implement the entire CouchDB API anyway.
|
||||
No, but it's way easier.
|
||||
|
||||
## I published something elsewhere, and want to tell the npm registry about it.
|
||||
|
||||
That is supported, but not using the npm client. You'll have to get
|
||||
your hands dirty and do some HTTP. The request looks something like
|
||||
this:
|
||||
|
||||
PUT /my-foreign-package
|
||||
content-type:application/json
|
||||
accept:application/json
|
||||
authorization:Basic $base_64_encoded
|
||||
|
||||
{ "name":"my-foreign-package"
|
||||
, "maintainers":["owner","usernames"]
|
||||
, "description":"A package that is hosted elsewhere"
|
||||
, "keywords":["nih","my cheese smells the best"]
|
||||
, "url":"http://my-different-registry.com/blerg/my-local-package"
|
||||
}
|
||||
|
||||
(Keywords and description are optional, but recommended. Name,
|
||||
maintainers, and url are required.)
|
||||
|
||||
Then, when a user tries to install "my-foreign-package", it'll redirect
|
||||
to your registry. If that doesn't resolve to a valid package entry,
|
||||
then it'll fail, so please make sure that you understand the spec, and
|
||||
ask for help on the <npm-@googlegroups.com> mailing list.
|
||||
|
||||
## Is there a website or something to see package docs and such?
|
||||
|
||||
|
||||
2
deps/npm/doc/misc/npm-scripts.md
vendored
2
deps/npm/doc/misc/npm-scripts.md
vendored
@@ -33,7 +33,7 @@ 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 run by doing
|
||||
Additionally, arbitrary scrips can be run by doing
|
||||
`npm run-script <stage> <pkg>`.
|
||||
|
||||
## NOTE: INSTALL SCRIPTS ARE AN ANTIPATTERN
|
||||
|
||||
9
deps/npm/html/doc/README.html
vendored
9
deps/npm/html/doc/README.html
vendored
@@ -185,8 +185,9 @@ you should <a href="https://npmjs.org/doc/developers.html">read this</a></p>
|
||||
|
||||
<h2 id="Legal-Stuff">Legal Stuff</h2>
|
||||
|
||||
<p>"npm" and "the npm registry" are owned by Isaac Z. Schlueter.
|
||||
All rights reserved. See the included LICENSE file for more details.</p>
|
||||
<p>"npm" and "the npm registry" are owned by Isaac Z. Schlueter. All
|
||||
rights not explicitly granted in the MIT license are reserved. See the
|
||||
included LICENSE file for more details.</p>
|
||||
|
||||
<p>"Node.js" and "node" are trademarks owned by Joyent, Inc. npm is not
|
||||
officially part of the Node.js project, and is neither owned by nor
|
||||
@@ -237,9 +238,9 @@ 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></ul>
|
||||
<ul><li><a href="cli/npm.html">npm(1)</a></li><li><a href="cli/npm-faq.html">npm-faq(1)</a></li><li><a href="cli/npm-help.html">npm-help(1)</a></li><li><a href="cli/npm-index.html">npm-index(1)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer"><a href="../doc/README.html">README</a> — npm@1.3.23</p>
|
||||
<p id="footer"><a href="../doc/README.html">README</a> — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-bin.html
vendored
2
deps/npm/html/doc/api/npm-bin.html
vendored
@@ -19,7 +19,7 @@
|
||||
<p>This function should not be used programmatically. Instead, just refer
|
||||
to the <code>npm.bin</code> member.</p>
|
||||
</div>
|
||||
<p id="footer">npm-bin — npm@1.3.23</p>
|
||||
<p id="footer">npm-bin — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-bugs.html
vendored
2
deps/npm/html/doc/api/npm-bugs.html
vendored
@@ -25,7 +25,7 @@ optional version number.</p>
|
||||
<p>This command will launch a browser, so this command may not be the most
|
||||
friendly for programmatic use.</p>
|
||||
</div>
|
||||
<p id="footer">npm-bugs — npm@1.3.23</p>
|
||||
<p id="footer">npm-bugs — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-commands.html
vendored
2
deps/npm/html/doc/api/npm-commands.html
vendored
@@ -28,7 +28,7 @@ usage, or <code>man 3 npm-<command></code> for programmatic usage.</p>
|
||||
|
||||
<ul><li><a href="../misc/npm-index.html">npm-index(7)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">npm-commands — npm@1.3.23</p>
|
||||
<p id="footer">npm-commands — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-config.html
vendored
2
deps/npm/html/doc/api/npm-config.html
vendored
@@ -33,7 +33,7 @@ functions instead.</p>
|
||||
|
||||
<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
|
||||
</div>
|
||||
<p id="footer">npm-config — npm@1.3.23</p>
|
||||
<p id="footer">npm-config — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-deprecate.html
vendored
2
deps/npm/html/doc/api/npm-deprecate.html
vendored
@@ -32,7 +32,7 @@ install the package.</p></li></ul>
|
||||
|
||||
<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></ul>
|
||||
</div>
|
||||
<p id="footer">npm-deprecate — npm@1.3.23</p>
|
||||
<p id="footer">npm-deprecate — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-docs.html
vendored
2
deps/npm/html/doc/api/npm-docs.html
vendored
@@ -25,7 +25,7 @@ optional version number.</p>
|
||||
<p>This command will launch a browser, so this command may not be the most
|
||||
friendly for programmatic use.</p>
|
||||
</div>
|
||||
<p id="footer">npm-docs — npm@1.3.23</p>
|
||||
<p id="footer">npm-docs — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-edit.html
vendored
2
deps/npm/html/doc/api/npm-edit.html
vendored
@@ -30,7 +30,7 @@ to open. The package can optionally have a version number attached.</p>
|
||||
<p>Since this command opens an editor in a new process, be careful about where
|
||||
and how this is used.</p>
|
||||
</div>
|
||||
<p id="footer">npm-edit — npm@1.3.23</p>
|
||||
<p id="footer">npm-edit — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-explore.html
vendored
2
deps/npm/html/doc/api/npm-explore.html
vendored
@@ -24,7 +24,7 @@ sure to use <code>npm rebuild <pkg></code> if you make any changes.</p>
|
||||
|
||||
<p>The first element in the 'args' parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.</p>
|
||||
</div>
|
||||
<p id="footer">npm-explore — npm@1.3.23</p>
|
||||
<p id="footer">npm-explore — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-help-search.html
vendored
2
deps/npm/html/doc/api/npm-help-search.html
vendored
@@ -32,7 +32,7 @@ Name of the file that matched</li></ul>
|
||||
|
||||
<p>The silent parameter is not neccessary not used, but it may in the future.</p>
|
||||
</div>
|
||||
<p id="footer">npm-help-search — npm@1.3.23</p>
|
||||
<p id="footer">npm-help-search — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-init.html
vendored
2
deps/npm/html/doc/api/npm-init.html
vendored
@@ -35,7 +35,7 @@ then go ahead and use this programmatically.</p>
|
||||
|
||||
<p><a href="../files/package.json.html">package.json(5)</a></p>
|
||||
</div>
|
||||
<p id="footer">npm-init — npm@1.3.23</p>
|
||||
<p id="footer">npm-init — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-install.html
vendored
2
deps/npm/html/doc/api/npm-install.html
vendored
@@ -25,7 +25,7 @@ the name of a package to be installed.</p>
|
||||
<p>Finally, 'callback' is a function that will be called when all packages have been
|
||||
installed or when an error has been encountered.</p>
|
||||
</div>
|
||||
<p id="footer">npm-install — npm@1.3.23</p>
|
||||
<p id="footer">npm-install — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-link.html
vendored
2
deps/npm/html/doc/api/npm-link.html
vendored
@@ -39,7 +39,7 @@ npm.commands.link('redis', cb) # link-install the package</code></pre>
|
||||
<p>Now, any changes to the redis package will be reflected in
|
||||
the package in the current working directory</p>
|
||||
</div>
|
||||
<p id="footer">npm-link — npm@1.3.23</p>
|
||||
<p id="footer">npm-link — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-load.html
vendored
2
deps/npm/html/doc/api/npm-load.html
vendored
@@ -32,7 +32,7 @@ config object.</p>
|
||||
|
||||
<p>For a list of all the available command-line configs, see <code>npm help config</code></p>
|
||||
</div>
|
||||
<p id="footer">npm-load — npm@1.3.23</p>
|
||||
<p id="footer">npm-load — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-ls.html
vendored
2
deps/npm/html/doc/api/npm-ls.html
vendored
@@ -59,7 +59,7 @@ project.</p>
|
||||
This means that if a submodule a same dependency as a parent module, then the
|
||||
dependency will only be output once.</p>
|
||||
</div>
|
||||
<p id="footer">npm-ls — npm@1.3.23</p>
|
||||
<p id="footer">npm-ls — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-outdated.html
vendored
2
deps/npm/html/doc/api/npm-outdated.html
vendored
@@ -19,7 +19,7 @@ currently outdated.</p>
|
||||
|
||||
<p>If the 'packages' parameter is left out, npm will check all packages.</p>
|
||||
</div>
|
||||
<p id="footer">npm-outdated — npm@1.3.23</p>
|
||||
<p id="footer">npm-outdated — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-owner.html
vendored
2
deps/npm/html/doc/api/npm-owner.html
vendored
@@ -34,7 +34,7 @@ that is not implemented at this time.</p>
|
||||
|
||||
<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></ul>
|
||||
</div>
|
||||
<p id="footer">npm-owner — npm@1.3.23</p>
|
||||
<p id="footer">npm-owner — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-pack.html
vendored
2
deps/npm/html/doc/api/npm-pack.html
vendored
@@ -25,7 +25,7 @@ overwritten the second time.</p>
|
||||
|
||||
<p>If no arguments are supplied, then npm packs the current package folder.</p>
|
||||
</div>
|
||||
<p id="footer">npm-pack — npm@1.3.23</p>
|
||||
<p id="footer">npm-pack — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-prefix.html
vendored
2
deps/npm/html/doc/api/npm-prefix.html
vendored
@@ -21,7 +21,7 @@
|
||||
|
||||
<p>This function is not useful programmatically</p>
|
||||
</div>
|
||||
<p id="footer">npm-prefix — npm@1.3.23</p>
|
||||
<p id="footer">npm-prefix — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-prune.html
vendored
2
deps/npm/html/doc/api/npm-prune.html
vendored
@@ -23,7 +23,7 @@
|
||||
<p>Extraneous packages are packages that are not listed on the parent
|
||||
package's dependencies list.</p>
|
||||
</div>
|
||||
<p id="footer">npm-prune — npm@1.3.23</p>
|
||||
<p id="footer">npm-prune — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-publish.html
vendored
2
deps/npm/html/doc/api/npm-publish.html
vendored
@@ -32,7 +32,7 @@ the registry. Overwrites when the "force" environment variable is set
|
||||
|
||||
<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></ul>
|
||||
</div>
|
||||
<p id="footer">npm-publish — npm@1.3.23</p>
|
||||
<p id="footer">npm-publish — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
2
deps/npm/html/doc/api/npm-rebuild.html
vendored
2
deps/npm/html/doc/api/npm-rebuild.html
vendored
@@ -22,7 +22,7 @@ the new binary. If no 'packages' parameter is specify, every package wil
|
||||
|
||||
<p>See <code>npm help build</code></p>
|
||||
</div>
|
||||
<p id="footer">npm-rebuild — npm@1.3.23</p>
|
||||
<p id="footer">npm-rebuild — npm@1.3.4</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
|
||||
59
deps/npm/html/doc/api/npm-repo.html
vendored
59
deps/npm/html/doc/api/npm-repo.html
vendored
@@ -1,59 +0,0 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<title>npm-repo</title>
|
||||
<meta http-equiv="content-type" value="text/html;utf-8">
|
||||
<link rel="stylesheet" type="text/css" href="../../static/style.css">
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<h1><a href="../api/npm-repo.html">npm-repo</a></h1> <p>Open package repository page in the browser</p>
|
||||
|
||||
<h2 id="SYNOPSIS">SYNOPSIS</h2>
|
||||
|
||||
<pre><code>npm.commands.repo(package, callback)</code></pre>
|
||||
|
||||
<h2 id="DESCRIPTION">DESCRIPTION</h2>
|
||||
|
||||
<p>This command tries to guess at the likely location of a package's
|
||||
repository URL, and then tries to open it using the <code>--browser</code>
|
||||
config param.</p>
|
||||
|
||||
<p>Like other commands, the first parameter is an array. This command only
|
||||
uses the first element, which is expected to be a package name with an
|
||||
optional version number.</p>
|
||||
|
||||
<p>This command will launch a browser, so this command may not be the most
|
||||
friendly for programmatic use.</p>
|
||||
</div>
|
||||
<p id="footer">npm-repo — npm@1.3.23</p>
|
||||
<script>
|
||||
;(function () {
|
||||
var wrapper = document.getElementById("wrapper")
|
||||
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
|
||||
.filter(function (el) {
|
||||
return el.parentNode === wrapper
|
||||
&& el.tagName.match(/H[1-6]/)
|
||||
&& el.id
|
||||
})
|
||||
var l = 2
|
||||
, toc = document.createElement("ul")
|
||||
toc.innerHTML = els.map(function (el) {
|
||||
var i = el.tagName.charAt(1)
|
||||
, out = ""
|
||||
while (i > l) {
|
||||
out += "<ul>"
|
||||
l ++
|
||||
}
|
||||
while (i < l) {
|
||||
out += "</ul>"
|
||||
l --
|
||||
}
|
||||
out += "<li><a href='#" + el.id + "'>" +
|
||||
( el.innerText || el.text || el.innerHTML)
|
||||
+ "</a>"
|
||||
return out
|
||||
}).join("\n")
|
||||
toc.id = "toc"
|
||||
document.body.appendChild(toc)
|
||||
})()
|
||||
</script>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user